Commit graph

212972 commits

Author SHA1 Message Date
Robert Mader
5cc0d1b681 kms-dri-sw: Implement create_mapped()
Following the example of dri_sw_winsys, in order to support
importing client-allocated (u)dmabufs into GL renderers as well
as KMS.
This crucially allows Wayland compositors running on vkms + llvmpipe
to behave much more like on HW GPUs/display engines, making CI testing
more robust and intuitive.

Signed-off-by: Robert Mader <robert.mader@collabora.com>
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37305>
2025-09-13 06:47:58 +00:00
Robert Mader
306feaf3a4 sw_winsys: Add winsys_handle to displaytarget_create_mapped
The main intention is to allow to pass dmabuf handles, however as its
type differs depending on platform, just pass the whole whandle.

Also make use of it in llvmpipe_resource_from_handle(), in preparation
for the next commit.

Signed-off-by: Robert Mader <robert.mader@collabora.com>
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37305>
2025-09-13 06:47:58 +00:00
Daniel Stone
5a7cc8843c ci/panfrost: Add wider EGL/multithread flakes
It seems like everything involving the multithreaded ES2 tests is prone
to flaking out with a segfault. Just wildcard the lot until we can
bottom out what's actually going on.

Signed-off-by: Daniel Stone <daniels@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37305>
2025-09-13 06:47:58 +00:00
Timur Kristóf
c183eb5bc8 radv: Flush L2 before CP DMA copy/fill when CP DMA doesn't use L2
Some checks are pending
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
Guilherme Gallo
66932a95b9 ci: Bump image tags to force recreation of s3 artifacts
This will enforce that the artifacts will be available at `gallo/mesa`
namespace, to get more info please check
https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36836

Signed-off-by: Guilherme Gallo <guilherme.gallo@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37273>
2025-09-12 23:10:19 -03:00
Collabora's Gfx CI Team
db3501ec4f Uprev Piglit to 517270ccca11a795d2f29bd723c362eb6ef9ce8f
28d1349844...517270ccca

Signed-off-by: Guilherme Gallo <guilherme.gallo@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37273>
2025-09-12 23:09:46 -03:00
Collabora's Gfx CI Team
b2e0f57be2 Uprev ANGLE to 1df3b59f8730b56b4770595d4d69f36d5283333f
995c4c4d89...1df3b59f87

Signed-off-by: Guilherme Gallo <guilherme.gallo@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37273>
2025-09-12 23:09:21 -03:00
Caterina Shablia
9ef1cbc16b pan/kmod,panvk: rewrite how alignment for an allocation is chosen
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
The current code assumes 2M and 4k pages. If an allocation request
is larger than 2M, allocation will be aligned to 2M, otherwise to
4k.

The new code is informed by pgsize_bitmap. The allocation is
aligned to a particular page boundary, if the request is at least
as large as that page boundary. Note that given

	pgsize_bitmap = PGSIZE_4K | PGSIZE_2M

2M requests will now be aligned to a 2M boundary, rather than 4k,
which is the case with the current code.

Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37288>
2025-09-13 01:00:26 +00:00
Caterina Shablia
2c5f88a074 panvk: introduce panvk_get_gpu_page_size
This function returns the page size of the VM that we're using. The
GPU page size might be different from what the host process uses.

Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37288>
2025-09-13 01:00:26 +00:00
Caterina Shablia
19daf0c4b1 pan/kmod: introduce pan_kmod_vm::pgsize_bitmap
pgsize_bitmap specifies the page sizes supported by the VM.

Aligning the mappings to huge-r pages can increase access perf.

Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37288>
2025-09-13 01:00:26 +00:00
Caterina Shablia
1a0e7d18a2 pan/kmod,panvk: use uint64_t and not size_t for device sizes
When the host process is 32-bit, size_t can not express all of the
device address space. Note that there's still a lot of code that
uses size_t for device sizes remaining. Cleaning that up is left
for future MRs.

Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37288>
2025-09-13 01:00:26 +00:00
Caterina Shablia
e9f23edf17 panvk: adjust formatting in csf/panvk_queue.h
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37288>
2025-09-13 01:00:26 +00:00
Corentin Noël
63cd410c29 virgl: Skip resource destruction only when there are actually needed references
Suggested by Jan Alexander Steffens in https://gitlab.freedesktop.org/mesa/mesa/-/issues/13844#note_3087461

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/13844
Fixes: 6c1c116a0f
cc: mesa-stable

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37346>
2025-09-13 00:44:49 +00:00
Dylan Baker
7b337e214d anv: remove dead code
This code cannot be reached, since we already checked for
`!valid_samples` and returned `VK_ERROR_FEATURE_NOT_PRESET` in that case
above, and have not altered `valid_samples` since.

