ameerj
63465c24e1
rescaling_pass: Logic simplification and minor style cleanup
5 years ago
Fernando Sahmkow
4535feac87
Shader: Don't rescale FragCoord if used by Shuffle
5 years ago
ReinUsesLisp
e63fc7a4bb
spirv: Implement rescaling patching
5 years ago
Fernando Sahmkow
c9bee9e96e
ShaderCache: Order Phi Arguments from farthest away to nearest.
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
Lioncash
9d5aa3d65a
control_flow: Fix duplicate switch case in OpcodeToken
This previously duplicated the case of the PBK case above it.
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
ffe72f8d37
shader: Implement ISETP.X
5 years ago
ReinUsesLisp
2321666580
shader: Avoid usage of C++20 ranges to build in clang
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
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
41b2a991c4
shader: Use std::bit_cast instead of Common::BitCast for passthrough
5 years ago
ReinUsesLisp
b1df436cef
shader: Rework varyings and implement passthrough geometry shaders
Put all varyings into a single std::bitset with helpers to access it.
Implement passthrough geometry shaders using host's.
5 years ago
ReinUsesLisp
6db3ba6542
shader: Only verify shader when graphics debugging is enabled
5 years ago
ReinUsesLisp
0a75c400e3
shader: Emulate 64-bit integers when not supported
Useful for mobile and Intel Xe devices.
5 years ago
ameerj
58a052072c
shader_recompiler: Fix IADD3 input partitioning
5 years ago
ReinUsesLisp
04c1dca457
shader: Move loop safety tests to code emission
5 years ago
ReinUsesLisp
d633ec4ecc
shader: Calibrate loop safety threshold
5 years ago
ReinUsesLisp
16d28031e7
shader: Simplify MergeDualVertexPrograms
5 years ago
ReinUsesLisp
c4a71824d5
shader: Properly manage attributes not written from previous stages
5 years ago
ReinUsesLisp
52be21495e
shader: Add support for native 16-bit floats
5 years ago
ReinUsesLisp
41c634a7a9
shader: Rename maxwell/program.h to translate_program.h
5 years ago
ReinUsesLisp
574a99b9b3
shader: Fix loop safety to SSA pass
5 years ago
ReinUsesLisp
f40daa777e
shader: Add logging
5 years ago
lat9nq
3a70b6c79b
shader: Add shader loop safety check settings
Also add a setting for enable Nsight Aftermath.
5 years ago
ReinUsesLisp
a56f9f4322
shader: Comment why the array component is not read in TMML
5 years ago
ameerj
4c1067ef1c
tmml: Remove index component from coords vec
The lod query functions exposed by the rendering API's do not make use of the texturearray layer indexing.
5 years ago
FernandoS27
be4d1c9b95
shader: Fix VertexA Shaders.
5 years ago
ReinUsesLisp
64dfb4220f
shader: Add 2D and 3D variants to SUATOM and SURED
Used by Claybook.
5 years ago
ReinUsesLisp
1dd4302fac
shader: Avoid CPU side undefined behavior on I2F
5 years ago
ReinUsesLisp
4744a21bd4
shader: Add support for "negative" and unaligned offsets
"Negative" offsets don't exist. They are shown as such due to a bug in
nvdisasm.
Unaligned offsets have been proved to read the aligned offset. For
example, when reading an U32, if the offset is 6, the offset read will
be 4.
5 years ago
ReinUsesLisp
e3aedea124
shader: Implement ISCADD32I
5 years ago
ReinUsesLisp
142d4f3f6e
shader: Always initialize up reference in structure control flow
Fixes ubsan issue.
5 years ago
ReinUsesLisp
6e475617d5
shader: Fix ImageWrite indexing
5 years ago
ReinUsesLisp
8ea552e64e
shader: Fix TMML queries
5 years ago
ReinUsesLisp
672930b6c8
shader: Handle host exceptions
5 years ago
ReinUsesLisp
5c6dc51c69
shader: Read branch conditions from an instruction
Fixes the identity removal pass.
5 years ago
ReinUsesLisp
0b3a3f35e8
glasm: Implement TEX and TEXS instructions
Remove lod clamp from texture instructions with lod, as this is not
needed (nor supported).
5 years ago
lat9nq
69210028b4
shader_recompiler: GCC fixes
Fixes members of unnamed union not being accessible, and one function
without a declaration.
5 years ago
ReinUsesLisp
f2ae32fa76
glasm: Initial implementation of phi nodes on GLASM
5 years ago
ReinUsesLisp
03f6d424ce
glasm: Rework control flow introducing a syntax list
This commit regresses VertexA shaders, their transformation pass has to
be adapted to the new control flow.
5 years ago
ReinUsesLisp
cef625a9b2
shader: Add floating-point rounding to I2F
5 years ago
ameerj
a739b6933e
shader: ISET.X implementation
5 years ago
FernandoS27
007a11014c
shader: Optimize NVN Fallthrough
5 years ago
FernandoS27
fb20effc51
shader: Stub SR_AFFINITY
5 years ago