summaryrefslogtreecommitdiff
path: root/src/shader_recompiler (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Merge pull request #8383 from Morph1984/shadow-of-the-pastGravatar Mai2022-06-141-3/+0
|\ | | | | yuzu: Make variable shadowing a compile-time error
| * CMakeLists: Make variable shadowing a compile-time errorGravatar Morph2022-06-131-3/+0
| | | | | | | | 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.
* | general: fix compilation on GCC 12Gravatar Liam2022-06-131-1/+1
| |
* | structured_control_flow: Remove constexpr Flow::BlockGravatar lat9nq2022-06-131-6/+0
|/ | | | | | 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.
* general: Avoid ambiguous format_to compilation errorsGravatar Lioncash2022-05-142-2/+2
| | | | | | | 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.
* GCC 12 fixesGravatar Liam2022-04-281-1/+1
|
* general: Convert source file copyright comments over to SPDXGravatar Morph2022-04-23233-699/+466
| | | | | 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.
* Merge pull request #8133 from liamwhite/gl-spv-cbufGravatar Fernando S2022-04-076-25/+51
|\ | | | | shader_recompiler: support const buffer indirect addressing on OpenGL
| * shader_recompiler: Decrease indirect cbuf limit to match hardwareGravatar Liam2022-04-041-1/+1
| |
| * shader_compiler: support const buffer indirect addressing in GLSLGravatar Liam2022-04-014-9/+38
| |
| * shader_recompiler: support const buffer indirect addressing on OpenGL SPIR-VGravatar Liam2022-04-013-17/+14
| |
* | fix: typosGravatar Andrea Pappacoda2022-04-022-2/+2
|/
* Merge pull request #8095 from bylaws/masterGravatar Mai M2022-03-273-0/+4
|\ | | | | shader_recompiler: Include <bit> header when std::count{r,l}_zero is used
| * Include <bit> header when std::count{r,l}_zero is usedGravatar Billy Laws2022-03-223-0/+4
| | | | | | | | Needed for compilation with older libc++ releases
* | dead_code_elimination_pass: Remove unreachable Phi argumentsGravatar ameerj2022-03-233-0/+36
| |
* | shader_recompiler/dead_code_elimination: Add DeadBranchElimination passGravatar ameerj2022-03-221-9/+62
|/ | | | This adds a pass to eliminate if(false) branches within the shader code
* Merge pull request #8038 from liamwhite/exit-register-detectionGravatar Ameer J2022-03-212-0/+9
|\ | | | | shader_recompiler/EXIT: increment output register on failed enable test
| * Address review commentsGravatar Liam2022-03-181-1/+1
| |
| * shader_recompiler/EXIT: skip render targets with no outputsGravatar Liam2022-03-182-0/+8
| |
| * shader_recompiler/EXIT: increment output register on failed enable testGravatar Liam2022-03-171-0/+1
| |
* | general: Fix clang/gcc build errorsGravatar ameerj2022-03-201-0/+1
| |
* | shader_recompiler: Reduce unused includesGravatar ameerj2022-03-2069-106/+7
|/
* Address review commentsGravatar Liam2022-03-174-52/+36
|
* shader_recompiler: Use functions for indirect const buffer accessesGravatar Liam2022-03-175-39/+94
|
* Address review commentsGravatar Liam2022-03-171-16/+15
|
* shader_recompiler: Implement LDC.IS address modeGravatar Liam2022-03-161-2/+12
|
* shader: add support for const buffer indirect addressingGravatar Liam2022-03-142-18/+68
|
* Merge pull request #8008 from ameerj/rescale-offsets-arrayGravatar Fernando S2022-03-151-2/+27
|\ | | | | rescaling_pass: Fix rescaling Color2DArray ImageFetch offsets
| * rescaling_pass: Fix rescaling Color2DArray ImageFetch offsetsGravatar ameerj2022-03-121-2/+27
| | | | | | | | | | | | 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.
* | Shader decompiler: do constant propgation before texture pass.Gravatar Fernando Sahmkow2022-03-131-2/+2
| |
* | Shader decompiler: Fix storage tracking in deko3d.Gravatar Fernando Sahmkow2022-03-131-1/+2
| |
* | emit_spirv, vk_compute_pass: Resolve VS2022 compiler errorsGravatar ameerj2022-03-121-1/+1
|/
* shader_recompiler/LOP3: Use brute force python results within switch/case.Gravatar Markus Wick2022-03-082-52/+620
| | | | | | | | | | | | | | | | | | | | | 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
* emit_glsl_atomic: Implement 32x2 fallback atomic opsGravatar ameerj2022-01-291-9/+55
|
* lower_int64_to_int32: Add 64-bit atomic fallbacksGravatar ameerj2022-01-293-11/+76
|
* shaders: Add U64->U32x2 Atomic fallback functionsGravatar ameerj2022-01-299-1/+469
|
* spirv_atomic: Define U32x2 storage buffers for 64-bit storage atomicsGravatar ameerj2022-01-282-3/+3
| | | | | | 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
* Merge pull request #7786 from ameerj/vmnmx-selGravatar Morph2022-01-281-12/+6
|\ | | | | video_minimum_maximum: Implement src operand selectors
| * video_minimum_maximum: Implement src operand selectorsGravatar ameerj2022-01-271-12/+6
| | | | | | | | Used by Pokemon Legends: Arceus
* | emit_spirv: Add Xfb execution mode when transform feedback is usedGravatar ameerj2022-01-281-3/+9
|/ | | | Fixes Transform Feedback on Vulkan AMD drivers.
* shader_recompiler: Remove unnecessary [[nodiscard]]Gravatar Lioncash2022-01-251-2/+1
| | | | | Since ConvertLegacyToGeneric has a void return value, there's nothing that is actually returned by the function.
* shader_recompiler: fix potential OOB accessGravatar v19932022-01-172-6/+8
| | | | Found by static analysis with PVS-Studio. Original check wasn't actually checking for OOB and would segfault in case of it.
* logging/log.h: move enum class formatter to a separate file ...Gravatar liushuyu2022-01-093-7/+7
| | | | ... to common/logging/formatter.h
* logging: adapt to changes in fmt 8.1Gravatar liushuyu2022-01-082-6/+6
|
* glsl: Remove unreachable returnGravatar Narr the Reg2022-01-041-1/+0
|
* ShaderDecompiler: Add a debug option to dump the game's shaders.Gravatar Fernando Sahmkow2022-01-041-0/+2
|
* Merge pull request #7629 from ameerj/nv-driver-fixesGravatar Fernando S2022-01-0315-23/+125
|\ | | | | shaders: Add fixes for NVIDIA drivers 495+
| * glsl: Add boolean reference workaroundGravatar ameerj2021-12-293-2/+8
| |
| * glsl_context_get_set: Add alternative cbuf type for broken driversGravatar ameerj2021-12-293-17/+27
| | | | | | | | 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.
| * emit_glsl_integer: Use negation work aroundGravatar ameerj2021-12-291-2/+2
| |