Commit graph

222157 commits

Author SHA1 Message Date
Rob Clark
4d114a6bf7 freedreno/a6xx: Program gen8+ slice SEL regs
Signed-off-by: Rob Clark <rob.clark@oss.qualcomm.com>
2026-05-06 15:19:45 -07:00
Rob Clark
8717118da3 tu/gen8: Program slice selector regs
Signed-off-by: Rob Clark <rob.clark@oss.qualcomm.com>
2026-05-06 15:19:45 -07:00
Rob Clark
31a99b2226 tu: Disable preemption for counters on gen8
Extend the CP_SCOPE_CNTL to gen8 and newer.

Signed-off-by: Rob Clark <rob.clark@oss.qualcomm.com>
2026-05-06 15:19:45 -07:00
Rob Clark
e9e83b48f8 freedreno: Skip BV perfcntrs
Not useful unless we expose concurrent binning.

Signed-off-by: Rob Clark <rob.clark@oss.qualcomm.com>
2026-05-06 15:19:45 -07:00
Rob Clark
f86f48ee96 freedreno/perfcntrs: Use helper for derived counters
Use helper to assign/reserve counters for derived counters.

Signed-off-by: Rob Clark <rob.clark@oss.qualcomm.com>
2026-05-06 15:19:45 -07:00
Rob Clark
b5461ca40b freedreno/perfcntrs: Refactor derived counter setup
Most of what is done here doesn't need to be duplicated per hw gen.

Signed-off-by: Rob Clark <rob.clark@oss.qualcomm.com>
2026-05-06 15:19:45 -07:00
Rob Clark
c642bc8c27 freedreno/a6xx: Use counter allocation helper
If the kernel supports PERFCNTR_CONFIG for counter reservation, we can
expose perfcntrs by default.

Signed-off-by: Rob Clark <rob.clark@oss.qualcomm.com>
2026-05-06 15:19:45 -07:00
Rob Clark
cb27d2e1b2 tu: Use counter allocation helper
Signed-off-by: Rob Clark <rob.clark@oss.qualcomm.com>
2026-05-06 15:19:45 -07:00
Rob Clark
74cfe319b7 freedreno/perfcntrs: Add helper to assign counters
Add a helper to allocate a counter for a requested countable, and (if
supported by KMD) do the PERFCNTR_CONFIG ioctl to reserve the counter
for UMD local (inline) usage.

Signed-off-by: Rob Clark <rob.clark@oss.qualcomm.com>
2026-05-06 15:19:45 -07:00
Rob Clark
cc743feb52 freedreno/perfcntrs: Add helpers to resolve group and countable
We were duplicating this in a few places.  Add helpers instead.

Signed-off-by: Rob Clark <rob.clark@oss.qualcomm.com>
2026-05-06 15:19:45 -07:00
Rob Clark
8fbc34bdc5 freedreno/ds: Add a8xx derived counters
Mostly just some counter renames (slice vs unslice, etc)

Signed-off-by: Rob Clark <rob.clark@oss.qualcomm.com>
2026-05-06 15:19:45 -07:00
Rob Clark
663fcb412b freedreno/ds: PERFCNTR_CONFIG support
Signed-off-by: Rob Clark <rob.clark@oss.qualcomm.com>
2026-05-06 15:19:45 -07:00
Rob Clark
91f94113c8 freedreno/fdperf: Add PERFCNTR_CONFIG support
Add support for the new ioctl for KMD global counter collection.  This
avoids needing hacks to parse dtb and mmap the GPU's i/o space.

Signed-off-by: Rob Clark <rob.clark@oss.qualcomm.com>
2026-05-06 15:19:45 -07:00
Rob Clark
0777a8e3ff freedreno/fdperf: Prepare for partial-counter usage
With PERFCNTR_CONFIG, some other process may have already reserved some
counters, so not all will be available to fdperf.  Prepare for this by
using num_counters in counter_group.

Signed-off-by: Rob Clark <rob.clark@oss.qualcomm.com>
2026-05-06 15:19:44 -07:00
Rob Clark
0b78c907b1 freedreno/fdperf: Move where we setup counter groups
Move this earlier so we have the counter config early enough to probe
kernel support for PERFCNTR_CONFIG with a valid config.

