Commit graph

217038 commits

Author SHA1 Message Date
Alyssa Rosenzweig
41cdc548ee nir/builder: infer txf_ms/txl/txb opcodes
I'm not convinced these really should be separate opcodes at all in NIR, but
that's not what this patch is about. Here we just infer the opcodes in the
texture builder to allow simplified usage.

This lets us drop nir_txl() & nir_txb() helpers in favour of nir_tex(.lod/bias)
which is more normalized. We could also drop nir_txf_ms in favour of nir_txf but
that affects more callsites and is not obviously a win (unlike nir_txl which is
used once and nir_txb which is unused).

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39271>
2026-01-14 08:18:15 +00:00
Samuel Pitoiset
76e7a1cde4 ac/sdma: fix stencil only copies on GFX9
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
Use the correct pitch per elements for stencil only surfaces.

Cc: mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39281>
2026-01-14 07:39:02 +00:00
Collabora's Gfx CI Team
bb5521e88a Uprev Piglit to 62d499d63d2b8b29a67efd9d93ed9b6a94d4950e
2842979ebe...62d499d63d

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38962>
2026-01-14 06:57:19 +00:00
Sergi Blanch Torne
f55878e49f ci,piglit: update expectations from gc2000 piglit nightly
Expectation changes for the gc2000 piglit job executed on the nightly run, to
separate them from the changes related with the piglit uprev.

Those results comes from stressing 5 times the `gc2000-piglit` jobs in the
nightly run https://gitlab.freedesktop.org/mesa/mesa/-/pipelines/1580535
and use ci-collate.

Signed-off-by: Sergi Blanch Torne <sergi.blanch.torne@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38962>
2026-01-14 06:57:19 +00:00
Ella Stanforth
9f740b26a6 pvr: Fix bugs in the format table
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
Fixes: 0f0938ed2e ("pvr: Convert format table to indexing with pipe_format")

Acked-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39240>
2026-01-14 00:58:18 +00:00
Rob Clark
39e949434c tu: Move CP_SET_SUBDRAW_SIZE out of SDS
It is not allowed in SDS.  This matters on gen8.

Possibly it wasn't enforced, or worked by luck, on older gens.  But at
least for gen7 and gen8 it is documented as not allowed in SDS (so
working or not may depend on fw version, phase of the moon, etc).

Signed-off-by: Rob Clark <rob.clark@oss.qualcomm.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39254>
2026-01-14 00:06:49 +00:00
Rob Clark
f359b59515 tu: Move PC_DS_PARAM emit after early-exit
Signed-off-by: Rob Clark <rob.clark@oss.qualcomm.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39254>
2026-01-14 00:06:49 +00:00
Rob Clark
0edbafcb37 tu: Track dirty TCS state
Signed-off-by: Rob Clark <rob.clark@oss.qualcomm.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39254>
2026-01-14 00:06:49 +00:00
Rob Clark
9e57b87acb tu: Use correct LRZ flush events on A7XX
Signed-off-by: Rob Clark <rob.clark@oss.qualcomm.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39254>
2026-01-14 00:06:49 +00:00
Rob Clark
e8a1bbb071 freedreno/computerator: Use correct CP_SET_RENDER_MODE
The format of the packet changed with gen8.  This went unnoticed because
in this particular case the contents of the packet work out the same.
But lets be correct about this.

Signed-off-by: Rob Clark <rob.clark@oss.qualcomm.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39254>
2026-01-14 00:06:49 +00:00
Rob Clark
2ea609917b freedreno/a6xx: Fix gen8 blitter resolve
This was overlooked in initial bringup, apparently we don't hit this
case in deqp-gles*.

Fixes: 11364f4ee2 ("freedreno: gen8 support")
Signed-off-by: Rob Clark <rob.clark@oss.qualcomm.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39254>
2026-01-14 00:06:49 +00:00
Rob Clark
284f2ec0cd tu: Fix zero length pkt4
At least on gen8 (unsure if hw or fw change) this makes things pissy and
results in writes to undefined offsets.

Non-zero chance that this was even UB on older gens, but ended up
writing somewhere harmless(ish).

