Morph
9533365486
style: General style changes to match with the rest of the codebase
3 years ago
FengChen
b2a6dde438
video_code: support rectangle texture
3 years ago
Liam
709d7fd92c
GCC 12 fixes
3 years ago
Morph
99ceb03a1c
general: Convert source file copyright comments over to SPDX
...
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.
3 years ago
Liam
a45baa0e78
shader_recompiler: support const buffer indirect addressing on OpenGL SPIR-V
3 years ago
ameerj
67159e3be7
dead_code_elimination_pass: Remove unreachable Phi arguments
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
ameerj
574a2c4b77
shader_recompiler: Reduce unused includes
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
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
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
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
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
Fernando Sahmkow
6f98690963
ShaderCache: Better fix for Shuffling gl_FragCoord
3 years ago
FernandoS27
de1c8c5c2c
Texture Cahe/Shader decompiler: Resize PointSize on rescaling, refactor and make reaper more agressive on 4Gb GPUs.
3 years ago
ameerj
581ea90062
rescaling_pass: Fix IR errors when unscalable texture types are encountered
3 years ago
ameerj
99eec162da
rescaling_pass: Logic simplification and minor style cleanup
3 years ago
ameerj
276565973f
rescaling_pass: Scale ImageFetch offset if it exists
...
Plus some code deduplication
3 years ago
ameerj
dd66384451
rescaling_pass: Enable PatchImageQueryDimensions on fragment stages
3 years ago
ameerj
b027fac794
gl_texture_cache/rescaling_pass: minor cleanup
3 years ago
ameerj
edb5844240
rescaling_pass: Fix and simplify shuffle/fragcoord pass
3 years ago
Fernando Sahmkow
b3a9c8f108
Shader: Don't rescale FragCoord if used by Shuffle
3 years ago
Fernando Sahmkow
dfa8291526
RescalingPass: Agregate pixels on texelFetch while on Fragment Shader
3 years ago
Fernando Sahmkow
8f78444de3
shader: Fix TextureSize check on rescaling.
3 years ago
ReinUsesLisp
e66d5b88a6
shader: Properly scale image reads and add GL SPIR-V support
...
Thanks for everything!
3 years ago
ReinUsesLisp
fc9bb3c3fe
shader: Properly blacklist and scale image loads
3 years ago
ReinUsesLisp
01379c5e3c
shader/rescaling_pass: Patch more instructions
3 years ago
ReinUsesLisp
c15332c44f
shader: Add IsTextureScaled opcode
3 years ago
ReinUsesLisp
e580299467
shader: Fix rescaling pass
3 years ago
ReinUsesLisp
1672e9ba09
shader: Fix resolution scaling pass
3 years ago
Fernando Sahmkow
360e897ccd
ShaderDecompiler: Add initial support for rescaling.
3 years ago
Fernando Sahmkow
194579bc4f
ShaderCache: Fix Phi Nodes Type on OGL.
3 years ago
Fernando Sahmkow
c50ad56bf5
ShaderCache: Order Phi Arguments from farthest away to nearest.
3 years ago
Fernando Sahmkow
e5291e2031
TexturePass: Fix clamping of images as this allowed negative indices.
3 years ago
Fernando Sahmkow
3f4444b552
Shader Compiler: avoid overflowed indices on indixed samplers.
4 years ago
Morph
db07ca6c7f
Merge pull request #6767 from ReinUsesLisp/fold-float-pack
...
shader: Fold UnpackFloat2x16 and PackFloat2x16
4 years ago
bunnei
a98f14e9b0
Merge pull request #6722 from ReinUsesLisp/xmad-opts
...
shader: Fold integer FMA from Nvidia's pattern
4 years ago
ReinUsesLisp
8c9febe8f7
shader: Fold UnpackFloat2x16 and PackFloat2x16
...
Simplifies the code a bit when possible. These instructions should be
no-ops codegen wise.
4 years ago
ReinUsesLisp
1bb46b7d64
shader: Mark ConvertF16F32 and ConvertF32F16 as fp16 instructions
...
Fixes instances where fp16 types are not declared on SPIR-V but they are
used. This shouldn't happen on master, as it's been uncovered by an
additional optimization pass.
4 years ago
ReinUsesLisp
66a0cedba3
shader: Fold integer FMA from Nvidia's pattern
...
Fold shaders doing "a * b + c" on integers from the pattern generated by
Nvidia's GL compiler.
On a somewhat complex compute shader it reduces the code size by 16
instructions from 2 matches on Turing GPUs.
On Intel as extracted from KHR_pipeline_executable_properties:
Before the optimization:
```
Instruction Count: 2057
Basic Block Count: 45
Scratch Memory Size: 14752
Spill Count: 232
Fill Count: 261
SEND Count: 610
Cycle Count: 11325
```
After the optimization:
```
Instruction Count: 2046
Basic Block Count: 44
Scratch Memory Size: 13728
Spill Count: 219
Fill Count: 268
SEND Count: 604
Cycle Count: 11367
```
4 years ago
ReinUsesLisp
09fb41dc63
shader: Use TryInstRecursive on XMAD multiply folding
...
Simplify a bit the logic.
4 years ago
ReinUsesLisp
bf2956d77a
shader: Avoid usage of C++20 ranges to build in clang
4 years ago
lat9nq
49946cf780
shader_recompiler, video_core: Resolve clang errors
...
Silences the following warnings-turned-errors:
-Wsign-conversion
-Wunused-private-field
-Wbraced-scalar-init
-Wunused-variable
And some other errors
4 years ago
ameerj
41c6cb70f9
glsl: Fix tracking of info.uses_shadow_lod
4 years ago
ameerj
57f222c56e
dual_vertex_pass: Clang format
4 years ago