summaryrefslogtreecommitdiff
path: root/src/shader_recompiler
AgeCommit message (Collapse)Author
2022-06-14Merge pull request #8383 from Morph1984/shadow-of-the-pastMai
yuzu: Make variable shadowing a compile-time error
2022-06-13general: fix compilation on GCC 12Liam
2022-06-13structured_control_flow: Remove constexpr Flow::Blocklat9nq
This seems to be unsupported in newer libstdc++ versions due to Flow::Block's base class being a non-literal type. It's not clear to me why this was permitted in earlier versions.
2022-06-13CMakeLists: Make variable shadowing a compile-time errorMorph
Now that the entire project is free of variable shadowing, we can enforce this as a compile time error to prevent any further introduction of this logic bug.
2022-05-14general: Avoid ambiguous format_to compilation errorsLioncash
Ensures that we're using the fmt version of format_to. These are also the only three outliers. All of the other formatters we have are properly qualified.
2022-04-28GCC 12 fixesLiam
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-07Merge pull request #8133 from liamwhite/gl-spv-cbufFernando S
shader_recompiler: support const buffer indirect addressing on OpenGL
2022-04-04shader_recompiler: Decrease indirect cbuf limit to match hardwareLiam
2022-04-02fix: typosAndrea Pappacoda
2022-04-01shader_compiler: support const buffer indirect addressing in GLSLLiam
2022-04-01shader_recompiler: support const buffer indirect addressing on OpenGL SPIR-VLiam
2022-03-27Merge pull request #8095 from bylaws/masterMai M
shader_recompiler: Include <bit> header when std::count{r,l}_zero is used
2022-03-23dead_code_elimination_pass: Remove unreachable Phi argumentsameerj
2022-03-22Include <bit> header when std::count{r,l}_zero is usedBilly Laws
Needed for compilation with older libc++ releases
2022-03-22shader_recompiler/dead_code_elimination: Add DeadBranchElimination passameerj
This adds a pass to eliminate if(false) branches within the shader code
2022-03-21Merge pull request #8038 from liamwhite/exit-register-detectionAmeer J
shader_recompiler/EXIT: increment output register on failed enable test
2022-03-20general: Fix clang/gcc build errorsameerj
2022-03-20shader_recompiler: Reduce unused includesameerj
2022-03-18Address review commentsLiam
2022-03-18shader_recompiler/EXIT: skip render targets with no outputsLiam
2022-03-17shader_recompiler/EXIT: increment output register on failed enable testLiam
2022-03-17Address review commentsLiam
2022-03-17shader_recompiler: Use functions for indirect const buffer accessesLiam
2022-03-17Address review commentsLiam
2022-03-16shader_recompiler: Implement LDC.IS address modeLiam
2022-03-14shader: add support for const buffer indirect addressingLiam
2022-03-15Merge pull request #8008 from ameerj/rescale-offsets-arrayFernando S
rescaling_pass: Fix rescaling Color2DArray ImageFetch offsets
2022-03-13Shader decompiler: do constant propgation before texture pass.Fernando Sahmkow
2022-03-13Shader decompiler: Fix storage tracking in deko3d.Fernando Sahmkow
2022-03-12rescaling_pass: Fix rescaling Color2DArray ImageFetch offsetsameerj
ImageFetch offsets for 2D array coordinates have a different composite size than the coordinates. The rescaling pass was not taking this into account. Fixes broken shaders when scaling is enabled in Astral Chain, and likely other titles.
2022-03-12emit_spirv, vk_compute_pass: Resolve VS2022 compiler errorsameerj
2022-03-08shader_recompiler/LOP3: Use brute force python results within switch/case.Markus Wick
Thanks to @asLody for optimizing this function. This raised the focus that this function should be optimized more. The current table assumes that the host GPU is able to invert for free, so only AND,OR,XOR are accumulated in the performance metrik. Performance results: Instructions 0: 8 1: 30 2: 114 3: 80 4: 24 Latency 0: 8 1: 30 2: 194 3: 24
2022-01-29emit_glsl_atomic: Implement 32x2 fallback atomic opsameerj
2022-01-29lower_int64_to_int32: Add 64-bit atomic fallbacksameerj
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-28Merge pull request #7786 from ameerj/vmnmx-selMorph
video_minimum_maximum: Implement src operand selectors
2022-01-28emit_spirv: Add Xfb execution mode when transform feedback is usedameerj
Fixes Transform Feedback on Vulkan AMD drivers.
2022-01-27video_minimum_maximum: Implement src operand selectorsameerj
Used by Pokemon Legends: Arceus
2022-01-25shader_recompiler: Remove unnecessary [[nodiscard]]Lioncash
Since ConvertLegacyToGeneric has a void return value, there's nothing that is actually returned by the function.
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-09logging/log.h: move enum class formatter to a separate file ...liushuyu
... to common/logging/formatter.h
2022-01-08logging: adapt to changes in fmt 8.1liushuyu
2022-01-04glsl: Remove unreachable returnNarr the Reg
2022-01-04ShaderDecompiler: Add a debug option to dump the game's shaders.Fernando Sahmkow
2022-01-03Merge pull request #7629 from ameerj/nv-driver-fixesFernando S
shaders: Add fixes for NVIDIA drivers 495+
2021-12-29glsl: Add boolean reference workaroundameerj
2021-12-29glsl_context_get_set: Add alternative cbuf type for broken driversameerj
some drivers have a bug bitwise converting floating point cbuf values to uint variables. This adds a workaround for these drivers to make all cbufs uint and convert to floating point as needed.
2021-12-29emit_glsl_integer: Use negation work aroundameerj