Commit graph

218228 commits

Author SHA1 Message Date
Dmitry Osipenko
335d142dad crocus: Use intel_ioctl() consistently
Prepare Crocus code for addition of virtio native context support by
open-coding drm prime ioctls instead of using libdrm helpers and using the
intel_ioctl() helper. This is needed by virtio to be able to override the
ioctls implementation.

Suggested-by: José Roberto de Souza <jose.souza@intel.com>
Reviewed-by: José Roberto de Souza <jose.souza@intel.com>
Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
Signed-off-by: Dmitry Osipenko <dmitry.osipenko@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29870>
2026-02-06 00:15:37 +00:00
Dmitry Osipenko
7aa0917626 anv: Support virtio-gpu native context
Add virtio-gpu native context support to ANV driver.

Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
Reviewed-by: José Roberto de Souza <jose.souza@intel.com>
Signed-off-by: Dmitry Osipenko <dmitry.osipenko@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29870>
2026-02-06 00:15:37 +00:00
Dmitry Osipenko
d6f36224eb iris: Support virtio-gpu native context
Add virtio-gpu native context support to Iris driver.

Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
Reviewed-by: José Roberto de Souza <jose.souza@intel.com>
Signed-off-by: Dmitry Osipenko <dmitry.osipenko@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29870>
2026-02-06 00:15:37 +00:00
Dmitry Osipenko
652e33b829 iris: Open-code drm prime ioctls
Prepare Iris code for addition of virtio native context support by
open-coding drm prime ioctls instead of using libdrm helpers. This
is needed by virtio to be able to override the ioctls implementation.

Suggested-by: José Roberto de Souza <jose.souza@intel.com>
Reviewed-by: José Roberto de Souza <jose.souza@intel.com>
Acked-by: José Roberto de Souza <jose.souza@intel.com>
Signed-off-by: Dmitry Osipenko <dmitry.osipenko@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29870>
2026-02-06 00:15:37 +00:00
Dmitry Osipenko
b06d759a93 intel: Add virtio-gpu native context
Add virtio-intel native DRM context base preparatory code. Virtio-intel
works by passing ioctl's from guest to host for execution, utilizing
available VirtIO-GPU infrastructure.

This patch adds initial experimental native context support using i915
KMD UAPI.

Compile Mesa with -Dintel-virtio-experimental=true to enable virtio-intel
native context support.

Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
Acked-by: José Roberto de Souza <jose.souza@intel.com>
Signed-off-by: Dmitry Osipenko <dmitry.osipenko@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29870>
2026-02-06 00:15:37 +00:00
Dmitry Osipenko
59fc94ffd2 intel: Check for userptr UAPI presence
Check whether userptr UAPI presents and disable userptr features if not.
Kernel i915 driver has config option that disables userptr ioctl. The
ioctl also may not present in a case of virtio native context driver.

Reviewed-by: José Roberto de Souza <jose.souza@intel.com>
Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
Signed-off-by: Dmitry Osipenko <dmitry.osipenko@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29870>
2026-02-06 00:15:36 +00:00
Mauro Rossi
4d39741119 lavapipe: Fix gnu-empty-initializer error in NV_cooperative_matrix2 reductions
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
Fixes the following building errors happening with clang:

FAILED: src/gallium/frontends/lavapipe/liblavapipe_st.a.p/nir_lvp_nir_lower_cooperative_matrix.c.o
...
../src/gallium/frontends/lavapipe/nir/lvp_nir_lower_cooperative_matrix.c:457:45: error: use of GNU empty initializer extension [-Werror,-Wgnu-empty-initializer]
   nir_def *comps[NIR_MAX_VEC_COMPONENTS] = {};
                                            ^
../src/gallium/frontends/lavapipe/nir/lvp_nir_lower_cooperative_matrix.c:506:45: error: use of GNU empty initializer extension [-Werror,-Wgnu-empty-initializer]
   nir_def *comps[NIR_MAX_VEC_COMPONENTS] = {};
                                            ^
2 errors generated.

Fixes: 2db1a624 ("lavapipe: add NV_cooperative_matrix2 reductions support")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39652>
2026-02-05 23:59:12 +00:00
Mauro Rossi
2457e0caf3 lavapipe: Fix gnu-empty-initializer error in NV_cooperative_matrix2 conversions
Fixes the following building errors happening with clang:

FAILED: src/gallium/frontends/lavapipe/liblavapipe_st.a.p/nir_lvp_nir_lower_cooperative_matrix.c.o
...
../src/gallium/frontends/lavapipe/nir/lvp_nir_lower_cooperative_matrix.c:113:45: error: use of GNU empty initializer extension [-Werror,-Wgnu-empty-initializer]
   nir_def *comps[NIR_MAX_VEC_COMPONENTS] = {};
                                            ^
../src/gallium/frontends/lavapipe/nir/lvp_nir_lower_cooperative_matrix.c:114:49: error: use of GNU empty initializer extension [-Werror,-Wgnu-empty-initializer]
   nir_def *out_comps[NIR_MAX_VEC_COMPONENTS] = {};
                                                ^
2 errors generated.

Fixes: 58f7fa3f ("lavapipe: add NV_cooperative_matrix2 conversions support")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39652>
2026-02-05 23:59:12 +00:00
Timothy Arceri
da6c3ad237 nir: speedup nir_find_inlinable_uniforms()
Here we speedup nir_find_inlinable_uniforms() by making sure we only
check a src is inlinable once.

If we have a bunch of nested if-statements where the conditions keep
building on the alu chains of previous conditions we can end up
with exponential processing times due to repeatedly processing the
same srcs over and over.

A big cause of the exponential grow seems to be instructions like
`ffma %594, %594, %599` or `fmul %600, %600` where each essentially
causes us to process the entire previous part of the chain
twice.

Shaders such as that in issue #14663 took multiple minutes to
compile previously, calling collect_src_uniforms billions of times
and now compile within a second with this change.

Closes: mesa/mesa#14663

Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39664>
2026-02-05 23:19:29 +00:00
Timothy Arceri
aaea962808 nir: update asserts in inline uniforms
collect_src_uniforms() is now only called internally and uni_offsets
should never be NULL.

Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39664>
2026-02-05 23:19:29 +00:00
Timothy Arceri
0410377b63 nir: make nir_add_inlinable_uniforms() private
Hasn't been used externally since e93592dc62

Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39664>
2026-02-05 23:19:28 +00:00
Timothy Arceri
257875034d nir: make nir_collect_src_uniforms() private
Hasn't been used externally since e93592dc62

Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39664>
2026-02-05 23:19:28 +00:00
Rudi Heitbaum
1acc96b8cb mesa: retain const qualifier from pointer
Since glibc-2.43:

For ISO C23, the functions bsearch, memchr, strchr, strpbrk, strrchr, strstr, wcschr, wcspbrk, wcsrchr, wcsstr and wmemchr that return pointers into their input arrays now have definitions as macros that return a pointer to a const-qualified type when the input argument is a pointer to a const-qualified type.

https://lists.gnu.org/archive/html/info-gnu/2026-01/msg00005.html