Fixes: d5da6980d3 ("anv/sparse: don't support depth/stencil with sparse")
CID: 1662063
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37341>
2025-09-12 23:20:35 +00:00
Sushma Venkatesh Reddy
5f10c1a8fb intel/compiler: generalize workaround script name for broader applicability
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
Renamed brw_nir_trig_workarounds.py to brw_nir_workarounds.py to reflect
its expanded scope beyond just trignometric workarounds.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36990>
2025-09-12 22:32:46 +00:00
Sushma Venkatesh Reddy
fe1d84e083 intel/compiler: apply sqrt workaround for Horizon Forbidden West shader
Added a workaround for a known shader in Horizon Forbidden West that causes
visual corruption on Intel anv driver. The fix clamps fsqrt inputs using
fmax(x, 1e-12) to avoid invalid values. Integrated the workaround via
brw_nir_apply_sqrt_workarounds() and applied it conditionally in the Vulkan
pipeline based on the shader's BLAKE3 hash.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/12555

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36990>
2025-09-12 22:32:46 +00:00
Mike Blumenkrantz
c02d5d79b7 zink: add another tu flake
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37318>
2025-09-12 22:09:50 +00:00
Mike Blumenkrantz
69f90bfe29 zink: add some pre-checks before calling query update/suspend/resume
these trigger lots of context switches which impact perf

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37318>
2025-09-12 22:09:50 +00:00
Mike Blumenkrantz
9d19d7f6de zink: move draw state flag resets into their blocks
incredibly, this shows up in perf

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37318>
2025-09-12 22:09:50 +00:00
Mike Blumenkrantz
74b7b5b661 zink: simplify index type access to normal array
the sizes are 1/2/4, so just use that array index

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37318>
2025-09-12 22:09:50 +00:00
Mike Blumenkrantz
c852c25cdc zink: always use vkCmdBindVertexBuffers2
this cuts out a small amount of overhead in drivers that wrap
vkCmdBindVertexBuffers onto vkCmdBindVertexBuffers2

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37318>
2025-09-12 22:09:50 +00:00
Mike Blumenkrantz
07a7d3627f zink: store last index buffer
this allows skipping some draw-time ops when the same index buffer
is used repeatedly

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37318>
2025-09-12 22:09:50 +00:00
Martin Roukala (né Peres)
03239662c3 zink/ci: raise the job timeout from 5 to 8 minutes
Suggested-by: Daniel Stone <daniels@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37328>
2025-09-12 21:46:55 +00:00
Georg Lehmann
2ac5641473 shader_info: remove gl_subgroup_size enum
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Acked-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37258>
2025-09-12 21:05:17 +00:00
Georg Lehmann
89adefec64 microsoft: switch to new subgroup size info
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Acked-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37258>
2025-09-12 21:05:17 +00:00
Georg Lehmann
8d7b1498cc rusticl: switch to new subgroup size info
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Acked-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37258>
2025-09-12 21:05:17 +00:00
Georg Lehmann
1b5c78d1f7 radeonsi: switch to new subgroup size info
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Acked-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37258>
2025-09-12 21:05:17 +00:00
Georg Lehmann
79d02047b8 intel: switch to new subgroup size info
Reviewed-by: Iván Briano <ivan.briano@intel.com>
Acked-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37258>
2025-09-12 21:05:17 +00:00
Georg Lehmann
04d3b3bde5 mesa,glsl,spirv: set new subgroup size info
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Acked-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37258>
2025-09-12 21:05:17 +00:00
Georg Lehmann
d807f5a351 vulkan: set nir subgroup size shader info
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37258>
2025-09-12 21:05:17 +00:00
Georg Lehmann
ce91b0be08 nir: define new subgroup size info
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37258>
2025-09-12 21:05:17 +00:00
Georg Lehmann
95c2a65662 nir: remove unused shader_info param in nir_create_shader
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37258>
2025-09-12 21:05:17 +00:00
Ian Romanick
1eb4a2f5cd iris: Limit max_shader_buffer_size to INT32_MAX
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
GLSL arrays are sized by signed integers. Other places in the Mesa treat
this value is int32_t. Having the value larger than (uint32_t)INT32_MAX
causes assertion failures in many piglit tests.

Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Closes: #13873
Fixes: 2f8b8649f0 ("iris: Increase max_shader_buffer_size to max_buffer_size")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37282>
2025-09-12 20:45:39 +00:00
Mike Blumenkrantz
e5fb2bc644 ci: bump vvl to another random version
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37241>
2025-09-12 20:16:46 +00:00
Hans-Kristian Arntzen
83bf75e307 anti-lag: Don't force enable every supported feature on device creation.
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
Fixes: 722ffe9a73 ("vulkan: implement VK_AMD_anti_lag as implicit vulkan layer")
Cc: mesa-stable
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37137>
2025-09-12 19:50:14 +00:00
Konstantin Seurer
2a4b1ea69b nir/opt_ray_queries: Cleanup and return if functions is not singular
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37283>
2025-09-12 19:11:02 +00:00
Aaron Ruby
39a5e80a7a gfxstream: address-space graphics requires kParamResourceBlob and kParamHostVisible
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
Make init failure more clear if this is not the case.