Signed-off-by: Rob Clark <rob.clark@oss.qualcomm.com>
2026-05-06 15:19:44 -07:00
Rob Clark
3a4f20930b freedreno/common: Add ioctl ptr helpers
Signed-off-by: Rob Clark <rob.clark@oss.qualcomm.com>
2026-05-06 15:19:44 -07:00
Rob Clark
3358e40fed WIP: freedreno/drm: Import new UABI for PERFCNTR_CONFIG 2026-05-06 15:19:44 -07:00
Rob Clark
38b029cb7d freedreno/registers: Skip deprecated warns for kernel
Signed-off-by: Rob Clark <rob.clark@oss.qualcomm.com>
2026-05-06 15:19:44 -07:00
Rob Clark
f52f68d548 WIP: freedreno/perfcntrs: Add tool to dump perfctr tables
Just so we have a sane way to check for errors while migrating.
2026-05-06 15:19:38 -07:00
Rob Clark
f694b2ac6f tu: Fix preemption latency selector values
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
I suspect this was unnoticed because write_preempt_counters_to_iova()
would overwrite the selectors.

Signed-off-by: Rob Clark <rob.clark@oss.qualcomm.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41315>
2026-05-06 21:37:16 +00:00
Rob Clark
b430ca522e freedreno/ds: Split a6xx/a7xx counters out
Split gen specific derived counter setup to it's own files.

Signed-off-by: Rob Clark <rob.clark@oss.qualcomm.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41315>
2026-05-06 21:37:16 +00:00
Rob Clark
5ca8c2107e freedreno/ds: Use gpu timestamps
This will simplify things for PERFCNTR_CONFIG, where we will be getting
GPU timestamps along with the sampled counter values.

Signed-off-by: Rob Clark <rob.clark@oss.qualcomm.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41315>
2026-05-06 21:37:16 +00:00
Rob Clark
e4b77237ac pps: Re-emit time clock_sync more regularly
1sec between clock snapshots is too much of a gap in time for perfetto
to reasonably interpolate between clock timelines.

Signed-off-by: Rob Clark <rob.clark@oss.qualcomm.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41315>
2026-05-06 21:37:15 +00:00
Pavel Ondračka
0f75fa5bfd nir/tests: add partial unroll OOB tests
Assisted-by: OpenAI Codex (GPT-5.5)
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41203>
2026-05-06 20:08:13 +00:00
Pavel Ondračka
e517e3da0b nir/tests: add helpers for counting used/unused instructions
Assisted-by: OpenAI Codex (GPT-5.5)
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41203>
2026-05-06 20:08:12 +00:00
Pavel Ondračka
959f59b3f0 nir: fix partial loop unroll OOB check for loops not starting at 0
is_access_out_of_bounds() decides whether the residual loop (created
by partial_unroll) will access arrays out of bounds by checking whether
array_length is less than or equal to trip_count. That assumes the
induction variable starts at 0. For example glamor gradient shader
shader-db/shaders/glamor/4.shader_test:

   uniform float stops[18];
   for (i = 1; i < n_stop; i++)
      if (stop_len < stops[i]) break;

trip_count is guessed as 17 from the array indexing, so the residual
loop's index begins at 18, out of bounds for the 18-element array, yet
18 <= 17 is false, so the OOB removal is skipped and the residual loop
is not eliminated.

Correctly consider the start value for the OOB check. This lets glamor
gradient shaders with loops starting at i=1 unroll the same way as i=0
loops.

Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41203>
2026-05-06 20:08:12 +00:00
Louis Montagne
04055256ec meson: allow DRI on darwin to enable Zink + EGL builds
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
Mesa already sets `with_dri_platform = 'apple'` when the host system is
darwin (line 412), but the gating on `with_dri` itself only enables DRI
when `system_has_kms_drm` is true (or for the kgsl/Zink combo). Darwin
has no KMS/DRM, so DRI ends up disabled and Zink targeting EGL surfaceless
cannot be built.

Extend the existing `kgsl + zink` exception to also cover darwin: enable
DRI on darwin only when zink is the gallium driver in use. This factors
the exception under the `with_gallium_zink` umbrella, which leaves the
old appledri X11 / GLX path completely untouched on darwin builds that
do not enable zink.

