9245b426e3
shader_recompiler: fix emulation of 3D textureGrad
2023-09-01 22:41:01 -04:00
5da70f7197
Remove memory allocations in some hot paths
2023-06-22 08:05:10 +01:00
ca4bf3844e
video_core: Enable support_descriptor_aliasing on Turnip, disable storage atomic otherwise.
2023-06-03 00:05:58 -07:00
b4a12b889e
Avoid using VectorExtractDynamic for subgroup mask on Adreno GPUs
...
This crashes their shader compiler for some reason.
2023-06-03 00:05:31 -07:00
158a1896ec
Implement scaled vertex buffer format emulation
...
These formats are unsupported by mobile GPUs so they need to be emulated in shaders instead.
2023-06-03 00:05:31 -07:00
e42b4a16b6
Fix Tears of the Kingdom flickering clouds and depths.
2023-05-11 19:25:24 +01:00
b566c98258
Define SampleMask as an array
2023-04-30 18:37:37 +01:00
82b78cde73
shader_recompiler: Use vector arithmetic rather than component-wise in ImageGatherSubpixelOffset
...
Should be more efficient and better readable
2023-04-08 16:13:08 +02:00
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 ).
2023-04-08 16:12:30 +02:00
a63e17566a
spirv: Fix TXQ with MSAA textures
2023-01-29 13:47:30 -05:00
208e635f37
Merge pull request #9694 from ameerj/txq-mips
...
shader_recompiler: TXQ: Skip QueryLevels when possible
2023-01-29 12:27:26 -05:00
159aab9a97
Merge pull request #9682 from ameerj/shader-s32
...
shader_recompiler: Remove S32 IR type
2023-01-28 14:00:11 -08:00
2c2e019a44
shader_recompiler: TXQ: Skip QueryLevels when possible
2023-01-28 16:25:18 -05:00
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
2023-01-25 22:03:15 -05:00
76a4356e55
spirv: fix multisampled image fetch
2023-01-23 12:03:19 -05:00
58fec43768
Run clang-format
2023-01-05 22:18:10 +00:00
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.
2023-01-05 22:13:07 +00:00
3f0985c7b0
shader_recompiler: SPIRV: Only enable int64 feature when supported
2023-01-05 22:13:07 +00:00
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.
2023-01-05 22:13:07 +00:00
a0c697124c
Video_core: Address feedback
2023-01-04 14:39:42 -05:00
aad0cbf024
MacroHLE: Add HLE replacement for base vertex and base instance.
2023-01-01 16:43:57 -05:00
5da72a891f
Merge pull request #7450 from FernandoS27/ndc-vulkan
...
Vulkan: Add support for VK_EXT_depth_clip_control.
2022-12-17 16:08:10 -05:00
0104e28fe4
Vulkan: Add support for VK_EXT_depth_clip_control.
2022-12-13 21:39:18 -05:00
77b0d01639
spirv_emit_context: declare GroupNonUniform capability for SubgroupLocalInvocationId
2022-12-13 18:25:53 -05:00
2956a33463
Vulkan: update initialization
...
Co-authored-by: bylaws <bylaws@users.noreply.github.com >
2022-11-27 14:58:28 -05:00
0d033e6b45
spirv_emit_context: add missing flat decoration
2022-11-18 22:05:28 -05:00
9c67334031
Merge pull request #9253 from vonchenplus/attr_layer
...
shader: Implement miss attribute layer
2022-11-18 22:04:18 -05:00
60e0d4a177
shader: Implement miss attribute layer
2022-11-17 22:45:14 +08:00
a4472b5526
video_core: Fix few issues in Tess stage
2022-11-07 15:42:42 +08:00
75596c07e0
video_core: Fix SNORM texture buffer emulating error ( #9001 )
2022-11-04 02:39:42 -04:00
9a95c7fa14
video_core: Generate mipmap texture by drawing
2022-09-20 11:55:43 +08:00
b2a6dde438
video_code: support rectangle texture
2022-08-25 12:45:58 +08:00
f580946b0d
Add missed shader defines. Fixes Xenoblade Chronicles 3 booting with Vulkan.
2022-07-29 06:12:39 +01:00
99ceb03a1c
general: Convert source file copyright comments over to SPDX
...
This formats all copyright comments according to SPDX formatting guidelines.
Additionally, this resolves the remaining GPLv2 only licensed files by relicensing them to GPLv2.0-or-later.
2022-04-23 05:55:32 -04:00
a45baa0e78
shader_recompiler: support const buffer indirect addressing on OpenGL SPIR-V
2022-04-01 11:17:54 -04:00
dd862dff66
Include <bit> header when std::count{r,l}_zero is used
...
Needed for compilation with older libc++ releases
2022-03-22 21:11:24 +00:00
574a2c4b77
shader_recompiler: Reduce unused includes
2022-03-20 02:25:08 -04:00
3009d0bd7d
Address review comments
2022-03-17 14:48:18 -04:00
e228a40db8
shader_recompiler: Use functions for indirect const buffer accesses
2022-03-17 13:30:21 -04:00
3ac522ba41
Address review comments
2022-03-17 09:30:41 -04:00
52895fab67
shader: add support for const buffer indirect addressing
2022-03-14 19:43:32 -04:00
e8c50e709e
emit_spirv, vk_compute_pass: Resolve VS2022 compiler errors
2022-03-12 02:54:33 -05:00
ad58d7eae7
shaders: Add U64->U32x2 Atomic fallback functions
2022-01-29 19:55:53 -05:00
4790ba7839
spirv_atomic: Define U32x2 storage buffers for 64-bit storage atomics
...
Some drivers do not support 64-bit atomics, and fallback to atomically modifying U32x2 vectors. This change ensures that U32x2 storage vectors are defined in the spir-v shader when 64-bit atomics are used.
Fixes a hang on some devices, notably Intel GPUs, when booting Pokemon Legends Arceus
2022-01-28 19:00:04 -05:00
beaf7654bb
emit_spirv: Add Xfb execution mode when transform feedback is used
...
Fixes Transform Feedback on Vulkan AMD drivers.
2022-01-28 16:32:48 -05:00
a943600019
shader_recompiler: fix potential OOB access
...
Found by static analysis with PVS-Studio. Original check wasn't actually checking for OOB and would segfault in case of it.
2022-01-17 21:50:51 +03:00
ae7da0b12d
Merge pull request #7629 from ameerj/nv-driver-fixes
...
shaders: Add fixes for NVIDIA drivers 495+
2022-01-03 00:39:59 +01:00
14ac0c2923
shader: Add integer attribute get optimization pass
...
Works around an nvidia driver bug, where casting the integer attributes to float and back to an integer always returned 0.
2021-12-29 19:03:49 -05:00
c7235e67ef
Empty spaces
2021-12-28 18:50:51 -03:00
840d5520d2
Changes to avoid warnings in SSE4.2 optimized SPIR-V
2021-12-28 17:35:55 -03:00