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
4 years ago
Feng Chen
49c66fa4e9
Rename parameters
4 years ago
Feng Chen
b3e5a2f75d
Fix create GraphicsPipelines crash
4 years ago
Feng Chen
a1c9039eae
Add input/output location
4 years ago
ameerj
668d936dd2
emit_glsl_warp: Fix shuffle ops for 64-thread warp sizes
4 years ago
ameerj
9302524b8c
emit_glsl_warp: Fix ballot related ops for 64-thread warp sizes
4 years ago
ameerj
c7568d61d2
emit_spirv_warp: Fix shuffle ops for 64-thread warp sizes
4 years ago
ameerj
1bb5fb7e26
emit_spirv_warp: Fix ballot related ops for 64-thread warp sizes
4 years ago
Feng Chen
b86a4caa20
Add colorfront and txtcoord support
4 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.
4 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.
4 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
4 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.
4 years ago
Valeri
1510efac15
SPIR-V: Merge two ifs in EmitGetAttribute
4 years ago
ReinUsesLisp
ecc05bdcb6
shader: Fold UnpackFloat2x16 and PackFloat2x16
Simplifies the code a bit when possible. These instructions should be
no-ops codegen wise.
4 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
ameerj
3927809a63
shader: Fix disabled attribute default values
5 years ago
ameerj
e6d3a301f2
glsl: Simplify FCMP emission
5 years ago
ameerj
4f3e869dd0
glsl: Update TessellationControl gl_in
Adheres to GL_ARB_separate_shader_objects requirements
5 years ago
ameerj
ffe72f8d37
shader: Implement ISETP.X
5 years ago
ReinUsesLisp
2321666580
shader: Avoid usage of C++20 ranges to build in clang
5 years ago
ameerj
a23f05c215
glsl: Clamp shared mem size to GL_MAX_COMPUTE_SHARED_MEMORY_SIZE
5 years ago
lat9nq
b557314001
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
5 years ago
ReinUsesLisp
cdb3837085
shader: Manually convert from array<u32> to bitset instead of using bit_cast
5 years ago
ameerj
f2f16e3a1d
glsl: Fix tracking of info.uses_shadow_lod
5 years ago
ameerj
508e41777b
shader: Ignore global memory ops on devices lacking int64 support
5 years ago
ameerj
d54c4880d1
dual_vertex_pass: Clang format
5 years ago
ReinUsesLisp
ff35ef8ec1
emit_spirv: Workaround VK_KHR_shader_float_controls on fp16 Nvidia
Fix regression on Fire Emblem: Three Houses when using native fp16.
5 years ago
lat9nq
c969f6e678
shader: GCC fmt 8.0.0 fixes
5 years ago
ameerj
79e317ad7d
shader: Account for 33-bit IADD3 scenario
5 years ago
ReinUsesLisp
611797a7c6
shader: Only apply shift on register mode for IADD3
5 years ago
ReinUsesLisp
b48b4b0600
shader: Fix disabled and unwritten attributes and varyings
5 years ago
ameerj
d77dc5919c
glsl: Fix shared and local memory declarations
account for the fact that program.*memory_size is in units of bytes.
5 years ago
ameerj
33d21ac2db
opengl: Implement LOP.CC
Used by MH:Rise
5 years ago