c9a25855bc
shader_recompiler: GCC fixes
2021-07-22 21:51:36 -04:00
7619b7d427
glsl: Implement TEX depth functions
2021-07-22 21:51:36 -04:00
55e0211a5e
glsl: Implement TEX ImageSample functions
2021-07-22 21:51:36 -04:00
b98de76ea8
glsl: Rework Shuffle emit instructions to align with SPIR-V
2021-07-22 21:51:36 -04:00
8ba814efb2
glsl: Better Storage access and wip warps
2021-07-22 21:51:36 -04:00
86d4a05cec
glsl: Fix integer conversions, implement clamp CC
2021-07-22 21:51:36 -04:00
21797efa54
glsl: Implement IADD CC
2021-07-22 21:51:36 -04:00
453cd25da5
glsl: SSBO access fixes and wip SampleExplicitLod implementation.
2021-07-22 21:51:36 -04:00
f6bbc76336
glsl: WIP var forward declaration
...
to fix Loop control flow.
2021-07-22 21:51:36 -04:00
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