df793fc049
glsl: Implement FCMP
2021-07-22 21:51:36 -04:00
cdde730219
glsl: Add a more robust fp formatter
2021-07-22 21:51:36 -04:00
ac7b0ebcb7
glsl: More FP fixes
2021-07-22 21:51:36 -04:00
3064bde415
glsl: FP function fixes
2021-07-22 21:51:36 -04:00
65c6f73e43
glsl: More FP instructions/fixes
2021-07-22 21:51:36 -04:00
5e9095ef22
glsl: Add many FP32/64 instructions
2021-07-22 21:51:36 -04:00
ef7bd53f18
glsl: Implement more Integer ops
2021-07-22 21:51:36 -04:00
266a3d60e3
glsl: Implement BF*
2021-07-22 21:51:36 -04:00
0f40b0e61c
glsl: Implement a few Integer instructions
2021-07-22 21:51:36 -04:00
fb75d122a2
glsl: Use std::string_view for Emit function args.
2021-07-22 21:51:35 -04:00
115c162b9a
glsl: Pass IR::Inst& to Emit functions
2021-07-22 21:51:35 -04:00
78f5eb90d7
glsl: INeg and IAdd negate tests
2021-07-22 21:51:35 -04:00
e221baccdd
glsl: Reusable typed variables. IADD32
2021-07-22 21:51:35 -04:00
faf4cd72c5
glsl: Fix program linking and cbuf
2021-07-22 21:51:35 -04:00
64337f004d
glsl: Fix "reg" allocing
...
based on glasm with some tweaks
2021-07-22 21:51:35 -04:00
eaff1030de
glsl: Initial backend
2021-07-22 21:51:35 -04:00
3d822faea1
spirv: Reduce log severity of mismatching denorm rules
2021-07-22 21:51:35 -04:00
7ac55c2a75
shader: Fix loop safety to SSA pass
2021-07-22 21:51:35 -04:00
61cd7dd301
shader: Add logging
2021-07-22 21:51:35 -04:00
373f75d944
shader: Add shader loop safety check settings
...
Also add a setting for enable Nsight Aftermath.
2021-07-22 21:51:35 -04:00
487057b8d2
shader: Comment why the array component is not read in TMML
2021-07-22 21:51:35 -04:00
3c125d4134
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.
2021-07-22 21:51:35 -04:00
d52bacf6f0
spirv/convert: Catch more signed operations oversights
...
The sign bit on integers of size < 32 was not properly preserved in casts
2021-07-22 21:51:35 -04:00
8554a644df
spirv/convert: Catch more broken signed operations on Nvidia OpenGL
...
BitCast U32 to S32 before converting to float on drivers with broken
signed operations.
2021-07-22 21:51:35 -04:00
15bdd27cac
shader_environment: Add shader_local_memory_crs_size to local memory size
...
Fixes DOOM 2016 missing local memory
2021-07-22 21:51:35 -04:00
562af30181
shader: Fix VertexA Shaders.
2021-07-22 21:51:34 -04:00
ec9a78885e
shader: Add 2D and 3D variants to SUATOM and SURED
...
Used by Claybook.
2021-07-22 21:51:34 -04:00
4f8b68fb04
shader: Avoid CPU side undefined behavior on I2F
2021-07-22 21:51:34 -04:00
79f2fe1a39
glasm: Use ARB_derivative_control conditionally
2021-07-22 21:51:34 -04:00
4a2361a1e2
buffer_cache: Reduce uniform buffer size from shader usage
...
Increases performance significantly on certain titles.
2021-07-22 21:51:34 -04:00
22f0c4f002
emit_glasm_context_get_set: Remove unused variable
2021-07-22 21:51:34 -04:00
5539b13c5a
shader,glasm: Implement legacy texcoord loads
2021-07-22 21:51:34 -04:00
cf9f88e5a7
glasm: Implement legacy varyings
2021-07-22 21:51:34 -04:00
ac0f5d2ab6
shader: Track legacy varyings
2021-07-22 21:51:34 -04:00
05d41fa9b7
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.
2021-07-22 21:51:34 -04:00
5d170de0b5
shader: Implement ISCADD32I
2021-07-22 21:51:34 -04:00
adc43297c5
spirv: Fix output generics with components
2021-07-22 21:51:34 -04:00
916ca74324
opengl: Declare fragment outputs even if they are not used
...
Fixes Ori and the Blind Forest's menu on GLASM. For some reason
(probably high level optimizations) it is not sanitized on SPIR-V for
OpenGL. Vulkan is unaffected by this change.
2021-07-22 21:51:34 -04:00
329dea217d
shader: Always initialize up reference in structure control flow
...
Fixes ubsan issue.
2021-07-22 21:51:34 -04:00
d093522fac
shader: Fix ImageWrite indexing
2021-07-22 21:51:34 -04:00
d738ad4d0b
spirv: Fix image and image buffer descriptor index usage
2021-07-22 21:51:34 -04:00
eb8464cb3d
glasm: Fix immediate texture coordinate
2021-07-22 21:51:34 -04:00
457dda69cc
shader: Clang-format secondary textures
2021-07-22 21:51:34 -04:00
627161c38e
shader: Fix secondary textures
2021-07-22 21:51:34 -04:00
b659212dbd
shader: Fix TMML queries
2021-07-22 21:51:34 -04:00
fbf5cdcba0
shader: Fix FSwizzleAdd folding when going through phi nodes
2021-07-22 21:51:34 -04:00
871c9f1ced
shader/exception: Fix compilation errors on gcc
2021-07-22 21:51:34 -04:00
b6c087496b
glasm: Reduce reg allocation leaks from an exception to a log
2021-07-22 21:51:34 -04:00
b7764c3a79
shader: Handle host exceptions
2021-07-22 21:51:34 -04:00
83db7abae6
glasm: Use integer lod for TXQ
2021-07-22 21:51:33 -04:00