Commit graph

201327 commits

Author SHA1 Message Date
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