ReinUsesLisp
2597cee85b
shader: Add constant propagation for *&^| binary operations
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
23b8714732
spirv: Define StorageImageWriteWithoutFormat capability when used
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
ReinUsesLisp
106764a6d5
spirv: Move phi node patching to a separate function
2021-07-22 21:51:27 -04:00
ReinUsesLisp
ab543f1821
spirv: Guard against typeless image reads on unsupported devices
2021-07-22 21:51:27 -04:00
ReinUsesLisp
9280cd649a
shader: Move LaneId to the warp emission file and fix AMD
2021-07-22 21:51:27 -04:00
ReinUsesLisp
2e71e4c5c0
spirv: Fix forward declarations on phi nodes
2021-07-22 21:51:27 -04:00
ReinUsesLisp
d404b871d5
shader: Mark ImageWrite with side effects
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
e9a91bc5cc
shader: Interact texture buffers with buffer cache
2021-07-22 21:51:26 -04:00
ReinUsesLisp
56b92bd89c
shader: Fix F2I
2021-07-22 21:51:26 -04:00
ReinUsesLisp
ef88552224
shader: Fix TextureGrad
2021-07-22 21:51:26 -04:00
ReinUsesLisp
1f3eb601ac
shader: Implement texture buffers
2021-07-22 21:51:26 -04:00
FernandoS27
dcaf0e9150
shader: Address feedback
2021-07-22 21:51:26 -04:00
FernandoS27
73cb17f41b
shader: Implement indexed Position and ClipDistances
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
417fb5d385
shader: Move recursive SSA rewrite to the heap
2021-07-22 21:51:26 -04:00
FernandoS27
72daa2a039
shader: Fix ShadowCube declaration type, set number of pipeline threads based on hardware
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
85795de99f
shader: Abstract breadth searches and use the abstraction
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
9a342f5605
shader: Rework global memory tracking to use breadth-first search
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
e7700aad18
shader: Fix undetected bug from review
2021-07-22 21:51:26 -04:00
FernandoS27
ed6a1b1a3d
shader: Address feedback
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
595806fb1c
shader: Fix shared memory on cool drivers
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
12f5f32098
shader: Mark SSBOs as written when they are
2021-07-22 21:51:25 -04:00
FernandoS27
d819ba4489
shader: Implement ViewportIndex
2021-07-22 21:51:25 -04:00
FernandoS27
fd496d0401
shader: Stub TLD4's PTP when it isn't constant
2021-07-22 21:51:25 -04:00
FernandoS27
5ed8f24384
shader: Stub VOTE.VTG
2021-07-22 21:51:25 -04:00
FernandoS27
bee8188799
shader: Fold composite extract
2021-07-22 21:51:25 -04:00
FernandoS27
c3bace756f
shader: Fold comparisons and Pack/Unpack16
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
f1dd743731
shader: Fix dependency on identity removal pass
2021-07-22 21:51:25 -04:00
ReinUsesLisp
5f22cd89e2
shader: Fix constant propagation to use reverse post order
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
ReinUsesLisp
c826220733
shader: Unroll "using enum" for opcode declarations
2021-07-22 21:51:25 -04:00
ReinUsesLisp
09e1927b70
spirv: Remove unnecesary variable for clip distances
2021-07-22 21:51:25 -04:00
FernandoS27
0c4cf3b9eb
shader: Implement ClipDistance
2021-07-22 21:51:25 -04:00
FernandoS27
67afdaf566
shader: Fix TXD
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
d5bfc63088
shader: Implement ImageGradient
2021-07-22 21:51:25 -04:00
FernandoS27
be3e94ae55
shader: Implement TMML partially
2021-07-22 21:51:25 -04:00
FernandoS27
613b48c4a2
shader,spirv: Implement ImageQueryLod.
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
7a1c14269e
spirv: Add fixed pipeline point size
2021-07-22 21:51:25 -04:00
FernandoS27
9d7422d967
shader: Add PointCoord attribute
2021-07-22 21:51:25 -04:00
ameerj
b7589fe115
shader: Add PointSize attribute
2021-07-22 21:51:25 -04:00
ReinUsesLisp
514a6b07ee
shader: Store type of phi nodes in flags
...
This is needed because pseudo-instructions where invalidated.
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
ReinUsesLisp
55b960a20f
spirv: Fix default output attribute initialization
2021-07-22 21:51:25 -04:00
ReinUsesLisp
12783f8105
shader: Add missing new lines
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
ReinUsesLisp
39a379632e
shader: Fix alignment checks on RZ
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
f0031babeb
shader: Implement front face
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