Commit graph

618 commits

Author SHA1 Message Date
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
ReinUsesLisp
17063d16a3 shader: Implement TXQ and fix FragDepth 2021-07-22 21:51:24 -04:00
ReinUsesLisp
d9c5bd9509 shader: Refactor PTP and other minor changes 2021-07-22 21:51:24 -04:00
FernandoS27
b5db38f50e shader: Add IR opcode for ImageFetch 2021-07-22 21:51:24 -04:00
FernandoS27
742d11c2ad shader: Implement TLD4.PTP 2021-07-22 21:51:24 -04:00
FernandoS27
981eb6f43b shader: Fix Array Indices in TEX/TLD4 2021-07-22 21:51:24 -04:00
FernandoS27
f5672777c8 shader: Implement FragDepth 2021-07-22 21:51:24 -04:00
FernandoS27
fda0835300 shader: Implement TLD4S. 2021-07-22 21:51:24 -04:00
FernandoS27
c7c518e280 shader: Implement TLD4 and TLD4_B 2021-07-22 21:51:24 -04:00
ameerj
32c5483beb shader: Implement SHFL 2021-07-22 21:51:24 -04:00
ReinUsesLisp
49e87ea8ab shader: Track first bindless argument instead of the instruction itself 2021-07-22 21:51:24 -04:00
ReinUsesLisp
d3dad6b632 shader: Properly insert Prologue instruction 2021-07-22 21:51:24 -04:00
ReinUsesLisp
83a283fa86 shader: Minor style nits 2021-07-22 21:51:24 -04:00
FernandoS27
8cb9443cb9 shader: Fix F2I 2021-07-22 21:51:24 -04:00
ReinUsesLisp
68a9505d8a shader: Implement NDC [-1, 1], attribute types and default varying initialization 2021-07-22 21:51:24 -04:00
ReinUsesLisp
1d2db78398 shader: Fix use-after-free bug in object_pool 2021-07-22 21:51:24 -04:00
ameerj
3d07cef009 shader: Implement VOTE 2021-07-22 21:51:24 -04:00
ReinUsesLisp
a8d8fd40f7 shader: Fix TEX mask 2021-07-22 21:51:24 -04:00
ReinUsesLisp
c63cf4fa2e vk_pipeline_cache: Add pipeline cache 2021-07-22 21:51:24 -04:00
ReinUsesLisp
2be5c7eff4 shader: Fold interpolation multiplications 2021-07-22 21:51:24 -04:00
ReinUsesLisp
96b7ced6ec shader: Better but still partial interpolation support 2021-07-22 21:51:24 -04:00
ameerj
e4e1cc11b8 shader: Implement DMNMX, DSET, DSETP 2021-07-22 21:51:24 -04:00
FernandoS27
56be556eee shader: Implement FADD32I 2021-07-22 21:51:24 -04:00
FernandoS27
a62f04efab shader: Implement F2F 2021-07-22 21:51:24 -04:00
ReinUsesLisp
8b3b9c3371 shader: Add missing fp64 usage flags 2021-07-22 21:51:24 -04:00
ameerj
c858b8ba97 shader: Implement DMUL and DFMA
Also add a missing const on DADD
2021-07-22 21:51:24 -04:00
ameerj
112b8f00f0 shader: Add FP64 register load/store helpers 2021-07-22 21:51:24 -04:00
ReinUsesLisp
a77e764726 shader: Add support for fp16 comparisons and misc fixes 2021-07-22 21:51:24 -04:00
FernandoS27
27fb97377e shader: Fix floating point comparison for FP16 2021-07-22 21:51:23 -04:00
FernandoS27
e10d9c1b8e shader: Implement HSETP2 2021-07-22 21:51:23 -04:00
FernandoS27
9e213fd861 shader: Implement HSET2 2021-07-22 21:51:23 -04:00
FernandoS27
ed6cd3c94a shader: Implement HMUL2 2021-07-22 21:51:23 -04:00
FernandoS27
28dff6a629 shader: Implement HFMA2 2021-07-22 21:51:23 -04:00
ReinUsesLisp
76c8a962ac spirv: Implement VertexId and InstanceId, refactor code 2021-07-22 21:51:23 -04:00
FernandoS27
e802512d8e shader: Refactor half floating instructions 2021-07-22 21:51:23 -04:00
ReinUsesLisp
f91859efd2 shader: Implement I2F 2021-07-22 21:51:23 -04:00
ReinUsesLisp
c97d03efb9 shader: Implement ISCADD (imm) 2021-07-22 21:51:23 -04:00
ReinUsesLisp
eeb1efa2d2 shader: Implement LOP32I 2021-07-22 21:51:23 -04:00
ReinUsesLisp
260743f371 shader: Add partial rasterizer integration 2021-07-22 21:51:23 -04:00
ameerj
72990df7ba shader: Implement DADD 2021-07-22 21:51:23 -04:00
ameerj
3b7fd3ad0f shader: Implement CSET and CSETP 2021-07-22 21:51:23 -04:00
ReinUsesLisp
32b6c63485 shader: Reorder phi nodes when redefined as undefined opcodes 2021-07-22 21:51:23 -04:00
ReinUsesLisp
8dd0acfaeb shader: Fix instruction transitions in and out of Phi 2021-07-22 21:51:23 -04:00
ameerj
fa2f6e38f4 shader: Implement FSET and FSETP
Also fix oversight with adding SignedZeroInfNanPreserve execution mode.
2021-07-22 21:51:23 -04:00
ReinUsesLisp
17a82b56d7 shader: Implement TEXS 2021-07-22 21:51:23 -04:00
ReinUsesLisp
71f96fa636 shader: Implement CAL inlining function calls 2021-07-22 21:51:23 -04:00
ameerj
b9f7bf4472 spirv: Add SignedZeroInfNanPreserve logic 2021-07-22 21:51:23 -04:00
ameerj
8d470c2e63 shader: Implement FMNMX
And add a const in FCMP
2021-07-22 21:51:23 -04:00
ReinUsesLisp
2d422b2498 shader: Fix rebase issue 2021-07-22 21:51:23 -04:00
ameerj
ba8c1d2eb4 shader: Implement FCMP
still need to configure some settings for NV denorm flush and intel NaN
2021-07-22 21:51:23 -04:00
ReinUsesLisp
3a63fa0477 shader: Partial implementation of LDC 2021-07-22 21:51:23 -04:00
ReinUsesLisp
ab46371247 shader: Initial support for textures and TEX 2021-07-22 21:51:23 -04:00
ameerj
7d6ba5b984 shader: Implement R2P 2021-07-22 21:51:23 -04:00
ameerj
924f0a9149 shader: Implement SHF 2021-07-22 21:51:23 -04:00
ameerj
5465cb1561 shader: Implement LEA 2021-07-22 21:51:23 -04:00
ReinUsesLisp
d1edc16ba8 shader: Deduplicate HADD2 code 2021-07-22 21:51:23 -04:00
ameerj
81f72471e8 shader: Implement I2I 2021-07-22 21:51:23 -04:00
ReinUsesLisp
4006929c98 shader: Implement HADD2 2021-07-22 21:51:23 -04:00
ameerj
980cafdc27 shader: Implement LOP and LOP3 2021-07-22 21:51:23 -04:00
ameerj
382cba94ed shader: Implement IADD3 2021-07-22 21:51:23 -04:00
ameerj
c2155f04d4 shader: Implement PSETP 2021-07-22 21:51:23 -04:00
ameerj
ce9b116cfe Implement PSET, refactor common comparison funcs 2021-07-22 21:51:23 -04:00
ameerj
103b9da4f7 shader: Implement FLO 2021-07-22 21:51:23 -04:00
ameerj
e038928616 shader: Implement ISET, add common_funcs 2021-07-22 21:51:23 -04:00
ameerj
bec7d3111d shader: Make IMNMX, SHR, SEL stylistically more consistent 2021-07-22 21:51:22 -04:00
ameerj
bce0b1dcca shader: Implement ICMP 2021-07-22 21:51:22 -04:00
ameerj
20390c0548 shader: Implement IMNMX 2021-07-22 21:51:22 -04:00
ameerj
08a9e95905 shader: Implement BFI 2021-07-22 21:51:22 -04:00
ameerj
34ac9b4d7e shader: Implement BFE 2021-07-22 21:51:22 -04:00
ameerj
a8c41c50d3 shader: Implement POPC 2021-07-22 21:51:22 -04:00
ameerj
cc55d28949 shader: Implement SHR 2021-07-22 21:51:22 -04:00
ameerj
8810c88b7e shader: Implement SEL 2021-07-22 21:51:22 -04:00
ReinUsesLisp
726625cf50 spirv: Move phi arguments emit to a separate function 2021-07-22 21:51:22 -04:00
ReinUsesLisp
3bc857f2f3 shader: Avoid infinite recursion when tracking global memory 2021-07-22 21:51:22 -04:00
ReinUsesLisp
622d676202 shader: Fix conditional execution of exit instructions 2021-07-22 21:51:22 -04:00
ReinUsesLisp
7496bbf758 spirv: Add support for self-referencing phi nodes 2021-07-22 21:51:22 -04:00
ReinUsesLisp
e87a502da2 shader: Fix control flow 2021-07-22 21:51:22 -04:00
ReinUsesLisp
9d6a98d950 shader: Implement more of XMAD and FFMA32I and fix XMAD.CBCC 2021-07-22 21:51:22 -04:00
ReinUsesLisp
e44752ddc8 shader: FMUL, select, RRO, and MUFU fixes 2021-07-22 21:51:22 -04:00
ReinUsesLisp
18a766b362 shader: Fix MOV(reg), add SHL variants and emit neg and abs instructions 2021-07-22 21:51:22 -04:00
ReinUsesLisp
274897dfd5 spirv: Fixes and Intel specific workarounds 2021-07-22 21:51:22 -04:00
ReinUsesLisp
704c6f353f shader: Rename, implement FADD.SAT and P2R (imm) 2021-07-22 21:51:22 -04:00
ReinUsesLisp
e2bc05b17d shader: Add denorm flush support 2021-07-22 21:51:22 -04:00
ReinUsesLisp
6db69990da spirv: Add lower fp16 to fp32 pass 2021-07-22 21:51:22 -04:00
ReinUsesLisp
85cce78583 shader: Primitive Vulkan integration 2021-07-22 21:51:22 -04:00
ReinUsesLisp
58914796c0 shader: Add XMAD multiplication folding optimization 2021-07-22 21:51:22 -04:00
ReinUsesLisp
4b438f94cf shader: Simplify ISCADD 2021-07-22 21:51:22 -04:00
ReinUsesLisp
3633e43377 shader: Add utility to resolve identities on a value 2021-07-22 21:51:22 -04:00
ReinUsesLisp
3a59fffaa1 spirv: Implement EmitIdentity 2021-07-22 21:51:22 -04:00
ReinUsesLisp
b5d7279d87 spirv: Initial bindings support 2021-07-22 21:51:22 -04:00
ReinUsesLisp
d5d468cf2c shader: Improve object pool 2021-07-22 21:51:22 -04:00
ReinUsesLisp
1c0b8bca5e shader: Fix tracking 2021-07-22 21:51:22 -04:00
ReinUsesLisp
1b0cf2309c shader: Add support for forward declarations 2021-07-22 21:51:22 -04:00
ReinUsesLisp
cbfb7d182a shader: Support SSA loops on IR 2021-07-22 21:51:22 -04:00
ReinUsesLisp
8af9297f09 shader: Misc fixes 2021-07-22 21:51:22 -04:00
ReinUsesLisp
9170200a11 shader: Initial implementation of an AST 2021-07-22 21:51:22 -04:00
ReinUsesLisp
2930dccecc spirv: Initial SPIR-V support 2021-07-22 21:51:22 -04:00
ReinUsesLisp
6dafb08f52 shader: Better constant folding 2021-07-22 21:51:22 -04:00
ReinUsesLisp
da8096e6e3 shader: Properly store phi on Inst 2021-07-22 21:51:21 -04:00
ReinUsesLisp
16cb00c521 shader: Add pools and rename files 2021-07-22 21:51:21 -04:00
ReinUsesLisp
be94ee88d2 shader: Make typed IR 2021-07-22 21:51:21 -04:00
ReinUsesLisp
dc04a50ac2 shader: Remove illegal character in SSA pass 2021-07-22 21:51:21 -04:00
ReinUsesLisp
e81739493a shader: Constant propagation and global memory to storage buffer 2021-07-22 21:51:21 -04:00
ReinUsesLisp
d24a16045f shader: Initial instruction support 2021-07-22 21:51:21 -04:00
ReinUsesLisp
6c4cc0cd06 shader: SSA and dominance 2021-07-22 21:51:21 -04:00
ReinUsesLisp
2d48a7b4d0 shader: Initial recompiler work 2021-07-22 21:51:21 -04:00