Samuel Pitoiset
25c188a743
radv: ignore conditional rendering with vkCmdTraceRays*
...
CmdTraceRays is neither a dispatch or a draw command which means it
shouldn't be affected by conditional rendering.
Fixes recent VKCTS coverage.
Cc: mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34868 >
(cherry picked from commit 4b76d04f7f )
2025-05-20 20:18:05 +02:00
Samuel Pitoiset
b1c7064a68
radv: ignore radv_disable_dcc_stores on GFX12
...
It's not necessary because DCC is completely transparent to the
userspace driver. Also it's causing issues with scanout.
This fixes rendering issues with scanout in Indiana Jones.
Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/12924
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34859 >
(cherry picked from commit b7d2cdd2b4 )
2025-05-20 20:18:04 +02:00
Konstantin Seurer
8b8ca028a0
radv: Return VK_ERROR_INCOMPATIBLE_DRIVER for unsupported devices
...
VK_ERROR_INITIALIZATION_FAILED will fail physical device enumeration.
Returning VK_ERROR_INCOMPATIBLE_DRIVER means that the driver can still
be used on supported GPUs when multiple GPUs are installed.
cc: mesa-stable
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34783 >
(cherry picked from commit 84b9c281fe )
2025-05-07 09:04:49 +02:00
Samuel Pitoiset
867fb6756b
radv: fix GPU hangs with image copies for ASTC/ETC2 formats on transfer queue
...
Emitting compute dispatches on SDMA just hangs. It might be needed
to switch to gang submit for these to work but fixing the GPU hang is
more important for now.
Cc: mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34805 >
(cherry picked from commit 0684dc5fa8 )
2025-05-06 17:24:03 +02:00
Samuel Pitoiset
963b9fc2f3
radv: disable SINGLE clear codes to workaround a hw bug with DCC on GFX11
...
This fixes a very weird cache-related corruption with DCC on GFX11 due
to a hw bug according to PAL.
Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/12932
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34790 >
(cherry picked from commit 1356d20042 )
2025-05-06 17:24:02 +02:00
Samuel Pitoiset
49d96917d5
radv: do not clear unwritten color attachments with dual-source blending
...
This is incorrect because the color format at slot 0 needs to be
replicated to the slot 1. But with dual-source blending the colors
written mask is only 0xf and this was clearing the color format at
slot 1.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/13082
Fixes: e1483d022b ("radv: clear unwritten color attachments for monolithic PS earlier")
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34773 >
(cherry picked from commit 55ad0fd35c )
2025-05-06 17:24:01 +02:00
Paul Gofman
234d66a1e2
radv/amdgpu: Fix hash key in radv_amdgpu_winsys_destroy().
...
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34774 >
(cherry picked from commit 96765935e8 )
2025-05-03 12:48:02 +02:00
Samuel Pitoiset
03dc23baa2
radv: fix re-emitting VRS state when rendering begins
...
This state also depends on whether a VRS attachment is used.
Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/11693
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34735 >
(cherry picked from commit 1fccc09abe )
2025-04-30 14:15:54 +02:00
Timur Kristóf
5c9733618d
radv: Clear dirty flag for clip rects state after emitting it.
...
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Tested-by: Marcus Seyfarth <m.seyfarth@gmail.com>
Fixes: 0ba3a8b3cc
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34686 >
(cherry picked from commit 3ad385b9cc )
2025-04-27 11:45:24 +02:00
Timur Kristóf
d18a3d5f09
radv: Clear dirty flag for MSAA state after emitting it.
...
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Tested-by: Marcus Seyfarth <m.seyfarth@gmail.com>
Fixes: 08918f0880
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/13022
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34686 >
(cherry picked from commit 3a05477ac6 )
2025-04-27 11:45:23 +02:00
Marek Olšák
39e4fe7ab4
radv: fix incorrect patch_outputs_read for TCS with dynamic state
...
Fixes: 8c2f9f0665 - radv: switch to the new TCS LDS/offchip size computation
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34544 >
(cherry picked from commit 4a51089f30 )
2025-04-22 01:25:00 +02:00
Samuel Pitoiset
b4940255ed
radv/sdma: add support for compression on GFX12
...
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
Similar to previous generations that support compression, except that
the driver don't need to configure a meta VA because DCC is completely
transparent to the userspace.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34517 >
2025-04-16 06:57:00 +00:00
Samuel Pitoiset
efa0b16bb2
radv/sdma: add a new flag to know if the surface is compressed
...
On GFX12, DCC is transparent to the driver and there is no meta VA.
Adding a new flag to know if the SDMA surface is compressed is needed.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34517 >
2025-04-16 06:57:00 +00:00
Samuel Pitoiset
03671ccf9e
radv/sdma: use the correct helper to get the number type field
...
This wasn't technically incorrect because V_028C70_BU_NUM_xxx values
are similar to V_028C70_NUMBER_xxx but it's better to use the corect
helper.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34517 >
2025-04-16 06:57:00 +00:00
Samuel Pitoiset
b44dc98cde
radv/sdma: remove redundant check for compression when getting metadata
...
It's already checked by the caller.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34517 >
2025-04-16 06:57:00 +00:00
Samuel Pitoiset
d3d5d2fe86
radv/sdma: use SDMA5_DCC_xxx bitfields
...
It's cleaner.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34517 >
2025-04-16 06:57:00 +00:00
Samuel Pitoiset
f44342199a
radv/sdma: simplify configuring the number of uncompressed DCC blocks
...
SDMA doesn't support MSAA, so the value can be
V_028C78_MAX_BLOCK_SIZE_256B.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34517 >
2025-04-16 06:57:00 +00:00
Samuel Pitoiset
c42d43e8eb
radv: print more error messages during SPM initialization
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34524 >
2025-04-16 06:35:33 +00:00
Marek Olšák
d7c903f258
ac/gpu_info: add payload_entry_size into ac_task_info
...
to stop causing full RADV recompiles when it's changed.
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34432 >
2025-04-16 06:08:48 +00:00
Samuel Pitoiset
e86e0fc525
radv: allocate the SPM BO in GTT for faster readback
...
Reading VRAM from CPU is very slow.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34467 >
2025-04-15 06:30:38 +00:00
Samuel Pitoiset
410f7f9f6e
radv: only enable DCC for invisible VRAM on GFX12
...
DCC should only be allowed on invisible VRAM, otherwise the CPU could
read the data and it will read garbage if it's compressed.
This also caused GPU hangs after suspend/resume probably because
some buffers were compressed when moved back from GTT to VRAM.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/12962
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/12922
Fixes: 9af11bf306 ("radv: add initial DCC support on GFX12")
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34347 >
2025-04-14 07:39:33 +00:00
Samuel Pitoiset
75be860eec
radv: use paired context regs when optimal on GFX12
...
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
CP is very slow on GFX12 and parsing the packet header is the main
bottleneck. Using paired context regs reduce the number of packet
headers and it should be more optimal.
It doesn't seem worth when only one context reg is emitted (one packet
header and same number of DWORDS) or when consecutive context regs are
emitted (would increase the number of DWORDS).
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34421 >
2025-04-14 06:18:13 +00:00
Samuel Pitoiset
f92f50c58a
radv: add macros for paired context registers on GFX12
...
Imported from RadeonSI.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34421 >
2025-04-14 06:18:13 +00:00
Konstantin Seurer
676e26aed5
radv: Fix rayTracingPositionFetch with multiple geometies
...
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
The fix adds more indirections to avoid increasing register pressure by
tracking the primitive address.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34460 >
2025-04-11 22:26:08 +00:00
Timur Kristóf
371b1bf789
radv: Don't call nir_opt_varyings a second time when unnecessary.
...
When nir_opt_varyings doesn't make progress the first time,
it should not be necessary to call it a second time.
No Fossil DB changes.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33880 >
2025-04-11 18:01:47 +00:00
Timur Kristóf
403b3958c1
radv: Move preparation and fixup to separate loops in varying optimization.
...
This is to stop calling nir_shader_gather_info repeatedly for
some stages, and also as a pre-requisite to the work in the next commits.
No Fossil DB changes.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33880 >
2025-04-11 18:01:47 +00:00
Timur Kristóf
a98186bbf6
radv: Refactor loops in radv_graphics_shaders_link_varyings.
...
No functional changes, just improved code readability.
No Fossil DB changes.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33880 >
2025-04-11 18:01:47 +00:00
Timur Kristóf
1942227e73
radv: Inline radv_graphics_shaders_link_varyings_{first/second}.
...
The first step of reorganizing this code.
No Fossil DB changes.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33880 >
2025-04-11 18:01:47 +00:00
Timur Kristóf
412af41258
radv: Add radv_foreach_stage to ForEachMacros again.
...
This was lost when .clang-format was removed
from the amd folder.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33880 >
2025-04-11 18:01:47 +00:00
David Rosca
f1f87d302f
radv/video: Always enable B pictures for H264 encode
...
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
We always allocate the extra memory needed for B pictures, so there is
no reason not to also enable B pictures always.
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34449 >
2025-04-11 11:15:47 +00:00
David Rosca
a1fbaddc9c
radv/video: Use ac_vcn_enc_init_cmds
...
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34449 >
2025-04-11 11:15:47 +00:00
David Rosca
7249d9548e
radv/video: Fix encode session info for VCN3+
...
Last dword should be 0.
Cc: mesa-stable
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34449 >
2025-04-11 11:15:47 +00:00
David Rosca
34031531fc
radv/video: Fix msg header total size
...
It needs to include also codec msg size.
Cc: mesa-stable
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34449 >
2025-04-11 11:15:47 +00:00
Konstantin Seurer
b218c45973
radv: Handle nir_intrinsic_printf
...
Makes it possible to use printf statements inside glsl meta shaders.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34208 >
2025-04-10 19:31:37 +00:00
Samuel Pitoiset
2f00daf67a
radv: tidy up radv_emit_hw_ngg()
...
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34420 >
2025-04-10 06:56:25 +00:00
Samuel Pitoiset
1290b38f57
radv: tidy up radv_emit_raster_state()
...
Better isolation between configuration and emission.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34420 >
2025-04-10 06:56:25 +00:00
Samuel Pitoiset
4b2d119d90
radv: reduce the number of emitted DWORDS for MSAA 8x user sample locs
...
From 24 DWORDS to 16 DWORDS.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34420 >
2025-04-10 06:56:25 +00:00
Samuel Pitoiset
c1ebf82700
radv: track redundant DB_RENDER_OVERRRIDE register writes on GFX12
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34420 >
2025-04-10 06:56:25 +00:00
Samuel Pitoiset
7f5727b313
radv: use consecutive registers for PA_SC_WINDOW_SCISSOR_{TL,BR}
...
For less DWORDS.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34420 >
2025-04-10 06:56:25 +00:00
Samuel Pitoiset
32ea7df586
radv: move emitting more fb registers when rendering begins
...
No need to delay the emission of these registers.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34420 >
2025-04-10 06:56:25 +00:00
Samuel Pitoiset
001fa1cf11
radv: move the disable_trunc_coord drirc at instance/pdev level
...
It no longer relies on enabled device features.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34425 >
2025-04-10 06:36:09 +00:00
Samuel Pitoiset
65d717b45a
radv: remove an old workaround for D3D9 with DXVK 2.3.0 and older
...
Proton 8.x+ uses this DXVK version but Proton 9.x+ is the default now.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34425 >
2025-04-10 06:36:09 +00:00
Natalie Vock
f0f4ae1713
radv: Add radv_enable_float16_gfx8 drirc and enable for Indiana Jones TGC
...
This is a hard requirement from the game preventing it to start on GFX8.
Adding this allows playing it on GFX8.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34114 >
2025-04-09 14:21:37 +00:00
Natalie Vock
e385cb1750
radv: Add radv_emulate_rt drirc and enable for Indiana Jones TGC
...
There have been various people successfully trying it out on GFX9-GFX10.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34114 >
2025-04-09 14:21:37 +00:00
Samuel Pitoiset
0ba3a8b3cc
radv: add clip rects state bit for emitting discard rectangles
...
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
Better match the hw naming.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34361 >
2025-04-08 08:42:17 +00:00
Samuel Pitoiset
08918f0880
radv: regroup emitting all MSAA states in one function
...
All register writes are optimized out. Also this will allow to use
paired context register writes on GFX12.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34361 >
2025-04-08 08:42:17 +00:00
Samuel Pitoiset
e8d787e1ef
radv: track more MSAA related register writes
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34361 >
2025-04-08 08:42:17 +00:00
Samuel Pitoiset
a327bc677a
radv: configure COVERAGE_TO_SHADER_SELECT only if conservative rast is enabled
...
When conservative rasterization isn't enabled, FullyCoveredEXT is
expected to return 0.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34361 >
2025-04-08 08:42:17 +00:00
Samuel Pitoiset
6e9782b39c
radv: emit conservative raster mode as part of the MSAA state
...
From the hw perspective, it's more like a MSAA state.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34361 >
2025-04-08 08:42:17 +00:00
Samuel Pitoiset
ed744b5c68
radv: move emitting raster and depth/stencil state slightly earlier
...
To avoid a redundant chekc if no dynamic states are dirtied.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34361 >
2025-04-08 08:42:17 +00:00