Resolves the following warnings:
    src/mesa/glapi/glapi/gen/enums.c: In function '_mesa_enum_to_string':
    src/mesa/glapi/glapi/gen/enums.c:7799:8: warning: assignment discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
     7799 |    elt = bsearch(& nr, enum_string_table_offsets,
          |        ^

    ../src/egl/main/egldispatchstubs.c: In function 'FindProcIndex':
    ../src/egl/main/egldispatchstubs.c:52:7: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
       52 |       bsearch(name, __EGL_DISPATCH_FUNC_NAMES, __EGL_DISPATCH_COUNT,
          |       ^~~~~~~

Signed-off-by: Rudi Heitbaum <rudi@heitbaum.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39707>
2026-02-05 22:01:56 +00:00
Rob Clark
7e8a61cd7b freedreno/decode: Emulate CP_MEM_WRITE
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
This will let us see actual cmdstream, in cases like FDM where
CP_MEM_WRITE is used for cmdstream patching.

Signed-off-by: Rob Clark <rob.clark@oss.qualcomm.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39704>
2026-02-05 21:47:47 +00:00
Rob Clark
017d453525 freedreno/decode: Allow raw access to pm4 packets
In some cases, like CP_MEM_WRITE, the rest of the payload is just
dwords, not described in xml.  Allow raw access.

Signed-off-by: Rob Clark <rob.clark@oss.qualcomm.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39704>
2026-02-05 21:47:46 +00:00
Rob Clark
955aa61997 freedreno/decode: Handle strips
These paths are used for lua access to pm4 packets.  A number of which
use <strip> for variants.

Signed-off-by: Rob Clark <rob.clark@oss.qualcomm.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39704>
2026-02-05 21:47:46 +00:00
Rob Clark
8364d361b5 freedreno/decode: Expose gpu buffers to lua
bos[gpuaddr] will return dword value at specified gpu address, and
bos.write(gpuaddr, dword) will write the dword value.

Signed-off-by: Rob Clark <rob.clark@oss.qualcomm.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39704>
2026-02-05 21:47:46 +00:00
Zan Dobersek
5b33ee9f0b tu/kgsl: wait-only submit handling should not ignore sparse bind commands
Commit cf4bd2e412 added a fast path for handling no-command submits to
accommodate a kernel behavior quirk. Sparse support was complete before
that change but landed afterwards, leaving sparse submits that don't have
command buffers but do have sparse bind commands to take that fast path,
leaving the bind commands unhandled. The condition for the fast path is
fixed to address that.

Signed-off-by: Zan Dobersek <zdobersek@igalia.com>
Fixes: 71ef46717c ("tu/kgsl: Add support for sparse binding")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39695>
2026-02-05 21:19:47 +00:00
Ian Forbes
ffc6fb6377 svga: Enable GL_ARB_vertex_type_10f_11f_11f_rev
This was a required vertex format in DX10 and should be available with
VGPU10.

https://learn.microsoft.com/en-us/windows/win32/direct3ddxgi/format-support-for-direct3d-feature-level-10-0-hardware#dxgi_format_r11g11b10_floatfns-26

Signed-off-by: Ian Forbes <ian.forbes@broadcom.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39693>
2026-02-05 20:48:58 +00:00
Yuxuan Shui
8deba07452 vulkan/wsi/x11: Make sure error is returned if create_swapchain fails
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
After successful initialization of images, `result` is `VK_SUCCESS`. But
there are still a few failure paths, in which cases
x11_surface_create_swapchain will return `VK_SUCCESS` but not actually
allocate a swapchain.

Signed-off-by: Yuxuan Shui <yshuiv7@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37800>
2026-02-05 19:15:19 +00:00
Calder Young
95e471e558 anv: Avoid dumping BVH before command buffer is submitted
Fixes a race condition where a BVH will be dumped before its command buffer is
actually submitted if a different command buffer completes between the time the
BVH dump is recorded and the time the command buffer is actually submitted.

Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com>
Fixes: 1b55f101 ("anv/bvh: Dump BVH synchronously upon command buffer completion")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39599>
2026-02-05 18:47:10 +00:00
Mel Henning
2f6116e419 zink: Use NMin/NMax for fmin/fmax if nan_preserve
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Acked-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39682>
2026-02-05 17:19:05 +00:00
Mel Henning
e5d32d4f4a zink: Use float_controls2
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Acked-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39682>
2026-02-05 17:19:05 +00:00
Mel Henning
091426142c zink: Generalize spirv_builder_emit_exec_mode_id3
to take any number of ids

Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Acked-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39682>
2026-02-05 17:19:04 +00:00
Mel Henning
9189a70598 zink: Emit float controls for preserve_denorms too
Fixes: 6afa1b3bad ("zink: handle denorm preserve execution modes")
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39682>
2026-02-05 17:19:03 +00:00
Utku Iseri
678d7db217 zink: emulate clip distance
This adds emulation of clip distances using the
common lower_clip_fs pass and moving the clip distance
array to two regular varyings.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39697>
2026-02-05 16:19:57 +00:00
Martin Roukala (né Peres)
8fe2280e47 ci: disable the valve-kws farm
We are having problem establishing connections to
gitlab.freedesktop.org, even though performance once the link is
established is perfectly fine (10+ MB/s)... so let's disable the
farm until we can figure it out.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39719>
2026-02-05 16:15:50 +00:00
Luigi Santivetti
6a65b5dd4d pvr: fix src/dst image formats for DS resolve ops
This change only addresses the clear of one channel via the TQ for DS
formats. This is exercised by VK_KHR_depth_stencil_resolve in two ways:
resolve depth and clear stencil, or resolve stencil and clear depth.

When resolving, we need to propagate source and destination format if the
DS format is combined because we need either combination of both for cases
where the DSMERGE and PICKD flags are set.

- Resolve op
  + For combined DS formats
    1. resolve the stencil from the source merging it with the depth of the
       destination. Leave source depth unchanged.
    2. resolve the depth from the source merging it with the stencil of the
       destination. Leave the source stencil untouched.
  + For non-combined formats
    1. we can use the source for all aspects / channels, this ensures the
       size to blit the source to is compatible with the destination. Note
       that the TQ doesn't require src/dst to be single channel formats.

- Non resolve op
  + Not part of this change.

Fix for deqp:
  dEQP-VK.renderpass2.depth_stencil_resolve.*.*.d24_unorm_s8_uint.compatibility*
  dEQP-VK.renderpass2.depth_stencil_resolve.*.*.d32_sfloat_s8_uint.compatibility*

Signed-off-by: Luigi Santivetti <luigi.santivetti@imgtec.com>
Co-authored-by: Leon Perianu <leon.perianu@imgtec.com>
Reviewed-by: Frank Binns <frank.binns@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39654>
2026-02-05 16:01:38 +00:00
Luigi Santivetti
407e692c3c pvr: fix logic for setting DSMERGE and PICKD
In order to set DSMERGE, and eventually PICKD-epth, both the source and
the destination have to be combined D/S formats.
Removed tests that now currently pass

Fix for deqp:
  dEQP-VK.renderpass2.depth_stencil_resolve.*.*.d32_sfloat_s8_uint.*
  dEQP-VK.renderpass2.depth_stencil_resolve.*.*.d24_unorm_s8_uint.*

Signed-off-by: Luigi Santivetti <luigi.santivetti@imgtec.com>
Reviewed-by: Frank Binns <frank.binns@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39654>
2026-02-05 16:01:38 +00:00
Simon Perretta
05e6d6ca83 pvr: handle SRC_SMRG_D32S8_D32S8 in tq shader
Signed-off-by: Simon Perretta <simon.perretta@imgtec.com>
Reviewed-by: Frank Binns <frank.binns@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39654>
2026-02-05 16:01:37 +00:00
Leon Perianu
5552d5d1a9 pvr: fix logic for when to reset fill blit
Fix loop condition in pvr_isp_ctrl_stream to reset fill_blit
when processing fill blits with sources.

Fix for deqp:
  dEQP-VK.renderpass2.depth_stencil_resolve.image_2d_17_1.*.d24_unorm_s8_uint.*
  dEQP-VK.renderpass2.depth_stencil_resolve.image_2d_49_13.*.d24_unorm_s8_uint.*
  dEQP-VK.renderpass2.depth_stencil_resolve.image_2d_5_1.*.d24_unorm_s8_uint.*
  dEQP-VK.renderpass2.depth_stencil_resolve.image_2d_8_32.*.d24_unorm_s8_uint.*
  dEQP-VK.renderpass2.depth_stencil_resolve.image_2d_8_32.*.d24_unorm_s8_uint.*

Signed-off-by: Leon Perianu <leon.perianu@imgtec.com>
Reviewed-by: Frank Binns <frank.binns@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39654>
2026-02-05 16:01:37 +00:00
Erik Faye-Lund
f894153142 panfrost: expose EXT_shader_image_load_store
Reviewed-by: Lars-Ivar Hesselberg Simonsen <lars-ivar.simonsen@arm.com>
Acked-by: Daniel Stone <daniels@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39686>
2026-02-05 15:40:19 +00:00
Erik Faye-Lund
394d5928bd panfrost: also check for PAN_BIND_STORAGE_IMAGE
Since d95423686f ("pan/format: Add PAN_BIND_STORAGE_IMAGE flag"), we
have a separate flag for PAN_BIND_STORAGE_IMAGE, and can now also
properly check for this.

Reviewed-by: Lars-Ivar Hesselberg Simonsen <lars-ivar.simonsen@arm.com>
Acked-by: Daniel Stone <daniels@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39686>
2026-02-05 15:40:19 +00:00
Erik Faye-Lund
4361977291 panfrost: group image load/store flags a bit
There's no good reason we need to keep these separated, they're the same
feature from a HW point-of-view.

Reviewed-by: Lars-Ivar Hesselberg Simonsen <lars-ivar.simonsen@arm.com>
Acked-by: Daniel Stone <daniels@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39686>
2026-02-05 15:40:19 +00:00
Tapani Pälli
331238e44e iris: set DisableAnyMCTRresponsefix to zero on init
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
This is to make sure early culling related Wa_16020518922 is enabled
properly.

Cc: mesa-stable
Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39712>
2026-02-05 15:09:02 +00:00
Tapani Pälli
9aaed82543 anv: set DisableAnyMCTRresponsefix to zero on init
This is to make sure early culling related Wa_16020518922 is enabled
properly.

Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/14204
Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39712>
2026-02-05 15:09:02 +00:00
Tapani Pälli
61b5e91bba intel/genxml: add CHICKEN_RASTER_2 with required bit for Xe3
Cc: mesa-stable
Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39712>
2026-02-05 15:09:02 +00:00
Caterina Shablia
03ea0cac36 panvk: leave a TODO for U-interleaved copies
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39657>
2026-02-05 12:37:52 +00:00
Caterina Shablia
5ea7f1a04d pan/lib: use interleaved 64k in more cases
Interleaved 64k should be better than U-interleaved for most
workloads so use it if we can and memory waste isn't too bad.

This also improves perf in cases when we can't use U-interleaved,
but can use interleaved 64k, such as BLOCK_TEXEL_VIEW_COMPATIBLE
images. Currently we'll end up picking linear, which is strictly
worse than interleaved 64k when it comes to perf.

Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39657>
2026-02-05 12:37:52 +00:00
Caterina Shablia
e2256ed15a panvk: never report identicalMemoryLayout
Currently it's not easy to know which modifier will be picked for
an image and thus end up causing a layout difference. The next
commit causes us, for certain images, to choose interleaved 64k if
HOST_TRANSFER is not specified, but choose U-interleaved when it
is, causing a layout difference.

See https://gitlab.freedesktop.org/panfrost/mesa/-/issues/281 for
details.

Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39657>
2026-02-05 12:37:52 +00:00
Christian Gmeiner
9e3967ea9b panvk: Support VK_EXT_zero_initialize_device_memory
Advertise the extension and enable the zeroInitializeDeviceMemory
feature. The panfrost and panthor kernel drivers uses drm_gem_shmem which
gets zeroed pages from the shmem subsystem, so memory is already
zero-initialized by default.

VK_IMAGE_LAYOUT_ZERO_INITIALIZED_EXT is treated the same as
VK_IMAGE_LAYOUT_UNDEFINED. Since panvk doesn't use image layouts
(layout transitions are no-ops), no special barrier handling is
needed for either layout.

Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39658>
2026-02-05 11:56:38 +00:00
Christian Gmeiner
3f1bdfa8b4 pan/format: Disable storage image support for compressed formats
Compressed formats cannot support storage operations on any Mali
generation:

- On Bifrost (v6-v7), the texture descriptor contains the compressed
  format directly, and the hardware doesn't support storage operations
  on compressed formats.

- On Valhall (v9+), storage operations would require
  InternalConversionDescriptors, which cannot describe compressed
  formats.

Storage operations on compressed formats don't make practical sense
anyway - each pixel write would require full block recompression.

Remove PAN_BIND_STORAGE_IMAGE from the FMTC macro used by all
compressed format definitions.

Fixes crashes in dEQP-VK.memory.zero_initialize_device_memory tests
that attempt to use compressed formats as storage images.

Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39658>
2026-02-05 11:56:38 +00:00
Iago Toral Quiroga
42bd467906 broadcom/compiler: inform NIR scheduler about 0 cost ALU instructions
Some ALU instructions will likely end up being copy propagated in the
backend, which means they would not have any cost. This helps the
scheduler make better decisions for the new open-coded patterns
produced in NIR for extracts (i.e. unpack_2x16) with MR#39511.
With this (together with previous patches) we manage to produce similar
shader-db results as with the unpack_2x16 NIR extract opcodes that
MR#39511 will drop.

Reviewed-by: Juan A. Suarez <jasuarez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39687>
2026-02-05 11:29:42 +00:00
Iago Toral Quiroga
f93e8e76e9 broadcom/compiler: optimize alu(shr(x, 16).l) to alu(x.h)
We need this to produce optimal code in the backend for sequences
like this:

   32   %10 = ushr %5.x, %9 (0x10)
   16   %14 = u2u16 %10
   32   %17 = f2f32 %14

With such code, our copy propagation pass will drop the u216 and
with this patch we will be able to drop the ushr too.

This pattern can show up for VK_KHR_16bit_storage when we successfully
vectorize 16-bit loads into 32-bit loads, but will become a lot more
common after MR#39511 lands, since that would also affect things like
16-bit TMU loads, which are more common.

Reviewed-by: Juan A. Suarez <jasuarez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39687>
2026-02-05 11:29:42 +00:00
Iago Toral Quiroga
4753a296f9 broadcom/compiler: don't always clear undefined bits from sub-32 integers
We only really use sub-32bit integers in conversions, so we can skip
clearing the MSB bits when we produce them by converting from larger types
(leaving these bits undefined) and only clear them when we convert from them
to larger types, since we don't have native opcodes to do these conversions
that would only access relevant bits, at least on Pi4. Also, document the
cases where we could do better for Pi5.

Reviewed-by: Juan A. Suarez <jasuarez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39687>
2026-02-05 11:29:42 +00:00
Iago Toral Quiroga
c589268b5c broadcom/compiler: drop unnecessary MOV
Reviewed-by: Juan A. Suarez <jasuarez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39687>
2026-02-05 11:29:41 +00:00
Erik Faye-Lund
2f957d5bad pan/ci: clean up t720 expectations
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
There's a lot that has been fixed, but nobody has been paying attentions
to t720. Let's update the results.

In addition, we used to do skips here instead of flakes. Not sure why,
flakes works just fine.

Reviewed-by: Lars-Ivar Hesselberg Simonsen <lars-ivar.simonsen@arm.com>
Acked-by: Daniel Stone <daniels@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39711>
2026-02-05 11:14:50 +00:00
Samuel Pitoiset
65c1c66412 radv: stop delaying decompression passes for feedback loops with DRLR
This was an oversight of VK_KHR_dynamic_rendering_local_read which has
been addressed by VK_KHR_maintenance10 which introduced new flags to
give more information to implementations.

The Vulkan spec says:
    "VK_RENDERING_ATTACHMENT_INPUT_ATTACHMENT_FEEDBACK_BIT_KHR is
     intended to give implementations similar information as a subpass
     where an attachment could be used as both a color attachment and
     input attachment. Some implementations require extra work to make
     this scenario work beyond just considering the image layouts.
     Implementations which have no such considerations may treat this
     flag as a noop. The primary use case for this flag is to enable
     feedback loops inside a single shader."

    "Applications are encouraged to use
     VK_RENDERING_LOCAL_READ_CONCURRENT_ACCESS_CONTROL_BIT_KHR if
     maintenance10 is available and they use feedback loops with
     VK_KHR_dynamic_rendering_local_read. Feedback loops are still
     allowed when not using the rendering flag, but the performance
     implication was an oversight in the original definition of
     VK_KHR_dynamic_rendering_local_read."

Because it's clearly defined by the Vulkan spec, let's just pessimize
always to avoid relying on some shaders state which require to do very
late decompression passes. This will allow us to do more cleanups and
optimizations related to the framebuffer. Also note that DRLR is still
a niche feature.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39538>
2026-02-05 10:55:42 +00:00
Arjob Mukherjee
58c7437d3a pvr: Fixup for deqp-vk.api 2d.optimal.* conformance
Its no longer an error for depth and stencil formats to have invalid
accumulator format.

Fixes the following tests:
* dEQP-VK.api.info.image_format_properties.2d.optimal.d16_unorm
* dEQP-VK.api.info.image_format_properties.2d.optimal.d24_unorm_s8_uint
* dEQP-VK.api.info.image_format_properties.2d.optimal.d32_sfloat
* dEQP-VK.api.info.image_format_properties.2d.optimal.d32_sfloat_s8_uint
* dEQP-VK.api.info.image_format_properties.2d.optimal.s8_uint
* dEQP-VK.api.info.image_format_properties.2d.optimal.x8_d24_unorm_pack32

Backport-to: 26.0
Signed-off-by: Arjob Mukherjee <arjob.mukherjee@imgtec.com>
Tested-by: Icenowy Zheng <zhengxingda@iscas.ac.cn>
Reviewed-by: Simon Perretta <simon.perretta@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39626>
2026-02-05 10:18:09 +00:00
Erico Nunes
f3131bc145 Revert "ci: lima farm maintenance"
This reverts commit ca1d59d813.

Signed-off-by: Erico Nunes <nunes.erico@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39696>
2026-02-05 09:53:38 +00:00