Signed-off-by: Rob Clark <rob.clark@oss.qualcomm.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39254>
2026-01-14 00:06:49 +00:00
Rob Clark
63243bcc3e tu: Fix TU_DRAW_STATE_VB size
vi_bindings_valid doesn't necessarily match the # of VBOs emitted,
resulting an invalid size in the CP_SET_DRAW_STATE packet.  Somehow
this didn't seem to cause problems prior to Dxx (although may
potentially have been a source of flakes, depending on what random
cmds followed in memory).  But caused hangs on Dxx.

See, for example, dEQP-VK.pipeline.fast_linked_library.vertex_input.misc.unused_binding

Fixes: 97da0a7734 ("tu: Rewrite to use common Vulkan dynamic state")
Signed-off-by: Rob Clark <rob.clark@oss.qualcomm.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39254>
2026-01-14 00:06:49 +00:00
Jesse Natalie
7b82b52fd7 nir: Suppress 'potentially uninitialized local pointer variable used' warning
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Mel Henning <mhenning@darkrefraction.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39181>
2026-01-13 23:31:28 +00:00
Valentine Burley
71171abadb venus/ci: Switch Alder Lake job to Xe KMD
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
The Android 16 Cuttlefish build comes with a new Xe minigbm backend that
we can use on the host in the android-angle-venus-anv-adl nightly job.
Also update two outdated comments.

Signed-off-by: Valentine Burley <valentine.burley@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39297>
2026-01-13 22:48:26 +00:00
Samuel Pitoiset
14deea2633 radv: enable SPM for GFX11.5
This adds support for performance counters with RGP on GFX11.5.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39270>
2026-01-13 22:16:40 +00:00
Samuel Pitoiset
adfb1ddebf ac/perfcounter: use GFX11 definition for GFX11.5
Pretty much everything seems similar.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39270>
2026-01-13 22:16:40 +00:00
Dave Airlie
12bceb228a gallivm: let reduce ops use llvm intrinsics
As part of coopmat, I want to make reductions faster as I need
them to implement coopmat.

The intrinsics can't be used directly as we have to take into
account the exec_mask, but it can be done by picking the
a value to insert into the disabled lanes, then calling
the LLVM intrinsic.

Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39225>
2026-01-13 21:47:55 +00:00
Dave Airlie
1e59dbf66b gallivm: swap 1d array coords before casting.
This fixes a llvm validation error seen in dEQP-VK.robustness.robustness2.push.notemplate.rgba32f.dontunroll.nonvolatile.sampled_image.no_fmt_qual.img.samples_1.1d_array.rgen

Cc: mesa-stable
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39225>
2026-01-13 21:47:55 +00:00
Eric Engestrom
7bbbd9bee2 docs: delay 26.0 branchpoint by a week
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39295>
2026-01-13 21:15:58 +00:00
Yiwei Zhang
c8144ae072 venus: vn_wsi_sync_wait to relax queue access for async present
As mentioned in earlier commit, for sem fd export on async present
thread, it occurs after internal queue submissions for all swapchains.
So we can allow queue commands while sync wait w/o violating ordering.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39283>
2026-01-13 19:47:14 +00:00
Yiwei Zhang
6b5a4b55fb venus: enable async presentation along with a perf option
Async presentation can be disabled via VN_PERF=no_async_present

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39283>
2026-01-13 19:47:13 +00:00
Yiwei Zhang
387a49d4f0 venus: vn_wsi_sync_wait to relax chain acquire for async present
For sem fd export on async present thread, it occurs after internal
queue submissions for all swapchains and before presenting to WSI
backend. We can safely unlock the chain acquire lock though we still
have to lock against chain destroy as well as chain async present on
other queues.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39283>
2026-01-13 19:47:13 +00:00
Yiwei Zhang
8392e82298 venus: implement async present
Brief:
1. present info is deep-copied and passed to async present thread
2. normal queue present always waits for async present to take over
3. queue access is protected by async present queue lock
4. chain access is protected by chain locks
5. no perf gain in practice since we haven't allowed parallel queue
   submit or acquire image yet

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39283>
2026-01-13 19:47:12 +00:00
Yiwei Zhang
84e2623300 venus: prepare to flush async queue present
This is to ensure external synchronization for queue operations.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39283>
2026-01-13 19:47:12 +00:00
Yiwei Zhang
f216c109be venus: add a deep copy helper for VkPresentInfoKHR
Below pNext structs are handled:
- VkDeviceGroupPresentInfoKHR
- VkPresentRegionsKHR
- VkPresentIdKHR
- VkPresentId2KHR
- VkSwapchainPresentFenceInfoKHR
- VkSwapchainPresentModeInfoKHR
- VkPresentTimingsInfoEXT

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39283>
2026-01-13 19:47:11 +00:00
Yiwei Zhang
48680d5505 venus: add back vn_QueuePresentKHR
Prepare to not rely on implicit fencing.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39283>
2026-01-13 19:47:10 +00:00
Yiwei Zhang
2c63534896 venus: add chain lock helpers for async present
The helpers will protect chain access during async present.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39283>
2026-01-13 19:47:09 +00:00
Yiwei Zhang
0a2525491d venus: prepare chain access for async present
During async presentation, swapchain is accessed by the async present
thread. With proper queue and chain access locks within venus driver,
we still have to rely on mesa common wsi implementation specifics for
optimal async present performance:

