Commit graph

17660 commits

Author SHA1 Message Date
Daniel Schürmann
92b1154397 aco/ra: Always rename copy-kill operands, even if the temporary doesn't match
This makes it independent of whether the operand already got renamed or not.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34359>
2025-05-28 09:24:17 +00:00
Daniel Schürmann
4fad3514a9 aco/ra: only change registers of already handled operands in update_renames()
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34359>
2025-05-28 09:24:17 +00:00
Daniel Schürmann
51a2e1eb94 aco/ra: don't use kill-flags as indicator in get_reg_create_vector()
We are about to re-use this function for vector-aligned operands.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34359>
2025-05-28 09:24:17 +00:00
Daniel Schürmann
3d8b355f22 aco/assembler: support vector-aligned operands on MIMG instructions
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34359>
2025-05-28 09:24:17 +00:00
Daniel Schürmann
8cb1700c74 aco/print_ir: print parenthesis around vector-aligned operands
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34359>
2025-05-28 09:24:16 +00:00
Daniel Schürmann
6aabcb02a1 aco/print_ir: only print 'lateKill' if requested via print_kill flag
Also only print lateKill for actually killed operands.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34359>
2025-05-28 09:24:16 +00:00
Daniel Schürmann
a9645fdd89 aco: introduce concept of vector-aligned Operands
Operand::isVectorAligned indicates that the Operand is part of a vector
consisting of multiple operands. Therefore, it must reside in a register
aligned with the next Operand.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34359>
2025-05-28 09:24:16 +00:00
Daniel Schürmann
a4fa3935fd aco/live_var_analysis: set same lateKill flags for same operands
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34359>
2025-05-28 09:24:16 +00:00
Daniel Schürmann
ee0ee282b9 aco: simplify Operand() constructor
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34359>
2025-05-28 09:24:16 +00:00
Samuel Pitoiset
2ebfa64be7 radv: add radv_disable_hiz_his_gfx12 and enable for Mafia Definitive Edition
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
This is a workaround for random GPU hangs with HiZ/HiS on GFX12
because the correct fix is complex and it will take time to be
implemented properly.

Mafia Definitive Edition is the first known game affected by this.

Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/13222
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35182>
2025-05-28 07:20:26 +00:00
Samuel Pitoiset
63758bc093 radv: fix capture/replay with sparse images and descriptor buffer
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
The sparse image VA needs to be returned to the application for replay.

Reported by Baldur.

VKCTS has coverage but it doesn't verify this yet.

Cc: mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35162>
2025-05-27 19:30:18 +00:00
Yogesh Mohan Marimuthu
1af419deed ac: for userq do not set info->has_fw_based_shadowing
register shadow enabling for user queue is different code flow than
kernel queue. In case of kernel queue preamble ib is initialized which
is not requried for kernel queue.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34803>
2025-05-27 14:25:50 +00:00
Yogesh Mohan Marimuthu
137907945f ac: add AMD_USERQ env var to enable user queue
user queue is enabled only if AMD_USERQ env var is set and Kernel
supports user queue.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34803>
2025-05-27 14:25:50 +00:00
Yogesh Mohan Marimuthu
97c48c5aa7 ac: fix getting mcbp info for userq
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34803>
2025-05-27 14:25:50 +00:00
Samuel Pitoiset
69467f26c9 radv/ci: remove RADV_PERFTEST=video_{decode,encode} when it's the default
It's automatically enabled when recent kernels.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34879>
2025-05-27 08:47:50 +00:00
Samuel Pitoiset
dd9682ab09 amd/ci: hold back navi21/navi31 to kernel 6.6
There is a regression in AMDGPU that prevents using 6.10+ on
navi21/navi31 due to a memory explosion.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34879>
2025-05-27 08:47:50 +00:00
Eric Engestrom
68323b195a amd/ci: uprev amdgpu.ko jobs to kernel 6.14.8
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34879>
2025-05-27 08:47:50 +00:00
Konstantin Seurer
36c9b66ee2 radv/bvh: Fix updating empty bvhs
valid_child_count_minus_one is 15 for box nodes without child so every
child was considered valid which made the code read invalid data and use
that for addressing.

