ReinUsesLisp
d093522fac
shader: Fix ImageWrite indexing
2021-07-22 21:51:34 -04:00
ReinUsesLisp
b659212dbd
shader: Fix TMML queries
2021-07-22 21:51:34 -04:00
ReinUsesLisp
b7764c3a79
shader: Handle host exceptions
2021-07-22 21:51:34 -04:00
ReinUsesLisp
9bb3e008c9
shader: Read branch conditions from an instruction
...
Fixes the identity removal pass.
2021-07-22 21:51:32 -04:00
ReinUsesLisp
ec6fc5fe78
glasm: Implement TEX and TEXS instructions
...
Remove lod clamp from texture instructions with lod, as this is not
needed (nor supported).
2021-07-22 21:51:31 -04:00
lat9nq
f7a2340205
shader_recompiler: GCC fixes
...
Fixes members of unnamed union not being accessible, and one function
without a declaration.
2021-07-22 21:51:31 -04:00
ReinUsesLisp
bf5e48ffe4
glasm: Initial implementation of phi nodes on GLASM
2021-07-22 21:51:31 -04:00
ReinUsesLisp
d54d7de40e
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.
2021-07-22 21:51:31 -04:00
ReinUsesLisp
3b6a632237
shader: Add floating-point rounding to I2F
2021-07-22 21:51:31 -04:00
ameerj
09dc23f971
shader: ISET.X implementation
2021-07-22 21:51:30 -04:00
FernandoS27
ee61ec2c39
shader: Optimize NVN Fallthrough
2021-07-22 21:51:30 -04:00
FernandoS27
153a77efee
shader: Stub SR_AFFINITY
2021-07-22 21:51:30 -04:00
ameerj
7ecc6de56a
shader: Implement Int32 SUATOM/SURED
2021-07-22 21:51:30 -04:00
ReinUsesLisp
d621e96d0d
shader: Initial OpenGL implementation
2021-07-22 21:51:30 -04:00
FernandoS27
c49d56c931
shader: Address feedback
2021-07-22 21:51:29 -04:00
FernandoS27
b541f5e5e3
shader: Implement VertexA stage
2021-07-22 21:51:29 -04:00
FernandoS27
da936d6ad8
shader: Implement delegation of Exit to dispatcher on CFG
2021-07-22 21:51:29 -04:00
ameerj
fb14820c86
shader: Fix IADD3.CC
2021-07-22 21:51:29 -04:00
ReinUsesLisp
d2b54c6e42
shader: Fix VMNMX selector B
2021-07-22 21:51:29 -04:00
ReinUsesLisp
fe25f42403
shader: Remove identity removal pass for better build times
2021-07-22 21:51:29 -04:00
ameerj
7a9dc78398
shader: Refactor atomic_operations_global_memory
2021-07-22 21:51:28 -04:00
ameerj
427951d6fe
shader: add missing include guard in half_floating_point_helper.h
2021-07-22 21:51:28 -04:00
ReinUsesLisp
c8f9772d65
shader: Fix gcc warnings
2021-07-22 21:51:28 -04:00
ReinUsesLisp
cc0fcd1b8d
shader: Improve goto removal algorithm complexity
...
Find sibling node containing a nephew searching from the nephew itself
instead of the uncle.
2021-07-22 21:51:28 -04:00
ReinUsesLisp
050e81500c
shader: Move microinstruction header to the value header
2021-07-22 21:51:28 -04:00
ReinUsesLisp
e4d1122082
shader: Move siblings check to a separate function and comment them out
2021-07-22 21:51:28 -04:00
ReinUsesLisp
469f8bb857
shader: Simplify code for local memory
2021-07-22 21:51:28 -04:00
ReinUsesLisp
7018e524f5
shader: Add NVN storage buffer fallbacks
...
When we can't track the SSBO origin of a global memory instruction,
leave it as a global memory operation and assume these pointers are in
the NVN storage buffer slots, then apply a linear search in the shader's
runtime.
2021-07-22 21:51:28 -04:00
FernandoS27
2999028976
shader: Address feedback
2021-07-22 21:51:28 -04:00
FernandoS27
881b33da3b
shader: Implement F2F (Imm)
2021-07-22 21:51:28 -04:00
FernandoS27
21a878237b
shader: Implement IADD3.CC/.X
2021-07-22 21:51:28 -04:00
FernandoS27
f18a6dd1bd
shader: Implement SR_Y_DIRECTION
2021-07-22 21:51:28 -04:00
ReinUsesLisp
0a0818c025
shader: Fix memory barriers
2021-07-22 21:51:28 -04:00
ameerj
be431f5ed0
shader: Implement BFE and BFI CC
...
Fix two bugs in BFI.
2021-07-22 21:51:28 -04:00
ReinUsesLisp
80940b1706
shader: Implement SampleMask
2021-07-22 21:51:28 -04:00
ReinUsesLisp
95815a3883
shader: Implement PIXLD.MY_INDEX
2021-07-22 21:51:28 -04:00
ReinUsesLisp
183855e396
shader: Implement tessellation shaders, polygon mode and invocation id
2021-07-22 21:51:27 -04:00
ReinUsesLisp
09165ae189
shader: Document and relax cache control on surface instructions
2021-07-22 21:51:27 -04:00
ReinUsesLisp
f263760c5a
shader: Implement geometry shaders
2021-07-22 21:51:27 -04:00
ReinUsesLisp
a6cef71cc0
shader: Implement OUT
2021-07-22 21:51:27 -04:00
lat9nq
dd3432d357
internal_stage_buffer_entry_read: Remove pragma optimize off
2021-07-22 21:51:27 -04:00
ReinUsesLisp
4b0172f6de
shader: Stub SR_INVOCATION_INFO
2021-07-22 21:51:27 -04:00
ReinUsesLisp
f712084147
shader: Stub ISBERD
2021-07-22 21:51:27 -04:00
ReinUsesLisp
2516829e4c
shader: Fix CC in I2I
2021-07-22 21:51:27 -04:00
ReinUsesLisp
415c7e46ed
shader: Simplify FLO and throw on CC
2021-07-22 21:51:27 -04:00
ReinUsesLisp
dfd5341d71
shader: Mark blocks with no end branch as unreachable
2021-07-22 21:51:27 -04:00
ReinUsesLisp
2ed80f6b1e
shader: Implement LOP CC
2021-07-22 21:51:27 -04:00
ReinUsesLisp
5c61e860e4
shader: Implement SR_THREAD_KILL
2021-07-22 21:51:27 -04:00
ReinUsesLisp
c9337a4ae4
shader: Apply sign bit in FCMP (imm)
2021-07-22 21:51:27 -04:00
ameerj
3db2b3effa
shader: Implement ATOM/S and RED
2021-07-22 21:51:27 -04:00
FernandoS27
1be6705408
shader: Implement CC for ISET, FSET, PSET, CSET, and DSET
...
Throw when other instructions are missing CC.
2021-07-22 21:51:27 -04:00
ReinUsesLisp
8cea39b5a6
shader: Remove outdated comment in F2I
2021-07-22 21:51:27 -04:00
ReinUsesLisp
7cb2ab3585
shader: Implement SULD and SUST
2021-07-22 21:51:26 -04:00
ReinUsesLisp
094da34456
shader: Fix Windows build issues
2021-07-22 21:51:26 -04:00
lat9nq
5bfcafa0a2
shader: Address feedback + clang format
2021-07-22 21:51:26 -04:00
lat9nq
0bb85f6a75
shader_recompiler,video_core: Cleanup some GCC and Clang errors
...
Mostly fixing unused *, implicit conversion, braced scalar init,
fpermissive, and some others.
Some Clang errors likely remain in video_core, and std::ranges is still
a pertinent issue in shader_recompiler
shader_recompiler: cmake: Force bracket depth to 1024 on Clang
Increases the maximum fold expression depth
thread_worker: Include condition_variable
Don't use list initializers in control flow
Co-authored-by: ReinUsesLisp <reinuseslisp@airmail.cc>
2021-07-22 21:51:26 -04:00
ReinUsesLisp
5cd3d00167
shader: Fix FCMP immediate variant
2021-07-22 21:51:26 -04:00
ReinUsesLisp
233e39bb7b
shader: Fix dangling labels
2021-07-22 21:51:26 -04:00
ReinUsesLisp
56b92bd89c
shader: Fix F2I
2021-07-22 21:51:26 -04:00
FernandoS27
dcaf0e9150
shader: Address feedback
2021-07-22 21:51:26 -04:00
FernandoS27
1d51803169
shader: Implement indexed attributes
2021-07-22 21:51:26 -04:00
FernandoS27
0df7e509db
shader: Implement AL2P
2021-07-22 21:51:26 -04:00
FernandoS27
20ba0ea0a9
shader: Fix BRX tracking
2021-07-22 21:51:26 -04:00
ReinUsesLisp
9e6fe430bd
shader: Fix splits on blocks using indirect branches
2021-07-22 21:51:26 -04:00
ReinUsesLisp
ffca21487f
shader: Eliminate orphan blocks more efficiently
2021-07-22 21:51:26 -04:00
ReinUsesLisp
da6cf2632c
shader: Add subgroup masks
2021-07-22 21:51:26 -04:00
ReinUsesLisp
fc93bc2abd
shader: Implement BAR and fix memory barriers
2021-07-22 21:51:26 -04:00
ReinUsesLisp
3f594dd86b
shader: Reimplement GetCbufU64 as GetCbufU32x2
...
It may generate better code on some compilers and it's easier to handle.
2021-07-22 21:51:26 -04:00
ReinUsesLisp
0b26f2b90e
shader: Remove unused header in VOTE
2021-07-22 21:51:26 -04:00
ReinUsesLisp
c4aab5c40e
shader: Fix fp16 merge when using native fp16
2021-07-22 21:51:26 -04:00
ReinUsesLisp
ca7ebdc471
shader: Fix FADD32I
2021-07-22 21:51:26 -04:00
FernandoS27
80df541a08
shader: "Implement" NOP
2021-07-22 21:51:26 -04:00
FernandoS27
baec84247f
shader: Address Feedback
2021-07-22 21:51:26 -04:00
FernandoS27
45d547af11
shader: Implement SR_LaneId
2021-07-22 21:51:26 -04:00
FernandoS27
655f7a570a
shader: Implement MEMBAR
2021-07-22 21:51:26 -04:00
FernandoS27
ecb30c9072
shader: Improve VOTE.VTG stub
2021-07-22 21:51:25 -04:00
FernandoS27
5ed8f24384
shader: Stub VOTE.VTG
2021-07-22 21:51:25 -04:00
ReinUsesLisp
b4a5e767d0
shader: Fix branches to visited virtual blocks
2021-07-22 21:51:25 -04:00
ReinUsesLisp
eaafd53cfe
shader: Implement LDG .U.128 as .128
2021-07-22 21:51:25 -04:00
FernandoS27
4d0d29fc20
shader: Address feedback
2021-07-22 21:51:25 -04:00
ReinUsesLisp
cb6fc03e55
shader: Always pass a lod for TexelFetch
2021-07-22 21:51:25 -04:00
FernandoS27
630273b629
shader: Implement TXD
2021-07-22 21:51:25 -04:00
FernandoS27
be3e94ae55
shader: Implement TMML partially
2021-07-22 21:51:25 -04:00
FernandoS27
2c276ec6eb
shader: Implement TLDS
2021-07-22 21:51:25 -04:00
FernandoS27
dc1a9a3bed
shader: Implement TLD
2021-07-22 21:51:25 -04:00
ReinUsesLisp
b0d5572abf
shader: Fix indirect branches to scheduler instructions
2021-07-22 21:51:25 -04:00
ameerj
6c51f49632
shader: Implement FSWZADD
2021-07-22 21:51:25 -04:00
FernandoS27
34aba9627a
shader: Implement BRX
2021-07-22 21:51:25 -04:00
ameerj
73af0d2e0d
shader: Implement I2I CC
2021-07-22 21:51:25 -04:00
ameerj
dbc1e5cde7
shader: Implement I2I SAT
2021-07-22 21:51:25 -04:00
ameerj
cd9f75e223
shader: Fix ISCADD logic for PO/CC
2021-07-22 21:51:25 -04:00
ReinUsesLisp
e860870dd2
shader: Implement LDS, STS, LDL, and STS and use SPIR-V 1.4 when available
2021-07-22 21:51:25 -04:00
ameerj
84298ce191
shader: Implement ISCADD CC
2021-07-22 21:51:24 -04:00
ameerj
51475e21ba
shader: Implement VMAD, VMNMX, VSETP
2021-07-22 21:51:24 -04:00
ReinUsesLisp
0e1b213fa7
shader: Add missing I2I exception when CC is used
2021-07-22 21:51:24 -04:00
ReinUsesLisp
dbd882ddeb
shader: Better interpolation and disabled attributes support
2021-07-22 21:51:24 -04:00
ReinUsesLisp
675a82416d
spirv: Remove dependencies on Environment when generating SPIR-V
2021-07-22 21:51:24 -04:00
ReinUsesLisp
a806b29cb9
shader: Fix structured control flow on KIL instructions
...
This could potentially leave unvisited blocks, leading to illegal phi
nodes.
2021-07-22 21:51:24 -04:00
FernandoS27
cdf0cc3869
shader: Fix TXQ
2021-07-22 21:51:24 -04:00
ReinUsesLisp
17063d16a3
shader: Implement TXQ and fix FragDepth
2021-07-22 21:51:24 -04:00