Below need to be protected:
- vkAcquireNextImage2KHR
- vkDestroySwapchainKHR

Below are safe:
- vkGetSwapchainImagesKHR
- vkWaitForPresentKHR
- vkWaitForPresent2KHR
- vkReleaseSwapchainImagesKHR
- VkSwapchainPresentFenceInfoKHR::pFences

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39283>
2026-01-13 19:47:08 +00:00
Yiwei Zhang
ca18b73669 venus: track swapchains
Will be used internally to ensure synchronized host access of swapchain
object.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39283>
2026-01-13 19:47:08 +00:00
Yiwei Zhang
fdb2a8f88f venus: add vn_wsi_sync_wait to handle implicit sync workaround
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39283>
2026-01-13 19:47:07 +00:00
Yiwei Zhang
37b95dc8d6 venus: vn_GetFenceFdKHR no need to block wait
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39283>
2026-01-13 19:47:07 +00:00
Yiwei Zhang
6b3686f49b venus: refactor to avoid nesting vn_QueueSubmit entrypoint
Prepare to wait for async queue present. This helps avoid redundant WSI
flushes.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39283>
2026-01-13 19:47:06 +00:00
Yiwei Zhang
391f11671a venus: remove TP in vn_ResetDescriptorPool
This call can be verbose for some workloads.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39283>
2026-01-13 19:47:06 +00:00
Yiwei Zhang
c8c6ee1dd7 venus: respect VK_SUBOPTIMAL_KHR returned from wsi image acquire
When suboptimal is returned, the fence payload is missed to be installed
unexpectedly. Instead, we can directly return errors from sync import.
With this change, dEQP-VK.wsi.xcb.maintenance1.release_images.* can pass
robustly now.

Fixes: a312bb4285 ("venus: refactor wsi acquire to use semaphore and fence SYNC_FD import")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39283>
2026-01-13 19:47:05 +00:00
John Anthony
50682ec22c pan: Use correct architecture name for v12+
The official name for the architecture after Valhall is 'Arm 5th
Gen'. In code we can use 'FIFTHGEN' or 'fifthgen', while in
documentation and printed output we should use 'Arm 5th Gen' or '5th
Gen'.

Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39267>
2026-01-13 13:28:34 +01:00
Boris Brezillon
f9745d59f0 panvk: Fix the deviceID reported by the driver
Report the -rXpY info in the deviceID.

Reviewed-by: John Anthony <john.anthony@arm.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39267>
2026-01-13 13:28:27 +01:00
John Anthony
6dff2220fa panvk: Add shader core count to deviceName
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39267>
2026-01-13 13:28:24 +01:00
John Anthony
945172f77e panfrost: Add shader core count to RENDERER string
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39267>
2026-01-13 13:28:15 +01:00
Lars-Ivar Hesselberg Simonsen
4db7958edc pan/bi: Change texel buffer limits
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
Increase texel buffer size limit and lower uniform texel buffer alignment limit.

Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38490>
2026-01-13 10:00:58 +01:00
Lars-Ivar Hesselberg Simonsen
a21ee564e2 pan/bi: Make texel buffers use Attribute Buffers
Texel buffers are currently described by a TextureDescriptor, which
leads to restrictive limits on size and alignment. These limits can be
avoided by using AttributeDescriptors + AttributeBufferDescriptors
instead.

