Commit Graph

331 Commits

Author SHA1 Message Date
2a71333716 glsl: Fix bindings, add some CC ops 2021-07-22 21:51:36 -04:00
6674637853 glsl: remove unused headers 2021-07-22 21:51:36 -04:00
a752ec88d0 glsl: Implement derivatives and YDirection
plus some other misc additions/changed
2021-07-22 21:51:36 -04:00
ed14d31f66 glsl: Fix non-immediate buffer access
and many other misc implementations
2021-07-22 21:51:36 -04:00
d171083d53 glsl: textures wip 2021-07-22 21:51:36 -04:00
3d086e6130 glsl: Implement some attribute getters and setters 2021-07-22 21:51:36 -04:00
5399906c26 glsl: Track S32 atomics 2021-07-22 21:51:36 -04:00
b95716e543 glsl: Update phi node management 2021-07-22 21:51:36 -04:00
67f881e714 glsl: Fix floating point compare ops
Logic for ordered/unordered ops was wrong.
2021-07-22 21:51:36 -04:00
bd24fa9713 glsl: Query GL Device for FP16 extension support 2021-07-22 21:51:36 -04:00
3482df1176 glsl: Simply FP storage atomics 2021-07-22 21:51:36 -04:00
9cc1b8a873 glsl: F16x2 storage atomics 2021-07-22 21:51:36 -04:00
11ba190462 glsl: Revert ssbo aliasing. Storage Atomics impl 2021-07-22 21:51:36 -04:00
e99d01ff53 glsl: implement phi nodes 2021-07-22 21:51:36 -04:00
3d9ecbe998 glsl: Wip storage atomic ops 2021-07-22 21:51:36 -04:00
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
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
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
79f2fe1a39 glasm: Use ARB_derivative_control conditionally 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
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
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
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
b6c087496b glasm: Reduce reg allocation leaks from an exception to a log 2021-07-22 21:51:34 -04:00
83db7abae6 glasm: Use integer lod for TXQ 2021-07-22 21:51:33 -04:00
e240a62017 glasm: Fix global memory fallbacks 2021-07-22 21:51:33 -04:00
8f3043c3cf Revert "glasm: Skip phi moves on undefined instructions"
Causes regressions on Bowser's Fury.
2021-07-22 21:51:33 -04:00
2aa30353b7 glasm: Remove unintentional '\n' on Undef32 2021-07-22 21:51:33 -04:00