Fernando S
4d5900aaa1
Merge pull request #8133 from liamwhite/gl-spv-cbuf
...
shader_recompiler: support const buffer indirect addressing on OpenGL
3 years ago
Liam
1ab771c3ad
shader_recompiler: Decrease indirect cbuf limit to match hardware
3 years ago
Andrea Pappacoda
0c214cb5b9
fix: typos
3 years ago
Liam
7d5a38ea6c
shader_compiler: support const buffer indirect addressing in GLSL
3 years ago
Liam
a45baa0e78
shader_recompiler: support const buffer indirect addressing on OpenGL SPIR-V
3 years ago
Mai M
7382e7a5c8
Merge pull request #8095 from bylaws/master
...
shader_recompiler: Include <bit> header when std::count{r,l}_zero is used
3 years ago
ameerj
67159e3be7
dead_code_elimination_pass: Remove unreachable Phi arguments
3 years ago
Billy Laws
dd862dff66
Include <bit> header when std::count{r,l}_zero is used
...
Needed for compilation with older libc++ releases
3 years ago
ameerj
f10d40a0a2
shader_recompiler/dead_code_elimination: Add DeadBranchElimination pass
...
This adds a pass to eliminate if(false) branches within the shader code
3 years ago
Ameer J
75046a3351
Merge pull request #8038 from liamwhite/exit-register-detection
...
shader_recompiler/EXIT: increment output register on failed enable test
3 years ago
ameerj
866b7c20a8
general: Fix clang/gcc build errors
3 years ago
ameerj
574a2c4b77
shader_recompiler: Reduce unused includes
3 years ago
Liam
536d7ed7b1
Address review comments
3 years ago
Liam
d400b618a7
shader_recompiler/EXIT: skip render targets with no outputs
3 years ago
Liam
6fa17f3372
shader_recompiler/EXIT: increment output register on failed enable test
3 years ago
Liam
3009d0bd7d
Address review comments
3 years ago
Liam
e228a40db8
shader_recompiler: Use functions for indirect const buffer accesses
3 years ago
Liam
3ac522ba41
Address review comments
3 years ago
Liam
1415542f73
shader_recompiler: Implement LDC.IS address mode
3 years ago
Liam
52895fab67
shader: add support for const buffer indirect addressing
3 years ago
Fernando S
cd07a43724
Merge pull request #8008 from ameerj/rescale-offsets-array
...
rescaling_pass: Fix rescaling Color2DArray ImageFetch offsets
3 years ago
Fernando Sahmkow
185fc03c3c
Shader decompiler: do constant propgation before texture pass.
3 years ago
Fernando Sahmkow
ec9f0f064e
Shader decompiler: Fix storage tracking in deko3d.
3 years ago
ameerj
f87f8d4610
rescaling_pass: Fix rescaling Color2DArray ImageFetch offsets
...
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.
3 years ago
ameerj
e8c50e709e
emit_spirv, vk_compute_pass: Resolve VS2022 compiler errors
3 years ago
Markus Wick
c78c8190d5
shader_recompiler/LOP3: Use brute force python results within switch/case.
...
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
3 years ago
ameerj
e394e1ecc4
emit_glsl_atomic: Implement 32x2 fallback atomic ops
3 years ago
ameerj
90a0506d56
lower_int64_to_int32: Add 64-bit atomic fallbacks
3 years ago
ameerj
ad58d7eae7
shaders: Add U64->U32x2 Atomic fallback functions
3 years ago
ameerj
4790ba7839
spirv_atomic: Define U32x2 storage buffers for 64-bit storage atomics
...
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
3 years ago
Morph
8dea7fa129
Merge pull request #7786 from ameerj/vmnmx-sel
...
video_minimum_maximum: Implement src operand selectors
3 years ago
ameerj
beaf7654bb
emit_spirv: Add Xfb execution mode when transform feedback is used
...
Fixes Transform Feedback on Vulkan AMD drivers.
3 years ago
ameerj
74e6e3623f
video_minimum_maximum: Implement src operand selectors
...
Used by Pokemon Legends: Arceus
3 years ago
Lioncash
b46ec4efea
shader_recompiler: Remove unnecessary [[nodiscard]]
...
Since ConvertLegacyToGeneric has a void return value, there's nothing
that is actually returned by the function.
3 years ago
v1993
a943600019
shader_recompiler: fix potential OOB access
...
Found by static analysis with PVS-Studio. Original check wasn't actually checking for OOB and would segfault in case of it.
3 years ago
liushuyu
09f4f3f23b
logging/log.h: move enum class formatter to a separate file ...
...
... to common/logging/formatter.h
3 years ago
liushuyu
42f653ab6f
logging: adapt to changes in fmt 8.1
3 years ago
Narr the Reg
524674aafc
glsl: Remove unreachable return
3 years ago
Fernando Sahmkow
f58ee3f15f
ShaderDecompiler: Add a debug option to dump the game's shaders.
3 years ago
Fernando S
ae7da0b12d
Merge pull request #7629 from ameerj/nv-driver-fixes
...
shaders: Add fixes for NVIDIA drivers 495+
3 years ago
ameerj
8c907c620d
glsl: Add boolean reference workaround
3 years ago
ameerj
b84d429c2e
glsl_context_get_set: Add alternative cbuf type for broken drivers
...
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.
3 years ago
ameerj
9f34be5a61
emit_glsl_integer: Use negation work around
3 years ago
ameerj
14ac0c2923
shader: Add integer attribute get optimization pass
...
Works around an nvidia driver bug, where casting the integer attributes to float and back to an integer always returned 0.
3 years ago
bunnei
279c7bcc1a
Merge pull request #7618 from goldenx86/patch-4
...
Increase boost requirement to 1.78.0
3 years ago
Matías Locatti
c7235e67ef
Empty spaces
3 years ago
Matías Locatti
840d5520d2
Changes to avoid warnings in SSE4.2 optimized SPIR-V
3 years ago
ameerj
37addf7a94
emit_glasm_context_get_set: Fix GetAttribute return value type.
...
GetAttribute expects an F32 result type at the IR level, this fixes the return value of attributes which were not returning an F32
3 years ago
ameerj
640fc1418b
emit_glsl_floating_point: Fix FPNeg on newer Nvidia drivers
3 years ago
vonchenplus
4908a07c20
Address format clang
3 years ago