Commit Graph

285 Commits

Author SHA1 Message Date
d0c60605ab shader_recompiler: use default value for clip distances array 2023-12-26 19:32:47 -05:00
6697b665ca shader_recompiler: respect clip distance limits in indexed store 2023-12-26 19:10:25 -05:00
9e9aed41be shader_recompiler: use float image operations on load/store when required 2023-12-21 14:34:46 -05:00
fcfa8b680b shader_recompiler: use minimal clip distance array 2023-12-18 22:25:14 -05:00
94244437de shader_recompiler: ignore clip distances beyond driver support level 2023-12-18 22:25:14 -05:00
1d11fe00a3 Merge branch 'master' into ssbo-align 2023-11-26 21:08:53 -05:00
473caaff5b renderer_vulkan: ignore viewport stores on non-supporting drivers 2023-11-19 11:27:12 -05:00
feb60de5c3 shader_recompiler: Fix spelling of "derivate" (#12067) 2023-11-18 13:39:47 +01:00
75c5be55af shader_recompiler: Align SSBO offsets in GlobalMemory functions 2023-10-31 20:14:18 -04:00
e02ee8e59d Manually robust on Maxwell and earlier 2023-10-19 19:54:31 +01:00
1e24d02434 emit_spirv: fix incorrect use of descriptor index in image atomics 2023-09-22 00:39:09 -04:00
eb4ddb2868 shader_recompiler: skip sampler for buffer textures (#11435) 2023-09-14 15:23:50 +02:00
ba4b65e4bc shader_recompiler: always declare image format for image buffers 2023-09-02 17:25:00 -04:00
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