Fixes: 2d48b2c ("radv: Use subgroup OPs for BVH updates on GFX12")
Closes: #13217
Reviewed-by: Natalie Vock <natalie.vock@gmx.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35119>
2025-05-26 12:03:21 +00:00
Lionel Landwerlin
87e57a9bb2 radv: rename radv_lower_terminate_to_discard for wider use
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: José Roberto de Souza <jose.souza@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35111>
2025-05-26 05:52:30 +00:00
Eric Engestrom
cde3351213 amd/ci: document radv flakes
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35135>
2025-05-23 18:30:30 +00:00
Eric Engestrom
286204404a amd/ci: document radeonsi flakes
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35135>
2025-05-23 18:30:30 +00:00
Eric Engestrom
5969df364a radeonsi/ci: document fixed piglit tests
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35135>
2025-05-23 18:30:30 +00:00
Eric Engestrom
7707e17cd4 radv/ci: document fixed angle test
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35135>
2025-05-23 18:30:30 +00:00
Samuel Pitoiset
a4a59a2504 radv: eliminate useless mov(const) after lowering all IO to scalar
This eliminates useless mov copies introduced by nir_lower_io_to_scalar
and this might be useful for nir_opt_varyings which optimizes
constant varyings.

It also uncovers a bug with mesh shader and constant varyaings that is
fixed by https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35081.

No fossils-db change on NAV21.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35090>
2025-05-23 05:56:31 +00:00
David Rosca
1608bc20b5 radv/video: Limit 10bit H265 decode support to stoney and newer
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/12132
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35105>
2025-05-22 09:20:51 +00:00
David Rosca
1f795ec226 radv/video: Remove carrizo workaround from VCN decode
Carrizo has UVD so this can never be true.

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35105>
2025-05-22 09:20:50 +00:00
David Rosca
63e952ff2c radv/video: Support encoding multiple slices
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/12285
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35070>
2025-05-22 08:40:17 +00:00
Stéphane Cerveau
72a1c4ffb2 radv/debug: use common path for dmesg and tail
popen does not find the command when the full path
is not specified.

Chose /bin as the main location for both dmesg and tail to keep
compatibility with old distribution and possible embedded rootfs.

Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35087>
2025-05-22 07:05:03 +00:00
Samuel Pitoiset
25eb836eec radv: fix CP DMA with NULL PRT pages on GFX8-9
On GFX8-9 (starting from Polaris10), CP DMA is broken with NULL PRT
pages. It doesn't read 0 and doesn't discard writes which can cause
GPU hangs.

Fix that by always using the compute path when a BO is sparse.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/12828
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35071>
2025-05-21 09:41:23 +00:00
Samuel Pitoiset
235f70e475 ac/gpu_info: add has_cp_dma_with_null_prt_bug
CP DMA is broken on GFX8-9 with NULL PRT pages. The workaround is to
use compute instead.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35071>
2025-05-21 09:41:23 +00:00
Valentine Burley
dc483ea924 ci: Remove firmware from test-base
Firmware packages continue to grow in size, so stop installing them in
the test-base image.

The necessary firmware is now collected and uploaded per vendor in an
external repository.

LAVA devices can opt into optional firmware by specifying the name of the
archive via LAVA_FIRMWARE.

For bare-metal, Qualcomm firmware required for DUTs in the Google lab is
included in the baremetal image.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/13051

Signed-off-by: Valentine Burley <valentine.burley@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34861>
2025-05-21 08:48:15 +00:00
Valentine Burley
a394b7b64c amd/ci: Update kernel for Raven
This updated kernel allows loading .xz compressed firmware files.

Signed-off-by: Valentine Burley <valentine.burley@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34861>
2025-05-21 08:48:14 +00:00
Michel Dänzer
ce268d1a4b amd/ci: Add cl profile on rusticl in radeonsi-raven-piglit job
There's been a number of regressions with rusticl on radeonsi lately,
hopefully this will catch at least some of them.

v2:
* Reference .rusticl-rules. (Valentine Burley)
* Move rusticl fails to their own section at the end of the file.
  (LaughingMan)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35066>
2025-05-21 08:19:19 +00:00
Samuel Pitoiset
6528bb76b1 radv: stop using GDS for emulated prims gen/xfb queries on GFX11-GFX11.5
Use the same path as GFX12 using SSBO atomics because performance
should be equal or slightly better due to less synchronization.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35017>
2025-05-21 08:48:04 +02:00
Samuel Pitoiset
2812efd7ad radv: declare and emit NGG_QUERY_BUF_VA on GFX11-GFX11.5
This user SGPR is used to pass the query buffer VA for emulated queries.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35017>
2025-05-21 08:46:12 +02:00
Samuel Pitoiset
439baafe5e radv: increase size of the buffer for emulated queries on GFX12
This increases this buffer by 20 bytes but it will be re-used for
emulated queries on GFX11-GFX11.5 in order to remove the GDS path.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35017>
2025-05-21 08:46:12 +02:00
Samuel Pitoiset
98c1753214 radv: stop reserving NGG streamout counters
NGG streamout counters use GDS_OA, not GDS.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35017>
2025-05-21 08:46:12 +02:00
Samuel Pitoiset
3922cc6fbd radv: rename a variable in gfx10_copy_shader_query_ace()
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35017>
2025-05-21 08:46:12 +02:00
Samuel Pitoiset
266c3bdeaf radv: adjust comments describing GDS needs
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35017>
2025-05-21 08:46:12 +02:00
Eric Engestrom
b03d5ecad3 ci: uprev vkd3d
7eef0a64e3...7e829e8836

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35074>
2025-05-20 18:40:28 +00:00
Rhys Perry
072e6d1ab5 aco/tests: add tests for tied definitions
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
Some of these would have failed before the rewrite.

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/34700>
2025-05-20 15:40:47 +00:00
Rhys Perry
b341a12526 aco/ra: rewrite handling of tied definitions
The old version worked by precoloring both the operand and definition to
whatever register the operand was at the time. This didn't allow moving
the operand/definition after precoloring them, or two tied operands with
the same temporary.

