Marek Olšák
bac80013e6
ac: remove image_load buffer code from ACO & LLVM
...
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com> (aco)
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39474 >
2026-02-02 17:56:55 +00:00
Marek Olšák
c05d340184
ac: remove txf buffer code from ACO & LLVM
...
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com> (aco)
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39474 >
2026-02-02 17:56:55 +00:00
Marek Olšák
21d79dc22f
aco,ac/llvm: force IDXEN=1 for buffer format opcodes on GFX9
...
This fixes txf and image_load lowered to buffer_load_amd.
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39474 >
2026-02-02 17:56:53 +00:00
Marek Olšák
4a7728c436
aco: handle ACCESS_SPARSE and ACCESS_SKIP_HELPERS for load_buffer_amd
...
buffer txf and buffer image_load will be lowered to load_buffer_amd
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39474 >
2026-02-02 17:56:53 +00:00
Natalie Vock
ad23e02a28
aco: Don't exclude discardable parameters from register preservation
...
The original semantic of discardable parameters was "okay, nothing
actually uses this parameter, feel free to clobber it", but we were
only using it with tail calls from a function without discardable
parameters, which was broken.
Instead, slightly change the use-case and utilize the "discardable"
attribute to mark parameters that the callee will clobber in a tail
call. This makes doing tail calls safe when the tail callee receives a
modified set of parameters.
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39579 >
2026-01-31 14:26:57 +00:00
Rhys Perry
0b0e124a73
aco: use lv1.resize() pattern
...
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Acked-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39537 >
2026-01-28 16:46:30 +00:00
Rhys Perry
5f5032bb6a
aco: use lv1/lv2 instead of v1/v2.as_linear()
...
This is just a search+replace then clang-format.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Acked-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39537 >
2026-01-28 16:46:30 +00:00
Rhys Perry
c98204c963
aco: add lv1/lv2 as alias for v1/v2.as_linear()
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Acked-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39537 >
2026-01-28 16:46:29 +00:00
Georg Lehmann
2d38da94d4
aco: allow v_cmpx with DPP
...
The wording in the RDNA3 ISA doc was since clarified, v_cmpx with DPP
behaves exactly like one would expect:
FI controls whether the source value can be read from inactive lanes,
but inactive lanes always write a 0 bit. The same applies to v_cmp with DPP.
Foz-DB Navi48:
Totals from 987 (1.20% of 82405) affected shaders:
Instrs: 517003 -> 516445 (-0.11%); split: -0.11%, +0.00%
CodeSize: 2782688 -> 2780508 (-0.08%); split: -0.08%, +0.00%
Latency: 2059169 -> 2056327 (-0.14%); split: -0.14%, +0.00%
InvThroughput: 365374 -> 365328 (-0.01%); split: -0.03%, +0.01%
Copies: 64669 -> 65616 (+1.46%)
SALU: 70693 -> 70652 (-0.06%)
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39516 >
2026-01-27 20:42:51 +00:00
Georg Lehmann
1c1bd9d090
aco: only apply DPP with 3 or less uses
...
Creating many new DPP instructions increases code size and decreases throughput.
Foz-DB Navi48:
Totals from 2196 (2.67% of 82179) affected shaders:
MaxWaves: 59930 -> 59960 (+0.05%); split: +0.08%, -0.03%
Instrs: 3718514 -> 3718298 (-0.01%); split: -0.08%, +0.07%
CodeSize: 20593544 -> 20507660 (-0.42%); split: -0.43%, +0.02%
VGPRs: 135924 -> 135744 (-0.13%); split: -0.17%, +0.04%
Latency: 33174704 -> 33163001 (-0.04%); split: -0.07%, +0.04%
InvThroughput: 6500723 -> 6491382 (-0.14%); split: -0.15%, +0.01%
VClause: 72348 -> 72343 (-0.01%); split: -0.06%, +0.05%
SClause: 83160 -> 83165 (+0.01%); split: -0.03%, +0.04%
Copies: 286592 -> 285575 (-0.35%); split: -0.45%, +0.09%
Branches: 99970 -> 99971 (+0.00%); split: -0.00%, +0.00%
PreSGPRs: 103280 -> 103279 (-0.00%)
PreVGPRs: 95590 -> 95440 (-0.16%); split: -0.30%, +0.14%
VALU: 1931369 -> 1931725 (+0.02%); split: -0.08%, +0.09%
SALU: 637663 -> 636780 (-0.14%); split: -0.15%, +0.01%
VOPD: 65236 -> 65589 (+0.54%); split: +0.91%, -0.37%
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39516 >
2026-01-27 20:42:51 +00:00
Georg Lehmann
bb6a3e2891
aco/optimizer: rework how dpp is applied
...
Using the common helpers means we can use VINTERP instead of DPP,
which has higher throughput and smaller CodeSize.
Foz-DB Navi48:
Totals from 986 (1.20% of 82405) affected shaders:
Instrs: 1985282 -> 1985545 (+0.01%); split: -0.01%, +0.02%
CodeSize: 11179700 -> 11151780 (-0.25%); split: -0.26%, +0.01%
Latency: 19899190 -> 19897694 (-0.01%); split: -0.01%, +0.01%
InvThroughput: 4110650 -> 4104911 (-0.14%)
VClause: 44143 -> 44139 (-0.01%); split: -0.03%, +0.02%
Copies: 164340 -> 164344 (+0.00%); split: -0.02%, +0.02%
VALU: 1061904 -> 1061908 (+0.00%); split: -0.00%, +0.00%
SALU: 305980 -> 305974 (-0.00%)
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39516 >
2026-01-27 20:42:51 +00:00
Georg Lehmann
228cb29dae
aco/optimizer: allow DPP with scalar src1 in alu_opt_info_is_valid
...
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39516 >
2026-01-27 20:42:51 +00:00
Georg Lehmann
d4c0318f48
aco: apply DPP with scalar src1 on gfx11.5+
...
Foz-DB Navi48:
Totals from 6261 (7.62% of 82179) affected shaders:
MaxWaves: 176284 -> 176236 (-0.03%); split: +0.01%, -0.03%
Instrs: 5850185 -> 5828451 (-0.37%); split: -0.41%, +0.04%
CodeSize: 31363324 -> 31419904 (+0.18%); split: -0.08%, +0.26%
VGPRs: 328284 -> 328200 (-0.03%); split: -0.07%, +0.05%
SpillSGPRs: 2268 -> 2256 (-0.53%)
Latency: 50235516 -> 50218816 (-0.03%); split: -0.06%, +0.03%
InvThroughput: 8256243 -> 8242036 (-0.17%); split: -0.22%, +0.05%
VClause: 81000 -> 80975 (-0.03%); split: -0.11%, +0.08%
SClause: 136376 -> 136387 (+0.01%); split: -0.11%, +0.11%
Copies: 414021 -> 417894 (+0.94%); split: -0.13%, +1.07%
Branches: 105301 -> 105298 (-0.00%); split: -0.00%, +0.00%
PreSGPRs: 291360 -> 291432 (+0.02%)
PreVGPRs: 238593 -> 238729 (+0.06%); split: -0.02%, +0.08%
VALU: 3425446 -> 3403463 (-0.64%); split: -0.65%, +0.01%
SALU: 815505 -> 819372 (+0.47%); split: -0.02%, +0.50%
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39516 >
2026-01-27 20:42:51 +00:00
Georg Lehmann
3fe329b3d0
aco/ra: don't move sgpr into v_fmac_f32_dpp src0
...
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39516 >
2026-01-27 20:42:50 +00:00
Georg Lehmann
903d940fa9
aco: don't convert VOP3P to VOP3 when applying DPP
...
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39516 >
2026-01-27 20:42:50 +00:00
Georg Lehmann
8ac7b9fc37
aco: undo operand swap if applying DPP fails
...
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39516 >
2026-01-27 20:42:50 +00:00
Georg Lehmann
531228159f
aco/validate: allow dpp with scalar src1 on gfx11.5+
...
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39516 >
2026-01-27 20:42:50 +00:00
Georg Lehmann
140ca3bb50
aco: disable DPP for rev integer subs and shifts
...
It is not documented anywhere, but at least on gfx12 and gfx10.3
DPP is applied to src1 instead of src0.
This might be useful for shifts, but to be safe just disable DPP
completely for now.
Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/14739
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39516 >
2026-01-27 20:42:49 +00:00
Georg Lehmann
510dbbae7f
aco/optimizer: use opcode_supports_dpp
...
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39516 >
2026-01-27 20:42:49 +00:00
Georg Lehmann
8e99bf5380
aco: add a helper function for non supported DPP opcodes
...
Cc: mesa-stable
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39516 >
2026-01-27 20:42:49 +00:00
Georg Lehmann
4b1996b1c7
aco: fix demote in header of single iteration loop
...
The control is not divergent before a divergent break in a single iteration loop,
but we already pushed the loop mask on the stack.
Fixes: 90faadae72 ("aco/insert_exec_mask: don't disable dead quads on demote in divergent CF")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/14733
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39528 >
2026-01-27 17:39:05 +00:00
Georg Lehmann
e74323577f
aco/optimizer: optimize pack(undef, f2f16_rtz(a)) for salu
...
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Acked-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39412 >
2026-01-26 10:54:22 +00:00
Georg Lehmann
6cbd16daae
aco/optimizer: optimize pack(undef, f2f16_rtz(a)) for gfx8+
...
Do this late because the v_cvt_pkrtz_f16_f32 can be applied to
its operand.
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Acked-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39412 >
2026-01-26 10:54:22 +00:00
Georg Lehmann
57ca974d1d
aco/optimizer: optimize pack(undef, f2f16_rtz(a)) for gfx6/7
...
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Acked-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39412 >
2026-01-26 10:54:21 +00:00
Georg Lehmann
ba73792de0
aco/optimizer: fix parsing salu p_insert as shift
...
Fixes: 88f7e3fff3 ("aco/optimizer: parse pseudo alu instructions")
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Acked-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39412 >
2026-01-26 10:54:21 +00:00
Georg Lehmann
830d6de9ff
aco/isel: optimize pack_32_2x16_split(undef, const)
...
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Acked-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39412 >
2026-01-26 10:54:20 +00:00
Rhys Perry
e59a0df302
aco/insert_fp_mode: remove incorrect assertion
...
This can happen if a loop has no continues, and the later code should work
fine in this situation.
This fixes war_thunder/0013a69e097b2471 on navi21.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Fixes: 6b9d28ab9b ("aco/insert_fp_mode: insert fp mode in reverse")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39481 >
2026-01-26 08:57:33 +00:00
Georg Lehmann
5827de9cd6
aco/gfx12: use 64bit add/sub to swap sgprs
...
Not writing SCC requires less instructions and gives the scheduler more
freedom.
Foz-DB GFX1201:
Totals from 114 (0.14% of 82179) affected shaders:
Instrs: 276265 -> 275791 (-0.17%)
CodeSize: 1460504 -> 1458504 (-0.14%)
Latency: 902933 -> 902548 (-0.04%); split: -0.04%, +0.00%
InvThroughput: 166517 -> 166512 (-0.00%)
SClause: 6703 -> 6698 (-0.07%)
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39329 >
2026-01-23 10:13:19 +00:00
Natalie Vock
15328a5ef3
aco: Fix parameter stack size calculation
...
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
This only accounted for 1/32 (or 1/64) of the actual parameter size. In
some cases this meant that some threads were smashing other threads'
stacks.
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39455 >
2026-01-22 22:02:31 +00:00
Rhys Perry
2c9775b339
aco: reduce memory usage of live_var_analysis
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39408 >
2026-01-21 12:03:43 +00:00
Rhys Perry
874255e899
aco: use size_t for monotonic_buffer_resource
...
Necessary for really big shaders.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/14650
Backport-to: 25.3
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39408 >
2026-01-21 12:03:42 +00:00
Natalie Vock
e8f1dc687c
aco: Use parameter assignment hints for any-hit shaders
...
Query the signature of the traversal function stored in the any-hit
shader and make the parameter locations between the two match up, to
remove unnecessary movs inside the traversal loop.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39314 >
2026-01-20 21:49:55 +00:00
Natalie Vock
a32709674a
aco: Add parameter assignment hints
...
Parameter assignment hints allow to influence parameter register
assignment logic with user-specified affinities. If there is an affinity
declared for a parameter, the assignment logic will try to match the
registers a parameter and its affinity are assigned.
It also allows to hint that certain registers are not suitable for
assigning parameters to and should be avoided.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39314 >
2026-01-20 21:49:55 +00:00
Natalie Vock
2d6ecf303a
aco: Add and use nir_abi_to_aco helper
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39314 >
2026-01-20 21:49:55 +00:00
Natalie Vock
a03e9287c3
radv/rt: Compile ahit/isec shaders to asm
...
We can express any-hit/intersection shaders as functions, too.
Any-hit/Intersection shaders need the usual parameters like launch
IDs/descriptor data/ray properties, origin, direction/etc., but also
some special parameters related to traversal state. Any-hit/intersection
shaders need to return whether the hit was accepted and/or traversal
should be terminated, as well as the intersection T value (for
intersection shaders). Both any-hit and intersection shaders also need
to be passed hit attributes via parameters. Closest-Hit shaders need
those too, but we pass them out-of-band via LDS. LDS is used for the
traversal stack when any-hit/intersection shaders, so we need to pass
them via parameters.
Hit attributes are similar to ray payloads in the sense that they're
dynamically sized depending on how much space the application uses.
However, unlike ray payloads, hit attribute sizes have a strict upper
bound of 8 dwords. To make managing parameters easier, we put all hit
attributes in a single vector parameter with 0-8 components. This
prevents having a function with two sets of arbitrary numbers of
parameters.
This commit sets up ahit/isec function signatures and implements
lowering for ahit/isec-specific intrinsics in the context of these
functions. Subsequent commits will merely have to call into these
functions to execute a separate-compiled any-hit/intersection shader.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39314 >
2026-01-20 21:49:55 +00:00
Natalie Vock
b52adac42c
aco: Tweak ABI register param limits
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39314 >
2026-01-20 21:49:54 +00:00
Natalie Vock
7a2f050daa
aco: Put boolean parameters inside SGPRs
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39314 >
2026-01-20 21:49:54 +00:00
Georg Lehmann
939b4a6476
aco/optimizer: apply v_cvt_pkrtz_f16_f32 as fma_mix to operands
...
Foz-DB Navi21:
Totals from 2085 (2.14% of 97591) affected shaders:
Instrs: 4880879 -> 4882355 (+0.03%); split: -0.04%, +0.07%
CodeSize: 26869332 -> 26881744 (+0.05%); split: -0.02%, +0.06%
VGPRs: 93944 -> 94160 (+0.23%); split: -0.06%, +0.29%
Latency: 40035558 -> 40035595 (+0.00%); split: -0.02%, +0.02%
InvThroughput: 10333800 -> 10329093 (-0.05%); split: -0.06%, +0.01%
VClause: 139147 -> 139148 (+0.00%)
Copies: 454527 -> 454656 (+0.03%); split: -0.00%, +0.03%
VALU: 3214838 -> 3211105 (-0.12%)
Foz-DB Navi48:
Totals from 2349 (2.41% of 97637) affected shaders:
Instrs: 6471998 -> 6471817 (-0.00%); split: -0.05%, +0.05%
CodeSize: 34793372 -> 34808748 (+0.04%); split: -0.02%, +0.06%
VGPRs: 141804 -> 142560 (+0.53%)
Latency: 45225910 -> 45226000 (+0.00%); split: -0.01%, +0.01%
InvThroughput: 9152634 -> 9149850 (-0.03%); split: -0.04%, +0.01%
VClause: 148536 -> 148537 (+0.00%)
Copies: 527206 -> 527336 (+0.02%); split: -0.01%, +0.03%
VALU: 3491701 -> 3487347 (-0.12%); split: -0.12%, +0.00%
VOPD: 669 -> 683 (+2.09%); split: +2.69%, -0.60%
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38815 >
2026-01-20 14:48:23 +00:00
Georg Lehmann
c6b74705dd
aco/optimizer: support fma_mix with rtz
...
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38815 >
2026-01-20 14:48:23 +00:00
Georg Lehmann
6b9d28ab9b
aco/insert_fp_mode: insert fp mode in reverse
...
This allows us to skip the mode set by changing
the initial mode in the command stream.
Foz-DB Navi48:
Totals from 14 (0.02% of 82405) affected shaders:
Latency: 79417 -> 79438 (+0.03%)
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38815 >
2026-01-20 14:48:22 +00:00
Georg Lehmann
7212a75c5e
aco/insert_fp_mode: exclude some instructions that will never round
...
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38815 >
2026-01-20 14:48:22 +00:00
Georg Lehmann
d6356191b9
aco: add fma_mix opcodes with rtz fp16 rounding
...
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38815 >
2026-01-20 14:48:22 +00:00
Rhys Perry
f0f53e624c
aco/tests: remove vcc definitions from p_call
...
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
The version of instruction selection that got merged doesn't have vcc
definitions, so this shouldn't either.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39390 >
2026-01-20 13:33:16 +00:00
Rhys Perry
adf5c7cba4
aco: remove dead p_call code in live_var_analysis
...
The version of instruction selection that got merged doesn't have vcc
definitions.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39390 >
2026-01-20 13:33:16 +00:00
Rhys Perry
ba798120c6
aco/ra: split blocking vectors if needed when handling fixed operands
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39390 >
2026-01-20 13:33:16 +00:00
Rhys Perry
5ebefceb42
aco/ra: move split_blocking_vectors higher
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39390 >
2026-01-20 13:33:16 +00:00
Rhys Perry
24fe4a5b58
aco/ra: copy precolor affinities to p_create_vector/p_split_vector
...
fossil-db (navi31):
Totals from 7 (0.01% of 84369) affected shaders:
Instrs: 2742 -> 2704 (-1.39%); split: -1.82%, +0.44%
CodeSize: 15300 -> 15052 (-1.62%); split: -1.93%, +0.31%
VGPRs: 516 -> 504 (-2.33%)
Latency: 12478 -> 12504 (+0.21%); split: -0.24%, +0.45%
InvThroughput: 2350 -> 2300 (-2.13%)
Copies: 350 -> 272 (-22.29%)
VALU: 1626 -> 1592 (-2.09%)
VOPD: 280 -> 236 (-15.71%)
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39387 >
2026-01-20 10:53:18 +00:00
Rhys Perry
893e9d7595
aco: don't spill no-op copies of input parameters in preserved registers
...
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38679 >
2026-01-19 09:17:53 +00:00
Rhys Perry
8a3cc7200e
aco/sched: don't use previously unused preserved registers
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38679 >
2026-01-19 09:17:53 +00:00
Rhys Perry
da1dca28a7
aco/ra: consider already-used preserved registers to be free
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38679 >
2026-01-19 09:17:53 +00:00