Billy Laws
b4a12b889e
Avoid using VectorExtractDynamic for subgroup mask on Adreno GPUs
This crashes their shader compiler for some reason.
3 years ago
Billy Laws
158a1896ec
Implement scaled vertex buffer format emulation
These formats are unsupported by mobile GPUs so they need to be emulated in shaders instead.
3 years ago
Liam
13d25063a1
shader_recompiler: fix copy-paste error
3 years ago
Kelebek1
e42b4a16b6
Fix Tears of the Kingdom flickering clouds and depths.
3 years ago
Kelebek1
b566c98258
Define SampleMask as an array
3 years ago
Wollnashorn
82b78cde73
shader_recompiler: Use vector arithmetic rather than component-wise in ImageGatherSubpixelOffset
Should be more efficient and better readable
3 years ago
Wollnashorn
fe91066f46
video_core: Enable ImageGather with subpixel offset on Intel
3 years ago
Wollnashorn
780240e697
shader_recompiler: Add subpixel offset for correct rounding at `ImageGather`
On AMD a subpixel offset of 1/512 of the texel size is applied to the texture coordinates at a ImageGather call to ensure the rounding at the texel centers is done the same way as in Maxwell or other Nvidia architectures.
See https://www.reedbeta.com/blog/texture-gathers-and-coordinate-precision/ for more details why this might be necessary.
This should fix shadow artifacts at object edges in Zelda: Breath of the Wild (#9957 , #6956 ).
3 years ago
Liam
600f325d87
general: fix spelling mistakes
3 years ago
ameerj
2ce5bb9bd6
buffer_cache: Add logic for non-NVN storage buffer tracking
3 years ago
arades79
683019878f
remove static from pointer sized or smaller types for aesthetics, change constexpr static to static constexpr for consistency
Signed-off-by: arades79 <scravers@protonmail.com>
3 years ago
arades79
45e13b03f3
add static lifetime to constexpr values to force compile time evaluation where possible
Signed-off-by: arades79 <scravers@protonmail.com>
3 years ago
ameerj
04139cb3ed
glsl_emit_context: Remove redeclarations of gl_SampleID and gl_SampleMask
These built-ins seem to be available without needing to be declared for fragment shaders, similar i.e. to gl_FragDepth
3 years ago
ameerj
4678f53463
shader_recompiler/value.h: Remove lingering references to S32
3 years ago
Levi Behunin
d5fc56db4b
Move to Clang Format 15
Depends on https://github.com/yuzu-emu/build-environments/pull/69
clang-15 primary run
3 years ago
ameerj
a63e17566a
spirv: Fix TXQ with MSAA textures
3 years ago
ameerj
a1d8306bfd
emit_glasm_image: Fix TXQ with MSAA textures
3 years ago
ameerj
08feba2b56
emit_glsl_image: Implement TXQ with MSAA textures
Also fixes for texture buffers, which do not have mips eithers.
3 years ago
ameerj
0d820f2dab
texture_pass: Fix texture descriptors comparisons
3 years ago
ameerj
9bb429999e
texture_pass: Refactor texture handle retrieval
3 years ago
ameerj
2c2e019a44
shader_recompiler: TXQ: Skip QueryLevels when possible
3 years ago
ameerj
c0cedbae94
emit_glsl_image: Fix ImageFetch for MSAA textures
3 years ago
ameerj
0f795603fc
glasm: Add MS sampler types
3 years ago
ameerj
5710e90150
glsl: Add MS sampler types
3 years ago
ameerj
93cc6e4d99
shader_recompiler: Remove S32 IR type
The frontend IR opcodes do not distinguish between signed and unsigned integer types.
Fixes broken shaders when IR validation/graphics debugging is enabled for shaders that used BitCastS32F32
3 years ago
Liam
76a4356e55
spirv: fix multisampled image fetch
3 years ago
Liam
505923f0f3
Revert "shader_recompiler: Align SSBO offsets to meet host requirements"
This reverts commit 8804a4eb23 .
3 years ago
Billy Laws
d34275a260
Avoid OOB array access reading passthrough attr mask
YFC 1.5 extended the size of the varying mask used to hold passthrough attrs without considering this
3 years ago
Billy Laws
58fec43768
Run clang-format
3 years ago
Billy Laws
68ed60cee4
shader_recompiler: Fix shuffle partitioning for >64 invoc-per-subgroup GPUs
The existing implementation only supports 64 invoc-per-subgroup GPUs, and misbehaves on adreno when invocations need to be split into 4 emulated subgroups.
3 years ago
Billy Laws
625a4af73a
shader_recompiler: Add support for lowering geometry passthrough
Reuses most of the existing code for generating the gl_Layer passthrough. Fixes geometry in Nier: Automata on GPUs without HW passthrough support.
3 years ago
Billy Laws
8804a4eb23
shader_recompiler: Align SSBO offsets to meet host requirements
We can take advantage of SSBO addresses being passed in a constant bufer to account for the extra alignment requirements in the shader itself.
3 years ago
Billy Laws
3f0985c7b0
shader_recompiler: SPIRV: Only enable int64 feature when supported
3 years ago
Billy Laws
c1cc99584c
shader_recompiler: Add comparison operators to descriptor types
3 years ago
Billy Laws
bbfad79c89
Vulkan: Add a workaround for input_position on Adreno drivers
Adreno drivers will crash compiling geometry shaders if the input position is not wrapped in a gl_in struct.
3 years ago
Fernando Sahmkow
a0c697124c
Video_core: Address feedback
3 years ago
Fernando Sahmkow
a045e860dd
ShaderCompiler: Inline driver specific constants.
3 years ago
Fernando Sahmkow
d09aa0182f
MacroHLE: Final cleanup and fixes.
3 years ago
Fernando Sahmkow
8d694701bc
MacroHLE: Add OpenGL Support
3 years ago
Fernando Sahmkow
aad0cbf024
MacroHLE: Add HLE replacement for base vertex and base instance.
3 years ago
FernandoS27
0104e28fe4
Vulkan: Add support for VK_EXT_depth_clip_control.
4 years ago
Liam
77b0d01639
spirv_emit_context: declare GroupNonUniform capability for SubgroupLocalInvocationId
3 years ago
Liam
3ef006b5ab
shader_recompiler: add gl_Layer translation GS for older hardware
3 years ago
ameerj
5b5612c1cc
CMake: Consolidate common PCH headers
3 years ago
ameerj
37bc5118ea
CMake: Use precompiled headers
3 years ago
ameerj
cae6c13ffb
value.h: remove recursive include
3 years ago
Liam
2956a33463
Vulkan: update initialization
Co-authored-by: bylaws <bylaws@users.noreply.github.com>
3 years ago
Liam
9737615948
general: fix compile for Apple Clang
3 years ago
Liam
0d033e6b45
spirv_emit_context: add missing flat decoration
3 years ago
FengChen
60e0d4a177
shader: Implement miss attribute layer
3 years ago