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
d04e2dac6c
shader: Properly scale image reads and add GL SPIR-V support
Thanks for everything!
5 years ago
ReinUsesLisp
e63fc7a4bb
spirv: Implement rescaling patching
5 years ago
ReinUsesLisp
7f88938d72
shader: Add IsTextureScaled opcode
5 years ago
ReinUsesLisp
50d20bf0e9
shader: Add copy constructor to instructions
5 years ago
ReinUsesLisp
8cfa8cda16
shader: Add integer division opcodes
5 years ago
ReinUsesLisp
47d1d881cf
shader: Add resolution down factor opcode
5 years ago
Fernando Sahmkow
6f94c9a9fe
ShaderCache: Fix Phi Nodes Type on OGL.
5 years ago
Fernando Sahmkow
c9bee9e96e
ShaderCache: Order Phi Arguments from farthest away to nearest.
5 years ago
Feng Chen
bd94ea2f5a
Move attribute related definitions to spirv anonymous namespace
5 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
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
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
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
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
ameerj
508e41777b
shader: Ignore global memory ops on devices lacking int64 support
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
ReinUsesLisp
f158fe9359
shader: Remove IAbs64
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