summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2019-12-22Texture Cache: Address FeedbackFernando Sahmkow
2019-12-22Texture Cache: Add HLE methods for building 3D textures within the GPU in ↵Fernando Sahmkow
certain scenarios. This commit adds a series of HLE methods for handling 3D textures in general. This helps games that generate 3D textures on every frame and may reduce loading times for certain games.
2019-12-22Merge pull request #3230 from ReinUsesLisp/vk-emu-shadersFernando Sahmkow
renderer_vulkan/shader: Add helper GLSL shaders
2019-12-22Merge pull request #3240 from ReinUsesLisp/decomp-cond-codeFernando Sahmkow
vk_shader_decompiler: Use Visit instead of reimplementing it
2019-12-21Merge pull request #3235 from ReinUsesLisp/ldg-u8bunnei
shader/memory: Implement LDG.U8 and unaligned U8 loads
2019-12-20vk_shader_decompiler: Use Visit instead of reimplementing itReinUsesLisp
ExprCondCode visit implements the generic Visit. Use this instead of that one. As an intended side effect this fixes unwritten memory usages in cases when a negation of a condition code is used.
2019-12-19Merge pull request #3234 from ReinUsesLisp/i2f-u8-selectorbunnei
shader/conversion: Implement byte selector in I2F
2019-12-19Merge pull request #3233 from ReinUsesLisp/mismatch-sizesbunnei
shader/texture: Properly shrink unused entries in size mismatches
2019-12-19Merge pull request #3232 from ReinUsesLisp/gl-decompiler-imagesbunnei
gl_shader_decompiler: Add missing DeclareImages
2019-12-19Merge pull request #3231 from ReinUsesLisp/tld4s-encodingbunnei
shader_bytecode: Fix TLD4S encoding
2019-12-18Merge pull request #3221 from ReinUsesLisp/vk-schedulerbunnei
vk_scheduler: Delegate commands to a worker thread and state track
2019-12-18shader/memory: Implement LDG.U8 and unaligned U8 loadsReinUsesLisp
LDG can load single bytes instead of full integers or packs of integers. These have the advantage of loading bytes that are not aligned to 4 bytes. To emulate these this commit gets the byte being referenced (by doing "address & 3" and then using that to extract the byte from the loaded integer: result = bitfieldExtract(loaded_integer, (address % 4) * 8, 8)
2019-12-18shader/conversion: Implement byte selector in I2FReinUsesLisp
I2F's byte selector is used to choose what bytes to convert to float. e.g. if the input is 0xaabbccdd and the selector is ".B3" it will convert 0xaa. The default (when it's not shown in nvdisasm) is ".B0", in that example the default would convert 0xdd to float.
2019-12-17Merge pull request #3227 from amilajack/patch-1bunnei
delete appveyor config
2019-12-17shader/texture: Properly shrink unused entries in size mismatchesReinUsesLisp
When a image format mismatches we were inserting zeroes to the texture itself. This was not handling cases were the mismatch uses less coordinates than the guest shader code. Address that by resizing the vector.
2019-12-17gl_shader_decompiler: Add missing DeclareImagesReinUsesLisp
2019-12-17shader_bytecode: Fix TLD4S encodingReinUsesLisp
2019-12-17Merge pull request #3173 from yuzu-emu/bunnei-spscqueuebunnei
common: SPSCQueue: Notify after incrementing queue size.
2019-12-17delete .appeveyor dirAmila Welihinda
2019-12-16common: SPSCQueue: Notify after incrementing queue size.bunnei
2019-12-16renderer_vulkan/shader: Add helper GLSL shadersReinUsesLisp
These shaders are used to specify code that is not dynamically generated in the Vulkan backend. Instead of packing it inside the build system, it's manually built and copied to the C++ file to avoid adding unnecessary build time dependencies. quad_array should be dropped in the future since it can be emulated with a memory pool generated from the CPU.
2019-12-16Merge pull request #3182 from ReinUsesLisp/renderer-openglbunnei
renderer_opengl: Miscellaneous clean ups
2019-12-16Merge pull request #3219 from FernandoS27/fix-bindlessRodrigo Locatti
Corrections and fixes to TLD4S & bindless samplers failing
2019-12-15delete appveyor configAmila Welihinda
2019-12-14Merge pull request #3222 from ReinUsesLisp/maxwell-to-vkbunnei
maxwell_to_vk: Use VK_EXT_index_type_uint8 and misc changes
2019-12-14Merge pull request #3224 from bunnei/boost-ext-updatebunnei
externals: Update boost-ext to include safe_numerics.
2019-12-14Merge pull request #3213 from ReinUsesLisp/intel-mesabunnei
gl_device: Enable compute shaders for Intel Mesa drivers
2019-12-14externals: Update boost-ext to include safe_numerics.bunnei
- This is useful to me for an upcoming change.
2019-12-13Merge pull request #3212 from ReinUsesLisp/fix-smem-lmembunnei
gl_shader_cache: Add missing new-line on emitted GLSL
2019-12-13maxwell_to_vk: Improve image format table and add more formatsReinUsesLisp
A1B5G5R5 uses A1R5G5B5. This is flipped with image view swizzles; flushing is still not properly implemented on Vulkan for this particular format.
2019-12-13maxwell_to_vk: Implement more vertex formatsReinUsesLisp
2019-12-13maxwell_to_vk: Implement more primitive topologiesReinUsesLisp
Add an extra argument to query device capabilities in the future. The intention behind this is to use native quads, quad strips, line loops and polygons if these are released for Vulkan.
2019-12-13maxwell_to_vk: Approach GL_CLAMP closer to the GL specReinUsesLisp
The OpenGL spec defines GL_CLAMP's formula similarly to CLAMP_TO_EDGE and CLAMP_TO_BORDER depending on the filter mode used. It doesn't exactly behave like this, but it's the closest we can get with what Vulkan offers without emulating it by injecting shader code.
2019-12-13maxwell_to_vk: Use VK_EXT_index_type_uint8 when availableReinUsesLisp
2019-12-13vk_scheduler: Delegate commands to a worker thread and state trackReinUsesLisp
Introduce a worker thread approach for delegating Vulkan work derived from dxvk's approach. https://github.com/doitsujin/dxvk Now that the scheduler is what handles all Vulkan work related to command streaming, store state tracking in itself. This way we can know when to reupload Vulkan dynamic state to the queue (since this one is invalidated between command buffers unlike NVN). We can also store the renderpass state and graphics pipeline bound to avoid redundant binds and renderpass begins/ends.
2019-12-12Merge pull request #3214 from lioncash/svc-funcbunnei
kernel/svc: Amend function signature of SignalProcessWideKey
2019-12-11Merge pull request #3217 from jhol/fix-boost-includebunnei
Added missing include
2019-12-11Shader_IR: Correct TLD4S Depth Compare.Fernando Sahmkow
2019-12-11Shader_Ir: Correct TLD4S encoding and implement f16 flag.Fernando Sahmkow
2019-12-11Gl_Shader_compiler: Correct Depth Compare for Texture Gather operations.Fernando Sahmkow
2019-12-11Shader_Ir: default failed tracks on bindless samplers to null values.Fernando Sahmkow
2019-12-11Merge pull request #3218 from FernandoS27/tess-glFernando Sahmkow
Gl_Rasterizer: Skip Tesselation Control and Eval stages as they are unimplemented
2019-12-11Gl_Rasterizer: Skip Tesselation Control and Eval stages as they are un ↵Fernando Sahmkow
implemented. This commit ensures the OGL backend does not execute tesselation shader stages as they are currently unimplemented.
2019-12-11Merge pull request #3210 from ReinUsesLisp/memory-barrierbunnei
shader: Implement MEMBAR.GL
2019-12-11Added missing includeJoel Holdsworth
2019-12-11Kernel: Correct behavior of Address Arbiter threads. (#3165)Fernando Sahmkow
* Kernel: Correct behavior of Address Arbiter threads. This corrects arbitration threads to behave just like in Horizon OS. They are added into a container and released according to what priority they had when added. Horizon OS does not reorder them if their priority changes. * Kernel: Address Feedback.
2019-12-11kernel/svc: Correct function signature of SignalProcessWideKeyLioncash
This function doesn't actually return a result code, so we can amend the signature of it to match.
2019-12-11gl_device: Enable compute shaders for Intel Mesa driversReinUsesLisp
Previously we naively checked for "Intel" in GL_VENDOR, but this includes both Intel's proprietary driver and the mesa driver. Re-enable compute shaders for mesa.
2019-12-10gl_shader_cache: Add missing new-line on emitted GLSLReinUsesLisp
Add missing new-line. This caused shaders using local memory and shared memory to inject a preprocessor GLSL line after an expression (resulting in invalid code). It looked like this: shared uint smem[8];#define LOCAL_MEMORY_SIZE 16 It should look like this (addressed by this commit): shared uint smem[8]; \#define LOCAL_MEMORY_SIZE 16
2019-12-10Merge pull request #3201 from lioncash/dumpbunnei
kernel/svc: Provide implementations for svcDumpInfo/svcDumpInfoNew