Job Noorman
e78bd88a06
nir/opt_offsets: add callback to set need_nuw per intrinsic
...
Wether need_nuw is used is currently decided in two different ways:
- globally through the allow_offset_wrap option;
- per intrinsic but hard-coded in opt_offsets.
Make this more flexible by creating a callback that is called per
intrinsic. This will allow backends to decide, on a per-intrinsic basis,
whether need_nuw is needed.
Note that the main use case for ir3 is to add support for opt_offsets
for global memory accesses. Other intrinsics don't need need_nuw but
global memory accesses do.
Signed-off-by: Job Noorman <jnoorman@igalia.com >
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37114 >
2025-09-01 11:25:07 +00:00
Job Noorman
bc03086320
nir/opt_offsets: rename max_offset_data to cb_data
...
We want to add more callbacks and pass the same data.
Signed-off-by: Job Noorman <jnoorman@igalia.com >
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37114 >
2025-09-01 11:25:07 +00:00
David Rosca
e394244a89
radv: Use extra context for video encode queue with multiple VCN instances
...
amdgpu does VCN instance scheduling per context, so we need to use
different context in order to allow decode to run on one instance
and encode on the other one.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36642 >
2025-09-01 10:56:31 +00:00
David Rosca
2667db1114
radeonsi/vcn: Correctly set chroma location with EFC
...
EFC supports horizontal left and vertical top/center.
Reviewed-by: Ruijing Dong <ruijing.dong@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36977 >
2025-09-01 10:30:38 +00:00
Erik Faye-Lund
b8ccbc414a
panvk: enable KHR_maintenance9
...
Seems this just works, so let's enable it.
Unlike maintenance 4 through 8, VK_KHR_maintenance9 doesn't have a hard
dependency on Vulkan 1.1, and can also be supported on Bifrost.
Reviewed-by: Lars-Ivar Hesselberg Simonsen <lars-ivar.simonsen@arm.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36987 >
2025-09-01 10:08:35 +00:00
Erik Faye-Lund
fffd94c550
panvk: respect VK_QUERY_POOL_CREATE_RESET_BIT_KHR-flag
...
Techically speaking, this isn't needed. Allocating a new BO should zero
out the memory in the first place.
But let's do this anyway, because that assumption might change at some
point. Besides, this adds fairly little overhead, and happens in a
non-critical code-path.
Reviewed-by: Lars-Ivar Hesselberg Simonsen <lars-ivar.simonsen@arm.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36987 >
2025-09-01 10:08:35 +00:00
Erik Faye-Lund
e78a3854a5
panvk: enable KHR_maintenance8
...
Seems like we already support everyhing in this extension. Let's enable
it.
Reviewed-by: Lars-Ivar Hesselberg Simonsen <lars-ivar.simonsen@arm.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36987 >
2025-09-01 10:08:35 +00:00
Erik Faye-Lund
e5c54cf33b
panvk: enable KHR_maintenance7
...
In theory, we should be able to support
separateDepthStencilAttachmentAccess, but in practice this occasionally
fails tests. So let's disable it for now, and deal with that feature
down the line.
Reviewed-by: Lars-Ivar Hesselberg Simonsen <lars-ivar.simonsen@arm.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36987 >
2025-09-01 10:08:33 +00:00
Mary Guillemard
e84262b77d
pan/bi: Ensure to merge adjacent ifs after bifrost_nir_lower_shader_output
...
nir_opt_if was unable to optimize some ifs later on so let's get ride of
them as soon as we generated them for simplicity.
Signed-off-by: Mary Guillemard <mary.guillemard@collabora.com >
Acked-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37030 >
2025-09-01 09:42:03 +00:00
Danylo Piliaiev
df83008ed6
tu/a7xx: Don't disable LRZ for empty FS when FDM is used
...
Fixes: 2797069e9a ("tu: Enable LRZ with FDM")
Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37091 >
2025-09-01 09:17:42 +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
4046317040
radv: fix compiler warnings when uploading cmdbuf data might fail
...
Just need to return to avoid possible uninitialized variables.
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:02 +00:00
Samuel Pitoiset
f3e0d4a60b
radv: translate stencil op earlier
...
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:01 +00:00
Samuel Pitoiset
a9cae4d43c
radv: remove unnecessary ternary expressions in radv_emit_depth_stencil_state()
...
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:01 +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
41ad7e6eaf
radv: do not trigger PATCH_CONTROL_POINTS_STATE on GFX12
...
The number of patch control points is emitted as part of VGT_PRIM_STATE.
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
51d16e9aec
radv: dirty the raster state when setting the primitive topology
...
Instead of the dynamic state which is equivalent but abusing
dirty_dynamic for stuff like that isn't a good idea.
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
0e398ddc43
radv: cleanup configuring AUTO_RESET_CNTL
...
There is already a different branch for >= GFX12 and older gens.
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
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
93ffb0db03
radv: add an early return to radv_flush_vertex_descriptors()
...
To prevent mesh shaders to potentially crash. Also remove the assertion
which is now useless.
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:57 +00:00
Samuel Pitoiset
be8ccf6378
radv: use radv_get_vgt_outprim_type() for the NGG SGPRs state
...
Shouldn't change anything either but vgt_outprim_type will be
pre-computed later.
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:56 +00:00
Samuel Pitoiset
d14ff3eafe
radv: use radv_get_vgt_outprim_type() to disable NGGC for points/lines
...
This shouldn't change anything because NGGC for points/lines are
disabled at compile time for TES/GS. It's only unconditionally enabled
for VS because with fast-GPL/ESO, the driver might not know the
primitive topology at compile time and it must be disabled dynamically
later.
Note that NGGC supports culling lines now, so it could be enabled.
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:56 +00:00
Samuel Pitoiset
4cbadc85e0
radv: clear dynamic states earlier
...
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
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
bc9a020dd3
radv: rename NGG culling user SGPRs
...
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
Ashley Smith
b35bb9f5c7
panfrost: Enable shader_atomic_int64 for gallium
...
Vulkan support was added previously, enable gallium support.
Acked-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Acked-by: Mary Guillemard <mary.guillemard@collabora.com >
Signed-off-by: Ashley Smith <ashley.smith@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37051 >
2025-09-01 08:22:10 +00:00
Samuel Pitoiset
0c6b39d4fb
radv: add RADV_GFX12_HIZ_WA to select the HiZ wa behavior on GFX12
...
Will be useful for benchmarking.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36839 >
2025-09-01 07:02:24 +00:00
Samuel Pitoiset
e4ef804013
radv: allow to select a different HiZ workaround on GFX12
...
And describe all of them better.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36839 >
2025-09-01 07:02:24 +00:00
Samuel Pitoiset
4ce8d471b5
radv: fix setting VBO misaligned mask in graphics pipelines
...
Typo.
Fixes: 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/37078 >
2025-09-01 06:24:55 +00:00
Yiwei Zhang
6e1c2e4d83
vulkan: handle wsi private data properly
...
On Android, Vulkan loader implements KHR_swapchain and owns both surface
and swapchain handles. On non-Android, common wsi implements the same and
owns the same. So for both cases, the drivers are unable to handle
vkGet/SetPrivateData call on either a surface or a swapchain.
Inspired by https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37043
Cc: mesa-stable
Acked-by: Yonggang Luo <luoyonggang@gmail.com >
Acked-by: Ryan Zhang <ryan.zhang@nxp.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37064 >
2025-09-01 05:44:40 +00:00
Olivia Lee
564b6fd7f4
vulkan: move internal vulkan pseudo-extensions to a common file
...
This makes it easier to see what all of the assigned values are to check
for collisions, and allows using them in vulkan/util.
Signed-off-by: Olivia Lee <olivia.lee@collabora.com >
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37045 >
2025-09-01 03:50:12 +00:00
Yiwei Zhang
14ce38143d
v3dv: use stack image for v3dv_GetDeviceImageSubresourceLayout
...
This follows the same with v3dv_GetDeviceImageMemoryRequirements.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37103 >
2025-08-31 17:31:21 +00:00
Job Noorman
135ce96669
freedreno/computerator: fix cs builder conversion errors
...
Fix two small errors that slipped in during the conversion to the new cs
builders.
Writing CP_EVENT_WRITE_0_TIMESTAMP caused hangs on a6xx.
Signed-off-by: Job Noorman <jnoorman@igalia.com >
Fixes: 2bff78dcab ("freedreno/computerator: Convert to new cs builders")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37107 >
2025-08-31 16:59:44 +00:00
Job Noorman
07150f9067
ir3: use shared masks for cov when scalar ALU is supported
...
Whenever cov doesn't work and we have to use a mask instead, the mask
was created as a non-shared immediate, preventing the use of the scalar
ALU for the and instruction. Fix this by creating a shared immediate
when the scalar ALU is supported.
Signed-off-by: Job Noorman <jnoorman@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37104 >
2025-08-31 14:42:47 +00:00
Karol Herbst
24c7e247af
rusticl: implement cl_khr_external_semaphore
...
Acked-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36007 >
2025-08-31 13:12:17 +00:00
Karol Herbst
daf777df8c
rusticl: implement cl_khr_semaphore
...
Acked-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36007 >
2025-08-31 13:12:17 +00:00
Karol Herbst
99bf8fc4a8
rusticl: add stubs for semaphores and external_memory
...
The OpenCL CTS are using some of them without their related extension
advertised. Just stub them all out so it's all there.
Acked-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36007 >
2025-08-31 13:12:17 +00:00
Karol Herbst
389577c8bb
radeonsi: implement pipe_screen::semaphore_create
...
Acked-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36007 >
2025-08-31 13:12:16 +00:00
Karol Herbst
51d03ba1b9
zink: implement pipe_screen::semaphore_create
...
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36007 >
2025-08-31 13:12:16 +00:00
Karol Herbst
129f22140c
zink: factor out fence creation function
...
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36007 >
2025-08-31 13:12:16 +00:00
Karol Herbst
64fb3c81af
rusticl/mesa: wire up semaphores
...
Acked-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36007 >
2025-08-31 13:12:16 +00:00
Karol Herbst
cc32c5c2eb
gallium: add pipe_screen::semaphore_create
...
Acked-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36007 >
2025-08-31 13:12:16 +00:00
Karol Herbst
9bacd232b8
gallium/noop: add fence_server_signal
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36007 >
2025-08-31 13:12:16 +00:00
Karol Herbst
712734d600
rusticl/util: add MultiValProperties
...
Acked-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36007 >
2025-08-31 13:12:16 +00:00
Karol Herbst
5d29acf23d
rusticl/event: fix create_and_queue for deps in error states
...
Cc: mesa-stable
Acked-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36007 >
2025-08-31 13:12:16 +00:00
Karol Herbst
a7966f693b
rusticl/device: add DeviceCaps::has_create_fence_fd and use it
...
Device::is_gl_sharing_supported was calling helper_ctx() but that can
block randomly for any reason, so let's not do that.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36007 >
2025-08-31 13:12:16 +00:00
Olivia Lee
9a03aee703
editorconfig: move OpenCL configuration to root
...
All of the OpenCL files in mesa use 3-space indentation. Move the
editorconfig configuration for this to the root so that supported
editors will pick this up automatically.
Signed-off-by: Olivia Lee <olivia.lee@collabora.com >
Reviewed-by: Mary Guillemard <mary@mary.zone >
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37046 >
2025-08-30 22:49:08 -07:00
Marek Olšák
9e16ed7a13
ac/nir: switch nir_load_smem_amd uses to ac_nir_load_smem wrapper
...
ac_nir_load_smem will use load_global_amd
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37101 >
2025-08-30 15:04:32 -04:00
Marek Olšák
4c87d002e3
aco,radeonsi: expand 32-bit shader arg pointers to 64 bits for ACO
...
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37101 >
2025-08-30 15:04:32 -04:00