Samuel Pitoiset
0bc0ead674
radv: set DRLR mapping info from inheritance info when present
...
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
These two structs are allowed to be in pNext and they should match
the primary command buffer info.
Found while implementing a new extension.
Cc: mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37278 >
2025-09-15 19:29:34 +00:00
Samuel Pitoiset
5907dbfc09
radv: remove redundant RADV_DYNAMIC_RASTERIZATION_SAMPLES
...
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:42 +00:00
Samuel Pitoiset
2084cb59f2
radv: remove redundant RADV_DYNAMIC_POLYGON_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:42 +00:00
Samuel Pitoiset
c1a1aed665
radv: remove redundant RADV_DYNAMIC_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:41 +00:00
Samuel Pitoiset
d8bc573ee9
radv: remove redundant RADV_DYNAMIC_PRIMITIVE_TOPOLOGY
...
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:40 +00:00
Samuel Pitoiset
43d7795274
radv: pre-compute vgt_outprim_type
...
This will allow us to optimize the number of states to emit.
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
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
8d991c2572
radv/meta: remove useless assertion when choosing resolve method
...
The destination image layout is used for depth/stencil resolves and
asserting isn't very useful.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37300 >
2025-09-15 18:52:55 +00:00
Samuel Pitoiset
c8f6b27964
radv/meta: simplify calling depth/stencil resolve helpers
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37300 >
2025-09-15 18:52:55 +00:00
Samuel Pitoiset
39725fc935
radv/meta: simplify barriers for resolves
...
This is equivalent.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37300 >
2025-09-15 18:52:54 +00:00
Samuel Pitoiset
e673ccfcb5
radv/meta: remove useless VK_ACCESS_2_SHADER_WRITE_BIT for subpass resolves
...
This doesn't do anything.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37300 >
2025-09-15 18:52:54 +00:00
Samuel Pitoiset
704fbbb108
radv/meta: rework depth/stencil resolves using graphics
...
This adds a new helper that doesn't depend on the rendering info.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37300 >
2025-09-15 18:52:53 +00:00
Samuel Pitoiset
141beaee4e
radv/meta: rework depth/stencil resolves using compute
...
This adds a new helper that doesn't depend on the rendering info.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37300 >
2025-09-15 18:52:53 +00:00
Samuel Pitoiset
2207d1e732
radv/meta: fix saving push constants for depth/stensil resolves on compute
...
Found by inspection.
Cc: mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37300 >
2025-09-15 18:52:52 +00:00
David Rosca
e1ea3f8bbf
radv/video: Always use OBU_FRAME in AV1 encode
...
Saves couple bytes per frame.
Reviewed-by: Benjamin Cheng <benjamin.cheng@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37176 >
2025-09-15 14:12:17 +00:00
Georg Lehmann
5962659c85
radv: remove uses_rt from radv_shader_info
...
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37294 >
2025-09-14 13:21:21 +00:00
Georg Lehmann
a2d3cbac2a
radv: determine subgroup/wave size early
...
This means we can actually implement varying subgroup size correctly.
It also means that we implement the implicit SPIR-V 1.6 full subgroups
requirement in compute shaders with cswave32/rtwave32.
In the future it will also allow more optimizations that use the subgroup size.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
The only somewhat complex case here is GFX10 geometry shaders, if gewave32 is
used. We then only know the subgroup size when is_ngg is decided, as legacy
GS doesn't support wave32.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37294 >
2025-09-14 13:21:21 +00:00
Georg Lehmann
c4cdbee2e6
radv: remove unused ballot_bit_size from shader info
...
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37294 >
2025-09-14 13:21:21 +00:00
Georg Lehmann
2cda56e8b7
ac/llvm: remove unused ballot size
...
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37294 >
2025-09-14 13:21:20 +00:00
Georg Lehmann
f83a6e6389
radv: add varying subgroup size to shader stage key
...
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37294 >
2025-09-14 13:21:20 +00:00
Timur Kristóf
c183eb5bc8
radv: Flush L2 before CP DMA copy/fill when CP DMA doesn't use L2
...
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
In case the source or destination were previously written
through L2, we need to writeback L2 to avoid the CP DMA accessing
stale data.
However, as the CP DMA doesn't write L2 either, an invalidation
is also needed to make sure other clients don't access stale data
when they read it through L2 after the CP DMA is complete.
Doing an invalidation before the CP DMA operation should take
care of both.
Additionally, radv_src_access_flush also invalidates L2 before
the copied data can be read.
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36820 >
2025-09-13 05:18:28 +00:00
Timur Kristóf
8ef2f492e2
radv: Add comment to document CP DMA prefetch
...
Explain which caches (MALL, L2) the prefetch works with.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36820 >
2025-09-13 05:18:28 +00:00
Val Packett
7f556805c1
radv: detect platform:virtio-mmio devices for virtgpu native context
...
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
VirtIO devices can be configured as platform devices instead of PCI,
which is especially common in microVM projects like libkrun.
Let's allow RADV to probe MMIO virtgpu devices.
Signed-off-by: Val Packett <val@invisiblethingslab.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37281 >
2025-09-12 12:56:46 +00:00
Samuel Pitoiset
a52483d9e7
radv: fix capture/replay with sampler border color
...
The border color index must be captured and returned to the app,
otherwise it's broken if samplers aren't replayed in-order.
Cc: mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37291 >
2025-09-12 06:51:51 +00:00
Samuel Pitoiset
a658be8a24
radv: get NIR options after initializing the physical device cache key
...
Otherwise, radv_split_fma isn't considered.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/13878
Fixes: 7304423b5c ("radv: mark RADV_DEBUG=splitfma as deprecated")
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37293 >
2025-09-12 06:18:26 +00:00
Samuel Pitoiset
b00b8c763b
radv: disable radv_disable_hiz_his_gfx12 for Mafia Definition Edition
...
This should be properly fixed now. Also remove this drirc option which
should no longer be needed.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36174 >
2025-09-11 15:21:50 +00:00
Samuel Pitoiset
ec09ac1501
radv: switch to the full HiZ workaround by default on GFX12
...
The full HiZ workaround is the only one that fixes the issue reliably.
Sadly, the performance results are mixed and sometimes it hurts. To
maintain performance, RADV will opt-in by selecting which workarounds
to apply from drirc.
As we can't know the full list of games that will be affected by a
potential performance regression, users are encouraged to try with
RADV_GFX12_HIZ_WA (see Mesa documentation for more explanations).
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36174 >
2025-09-11 15:21:50 +00:00
Samuel Pitoiset
5f8f4686bf
radv: replace RADV_GFX12_HIZ_WA by a drirc option
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36174 >
2025-09-11 15:21:50 +00:00
Samuel Pitoiset
0a2ef363a8
radv: report an message when RADV_GFX12_HIZ_WA value is invalid
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36174 >
2025-09-11 15:21:50 +00:00
Samuel Pitoiset
ec87f1338f
radv: emit more push shader registers on GFX12
...
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
They are supposed to be slightly faster.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37256 >
2025-09-11 06:47:40 +00:00
Samuel Pitoiset
9039f33a8d
Revert "radv: handle fbfetch output after binding graphics shaders"
...
This is actually wrong because if radv_handle_fbfetch_output() triggers
a decompression pass and graphics shaders (ESO) are saved/restored
they won't be updated because radv_bind_graphics_shaders() was called
before.
This fixes a very recent regression that I noticed while implementing
a new extension.
This reverts commit 9b912f00c7 .
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37194 >
2025-09-11 06:22:20 +00:00
Samuel Pitoiset
b69b953973
radv: add RADV_DEBUG=bo_history
...
This dumps the BO history to /tmp/radv_bo_history.log after each BO
operations.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37062 >
2025-09-11 06:03:15 +00:00
Samuel Pitoiset
1da270fb35
radv/amdgpu: add more helpers for managing virtual BOs
...
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
All these new helpers will make the SMEM PRT workaround better
organized.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37193 >
2025-09-10 14:50:25 +00:00
Samuel Pitoiset
3c4168a3cc
radv/amdgpu: return OOM device when BO mapping fails
...
It's more appropriate than VK_ERROR_UNKNOWN.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37193 >
2025-09-10 14:50:24 +00:00
Konstantin Seurer
7c9e945460
radv,vulkan: Avoid a useless barrier in radv_update_bind_pipeline
...
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36982 >
2025-09-10 08:35:50 +00:00
Konstantin Seurer
a35dfab281
radv: Use vk_barrier_compute_w_to_compute_r more
...
vk_barrier_compute_w_to_compute_r shows up in rgp captures and is less
code.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36982 >
2025-09-10 08:35:50 +00:00
Samuel Pitoiset
c739d836f7
radv: exclude dynamic vertex input stride for the late scissor workaround
...
RADV_DYNAMIC_VERTEX_INPUT_BINDING_STRIDE doesn't emit any context
registers, so it can be excluded for the late scissor workaround to
avoid re-emitting scissors all the time it's dirty.
This fixes a performance regression noticed with Cyberpunk on Vega10,
but other games are likely affected too. The late scissor workaround is
only applied on Raven/Vega10.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/13828
Fixes: d7f401c2bb ("radv: bind the vertex binding strides like a normal dynamic state")
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37252 >
2025-09-10 07:09:48 +00:00
abdelhadi
3a41644165
aco, radv: remove line duplicate
...
Signed-off-by: abdelhadi <abdelhadims@icloud.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37243 >
2025-09-10 06:34:43 +00:00
Georg Lehmann
4143f0725a
radv/nir/lower_cmat: clean up GFX11 ACC->B convert
...
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37213 >
2025-09-09 06:08:55 +00:00
Georg Lehmann
5c0ebcdaef
radv/nir/lower_cmat: clean up gfx12 transpose
...
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37213 >
2025-09-09 06:08:55 +00:00
Georg Lehmann
2da7b4bd0a
radv/nir/lower_cmat: add shuffle_xor_imm helper
...
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37213 >
2025-09-09 06:08:54 +00:00
Christian Gmeiner
1492de1bc3
radv: re-format using clang-format
...
No manual changes here, this is simply running
$ ninja -C build/ clang-format
Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37226 >
2025-09-09 05:48:56 +00:00
Konstantin Seurer
9a93f794cd
radv/bvh: Do not write pointer flag related data on GFX103
...
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
On GFX103, those fields are unused. VK_BUILD_FLAG_PROPAGATE_CULL_FLAGS
is set if the fields are used so it can be used to skip writing them.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37021 >
2025-09-08 12:47:18 +00:00
David Rosca
c9b2c00de6
radv: Enable VK_EXT_ycbcr_2plane_444_formats
...
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/9486
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37174 >
2025-09-08 11:59:37 +00:00
David Rosca
5e7b6df860
radv/video: Support quantization map on VCN5
...
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
VCN5 needs to convert the input map image to internal format.
Reviewed-by: Autumn Ashton <misyl@froggi.es>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37156 >
2025-09-08 10:52:06 +00:00
David Rosca
a03e055cd3
radv/video: Set rate control to default on reset
...
If we never get rate control info, we would treat it as rate control
disabled and use QP value from slice info which is always 0 for default
rate control.
Cc: mesa-stable
Reviewed-by: Autumn Ashton <misyl@froggi.es>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37156 >
2025-09-08 10:52:05 +00:00
Faith Ekstrand
446d5ef103
vulkan: Drop the driver_internal from vk_image_view_init/create()
...
It alwways comes in through the create flags now.
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36957 >
2025-09-05 23:34:14 +00:00
Faith Ekstrand
1897d5d9c9
radv: Use VK_IMAGE_VIEW_CREATE_DRIVER_INTERNAL_BIT_MESA
...
This does mean having to set the flag everywhere, which is a bit
annoying, but I don't think I missed any.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36957 >
2025-09-05 23:34:12 +00:00
Timur Kristóf
78efa4157a
radv: Don't use V_370_PFP or V_028A90_PS_DONE on compute queues
...
The compute queue doesn't support these things.
This change doesn't fix any known issues, but better to be safe.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37121 >
2025-09-05 13:42:56 +00:00