David Rosca
8e1d74bbb4
radv/video: Introduce two levels of write_memory support
...
Print warning when using write_memory with firmwares that require
PCIe atomics support.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38184 >
2025-11-03 08:39:59 +00:00
Samuel Pitoiset
f91e5c9cb7
radv: use radv_get_shader_layout() more with ESO
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38106 >
2025-11-03 08:00:35 +00:00
Samuel Pitoiset
e5513826aa
radv: fix creating linked graphics ESOs with a compute shader
...
It's valid to create shader objects with linked VS/FS and with a
compute shader.
This reworks radv_CreateShadersEXT() completely to allow this. Unlinked
shaders are created first, then linked shaders.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/14193
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38106 >
2025-11-03 08:00:35 +00:00
Marek Olšák
5d92c92ce5
Revert ABI breakage "amd: Add user queue HQD count to hw_ip info"
...
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
This reverts commit 56d758d321 .
It broke ABI between Mesa and libdrm, causing crashes due to stack smashing.
See: https://gitlab.freedesktop.org/mesa/libdrm/-/issues/121#note_3172362
Fixes: 56d758d321
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38203 >
2025-11-02 02:54:59 +00:00
Marek Olšák
9125e34372
amd: lower get_ssbo_size in ac_nir_lower_resinfo
...
The code for lowering get_ssbo_size will be different in future chips,
so do it in common code to reduce duplication in the future.
Lower get_ssbo_size to ssbo_descriptor_amd + nir_channel.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38097 >
2025-11-02 01:42:07 +00:00
Samuel Pitoiset
cb4e0c4140
radv: add a workaround for illegal depth/stencil descriptors with No Man's Sky
...
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
Using descriptors with both depth and stencil aspects is illegal in
Vulkan and this hangs the GPU.
Use NULL descriptors to mitigate the issue. Note that AMDVLK also
ignores them.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/13325
Cc: mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38180 >
2025-10-31 15:46:55 +00:00
Georg Lehmann
cbf5c881a5
aco/opcodes: remove VOP3 alias for new gfx12 VOP2 opcodes
...
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38156 >
2025-10-31 08:31:03 +00:00
Georg Lehmann
0f54136730
aco/isel: emit vop2 v_lshlrev_b64 for gfx12+
...
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38156 >
2025-10-31 08:31:03 +00:00
Georg Lehmann
7ac67e2711
aco/isel: emit vop2 v_max_f64 for gfx12+
...
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38156 >
2025-10-31 08:31:03 +00:00
Georg Lehmann
8397b91934
aco/isel: emit vop2 v_min_f64 for gfx12+
...
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38156 >
2025-10-31 08:31:02 +00:00
Georg Lehmann
2e120d4e26
aco/isel: emit vop2 v_mul_f64 for gfx12+
...
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38156 >
2025-10-31 08:31:01 +00:00
Georg Lehmann
86ea462f4d
aco/isel: emit vop2 v_fadd_f64 for gfx12+
...
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38156 >
2025-10-31 08:31:01 +00:00
Georg Lehmann
7d2325b194
aco/lower_to_hw: emit vop2 for gfx12+ fp64 reductions
...
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38156 >
2025-10-31 08:31:00 +00:00
Samuel Pitoiset
968fb06a94
radv,vulkan: replace VK_RENDERING_INPUT_ATTACHMENT_NO_CONCURRENT_WRITES_BIT_MESA
...
The new flag from maintenance10 has similar meaning.
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:23 +00:00
Samuel Pitoiset
c8aaf3f5b5
radv: advertise VK_KHR_maintenance10
...
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:22 +00:00
Samuel Pitoiset
14639898d0
radv: add support for controlling sRGB transfer function with resolves
...
Just need to use UNORM image views.
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:22 +00:00
Samuel Pitoiset
0034f5a948
radv: allow ds<->color copies on compute/transfer queues
...
This should be supported just fine.
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:22 +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
d3924f5bd6
radv: add support for depth/stencil resolves with vkCmdResolve2()
...
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:20 +00:00
Samuel Pitoiset
8306256e2a
radv: allow NULL pSamplesMask with vkCmdSetSampleMaskEXT()
...
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:19 +00:00
Samuel Pitoiset
d5d2a4ad07
radv: implement vkCmdEndRendering2KHR()
...
Common runtime code already does CmdEndRendering()->CmdEndRendering2().
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:19 +00:00
Marek Olšák
9def0a6e5b
ac/nir: set support_indirect_inputs/outputs in common code
...
This fixes mesh shader performance of RADV for GravityMark by stopping
the lowering of ClipDistance[64][4] indirect access for mesh shader outputs.
The perf improvement is 14% on Navi48.
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38155 >
2025-10-31 00:57:46 +00:00
Daniel Schürmann
10be538851
tree-wide: don't call nir_opt_constant_folding after nir_lower_flrp
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37195 >
2025-10-30 19:28:07 +00:00
Daniel Schürmann
ef9ecc4058
nir: add nir_imul_nuw() and nir_imul_imm_nuw() helpers
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37195 >
2025-10-30 19:28:06 +00:00
Samuel Pitoiset
b2badb2b24
radv: ignore dual-source blending when blending isn't enabled for MRT0
...
The Vulkan spec says:
"VUID-vkCmdDraw-maxFragmentDualSrcAttachments-09239
If blending is enabled for any attachment where either the source
or destination blend factors for that attachment use the secondary
color input, the maximum value of Location for any output attachment
statically used in the Fragment Execution Model executed by this
command must be less than maxFragmentDualSrcAttachments"
Which means it must be disabled.
Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/14190
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38107 >
2025-10-30 07:59:50 +00:00
Samuel Pitoiset
14667eef53
radv: fix reserving enough space for emitting the SPM setup
...
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
4096 is an arbitrary but large enough number to emit everything needed.
Fixes: 22d73fc077 ("amd,radv,radeonsi: add ac_emit_spm_setup()")
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38087 >
2025-10-30 07:36:27 +00:00
Samuel Pitoiset
0dcb800a07
radv: remove some RADV_DEBUG deprecated options
...
They have been marked as deprecated in 25.3, so one release cycle
before they are removed completely.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38085 >
2025-10-30 07:16:23 +00:00
Georg Lehmann
a17afd5edd
aco/tests: add some simple fp64 modifier tests
...
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38011 >
2025-10-29 17:57:53 +00:00
Georg Lehmann
a54f95c52f
aco/optimizer: apply fp64 modifiers
...
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38011 >
2025-10-29 17:57:53 +00:00
Georg Lehmann
62e664f8c8
aco/optimizer: fix applying 64bit neg/abs
...
extract is only valid for <=32bit operands.
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38011 >
2025-10-29 17:57:53 +00:00
Georg Lehmann
0c8b885e21
aco/isel: emit v_mul_f64 for fp64 fsat
...
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38011 >
2025-10-29 17:57:52 +00:00
Georg Lehmann
9ece74ce79
aco/isel: emit v_mul_f64 with modifiers for fneg/fabs
...
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38011 >
2025-10-29 17:57:52 +00:00
Georg Lehmann
c84f60ef08
aco/optimizer: replace 64bit mul with 1.0/-1.0 with bitwise instruction if possible
...
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38011 >
2025-10-29 17:57:52 +00:00
Georg Lehmann
dbc3bbdcef
aco/optimizer: rework canonicalized label
...
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
To not rely on register classes, which are ambiguous.
Stats improvements are coming from the new phi handling.
Foz-DB Navi21:
Totals from 92 (0.12% of 79789) affected shaders:
Instrs: 352577 -> 346634 (-1.69%)
CodeSize: 1941236 -> 1933608 (-0.39%); split: -0.44%, +0.04%
VGPRs: 7888 -> 7832 (-0.71%)
Latency: 4364419 -> 4363894 (-0.01%); split: -0.02%, +0.01%
InvThroughput: 1502867 -> 1501871 (-0.07%); split: -0.07%, +0.00%
SClause: 5021 -> 5005 (-0.32%); split: -0.34%, +0.02%
Copies: 18469 -> 18485 (+0.09%); split: -0.16%, +0.24%
Branches: 6131 -> 6119 (-0.20%)
VALU: 267063 -> 261219 (-2.19%)
SALU: 32294 -> 32228 (-0.20%); split: -0.21%, +0.01%
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37867 >
2025-10-29 14:29:21 +00:00
Georg Lehmann
c61ee32034
aco/optimizer: add seperate fp16 abs/neg/fcanonicalize labels
...
In the future, we can't use the register class to detect fp16 vs fp32
because SALU uses s1 for both.
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37867 >
2025-10-29 14:29:21 +00:00
Georg Lehmann
9e9d9c0373
aco/optimizer: re-index labels
...
Everything after and including the omod labels will be removed soon.
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37867 >
2025-10-29 14:29:21 +00:00
Marek Olšák
4799dc9447
ac/surface: pass all ac_compute_surface info via ac_surf_config, not radeon_surf
...
radeon_surf stops being an input to ac_compute_surface. It's only an output
now.
This makes it clear which fields affect ac_compute_surface.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38093 >
2025-10-29 12:50:44 +00:00
Marek Olšák
966cb36722
amd: constify struct radeon_surf
...
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38093 >
2025-10-29 12:50:44 +00:00
Marek Olšák
feaa359b43
ac/surface: move surf_index and fmask_surf_index into ac_addrlib
...
They don't have to be in drivers.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38093 >
2025-10-29 12:50:43 +00:00
Marek Olšák
6857fbba59
ac/surface: pass ac_addrlib* everywhere instead of ADDR_HANDLE
...
ac_addrlib will contain more stuff.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38093 >
2025-10-29 12:50:42 +00:00
Marek Olšák
0e44a5a1c6
radv: set RADEON_SURF_SHAREABLE for surf_index logic
...
use_tile_swizzle uses this flag
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38093 >
2025-10-29 12:50:42 +00:00
Marek Olšák
2bbc7d1db6
radv: move more surf_index logic to use_tile_swizzle
...
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38093 >
2025-10-29 12:50:41 +00:00
Marek Olšák
ca6ba34669
radv: move VK_IMAGE_USAGE_HOST_TRANSFER_BIT checking to ac_surface.c
...
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38093 >
2025-10-29 12:50:40 +00:00
Marek Olšák
20eada1bc4
radv: don't check vk_format_is_depth_or_stencil for surf_index
...
already checked by use_tile_swizzle
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38093 >
2025-10-29 12:50:39 +00:00
Marek Olšák
1271850b9b
radv: don't check VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT for surf_index
...
already checked by use_tile_swizzle
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38093 >
2025-10-29 12:50:39 +00:00
Marek Olšák
f0fde95e20
radv: don't set ac_surf_index::surf_index to NULL
...
ac_surface.c already checks RADEON_SURF_SCANOUT.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38093 >
2025-10-29 12:50:38 +00:00
Marek Olšák
55d222c47b
ac/surface: add helper use_tile_swizzle to consolidate that logic
...
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38093 >
2025-10-29 12:50:35 +00:00
Marek Olšák
484a36302d
amd: don't use non-existent GL1 packet fields on gfx12
...
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38093 >
2025-10-29 12:50:34 +00:00
Marek Olšák
12062110ab
amd: don't use non-existent GLM packet fields on gfx12
...
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38093 >
2025-10-29 12:50:34 +00:00