Feng Chen
f2a4204245
Simply legacy attribute implement
4 years ago
Fernando Sahmkow
2d4bbd83e6
Shader Cahe: Fix Phi Nodes on GLASM.
4 years ago
Fernando Sahmkow
194579bc4f
ShaderCache: Fix Phi Nodes Type on OGL.
4 years ago
Fernando Sahmkow
c50ad56bf5
ShaderCache: Order Phi Arguments from farthest away to nearest.
4 years ago
vonchenplus
49f9a44235
Support gl_FogFragCoord attribute
4 years ago
vonchenplus
36c21ff6cb
Support gl_BackSecondaryColor attribute
4 years ago
vonchenplus
92bebecf46
Support gl_FrontSecondaryColor attribute
4 years ago
vonchenplus
b04c7b6343
Support gl_BackColor attribute
4 years ago
Fernando Sahmkow
e5291e2031
TexturePass: Fix clamping of images as this allowed negative indices.
4 years ago
ameerj
06894b0711
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
3f4444b552
Shader Compiler: avoid overflowed indices on indixed samplers.
4 years ago
Morph
e29f3b87f1
style: Remove extra space preceding the :: operator
4 years ago
ameerj
73666fb262
general: Update style to clang-format-12
4 years ago
Fernando Sahmkow
8984abfc76
Spir-V: Rescale the frag depth to 0,1 mode when -1,1 mode is used in Vulkan.
5 years ago
Feng Chen
b1e655f898
Detail adjustment
5 years ago
Feng Chen
bbc1800c1b
Detail adjustment
5 years ago
Feng Chen
e5ca733722
Re-implement get unused location
5 years ago
Feng Chen
9cdf2383e9
Move attribute related definitions to spirv anonymous namespace
5 years ago
Feng Chen
1de9e4e121
Dynamic get unused location
5 years ago
Feng Chen
d994466a08
Implement intput and output fixed fnc textures
5 years ago
Feng Chen
a7bbaa4897
Rename parameters
5 years ago
Feng Chen
cf26f375ff
Fix create GraphicsPipelines crash
5 years ago
Feng Chen
1e2a89d306
Add input/output location
5 years ago
ameerj
d956fb3c7c
emit_glsl_warp: Fix shuffle ops for 64-thread warp sizes
5 years ago
ameerj
5b45dfe971
emit_glsl_warp: Fix ballot related ops for 64-thread warp sizes
5 years ago
ameerj
a5d9dcf3d9
emit_spirv_warp: Fix shuffle ops for 64-thread warp sizes
5 years ago
ameerj
95213270ef
emit_spirv_warp: Fix ballot related ops for 64-thread warp sizes
5 years ago
Feng Chen
73b11f390e
Add colorfront and txtcoord support
5 years ago
ameerj
907dfbea71
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
4fda7f1c82
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
862dc2b2b3
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
6e407c02d8
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
beb7305b73
SPIR-V: Merge two ifs in EmitGetAttribute
5 years ago
ReinUsesLisp
8c9febe8f7
shader: Fold UnpackFloat2x16 and PackFloat2x16
Simplifies the code a bit when possible. These instructions should be
no-ops codegen wise.
5 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.
5 years ago
Lioncash
c27ddb44de
exception: Make constructors explicit
Ensures that exception construction is always explicit.
5 years ago
Lioncash
e490ddf327
exception: Make what() member function nodiscard
5 years ago
Lioncash
90f3678ada
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
3e7813e49d
emit_glasm: Fix LINESS_ADJACENCY typo in InputPrimitive()
This should be LINES_ADJACENCY
5 years ago
Lioncash
c2915d9f2f
emit_spirv_instructions: Add missing header guard
5 years ago
Lioncash
06ca911621
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
0b67df1f7c
control_flow: Fix duplicate switch case in OpcodeToken
This previously duplicated the case of the PBK case above it.
5 years ago
Lioncash
89ad9df0e9
object_pool: Add missing return in Chunk move assignment operator
Prevents undefined behavior from occurring.
5 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
```
5 years ago
ReinUsesLisp
09fb41dc63
shader: Use TryInstRecursive on XMAD multiply folding
Simplify a bit the logic.
5 years ago
ReinUsesLisp
f6f0383b49
shader: Add TryInstRecursive utility to values
5 years ago
ReinUsesLisp
7f13104c17
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
ameerj
56478bc9ac
shader: Fix disabled attribute default values
5 years ago
ameerj
56c30dd9e0
glsl: Simplify FCMP emission
5 years ago
ameerj
79d2684261
glsl: Update TessellationControl gl_in
Adheres to GL_ARB_separate_shader_objects requirements
5 years ago