Reviewed-by: Gurchetan Singh <gurchetansingh@google.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37285>
2025-09-12 18:38:21 +00:00
Juan A. Suarez Romero
3077cab5a9 broadcom/ci: comment some of the failures
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
Add a comment to failures, either with a link to a fix, or the commit
that introduced the issue.

Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37333>
2025-09-12 16:41:40 +00:00
Mike Blumenkrantz
2d7dd41506 tc: eliminate refcounting for set_shader_buffers
this is no longer necessary

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37310>
2025-09-12 15:47:34 +00:00
Mike Blumenkrantz
9f764486cb cso: unbind vertex buffers when unbinding context
cc: mesa-stable

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37276>
2025-09-12 15:06:15 +00:00
Val Packett
7f556805c1 radv: detect platform:virtio-mmio devices for virtgpu native context
Some checks are pending
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
Christian Meissl
31a627bdc2 panfrost: take reference from pool used for allocation
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
Fixes bo leaks caused by wrong ref counting when
using temporary sampler views.
The leak was observed when playing videos using the
DRM_FORMAT_MOD_VENDOR_MTK tiling format
through gstreamer.

Fixes: 0795f3d7e4 ("panfrost: Add a pool to sampler_view")
Signed-off-by: Christian Meissl <meissl.christian@gmail.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37325>
2025-09-12 11:44:46 +00:00
Mel Henning
3c32ff7fa9 nak: Place most Op structs in Box<>
Between this and the previous few commits, the Box<> has moved from
outside of Instr to inside the Op enum. This provides a few benefits:

 1. We no longer need to allocate for the worst-case Op on every
    instruction. For example, OpIAdd3X is 232 bytes and OpBra is 40
    bytes, which means we can save some memory on OpBra if we only
    allocate those 40 bytes.

 2. The Op discriminant is available without chasing a pointer. The type
    of op is probably the most frequently used field, and this should
    benefit most passes that care about what type of Op they're
    handling.

 3. Small Ops don't need any indirection at all. For example, OpPBk is
    only 4 bytes, which means we can just store it directly in less
    space than a pointer.

Compared to Box<Instr>, this is around a 1.4% shader compile time
improvement.

Acked-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Reviewed-by: Seán de Búrca <leftmostcat@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37315>
2025-09-12 10:33:32 +00:00
Mel Henning
9257f5607f nak: impl SM*Op for Op
We can skip creating an &dyn and instead use a match to dispatch into
the inner type's functions.

Acked-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Reviewed-by: Seán de Búrca <leftmostcat@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37315>
2025-09-12 10:33:32 +00:00
Mel Henning
6f6c309167 nak: Special case Box in derive_from_variants
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37315>
2025-09-12 10:33:32 +00:00
Mel Henning
611c5ebce5 compiler/rust: impl AsSlice for Box
Acked-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Reviewed-by: Seán de Búrca <leftmostcat@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37315>
2025-09-12 10:33:32 +00:00
Seán de Búrca
74696758a2 nak: remove boxing of instructions
Acked-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Reviewed-by: Mel Henning <mhenning@darkrefraction.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37315>
2025-09-12 10:33:32 +00:00
Rob Clark
52e02c2b0b freedreno/a6xx: Fix snorm rounding
See util_format_r8g8b8a8_snorm_pack_rgba_float()

Fixes the remaining failures in images/clFillImage/test_cl_fill_images.

Signed-off-by: Rob Clark <rob.clark@oss.qualcomm.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37319>
2025-09-12 10:10:29 +00:00
Karol Herbst
4f94ca6c96 ac/llvm: fix get_global_address for global atomics
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
They do not have an ACCESS index.

Fixes: 9a33c03654 ("ac/llvm: port load_smem_amd behavior to load_global_amd")
Reviewed-by: Konstantin Seurer <konstantin.seurer@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37292>
2025-09-12 08:55:39 +00:00