summaryrefslogtreecommitdiff
path: root/src/shader_recompiler (follow)
Commit message (Collapse)AuthorAgeFilesLines
* 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
| |
| * shader: Add integer attribute get optimization passGravatar ameerj2021-12-299-0/+86
| | | | | | | | Works around an nvidia driver bug, where casting the integer attributes to float and back to an integer always returned 0.
| * emit_glsl_floating_point: Fix FPNeg on newer Nvidia driversGravatar ameerj2021-12-241-2/+2
| |
* | Merge pull request #7618 from goldenx86/patch-4Gravatar bunnei2021-12-281-0/+9
|\ \ | | | | | | Increase boost requirement to 1.78.0
| * | Empty spacesGravatar Matías Locatti2021-12-281-1/+1
| | |
| * | Changes to avoid warnings in SSE4.2 optimized SPIR-VGravatar Matías Locatti2021-12-281-0/+9
| |/
* / emit_glasm_context_get_set: Fix GetAttribute return value type.Gravatar ameerj2021-12-241-4/+4
|/ | | | GetAttribute expects an F32 result type at the IR level, this fixes the return value of attributes which were not returning an F32
* Address format clangGravatar vonchenplus2021-12-181-36/+36
|