Commit Graph

195612 Commits

Author SHA1 Message Date
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