Samuel Pitoiset
f8153a7c20
radv: emit the VRS surface as part of the framebuffer state on GFX11+
...
No need to delay this and it slightly better for CPU overhead in the
hot draw path.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39675 >
2026-02-06 07:15:10 +00:00
Samuel Pitoiset
65c1c66412
radv: stop delaying decompression passes for feedback loops with DRLR
...
This was an oversight of VK_KHR_dynamic_rendering_local_read which has
been addressed by VK_KHR_maintenance10 which introduced new flags to
give more information to implementations.
The Vulkan spec says:
"VK_RENDERING_ATTACHMENT_INPUT_ATTACHMENT_FEEDBACK_BIT_KHR is
intended to give implementations similar information as a subpass
where an attachment could be used as both a color attachment and
input attachment. Some implementations require extra work to make
this scenario work beyond just considering the image layouts.
Implementations which have no such considerations may treat this
flag as a noop. The primary use case for this flag is to enable
feedback loops inside a single shader."
"Applications are encouraged to use
VK_RENDERING_LOCAL_READ_CONCURRENT_ACCESS_CONTROL_BIT_KHR if
maintenance10 is available and they use feedback loops with
VK_KHR_dynamic_rendering_local_read. Feedback loops are still
allowed when not using the rendering flag, but the performance
implication was an oversight in the original definition of
VK_KHR_dynamic_rendering_local_read."
Because it's clearly defined by the Vulkan spec, let's just pessimize
always to avoid relying on some shaders state which require to do very
late decompression passes. This will allow us to do more cleanups and
optimizations related to the framebuffer. Also note that DRLR is still
a niche feature.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39538 >
2026-02-05 10:55:42 +00:00
David Rosca
2f0d18f6af
radv/video: Use coded size from session params instead of codedExtent
...
cef8eff74d ("radv/video: Override H265 SPS unaligned resolutions")
fixes the case where app specifies resolution with lower than required
alignment. But in case of higher alignment, the stream is still not
going to be correctly decodable.
Use size from session params to set the coded size, instead of using
codedExtent of input image.
Only use codedExtent to calculate padding.
Fixes dEQP-VK.video.encode.h265.quantization_map_delta*
Reviewed-by: Benjamin Cheng <benjamin.cheng@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39529 >
2026-01-28 12:46:29 +00:00
Marek Olšák
f8f4c02c97
radv: rename hiz_his to gfx12_*hiz
...
Only GFX12 will ever have this.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39260 >
2026-01-19 16:58:17 +00:00
Timur Kristóf
cc5190829f
radv: Declare some gang submit functions in radv private header.
...
They will be called from the transfer copy functions.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Konstantin Seurer <konstantin.seurer@gmail.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39057 >
2025-12-23 12:14:59 +00:00
Samuel Pitoiset
c580fc667f
ac,radv: add ac_cmdbuf::context_roll and use it
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38740 >
2025-12-17 15:09:26 +00:00
Samuel Pitoiset
44314e1ea6
ac,radv,radeonsi: add ac_tracked_regs
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38740 >
2025-12-17 15:09:24 +00:00
Samuel Pitoiset
c97bd17d4d
radv: switch to AC_TRACKED_xxx
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38740 >
2025-12-17 15:09:23 +00:00
Samuel Pitoiset
b13003133d
radv: add radv_cmd_state::emitted_rt_pipeline
...
To stop abusing emitted_compute_pipeline for RT.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38782 >
2025-12-04 16:08:01 +00:00
David Rosca
32a02720a8
radv/video: Init session and update rate control in ControlVideoCoding
...
This eliminates the last state we kept in encode video session.
Also fixes changing encode resolution without reset.
Reviewed-by: Benjamin Cheng <benjamin.cheng@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38521 >
2025-11-28 15:35:26 +00:00
Samuel Pitoiset
90f761a7d5
radv: add a new dirty state for the VRS surface state on GFX11+
...
Unlike GFX10.3, on GFX11+ VRS override is part of PA_SC_VRS_OVERRIDE_CNTL
which also controls whether the VRS surface is enabled or not. This
new dirty state will allow us to re-emit that state without re-emitting
the complete framebuffer for VRS flat shading.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38527 >
2025-11-25 07:52:52 +00:00
Samuel Pitoiset
91469bcc30
radv: implement VK_EXT_custom_resolve
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38442 >
2025-11-18 17:03:13 +00:00
Samuel Pitoiset
49128926d6
radv: implement new input attachment information for dynamic rendering
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38043 >
2025-10-31 07:51:21 +00:00
Samuel Pitoiset
18fec61c8d
radv: reverse the logic for NO_CONCURRENT_WRITES_BITS_MESA
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38043 >
2025-10-31 07:51:21 +00:00
Samuel Pitoiset
bddd7919d3
amd,radv,radeonsi: add ac_buffered_sh_regs
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38000 >
2025-10-27 08:30:02 +00:00
Samuel Pitoiset
91bd46d34e
amd,radv,radeonsi: add ac_{gfx11_reg_pair,gfx12_reg}
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38000 >
2025-10-27 08:30:01 +00:00
Samuel Pitoiset
a47952d495
radv: upload and emit dynamic descriptors separately from push constants
...
Dynamic descriptors are rarely used and this will allow to do more
optimizations for push constants, like gathering the size from shaders
themselves instead of using the pipeline layout.
fossils-db (GFX1201):
Totals from 21740 (27.30% of 79646) affected shaders:
Instrs: 11186407 -> 11192061 (+0.05%); split: -0.05%, +0.10%
CodeSize: 59842068 -> 59864412 (+0.04%); split: -0.04%, +0.08%
Latency: 56333136 -> 56325208 (-0.01%); split: -0.03%, +0.02%
InvThroughput: 8576452 -> 8576516 (+0.00%); split: -0.00%, +0.00%
SClause: 279186 -> 279713 (+0.19%); split: -0.06%, +0.25%
Copies: 577854 -> 581735 (+0.67%); split: -0.28%, +0.95%
PreSGPRs: 867163 -> 866409 (-0.09%)
SALU: 1391187 -> 1395055 (+0.28%); split: -0.12%, +0.39%
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37768 >
2025-10-14 15:34:43 +00:00
Timur Kristóf
a0104c5bf6
radv: Add amd_ip_type to radv_cmd_stream
...
Specify an amd_ip_type when initializing radv_cmd_stream
so that we know which packets are valid for the HW IP type
of a given command stream.
This field should be used instead of radv_cmd_buffer::qf when
emitting packets to a command stream.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37775 >
2025-10-14 12:33:13 +00:00
Samuel Pitoiset
34b3dae3b6
radv: make radv_descriptor_get_va() a static function
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37786 >
2025-10-10 13:22:05 +00:00
Samuel Pitoiset
609ae4e647
radv: rename indirect_descriptor_sets to indirect_descriptors
...
With descriptor heap the driver will also have to emit indirect
descriptor heaps in some cases.
Rename couple of things to make them more generic.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37786 >
2025-10-10 13:22:03 +00:00
Samuel Pitoiset
902f5a8618
radv: replace radeon_cmdbuf by ac_cmdbuf completely
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36292 >
2025-10-08 18:00:15 +00:00
Samuel Pitoiset
c8245173a0
radv: pre-compute the line rasterization mode
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36988 >
2025-09-15 19:10:39 +00:00
Samuel Pitoiset
469350328c
radv: pre-compute the number of rasterization samples
...
The number of rasterization samples depend on many various states.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36988 >
2025-09-15 19:10:38 +00:00
Samuel Pitoiset
8233d9d571
radv: rename RADV_CMD_DIRTY_FS_STATE to RADV_CMD_DIRTY_PS_STATE
...
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
It's called PS everywhere else.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37087 >
2025-09-05 10:16:20 +00:00
Samuel Pitoiset
f180682441
radv: add a new dirty bit for emitting a PS epilog
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37087 >
2025-09-05 10:16:19 +00:00
Samuel Pitoiset
211e0823ec
radv: add a new dirty bit for compiling/binding a PS epilog
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37087 >
2025-09-05 10:16:18 +00:00
Samuel Pitoiset
11e5f86a94
radv: add a function to bind a PS epilog
...
The idea would be to separate compiling and emitting PS epilog in
two separate states.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37087 >
2025-09-05 10:16:17 +00:00
Samuel Pitoiset
478cbb6113
radv: remove set but unused has_nggc in radv_cmd_state
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37120 >
2025-09-02 06:18:05 +00:00
Mike Blumenkrantz
213a63f236
radv: ALWAYS_INLINE radv_upload_graphics_shader_descriptors and relateds
...
Reduce the CPU overhead of these functions.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37022 >
2025-09-01 08:53:02 +00:00
Samuel Pitoiset
1cbb9dc846
radv: rename DIRTY_PATCH_CONTROL_POINTS_STATE to DIRTY_LS_HS_CONFIG
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37022 >
2025-09-01 08:53:00 +00:00
Samuel Pitoiset
47d2af814f
radv: pre-compute tessellation num patches/lds size earlier
...
This will also pre-compute when the state is static but I think it's
less error prone like this and also more consistent.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37022 >
2025-09-01 08:52:59 +00:00
Samuel Pitoiset
93d3427543
radv: emit BREAK_BATCH when the PS changes also for ESO
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37022 >
2025-09-01 08:52:58 +00:00
Samuel Pitoiset
12d618ef64
radv: split RADV_CMD_DIRTY_NGGC_STATE in two states
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37022 >
2025-09-01 08:52:55 +00:00
Samuel Pitoiset
d29087d353
radv: use the dynamic state to store vertex input state
...
This is also a dynamic state.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37025 >
2025-08-28 17:46:26 +00:00
Samuel Pitoiset
3eed98d122
radv: move VBO misaligned/unaligned info to radv_vertex_input_state
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37025 >
2025-08-28 17:46:25 +00:00
Samuel Pitoiset
9a5c540b75
radv: use the dynamic state to store vertex binding strides
...
This is a dynamic state. This also replaces the stride by a 16-bit
value because it's required to not exceed
VkPhysicalDeviceLimits::maxVertexInputBindingStride which is defined
to 2048.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37025 >
2025-08-28 17:46:24 +00:00
Samuel Pitoiset
a3f9d85270
radv: add a new state for forced VRS rates
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37005 >
2025-08-27 06:19:14 +00:00
Samuel Pitoiset
19c712c8ef
radv: rename rast_prim to vgt_outprim_type everywhere
...
To avoid confusion between the primitive topology and the output
rasterized primitive.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36912 >
2025-08-25 12:17:38 +00:00
Samuel Pitoiset
12f8508363
radv: add a new dirty bit for the VGT prim state
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36912 >
2025-08-25 12:17:31 +00:00
Samuel Pitoiset
4096009ea1
radv: add a new dirty bit for the patch control points state
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36912 >
2025-08-25 12:17:30 +00:00
Samuel Pitoiset
0c3680bea3
radv: add a new dirty bit for the tess domain origin state
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36912 >
2025-08-25 12:17:29 +00:00
Samuel Pitoiset
db298d1b50
radv: make radv_cmd_state::dirty a 64-bit field
...
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
More RADV_CMD_DIRTY states will be added later.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36901 >
2025-08-22 08:12:05 +00:00
Samuel Pitoiset
772f185fc0
radv: add a new dirty bit for the scissor state
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36901 >
2025-08-22 08:12:05 +00:00
Samuel Pitoiset
54b79d0f50
radv: add a new dirty bit for the sample locations state
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36901 >
2025-08-22 08:12:04 +00:00
Samuel Pitoiset
dc3371332e
radv: add a new dirty bit for the blend constants state
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36901 >
2025-08-22 08:12:04 +00:00
Samuel Pitoiset
1be9cd43a8
radv: add a new dirty bit for the VS prolog state
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36901 >
2025-08-22 08:12:03 +00:00
Samuel Pitoiset
7694ad969e
radv: add a new dirty bit for the depth bias state
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36901 >
2025-08-22 08:12:00 +00:00
Samuel Pitoiset
cbe42a4c43
radv: rename RADV_CMD_DIRTY_TESS_STATE to RADV_CMD_DIRTY_TCS_TES_STATE
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36875 >
2025-08-21 18:36:35 +00:00
Samuel Pitoiset
3d1efbce98
radv: add a new dirty bit for the rast samples state
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36875 >
2025-08-21 18:36:35 +00:00
Samuel Pitoiset
ea6cb5e7bf
radv: add a new dirty bit for the FSR state
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36875 >
2025-08-21 18:36:35 +00:00