Ricardo Garcia
bc44d029df
radv: Ignore image barrier queue families if equal
...
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
The src and dst queue family indices in an image memory barrier may
contain arbitrary values that can be ignored unless both are different.
This fixes a crash in upcoming CTS tests.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34691 >
2025-04-29 08:15:28 +00:00
Samuel Pitoiset
1fccc09abe
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 >
2025-04-29 07:00:09 +00:00
Timur Kristóf
3ad385b9cc
radv: Clear dirty flag for clip rects state after emitting it.
...
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
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 >
2025-04-24 15:13:44 +00:00
Timur Kristóf
3a05477ac6
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 >
2025-04-24 15:13:44 +00:00
Samuel Pitoiset
78c2feed00
radv/meta: rename more buffer->memory for fill/copy/update operations
...
Recently, I renamed most of the helpers for future work but I forgot
few things like meta keys, etc.
This is for consistency.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34558 >
2025-04-18 17:21:24 +02:00
Samuel Pitoiset
209a0ede98
radv: add a function to emit meshlet registers on GFX11+
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34518 >
2025-04-17 12:49:47 +00:00
Samuel Pitoiset
836757bec3
radv: tidy up radv_emit_ps_epilog_state()
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34518 >
2025-04-17 12:49:47 +00:00
Samuel Pitoiset
dca35b7226
radv: tidy up radv_emit_geometry_shader()
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34518 >
2025-04-17 12:49:47 +00:00
Samuel Pitoiset
d999afeb7a
radv: tidy up radv_emit_vertex_shader()
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34518 >
2025-04-17 12:49:47 +00:00
Samuel Pitoiset
85fdf69027
radv: simplify combining TES/VS+GS config registers
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34518 >
2025-04-17 12:49:47 +00:00
Samuel Pitoiset
0dd9833348
radv: remove redundant assertion when emitting PS epilog state
...
It's already checked by radv_emit_32bit_pointer().
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34518 >
2025-04-17 12:49:47 +00:00
Samuel Pitoiset
a230d2daa3
radv: use radeon_set_sh_reg() for only 1 DWORD
...
It's just shorter to write.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34518 >
2025-04-17 12:49:47 +00:00
Samuel Pitoiset
d94f8b4460
ac/gpu_info,radv: add scratch_wavesize_granularity info
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34549 >
2025-04-17 10:35:40 +00:00
Samuel Pitoiset
8ba94d8263
radv: add radv_fill_image() helper
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34556 >
2025-04-17 08:59:58 +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
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
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
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
Samuel Pitoiset
6388db03c8
radv: add a workaround for buggy HiZ/HiS on GFX12
...
HiZ/HiS is buggy and can cause random GPU hangs when stencil is enabled.
There are basically two alternatives but RADV follows RadeonSI and emit
a dummy RELEASE_MEM packet after every draw which should workaround the
issue and maintain performance.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/12944
Backport-to: 25.0
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34381 >
2025-04-08 08:09:13 +02:00
Samuel Pitoiset
11b6d2ba60
radv: determine if HiZ/HiS is enabled earlier on GFX12
...
To lower CPU overhead of the hardware workaround.
Backport-to: 25.0
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34381 >
2025-04-08 08:03:11 +02:00
Samuel Pitoiset
e3c3fa8b9a
radv: add a fuction to emit the VRS surface on GFX11
...
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/34357 >
2025-04-07 15:09:18 +00:00
Samuel Pitoiset
00354f0a74
radv: do not emit the VRS surface VA when it's not enabled
...
This shouldn't be necessary because VRS_SURFACE_ENABLE is the toggle
bit.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34357 >
2025-04-07 15:09:18 +00:00
Samuel Pitoiset
9b11caee40
radv: stop emitting CB_FDCC_CONTROL to zero on GFX11-GFX11.5
...
It's already emitted by the CLEAR_STATE packet on these GPUs.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34357 >
2025-04-07 15:09:18 +00:00
Samuel Pitoiset
17e5fd856f
radv: split null framebuffer state emission for GFX12
...
For consistency with color/ds states emission.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34357 >
2025-04-07 15:09:18 +00:00
Samuel Pitoiset
c608a601bf
radv: split framebuffer depth/stencil state emission for GFX12
...
It's also really simpler on GFX12.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34357 >
2025-04-07 15:09:18 +00:00
Samuel Pitoiset
d5eb1f6833
radv: split framebuffer color state emission for GFX12
...
It's really simpler on GFX12.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34357 >
2025-04-07 15:09:18 +00:00
Samuel Pitoiset
9dec80d8cf
radv: tidy up radv_emit_db_shader_control()
...
To separate packet construction and emission.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34357 >
2025-04-07 15:09:18 +00:00
Samuel Pitoiset
4bc6335e3c
radv: restore DB_DFSM_CONTROL properly when POPS isn't used
...
It looks safer to restore this register to its initial value when POPS
isn't used. Only VEGA10 and RAVEN are concerned.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34357 >
2025-04-07 15:09:18 +00:00
Samuel Pitoiset
cb390ca234
radv: tidy up radv_emit_raster_state()
...
To separate packet construction and emission.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34357 >
2025-04-07 15:09:18 +00:00
Samuel Pitoiset
62e4b1130a
radv: remove useless FDCC_ENABLE bitfield clear on GFX12
...
This bit doesn't exist.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34357 >
2025-04-07 15:09:18 +00:00
Samuel Pitoiset
64e6e043b3
Revert "radv: program SAMPLE_MASK_TRACKER_WATERMARK optimally for GFX11 APUs"
...
This reverts commit 96e9c3fe77 .
This actually causes random GPU hangs like on Phoenix.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/12461
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/12426
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/12692
Tested-by: Tobias Jakobi <tjakobi@math.uni-bielefeld.de>
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34306 >
2025-04-02 07:10:40 +00:00
Autumn Ashton
ae6d24c4ef
radv: Expose VK_SAMPLE_COUNT_1_BIT for sample position on GFX10+
...
This works on GFX10+.
Signed-off-by: Autumn Ashton <misyl@froggi.es>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28237 >
2025-04-01 21:15:34 +01:00
Samuel Pitoiset
f0b3a6f9d4
radv: rework command buffer emission with begin/end sequences
...
A begin/end sequence is something like (it's all macros based):
radeon_begin(cs);
radeon_emit(PKT3(PKT3_DRAW_INDEX_AUTO, 1, cmd_buffer->state.predicating));
radeon_emit(vertex_count);
radeon_emit(V_0287F0_DI_SRC_SEL_AUTO_INDEX | use_opaque);
radeon_end();
This is loosely based on RadeonSI (see !8653 (a0978fff )) and it seems
indeed faster overall.
The main goal of this rework is to re-use the same logic as RadeonSI
for paired packets on GFX12 (also GFX11 dGPUs) because it's supposed
to be way faster, especially on GFX12 where the CP is slow. The other
goal is to share more cmdbuf emission between both drivers in the near
future.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34229 >
2025-04-01 06:18:28 +00:00
Samuel Pitoiset
250742519f
radv: disable TC-compatible CMASK with {FMASK,DCC}_DECOMPRESS
...
Because if FMASK_COMPRESS_1FRAG_ONLY is set, the FMASK decompress
operation actually doesn't occur. Note that DCC_DECOMPRESS implicitly
decompresses FMASK.
This fixes an issue on GFX10-GFX10.3 which is uncovered by enabling
VK_EXT_sample_locations.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33639 >
2025-03-28 19:41:07 +00:00
Samuel Pitoiset
8c96b9e306
radv: make sure to always decompress FMASK before expanding it
...
This is actually required even for TC-compatible CMASK images.
VKCTS coverage is missing.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33639 >
2025-03-28 19:41:07 +00:00
Samuel Pitoiset
42b0df447c
radv: inline radv_fast_clear_flush_image_inplace()
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33639 >
2025-03-28 19:41:07 +00:00
Samuel Pitoiset
09d91837e4
radv: rework radv_handle_color_image_transition()
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33639 >
2025-03-28 19:41:07 +00:00
Samuel Pitoiset
7bb3a2363d
radv: add radv_fmask_color_expand()
...
Similar to radv_fmask_decompress()/radv_fast_clear_eliminate() helpers.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33639 >
2025-03-28 19:41:06 +00:00
Samuel Pitoiset
498fc42fa9
radv: add a helper to emit a PKT3_COPY_DATA with an immediate
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34223 >
2025-03-28 07:49:04 +00:00
Samuel Pitoiset
f12bf800e3
radv: add a helper to emit indirect buffer for draws/dispatches
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34223 >
2025-03-28 07:49:04 +00:00