Mike Blumenkrantz
b2123314bd
radv: store vertex prolog simple input check to cmdbuf on vs bind
...
no need to check this again and again
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33806 >
2025-03-06 01:26:02 +00:00
Mike Blumenkrantz
881d94a40a
radv: store num_attributes to shader info
...
this eliminates a util_last_bit from the prolog hotpath
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33806 >
2025-03-06 01:26:02 +00:00
Mike Blumenkrantz
d40dd4bfb7
radv: rewrite radv_get_line_mode() conditional
...
this was weirdly hard to parse
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33806 >
2025-03-06 01:26:02 +00:00
Samuel Pitoiset
7f6e28db26
radv: fix re-emitting fragment output state when resetting gfx pipeline state
...
When switching from pipeline to shader objects.
Cc: mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33840 >
2025-03-03 19:19:33 +00:00
Samuel Pitoiset
aa476f4b52
radv: check HTILE compression for depth/stencil images per level
...
This might avoid some useless decompression passes/cache levels for
levels that can't be compressed.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33665 >
2025-02-28 08:05:14 +00:00
Hans-Kristian Arntzen
13a3f9a972
radv: Always set 0 dispatch offset for indirect CS.
...
Fixes severe glitching in Avowed.
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Natalie Vock <natalie.vock@gmx.de >
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33732 >
2025-02-25 12:17:11 +00:00
Samuel Pitoiset
67c150bf9e
radv: fix missing SQTT barriers for fbfetch color/depth decompressions
...
SQTT layout transitions need to be inside SQTT barrier. Otherwise, this
throws an assertion in RADV and might also crash when the capture is
opened with RGP.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/12664
Cc: mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33719 >
2025-02-25 10:18:42 +00:00
Samuel Pitoiset
361a598b4c
radv: use radv_CmdDispatchIndirect() in the accel struct path
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33599 >
2025-02-19 10:30:36 +00:00
Samuel Pitoiset
9427df23b4
radv: use radv_image::bindings::addr more
...
Also remove radv_image::bindings::offset.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33524 >
2025-02-18 09:49:14 +01:00
Samuel Pitoiset
e0070bc68b
radv: fix adding the VRS image BO to the cmdbuf list on GFX11
...
This might cause random faults.
Cc: mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33584 >
2025-02-18 07:13:07 +00:00
Samuel Pitoiset
84ba15eb05
radv/meta: switch to descriptor buffers
...
The main advantage is to use BDA for texel buffer descriptors.
It might also be slightly faster on the CPU.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33505 >
2025-02-17 16:52:49 +01:00
Samuel Pitoiset
f828695e46
radv: stop relying on VkBuffer for VBO
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33543 >
2025-02-17 07:37:50 +00:00
Samuel Pitoiset
06e47e8776
radv: compute VBO addr at bind time
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33543 >
2025-02-17 07:37:49 +00:00
Samuel Pitoiset
605f94520f
radv: simplify determining VBO size
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33506 >
2025-02-13 08:35:21 +01:00
Timur Kristóf
666f10c174
radv: Add missing includes and remove unnecessary NIR includes.
...
RADV won't compile without the added includes after we
stop including the full nir.h from the VK common functions.
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Acked-by: Faith Ekstrand <faith.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33439 >
2025-02-12 22:33:07 +01:00
Samuel Pitoiset
990244f7e2
radv/meta: use BDA for copying VRS rates to HTILE
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33493 >
2025-02-12 08:02:30 +00:00
Samuel Pitoiset
8df1ffaa78
radv: use radv_buffer::addr more
...
And remove radv_buffer:offset.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33475 >
2025-02-11 15:12:34 +00:00
Samuel Pitoiset
dbb7e3cf88
radv: do not keep track of the streamout binding buffer
...
More like BDA style. For future work.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33404 >
2025-02-07 10:53:37 +01:00
Samuel Pitoiset
03cacc1406
radv: rework passing draw info via radv_draw_info
...
More like BDA style. For future work.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33404 >
2025-02-07 10:53:37 +01:00
Samuel Pitoiset
6f34be88d9
radv: rework passing dispatch info via radv_dispatch_info
...
More like BDA style. For future work.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33404 >
2025-02-07 09:30:22 +01:00
Samuel Pitoiset
b5740d5819
radv: use radv_indirect_dispatch() more
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33404 >
2025-02-07 09:30:22 +01:00
Samuel Pitoiset
ef7e28e7a8
radv: remove redundant drawCount == 0 for indirect mesh/task draws
...
This is already handled in radv_before_taskmesh_draw().
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33404 >
2025-02-07 09:30:22 +01:00
Samuel Pitoiset
8625decbcc
radv: fix fetching draw vertex data from counter buffers with transform feedback
...
counterOffset was just ignored and nobody noticed (missing VKCTS
coverage).
VGT_STRMOUT_DRAW_OPAQUE_OFFSET will do the computation in hw for us.
Cc: mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33407 >
2025-02-07 07:59:39 +00:00
Samuel Pitoiset
9b827556f5
radv: fix adding the BO to cmdbuf list when starting conditional rendering
...
Cc: mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33403 >
2025-02-06 07:13:29 +00:00
Samuel Pitoiset
bd8575ebd3
radv: implement derivative group quads on GFX12
...
It's natively supported by the hw.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33303 >
2025-02-04 08:11:16 +00:00
Samuel Pitoiset
c172f6ef01
radv: fix disabling logic op for srgb/float formats when blending is enabled
...
The Vulkan spec says:
"If logicOpEnable is VK_TRUE, then a logical operation selected by
logicOp is applied between each color attachment and the
fragment’s corresponding output value, and blending of all
attachments is treated as if it were disabled. Any attachments
using color formats for which logical operations are not supported
simply pass through the color values unmodified."
When logic op and blending are both enabled, logic op takes precedence
and values should be passed through unmodified. Also RB+ shouldn't
have any effects when blending is disabled.
Fixes new VKCTS coverage dEQP-VK.pipeline.*.logic_op_na_formats.*.
Fixes: 03b037a0e3 ("radv: disable logic op for float/srgb formats")
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33235 >
2025-01-28 08:19:15 +00:00
Samuel Pitoiset
b4085df31c
radv: re-emit streamout state for GFX12 when the user SGPR changes
...
This is more for consistency than a real fix.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33164 >
2025-01-22 22:54:23 +00:00
Samuel Pitoiset
0901f8fc25
radv: emit the shader buffer query VA on GFX12
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33041 >
2025-01-21 08:42:32 +00:00
Samuel Pitoiset
b942e285c3
radv: fix transform feedback on GFX12
...
The original implementation based on RadeonSI was broken for
pause/resume and for indirect draws with a counter buffer basically.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33017 >
2025-01-21 08:05:20 +00:00
Samuel Pitoiset
3be1e9ee4d
radv: add support for VkMemoryBarrierAccessFlags3KHR
...
There is no flags yet.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33091 >
2025-01-21 07:28:14 +00:00
Samuel Pitoiset
874d34cf1b
radv: fix emitting SPI_SHADER_GS_OUT_CONFIG_PS with NULL FS on GFX12
...
This register wasn't emitted at all if the fragment shader was NULL
and this was causing random GPU hangs.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33030 >
2025-01-16 10:33:46 +00:00
Samuel Pitoiset
bc1374355b
radv: program DB_RENDER_OVERRIDE correctly on GFX12
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32941 >
2025-01-09 07:39:23 +00:00
Samuel Pitoiset
7f50162424
radv: fix programming WALK_ALIGN8_PRIM_FITS_ST on GFX12
...
This also needs to be disabled when a VRS image is used.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32914 >
2025-01-07 18:56:24 +00:00
Samuel Pitoiset
d7bc370b9e
radv: configure the VRS surface swizzle mode on GFX12
...
GFX11 allowed only one swizzle mode for the VRS image but GFX12 allows
all 2D non-linear swizzle modes and PC_SC_VRS_INFO needs to be
configured.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32914 >
2025-01-07 18:56:24 +00:00
Samuel Pitoiset
03b037a0e3
radv: disable logic op for float/srgb formats
...
The Vulkan spec says:
"The application can enable a logical operation between the
fragment’s color values and the existing value in the framebuffer
attachment. This logical operation is applied prior to updating
the framebuffer attachment. Logical operations are applied only
for signed and unsigned integer and normalized integer
framebuffers. Logical operations are not applied to floating-point
or sRGB format color attachments."
Missing VKCTS coverage has been reported.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/12345
Cc: mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32826 >
2025-01-03 09:35:45 +00:00
Samuel Pitoiset
370e392313
radv: fix adding the BO to cmdbuf list when emitting buffer markers
...
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/32840 >
2025-01-03 08:19:23 +00:00
Timur Kristóf
dd00b3f527
radv: Implement FS layer ID input as a system value.
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32641 >
2025-01-02 14:07:51 +00:00
Georg Lehmann
aee0c7274c
amd: switch to FRONT_FACE_ALL_BITS(0)
...
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32791 >
2024-12-30 22:31:34 +00:00
Samuel Pitoiset
0f8d07d355
radv: add support for VK_PRIMITIVE_TOPOLOGY_META_RECT_LIST_MESA
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32750 >
2024-12-29 17:51:02 +00:00
Samuel Pitoiset
2c323f2b8c
radv: rename color output state to fragment output state
...
Now that it also exports depth.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32675 >
2024-12-23 08:09:26 +00:00
Samuel Pitoiset
47dc9ca512
radv: rework emitting SPI_SHADER_Z_FORMAT
...
This fixes a small issue when the Z format in PS epilogs change, like
when alpha-to-coverage is enabled and then disabled.
igned-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32675 >
2024-12-23 08:09:26 +00:00
Samuel Pitoiset
a7d32be1dd
radv: rename GDS queries to emulated queries
...
Emulated is more generic than GDS. GDS will be replaced with SSBO
atomics anyways.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32702 >
2024-12-19 08:08:53 +00:00
Samuel Pitoiset
db5d57e95e
radv: fix getting the number of vertices per prim for the last VGT stage
...
This is only valid for VS.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32701 >
2024-12-19 07:46:28 +00:00
Marek Olšák
4d8a508510
ac/nir: call nir_gather_tcs_info only once for RADV
...
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31673 >
2024-12-18 11:07:59 +00:00
Marek Olšák
8c2f9f0665
radv: switch to the new TCS LDS/offchip size computation
...
to use the same logic as radeonsi. This could be improved, see TODOs.
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31673 >
2024-12-18 11:07:59 +00:00
Timur Kristóf
95ac0f8d76
radv: Reorder FS primitive ID input after layer and viewport.
...
We want to make the implicit VS primitive ID a per-primitive
output attribute, which means that this has to be last.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32270 >
2024-12-12 18:11:47 +00:00
Samuel Pitoiset
c3a050da07
radv: fix alpha-to-coverage with alpha-to-one without MRTZ
...
This injects a MRTZ export with only the alpha channel to select it
with COVERAGE_TO_MASK_ENABLE for alpha-to-coverage.
Co-Authored-by: Rhys Perry <pendingchaos02@gmail.com >
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32583 >
2024-12-12 10:07:25 +00:00
Samuel Pitoiset
553eb1a3fd
radv: fix alpha-to-coverage with alpha-to-one when MRTZ is also exported
...
On AMD hardware, it's possible to export a separate alpha channel for
applying alpha-to-one after alpha-to-coverage and not before.
On GFX11+, it's already mostly supported but alpha needs to be exported
to MRTZ.a and one to MRT0.a. The hw always uses alpha for
alpha-to-coverage from MRTZ.a.
On older generations, the driver needs the same separate alpha export
but it also needs to configure the hardware with COVERAGE_TO_MASK_ENABLE
which selects alpha from MRTZ.a.
This should fix alpha-to-coverage with alpha-to-one when either
depth, stencil or samplemask are exported but it still needs a slightly
different solution without MRTZ. I will fix that later.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32523 >
2024-12-11 10:50:31 +00:00
Alyssa Rosenzweig
972f8aa287
vulkan: rename depth bias graphics states
...
"constant" is a special keyword in OpenCL C, and we'd like to #define it
suitably in host C23 to facilitate compatiblity between host/device headers.
That means we can't have any identifiers named "global" or "constant".
Fortunately, this is the only 'constant' in any file I'm hitting.
To avoid the clash, don't abbreviate "constant factor", use "constant_factor"
instead. For consistency, "slope factor" then becomes "slope_factor".
The new names are longer but match the Vulkan API exactly.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com > [Intel]
Reviewed-by: Mary Guillemard <mary.guillemard@collabora.com > [NVK and panvk]
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com > [V3DV]
Reviewed-by: Simon Perretta <simon.perretta@imgtec.com > [IMG]
Acked-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32505 >
2024-12-06 13:48:26 -05:00
Samuel Pitoiset
8b755840fc
radv: fix initializing HTILE when the image has VRS rates
...
VRS rates should only be preserved for clears, otherwise the HTILE
buffer should be cleared completely.
This fixes some failures/flakes in CI.
Fixes: 8197d744f5 ("radv: Do not overwrite VRS rates when doing fast clears")
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32463 >
2024-12-05 07:34:58 +00:00