This requires us to access texel buffers using attributes rather than
textures, which involves setting up AttributeDescriptors and
AttributeBufferDescriptors in their respective allocations, rather than
the previous TextureDescriptors in the texture allocation.

This is already done for images, so we simply place the texel buffer
attributes after the images and ensure the indexing if offset correctly.

Accessing a texel buffer thus becomes:
1. Get the buffer address and ConversionDescriptor with LEA_ATTR[_IMM]
2. Use LD_CVT to get the value

Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38490>
2026-01-13 10:00:58 +01:00
Lars-Ivar Hesselberg Simonsen
396ad57630 panvk/bi: Add texel buffer branch to meta_desc_copy
Once we move texel buffers to use Attribute Buffers, we'll encode them
as MALI_ATTRIBUTE_TYPE_1D. This means we can store the actual Attribute
Descriptor in what is usually the space for an
ATTRIBUTE_BUFFER_CONTINUATION_3D.

This is good, as we'll need to use the offset functionality of the
Attribute Descriptor to allow lowering
uniformTexelBufferOffsetAlignmentBytes.

This commit therefore creates a path for setting up the Attribute
Descriptor and Attribute Buffer Descriptor for texel buffers in
meta_desc_copy.

Note that this path will not be taken yet, as no images use
MALI_ATTRIBUTE_TYPE_1D.

Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38490>
2026-01-13 10:00:58 +01:00
Lars-Ivar Hesselberg Simonsen
51fe0506f8 pan/bi: Add lowering pass for texel buffer indices
As we'll need to pack texel buffer attributes after image attributes in
panfrost and after vertex attributes in panvk, this adds a lowering pass
to achieve that.

Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38490>
2026-01-13 10:00:58 +01:00
Lars-Ivar Hesselberg Simonsen
40e2c66824 pan/bi: Add texel buf lowering support for Bifrost
This allows for lowering of texel buffer accesses for Bifrost GPUs. Note
that it is not enabled yet.

Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38490>
2026-01-13 10:00:58 +01:00
Lars-Ivar Hesselberg Simonsen
ce3e13774a nir: Add channels to pan texel_buf intrinsics
Rather than loading a single 64bit channel with
load_texel_buf_index_address_pan, load three channels of 32bit each. The
last channel is required by the next commit.

Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38490>
2026-01-13 10:00:58 +01:00
Lars-Ivar Hesselberg Simonsen
46b44cf941 glsl/nir: Add texture_buffers to shader info
While analyzing glsl shaders, keep a bitmask of texture buffers. This
information is needed by panfrost.

Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38490>
2026-01-13 10:00:58 +01:00
Lars-Ivar Hesselberg Simonsen
cdaf6b5d5e panfrost/bi: Fix potential out-of-bounds writes
panfrost_emit_image_attribs is only called when the context's image
state is dirtied and uses the context's image_mask to write attributes
and attribute buffers.

However, it uses the shader's attribute_count (which in this context is
the last bit of the shader's images_used) to calculate the size of the
buffers.

In case more images are bound than the currently bound shader uses, this
would lead to out-of-bounds writes.

This change updates the allocation to use the last bit in the context's
image_mask for size calculations.

It also removes an unused parameter from emit_image_bufs and updates a
parameter name in emit_image_attribs to be more descriptive and match
the documentation.

Fixes: dc85f65e05 ("panfrost: emit shader image attribute descriptors")
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38490>
2026-01-13 10:00:58 +01:00
Lars-Ivar Hesselberg Simonsen
f55606dd6c pan/v9+: Remove unnecessary nir_u2u32 from load_tex_size
nir_u2u32 is presumably a leftover from when the texture size was loaded
from a 16 bit field, but should no longer be necessary now that we're
loading 32 bits

Also renames the "bytes" variable to "size" to align with the descriptor
we're reading.

Fixes: 4573110e4e ("pan/v9+: Make texel buffers use BufferDescriptor")
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38490>
2026-01-13 10:00:58 +01:00
Konstantin Seurer
58a35647e1 radv: Fix crash if proceed comes before initialize
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
"initialize" can be NULL if the rq_proceed was visited before
rq_initialize.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/14626
cc: mesa-stable

Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39251>
2026-01-12 22:34:32 +00:00
Natalie Vock
473cf6046a aco/spill_preserved: Preserve linear VGPRs even if they aren't p_spill operands
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39157>
2026-01-12 21:46:50 +00:00