The new version works by temporarily making the operands late kill and
creating a copy if the temporary is live-through or used as another tied
operand. Then we can simply later make the operands early kill again and
assign the definitions to the operand's register.

This way, we can move the operand to make space and the new location will
not intersect with any other definition and won't cause the operand and
definition registers to mismatch.

fossil-db (gfx1201):
Totals from 2253 (2.84% of 79377) affected shaders:
Instrs: 1634747 -> 1630799 (-0.24%); split: -0.27%, +0.03%
CodeSize: 8688148 -> 8672348 (-0.18%); split: -0.20%, +0.02%
VGPRs: 106500 -> 106512 (+0.01%)
Latency: 11385480 -> 11382965 (-0.02%); split: -0.04%, +0.01%
InvThroughput: 1754430 -> 1754326 (-0.01%); split: -0.01%, +0.00%
SClause: 38954 -> 38964 (+0.03%); split: -0.01%, +0.04%
Copies: 110772 -> 110800 (+0.03%); split: -0.02%, +0.04%
Branches: 29093 -> 29092 (-0.00%)
VALU: 902011 -> 902008 (-0.00%)
SALU: 260175 -> 260203 (+0.01%); split: -0.01%, +0.02%

fossil-db (navi31):
Totals from 2 (0.00% of 79377) affected shaders:
Latency: 1766 -> 1765 (-0.06%)
InvThroughput: 3219 -> 3215 (-0.12%)

fossil-db (navi21):
Totals from 14 (0.02% of 79377) affected shaders:
(no affected stats)

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/34700>
2025-05-20 15:40:47 +00:00
Rhys Perry
cdf3767001 aco: set copy-kill for tied operands with the same temporary
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/34700>
2025-05-20 15:40:47 +00:00
Rhys Perry
f783f5df6d aco/ra: move optimize_encoding earlier
We have to handle tied definitions after optimize_encoding, but a rewrite
of that will need the register file from before clearing the killed
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/34700>
2025-05-20 15:40:47 +00:00
Rhys Perry
fd05181a26 aco/ra: replace skip_renaming with copy_kill
This will be used in the next commit.

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/34700>
2025-05-20 15:40:46 +00:00
Rhys Perry
c04ef28c56 aco: rename ops_fixed_to_def to tied_defs
This is less words.

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/34700>
2025-05-20 15:40:46 +00:00
Samuel Pitoiset
4d1fcd75f9 radv: fix non-indexed draws with primitive restart enable
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
On GFX11+, DISABLE_FOR_AUTO_INDEX=1 automatically disables primitive
restart enable for non-indexed draws.

On GFX10-GFX10.3 the hw considers primitive restart enable for
non-indexed draws and the driver must disable it explicitly.

GFX9 and older gens aren't affected but applying the change for them
simplifies the implementation.

To fix that, move emitting primitive restart enable at draw time
because it needs to know if the draw is indexed or not.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/13037
Cc: mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34996>
2025-05-20 13:57:35 +00:00
Samuel Pitoiset
7ce7009ee4 radv/meta: move and rename get_r32g32b32_format()
For future work.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34971>
2025-05-20 13:30:07 +00:00
Samuel Pitoiset
b7ce612743 radv: add vk_format_is_96bit()
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34971>
2025-05-20 13:30:07 +00:00
Samuel Pitoiset
c22d86e844 radv: fix missing texel scale for unaligned linear SDMA copies
texel_scale was 0 which caused GPU hangs for unaligned linear copies.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/13195
Fixes: 4b73d7e817 ("radv: fix SDMA copies for linear 96-bits formats")
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35047>
2025-05-20 13:06:51 +00:00