Alyssa Rosenzweig
d1db047fb3
hk: optimize !robust VBO
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31532 >
2024-10-05 18:30:13 +00:00
Alyssa Rosenzweig
1d195b2074
asahi: optimize !robust VBO
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31532 >
2024-10-05 18:30:13 +00:00
Alyssa Rosenzweig
db36ece9dd
asahi: optimize !robustness with soft fault
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31532 >
2024-10-05 18:30:13 +00:00
Alyssa Rosenzweig
d5ec115260
hk: reduce heap size
...
at least until our swapping is better in the kernel.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31532 >
2024-10-05 18:30:13 +00:00
Alyssa Rosenzweig
3a13e318de
hk: parametrize sysmem heap fraction
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31532 >
2024-10-05 18:30:13 +00:00
Alyssa Rosenzweig
d959346780
hk: add norobust test
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31532 >
2024-10-05 18:30:13 +00:00
Alyssa Rosenzweig
0d9ac1299d
hk: add =batch perftest
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31532 >
2024-10-05 18:30:13 +00:00
Alyssa Rosenzweig
13b50d709b
hk: add nobarrier test
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31532 >
2024-10-05 18:30:13 +00:00
Alyssa Rosenzweig
b669e24040
hk: split out HK_PERFTEST
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31532 >
2024-10-05 18:30:13 +00:00
Alyssa Rosenzweig
cbd9cb04cf
agx: fix load_first_vertex
...
base vertex is GL, first vertex is VK. because we missed this check, VK (but not
GL) shaders using first vertex (but not base instance) would not get that flag
set and so hk wouldn't bother uploading the draw parameters, so first_vertex
would read garbage.
because vertex ID is defined differently between the Khronos and Microsoft APIs,
every complex DXVK vertex shader will implement vertex ID with a subtraction of
first vertex.
forcing geometry shaders worked around the bug, because IIRC geometry shaders
also force the draw parameter upload path for $REASONS. maybe
disabling preambles changed symptoms simply because the uniform file looked
different, and we were reading uninitialized garbage regardless writing stuff in
preambles would maybe change the garbage for other draws or something. (Not
sure on the details but the physical uniform registers I guess get reused over
the lifetime of a shader core and never zero initialized) So we were reading
uninitialized garbage and yeah everything blows up
Anyway. I just wasted too much of my life on this.
This single line of code fixes rendering in every DX11 game. that's probably not
an exaggeration.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31532 >
2024-10-05 18:30:13 +00:00
Alyssa Rosenzweig
f786bcc8c2
hk: add helper to dump draw
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31532 >
2024-10-05 18:30:13 +00:00
Alyssa Rosenzweig
d56bfdc54c
hk: fix ZLS across split CRs
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31532 >
2024-10-05 18:30:13 +00:00
Alyssa Rosenzweig
e092e1c5bb
hk: fix partial EOT program
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31532 >
2024-10-05 18:30:13 +00:00
Alyssa Rosenzweig
ee96ab6976
hk: fix shadowing
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31532 >
2024-10-05 18:30:13 +00:00
Alyssa Rosenzweig
b1da16ccc9
agx: validate RA
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31532 >
2024-10-05 18:30:13 +00:00
Alyssa Rosenzweig
f511c06ba0
agx: fix shuffles of vectors
...
a real bug caught by RA validation! wow!
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31532 >
2024-10-05 18:30:13 +00:00
Alyssa Rosenzweig
ab8d1cfe95
agx: commonize ra_class
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31532 >
2024-10-05 18:30:12 +00:00
Alyssa Rosenzweig
a07faaf6c9
agx: lower swaps late
...
for RA validation
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31532 >
2024-10-05 18:30:12 +00:00
Alyssa Rosenzweig
6f1c275c94
agx: produce regful SSA in RA
...
for validation
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31532 >
2024-10-05 18:30:12 +00:00
Alyssa Rosenzweig
13191efa86
agx: assert a subtle invariant
...
we should probably be more explicit about this ...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31532 >
2024-10-05 18:30:12 +00:00
Alyssa Rosenzweig
ce2067b41c
agx: strengthen assert
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31532 >
2024-10-05 18:30:12 +00:00
Alyssa Rosenzweig
00a5d32d60
agx: reset kill bits in liveness
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31532 >
2024-10-05 18:30:12 +00:00
Alyssa Rosenzweig
4b46314133
agx: add reg to agx_index
...
for validation
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31532 >
2024-10-05 18:30:12 +00:00
Alyssa Rosenzweig
f19e387c2b
agx: fix shuffling with partial clobbered vector
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31532 >
2024-10-05 18:30:12 +00:00
Alyssa Rosenzweig
71448e391a
agx: add another RA torture mode
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31532 >
2024-10-05 18:30:12 +00:00
Alyssa Rosenzweig
819bd2ea62
agx: factor out insert_copy
...
commonize the scalarization logic.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31532 >
2024-10-05 18:30:12 +00:00
Alyssa Rosenzweig
f8af6397de
agx: commonize reg_to_ssa update
...
this skips an update in the live-in path but that's ok by the invariant defining
the reg_to_ssa array
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31532 >
2024-10-05 18:30:12 +00:00
Alyssa Rosenzweig
34a000dbe0
agx: use reserved_size more
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31532 >
2024-10-05 18:30:12 +00:00
Alyssa Rosenzweig
4e8f4bc4b0
agx: fix corner with uniform source lowering
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31532 >
2024-10-05 18:30:12 +00:00
Alyssa Rosenzweig
d0b0485b6c
agx: gimme c23
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31532 >
2024-10-05 18:30:12 +00:00
Alyssa Rosenzweig
5f2df312b7
hk: flush with events
...
Not sure if strictly needed. Revisit when we rework pipeline barriers.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31532 >
2024-10-05 18:30:12 +00:00
Alyssa Rosenzweig
e0b83ecaa6
hk: drop dead
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31532 >
2024-10-05 18:30:12 +00:00
Alyssa Rosenzweig
196fcb9d3c
hk: fix tess with notess
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31532 >
2024-10-05 18:30:12 +00:00
Alyssa Rosenzweig
f39d1bc945
agx: add unit test for tricky backwards phi case
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31532 >
2024-10-05 18:30:12 +00:00
Alyssa Rosenzweig
93f2398685
agx: fix backwards copyprop with phis
...
Fixes issue in Control.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31532 >
2024-10-05 18:30:12 +00:00
Alyssa Rosenzweig
bef3655d06
agx: expand macro
...
nfc
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31532 >
2024-10-05 18:30:12 +00:00
Alyssa Rosenzweig
372580086e
hk: bump max input/output components
...
apparently webgpu wants this
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31532 >
2024-10-05 18:30:12 +00:00
Mary Guillemard
b130a129de
hk: Implement global priority extensions
...
This wires other priorities than medium and exposes
VK_EXT_global_priority / VK_EXT_global_priority_query.
Signed-off-by: Mary Guillemard <mary@mary.zone>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31532 >
2024-10-05 18:30:12 +00:00
Alyssa Rosenzweig
8b3e8106c3
agx: don't propagate constants from trivial phis
...
fixes a pack assert.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31532 >
2024-10-05 18:30:12 +00:00
Alyssa Rosenzweig
7ab777a959
agx: print pack assertions to stderr
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31532 >
2024-10-05 18:30:12 +00:00
Alyssa Rosenzweig
eff48b9826
agx: fix shuffling with large reserved region
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31532 >
2024-10-05 18:30:12 +00:00
Alyssa Rosenzweig
f14d5b5fd8
agx: don't reserve regs if we won't use them
...
reduces live range splitting in the remat-only case. this could still be
improved.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31532 >
2024-10-05 18:30:12 +00:00
Alyssa Rosenzweig
c500242b90
agx: fix corner case scratch allocation
...
if we call into the spiller but it rematerializes enough to eliminate all
spilling, we don't need to allocate any scratch. correct our accounting for this
case to avoid the allocation.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31532 >
2024-10-05 18:30:12 +00:00
Alyssa Rosenzweig
ea856ccec0
agx: quiesche assert with r1l preload
...
fixes spilling in sample shaded frag shaders. this depends on the ABI
change in the last commit to be valid in the presence of subgroup ops.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31532 >
2024-10-05 18:30:12 +00:00
Alyssa Rosenzweig
7faca2220c
asahi: move sample mask to r1l
...
r0h is used for subgroup shuffles already.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31532 >
2024-10-05 18:30:12 +00:00
Alyssa Rosenzweig
702c038b91
asahi: #define the ABI
...
This is a lot more readable, and lets us adjust the ABI in a central place
(except the README..)
No functional change
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31532 >
2024-10-05 18:30:12 +00:00
Alyssa Rosenzweig
edc8ef7412
agx: use reserved_size
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31532 >
2024-10-05 18:30:12 +00:00
Alyssa Rosenzweig
3d48658fe3
agx: split up optimizer
...
validate in the middle
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31532 >
2024-10-05 18:30:12 +00:00
Alyssa Rosenzweig
5abdce5af5
agx: add pass manager
...
validate more often, like NIR does.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31532 >
2024-10-05 18:30:12 +00:00
Alyssa Rosenzweig
3a25c1241b
agx: validate sizes are consistent in the IR
...
subtle correctness requirement for the spiller.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31532 >
2024-10-05 18:30:12 +00:00