summaryrefslogtreecommitdiff
path: root/src/shader_recompiler/backend/spirv
AgeCommit message (Collapse)Author
2023-09-01shader_recompiler: fix emulation of 3D textureGradLiam
2023-06-22Remove memory allocations in some hot pathsKelebek1
2023-06-03video_core: Enable support_descriptor_aliasing on Turnip, disable storage ↵bunnei
atomic otherwise.
2023-06-03Avoid using VectorExtractDynamic for subgroup mask on Adreno GPUsBilly Laws
This crashes their shader compiler for some reason.
2023-06-03Implement scaled vertex buffer format emulationBilly Laws
These formats are unsupported by mobile GPUs so they need to be emulated in shaders instead.
2023-05-11Fix Tears of the Kingdom flickering clouds and depths.Kelebek1
2023-04-30Define SampleMask as an arrayKelebek1
2023-04-08shader_recompiler: Use vector arithmetic rather than component-wise in ↵Wollnashorn
ImageGatherSubpixelOffset Should be more efficient and better readable
2023-04-08shader_recompiler: Add subpixel offset for correct rounding at `ImageGather`Wollnashorn
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-01-29spirv: Fix TXQ with MSAA texturesameerj
2023-01-29Merge pull request #9694 from ameerj/txq-mipsliamwhite
shader_recompiler: TXQ: Skip QueryLevels when possible
2023-01-28Merge pull request #9682 from ameerj/shader-s32bunnei
shader_recompiler: Remove S32 IR type
2023-01-28shader_recompiler: TXQ: Skip QueryLevels when possibleameerj
2023-01-25shader_recompiler: Remove S32 IR typeameerj
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-23spirv: fix multisampled image fetchLiam
2023-01-05Run clang-formatBilly Laws
2023-01-05shader_recompiler: Fix shuffle partitioning for >64 invoc-per-subgroup GPUsBilly Laws
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-05shader_recompiler: SPIRV: Only enable int64 feature when supportedBilly Laws
2023-01-05Vulkan: Add a workaround for input_position on Adreno driversBilly Laws
Adreno drivers will crash compiling geometry shaders if the input position is not wrapped in a gl_in struct.
2023-01-04Video_core: Address feedbackFernando Sahmkow
2023-01-01MacroHLE: Add HLE replacement for base vertex and base instance.Fernando Sahmkow
2022-12-17Merge pull request #7450 from FernandoS27/ndc-vulkanliamwhite
Vulkan: Add support for VK_EXT_depth_clip_control.
2022-12-13Vulkan: Add support for VK_EXT_depth_clip_control.FernandoS27
2022-12-13spirv_emit_context: declare GroupNonUniform capability for ↵Liam
SubgroupLocalInvocationId
2022-11-27Vulkan: update initializationLiam
Co-authored-by: bylaws <bylaws@users.noreply.github.com>
2022-11-18spirv_emit_context: add missing flat decorationLiam
2022-11-18Merge pull request #9253 from vonchenplus/attr_layerliamwhite
shader: Implement miss attribute layer
2022-11-17shader: Implement miss attribute layerFengChen
2022-11-07video_core: Fix few issues in Tess stageFengChen
2022-11-04video_core: Fix SNORM texture buffer emulating error (#9001)Feng Chen
2022-09-20video_core: Generate mipmap texture by drawingFengChen
2022-08-25video_code: support rectangle textureFengChen
2022-07-29Add missed shader defines. Fixes Xenoblade Chronicles 3 booting with Vulkan.Kelebek1
2022-04-23general: Convert source file copyright comments over to SPDXMorph
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-01shader_recompiler: support const buffer indirect addressing on OpenGL SPIR-VLiam
2022-03-22Include <bit> header when std::count{r,l}_zero is usedBilly Laws
Needed for compilation with older libc++ releases
2022-03-20shader_recompiler: Reduce unused includesameerj
2022-03-17Address review commentsLiam
2022-03-17shader_recompiler: Use functions for indirect const buffer accessesLiam
2022-03-17Address review commentsLiam
2022-03-14shader: add support for const buffer indirect addressingLiam
2022-03-12emit_spirv, vk_compute_pass: Resolve VS2022 compiler errorsameerj
2022-01-29shaders: Add U64->U32x2 Atomic fallback functionsameerj
2022-01-28spirv_atomic: Define U32x2 storage buffers for 64-bit storage atomicsameerj
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-28emit_spirv: Add Xfb execution mode when transform feedback is usedameerj
Fixes Transform Feedback on Vulkan AMD drivers.
2022-01-17shader_recompiler: fix potential OOB accessv1993
Found by static analysis with PVS-Studio. Original check wasn't actually checking for OOB and would segfault in case of it.
2022-01-03Merge pull request #7629 from ameerj/nv-driver-fixesFernando S
shaders: Add fixes for NVIDIA drivers 495+
2021-12-29shader: Add integer attribute get optimization passameerj
Works around an nvidia driver bug, where casting the integer attributes to float and back to an integer always returned 0.
2021-12-28Empty spacesMatías Locatti
2021-12-28Changes to avoid warnings in SSE4.2 optimized SPIR-VMatías Locatti