Validated on macOS 15.2 / Apple Silicon with Mesa 26.x targeting Zink
over the KosmicKrisp Vulkan ICD: OpenGL 4.6 surfaceless contexts work
end to end.

Suggested-by: QwertyChouskie
Signed-off-by: Louis Montagne <louis@askem.eu>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41359>
2026-05-06 19:18:08 +00:00
Yiwei Zhang
d15e1fd108 android_stub: sync Android 16 headers
Acked-by: Valentine Burley <valentine.burley@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41373>
2026-05-06 18:40:02 +00:00
Yiwei Zhang
4193314295 android_stub: avoid vending in unused headers
Drop the redundant headers from libsystem and libnativewindow:
- include/android_stub/android/hdr_metadata.h
- include/android_stub/system/camera.h
- include/android_stub/system/radio.h
- include/android_stub/system/thread_defs.h

Acked-by: Valentine Burley <valentine.burley@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41373>
2026-05-06 18:40:02 +00:00
Yiwei Zhang
9a01a5590a android_stub: fix libhardware source include path
Acked-by: Valentine Burley <valentine.burley@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41373>
2026-05-06 18:40:02 +00:00
Yiwei Zhang
b9028f379b android_stub: fix update-android-headers.sh for libbacktrace
libbacktrace is gone in Android 14. If needed, one could add support for
libunwindstack going forward.

Acked-by: Valentine Burley <valentine.burley@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41373>
2026-05-06 18:40:02 +00:00
Rhys Perry
02c1f657a0 radv: remove family from cache key
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/work_items/4182
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41340>
2026-05-06 17:41:32 +00:00
Rhys Perry
268dba8c48 radv: don't pass GPU name to disk_cache_create
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41340>
2026-05-06 17:41:32 +00:00
Rhys Perry
6e06012825 radv,ac: make rembrandt and vangogh cache compatible
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41340>
2026-05-06 17:41:31 +00:00
Rhys Perry
ec59b59b97 nir: rename nir_src_parent_instr to nir_src_use_instr
sed -i "s/nir_src_parent_instr/nir_src_use_instr/" `find ./ -type f`
sed -i "s/nir_src_parent_if/nir_src_use_if/" `find ./ -type f`
sed -i "s/nir_src_set_parent/nir_src_set_use/" `find ./ -type f`

There are two kinds of "parent" in relation to a src/def:
- the instruction where the def or src's def is defined
- the instruction which the src is a part of and where the def is used

Clarify that the parent here is where the src's def is used, not where
it's defined.

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Mel Henning <mhenning@darkrefraction.com>
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Acked-by: Ian Romanick <ian.d.romanick@intel.com>
Acked-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41344>
2026-05-06 17:09:22 +00:00
Samuel Pitoiset
e33489420c ci: uprev vkd3d
This contains more tests for the SMEM PRT workaround that we implemented
on RADV. VKCTS already has some coverage but it doesn't hurt to have
more.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41356>
2026-05-06 15:44:31 +00:00
Valentine Burley
fc4c44b09d ci/android: Remove CtsDeqpTestCases from Android CTS
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
CtsDeqpTestCases was originally added to run WSI tests on Android.
This is now covered by the command-line dEQP executable, which produces
comparable results and is much, much faster thanks to multithreading via
deqp-runner.

Signed-off-by: Valentine Burley <valentine.burley@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41314>
2026-05-06 15:51:28 +02:00
Valentine Burley
11720e1b58 venus/ci: Enable WSI testing on Android
We can now run dEQP-VK.wsi.android.* and more EGL tests with ANGLE in the
deqp-runner suite.

The regular VKCTS test set had to be reduced to fit within the time
limit.

Signed-off-by: Valentine Burley <valentine.burley@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41314>
2026-05-06 15:51:28 +02:00
Valentine Burley
99f4ec7255 turnip/ci: Enable WSI testing on Android
We can now run dEQP-VK.wsi.android.* and more EGL tests with ANGLE in the
deqp-runner suite.

The regular VKCTS test set had to be reduced to fit within the time
limit.

Signed-off-by: Valentine Burley <valentine.burley@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41314>
2026-05-06 15:51:28 +02:00
Valentine Burley
71800d456e lavapipe/ci: Enable WSI testing on Android
We can now run dEQP-VK.wsi.android.* and more EGL tests with ANGLE in the
deqp-runner suite.

