ReinUsesLisp
14fb648246
shader: Fix resolution scaling pass
5 years ago
ReinUsesLisp
47d1d881cf
shader: Add resolution down factor opcode
5 years ago
Fernando Sahmkow
a638ce0388
ShaderDecompiler: Add initial support for rescaling.
5 years ago
Feng Chen
c047b66519
Simply legacy attribute implement
4 years ago
Fernando Sahmkow
a354c3ae82
Shader Cahe: Fix Phi Nodes on GLASM.
4 years ago
Fernando Sahmkow
6f94c9a9fe
ShaderCache: Fix Phi Nodes Type on OGL.
4 years ago
Fernando Sahmkow
c9bee9e96e
ShaderCache: Order Phi Arguments from farthest away to nearest.
4 years ago
vonchenplus
64a9dffd3d
Support gl_FogFragCoord attribute
4 years ago
vonchenplus
1c917c6905
Support gl_BackSecondaryColor attribute
4 years ago
vonchenplus
9cd198ede9
Support gl_FrontSecondaryColor attribute
4 years ago
vonchenplus
b4301281d5
Support gl_BackColor attribute
4 years ago
Fernando Sahmkow
6e19b9f5ff
TexturePass: Fix clamping of images as this allowed negative indices.
4 years ago
ameerj
f69d094b14
emit_spirv_image: Fix depth image implicit lod sample in compute
Ensures all drivers behave the same way in this case.
4 years ago
Fernando Sahmkow
1a0006ef55
Shader Compiler: avoid overflowed indices on indixed samplers.
4 years ago
Morph
203d8f7f60
style: Remove extra space preceding the :: operator
4 years ago
ameerj
d7977be416
general: Update style to clang-format-12
4 years ago
Fernando Sahmkow
0bd7c14e04
Spir-V: Rescale the frag depth to 0,1 mode when -1,1 mode is used in Vulkan.
4 years ago
Feng Chen
63aba30181
Detail adjustment
4 years ago
Feng Chen
38b28f1c4d
Detail adjustment
4 years ago
Feng Chen
3948edde71
Re-implement get unused location
4 years ago
Feng Chen
bd94ea2f5a
Move attribute related definitions to spirv anonymous namespace
4 years ago
Feng Chen
dc8967ebcd
Dynamic get unused location
4 years ago
Feng Chen
1aaa6a353b
Implement intput and output fixed fnc textures
5 years ago
Feng Chen
49c66fa4e9
Rename parameters
5 years ago
Feng Chen
b3e5a2f75d
Fix create GraphicsPipelines crash
5 years ago
Feng Chen
a1c9039eae
Add input/output location
5 years ago
ameerj
668d936dd2
emit_glsl_warp: Fix shuffle ops for 64-thread warp sizes
5 years ago
ameerj
9302524b8c
emit_glsl_warp: Fix ballot related ops for 64-thread warp sizes
5 years ago
ameerj
c7568d61d2
emit_spirv_warp: Fix shuffle ops for 64-thread warp sizes
5 years ago
ameerj
1bb5fb7e26
emit_spirv_warp: Fix ballot related ops for 64-thread warp sizes
5 years ago
Feng Chen
b86a4caa20
Add colorfront and txtcoord support
5 years ago
ameerj
8485bb3dcb
structured_control_flow: Skip reordering nested demote branches.
Nested demote branches add complexity with combining the condition if it has not been initialized yet. Skip them for the time being.
5 years ago
ameerj
e9a8e011f6
structured_control_flow: Conditionally invoke demote reorder pass
This is only needed on select drivers when a fragment shader discards/demotes.
5 years ago
ameerj
8c687b3a91
structured_control_flow: Add DemoteCombinationPass
Some drivers misread data when demotes are interleaved in the program. This moves demote branches to be checked at the end of the program.
Fixes "wireframe" issue in Pokemon SwSh on some drivers
5 years ago
ameerj
9b41b19766
emit_spirv_context_get_set: Fix Get FrontFace return value
The IR expects GetAttribute to return an F32 value. This case was returning a U32 instead.
5 years ago
Valeri
1510efac15
SPIR-V: Merge two ifs in EmitGetAttribute
5 years ago
ReinUsesLisp
ecc05bdcb6
shader: Fold UnpackFloat2x16 and PackFloat2x16
Simplifies the code a bit when possible. These instructions should be
no-ops codegen wise.
5 years ago
ReinUsesLisp
d84b81fdfb
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.
5 years ago
Lioncash
b5ce444508
exception: Make constructors explicit
Ensures that exception construction is always explicit.
5 years ago
Lioncash
b650c38a31
exception: Make what() member function nodiscard
5 years ago
Lioncash
d04bbd8207
exception: Narrow down specific header
We can use the <exception> header instead of pulling in all of the
exception-style classes.
5 years ago
Lioncash
00bd622334
emit_glasm: Fix LINESS_ADJACENCY typo in InputPrimitive()
This should be LINES_ADJACENCY
5 years ago
Lioncash
0692818106
emit_spirv_instructions: Add missing header guard
5 years ago
Lioncash
05201f4f88
shader_recompiler: Remove unnecessary [[nodiscard]] instances
[[nodiscard]] doesn't do anything on functions with a void return type
and causes superfluous warnings.
5 years ago
Lioncash
9d5aa3d65a
control_flow: Fix duplicate switch case in OpcodeToken
This previously duplicated the case of the PBK case above it.
5 years ago
Lioncash
23da07e8e5
object_pool: Add missing return in Chunk move assignment operator
Prevents undefined behavior from occurring.
5 years ago
ReinUsesLisp
4f19303fe0
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
```
5 years ago
ReinUsesLisp
c6e1483e17
shader: Use TryInstRecursive on XMAD multiply folding
Simplify a bit the logic.
5 years ago
ReinUsesLisp
222a6542ab
shader: Add TryInstRecursive utility to values
5 years ago
ReinUsesLisp
ba89444667
shader: Support out of bound local memory reads and immediate writes
Support ignoring immediate out of bound writes. Writing dynamically out
of bounds is not yet supported (e.g. R0+0x4).
Reading out of bounds yields zero. This is supported checking for the
size from the IR; if the input is immediate, the optimization passes
will drop it.
5 years ago