This shows a Lavapipe bug.

Signed-off-by: Valentine Burley <valentine.burley@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41314>
2026-05-06 15:51:28 +02:00
Valentine Burley
06816dbdbc ci/deqp: Add Android WSI support
This is implement with a headless WSI fallback using AImageReader, which
allows running EGL and Vulkan WSI tests from the command-line executable
(DEQP_ANDROID_EXE) on Android.

Signed-off-by: Valentine Burley <valentine.burley@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41314>
2026-05-06 15:51:27 +02:00
Valentine Burley
1eb9eed8ea ci/android: Update Cuttlefish build
- gralloc0: fix the FRONT_RENDERING_BIT private query in minigbm
  - Fixes enabling VK_KHR_shared_presentable_image
- Update Mesa to latest main, 117f3cb1fc ("gfxstream: allow
  VK_KHR_maintenance extensions")
  - Fixes a Turnip crash before the driver is replaced in the CI pipeline

Signed-off-by: Valentine Burley <valentine.burley@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41314>
2026-05-06 15:50:50 +02:00
Valentine Burley
d7c3362752 ci/android: Fix intermittent adb root failures
The combined $ADB wait-for-device root command can be flaky with
Cuttlefish, sometimes failing with:
"adb: unable to connect for root: closed"

Signed-off-by: Valentine Burley <valentine.burley@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41314>
2026-05-06 15:50:50 +02:00
Valentine Burley
f34c18cb4f ci/android: Remove SurfaceFlinger wait in get_surfaceflinger_pid
The dumpsys check doesn't seem necessary and avoids infinite loops.

Signed-off-by: Valentine Burley <valentine.burley@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41314>
2026-05-06 15:50:49 +02:00
Jon Turney
2b9e491b67 ddebug: Fix use of alloca() without #include "c99_alloca.h"
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
Fixes: 6fe6c18c12 ("util: add/use new os_mkdir() function")
Signed-off-by: Jon Turney <jon.turney@dronecode.org.uk>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41389>
2026-05-06 13:08:05 +01:00
Lionel Landwerlin
0d39d4e99e anv: expose VK_KHR_maintenance11
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41334>
2026-05-06 11:21:28 +00:00
Samuel Pitoiset
8a1c9a614f vulkan: stop forcing independent sets for shader object
VK_KHR_maintenance11 added a new flag for ESO, forcing it shouldn't
be required anymore.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41377>
2026-05-06 10:43:56 +00:00
Samuel Pitoiset
9764225ff1 vulkan: replace VK_SHADER_CREATE_INDEPENDENT_SETS_BIT_MESA with the maint11 flag
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41377>
2026-05-06 10:43:56 +00:00
Christian Gmeiner
567a65bbbf etnaviv: Use shader R/B swap for LINEAR_PE shared resources
On LINEAR_PE GPUs, shared linear resources are render-compatible so
no render shadow exists - the PE renders directly into the shared
buffer. Rather than adding a dedicated flush-time blit to swap R/B
(which would introduce bandwidth that doesn't exist today), use the
frag_rb_swap shader key to swap channels at render time.

In etna_draw_vbo, detect LINEAR_PE + shared + linear + RB_SWAP format
and set the per-RT frag_rb_swap bits. Track shared_native_order so
etna_flush_resource can skip the dedicated blit when the shader
already produced correct byte order.

Fixes: a5766e75e48 ("etnaviv: Use BGRA-internal texture format with BLT/RS R/B swizzle")
Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40029>
2026-05-06 10:26:58 +00:00
Christian Gmeiner
99bf43dd08 etnaviv: Add per-RT frag_rb_swap shader key and NIR lowering
Add a per-RT bitmask to the shader key that triggers R/B channel
swapping in the fragment shader output. Handles scalar through vec4
outputs by widening to vec4 first, then swapping channels 0 and 2
with adjusted writemask.

Preparation for LINEAR_PE GPUs where shared linear resources have no
render shadow, so the shader must produce correct byte order directly.

No functional change - nothing sets frag_rb_swap yet.

Fixes: a5766e75e48 ("etnaviv: Use BGRA-internal texture format with BLT/RS R/B swizzle")
Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40029>
2026-05-06 10:26:58 +00:00