Commit Graph

208591 Commits

Author SHA1 Message Date
Faith Ekstrand
30f8606b94 egl/wayland: Refuse to initialize Zink+DRM
Trying to use Zink with the DRM winsys is problematic at best.  In
theory all the pieces should be there but there are bugs around
synchronization, etc.  This copies the current behavior of X11 which
also refuses to initialize DRM on Zink.

This is particularly important for Nouveau users which are getting Zink
via the loader returning "zink" for get_driver_for_fd().  On Wayland
today, we go ahead and load zink and attempt to use the DRM EGL paths,
which are broken.  On X11, it fails to load the driver and then the EGL
device initialization code re-tries with zink which succeeds.  Because
the second try is using Zink from the start, it's equivalent to if the
user had set MESA_LOADER_DRIVER_OVERRIDE=zink and they get the kopper
path, which is more reliable.

This absolutely not what we want because it means we don't load the
driver the loader requested and are dependent on fallback paths to get a
driver loaded at all.  However, the real solution in
https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36014
is too complex to backport.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/13498
Acked-by: Mel Henning <mhenning@darkrefraction.com>
2025-07-14 21:52:10 -03:00
Gurchetan Singh
d978cbf944 mesa: subprojects: remove linux-raw-sys backend and use libc
This is because Android prefers it -- the project likes to make
changes to bionic that have a global effect, and using raw-syscalls
potentially complicates that.  This is a backport of:

https://github.com/bytecodealliance/rustix/pull/1478

In addition, nothing in Mesa3D needs the added functionality provided
by raw syscalls.

Test:

meson setup gfxstream-build -Dvulkan-drivers="gfxstream" -Dgallium-drivers="" -Dvirtgpu_kumquat=true -Dopengl=false -Drust_std=2021

still compiles.

Reviewed-by: @LingMan
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36116>
2025-07-14 10:23:47 -07:00
Mike Blumenkrantz
475c43cf8a zink: translate intensity formats
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36031>
2025-07-14 16:37:25 +00:00
Mike Blumenkrantz
eacb167375 aux/trace: sanitize draws
if a draw isn't indexed, don't trace index_bias since this is a garbage value

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36045>
2025-07-14 16:10:35 +00:00
Dave Airlie
e6038645fa nak/sm70: allow first parameter of hfma2 to be non-reg
Either Rb or Rc can be the non-register, so the copy if both
not reg should be sufficient.

Totals:
CodeSize: 14025216 -> 14022144 (-0.02%)
Static cycle count: 5313517 -> 5312651 (-0.02%)

Totals from 4 (0.30% of 1332) affected shaders:
CodeSize: 119168 -> 116096 (-2.58%)
Static cycle count: 33920 -> 33054 (-2.55%)

Only affects:
 q2rtx/q2rtx-rt-pipeline                42        -0.48%        -0.45%

This also helps with the coop matrix shaders.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36104>
2025-07-14 13:38:37 +00:00
Patrick Lerda
5bee7c0b12 r600: fix rv770 border color
The border color of the rv770 gpu behaves the same way as
the evergreen border color. This change updates the software
accordingly.

This change is enabled for all the pre-evergreen gpus.

This change fixes 120 piglit tests. The rv770 ci is updated
as well.

Cc: mesa-stable
Signed-off-by: Patrick Lerda <patrick9876@free.fr>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34502>
2025-07-14 11:56:03 +00:00
Christoph Pillmayer
b530692529 panvk: Allow invalid enum values in get_image_format_properties
This is allowed with VK_KHR_maintenance5 which we support for v10+.

Fixes: 85b6bd989e ("panvk: Advertise support for VK_KHR_maintenance5")

Reviewed-by: Olivia Lee <olivia.lee@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36065>
2025-07-14 11:21:48 +00:00
Patrick Lerda
d9baadcfb5 r600: set never as the depth compare function when depth compare is disabled
This is the backport of 0c0b978938 "radeonsi: set NEVER as
the depth compare func if depth compare is disabled".

The function r600_tex_compare arguments are updated with the "const"
keyword.

This change fixes the test below which was broken after 0c6e56c391:
khr-gl4[5-6]/incomplete_texture_access/sampler: fail pass

Fixes: 0c6e56c391 ("mesa: (more) correctly handle incomplete depth textures")
Signed-off-by: Patrick Lerda <patrick9876@free.fr>
Acked-by: Vitaliy Triang3l Kuzmin <triang3l@yandex.ru>
Reviewed-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35968>
2025-07-14 11:07:18 +00:00
Daniel Schürmann
47ef60cbf1 aco/ra: always use bytes for register stride requirements
instead of a mixture between dwords and bytes.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36053>
2025-07-14 08:45:29 +00:00
Valentine Burley
84923ccfe9 iris/ci: Lower concurrency of iris-cml-traces
Signed-off-by: Valentine Burley <valentine.burley@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36074>
2025-07-14 08:15:25 +00:00
Valentine Burley
8f1eca471f radv/ci: Lower concurrency of radv-raven-traces-restricted
Signed-off-by: Valentine Burley <valentine.burley@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36074>
2025-07-14 08:15:25 +00:00
Valentine Burley
2b50f93fb0 iris/ci: Add a performance traces job on ADL
Add a new `iris-adl-traces-performance` job, which runs the same set of
traces as the `zink-anv-adl-traces-performance` job.

Signed-off-by: Valentine Burley <valentine.burley@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36074>
2025-07-14 08:15:25 +00:00
Valentine Burley
94a2e0a48d zink/ci: Add a performance traces job on ADL
Add a new `zink-anv-adl-traces-performance` job, which runs the same set
of traces as the `iris-anv-adl-traces-performance` job.

Signed-off-by: Valentine Burley <valentine.burley@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36074>
2025-07-14 08:15:25 +00:00
Valentine Burley
7d298e3c4b iris/ci: Simplify performance trace template
The `.profile-traces` template was nearly identical to
`.piglit-performance-base`, differing only by one additional variable.

Since all jobs extending `.piglit-performance-base` were already using
`EGL_PLATFORM: surfaceless`, that setting has been moved into the base
template, allowing `.profile-traces` to be simplified.

This also hides the performance traces jobs from non-Marge pipelines,
as intended.

Signed-off-by: Valentine Burley <valentine.burley@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36074>
2025-07-14 08:15:25 +00:00
David Rosca
f78222dc29 radv/video: Add support for decode tier3
On VCN5 both distinct and coincide output/dpb are supported. Tier3
(coincide) requires tiling, Tier2 (distinct) also works with linear.
Application can decide which one to use.

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35878>
2025-07-14 07:42:28 +00:00
David Rosca
2d06b43292 radv: Enable tiling for video images on VCN5
All planes must have the same swizzle mode and no tile swizzle.
Only linear decode target requires the custom height alignment.

Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35878>
2025-07-14 07:42:27 +00:00
David Rosca
e50ee32876 radv: Don't allow linear tiling for video DPB images
We don't support linear DPB images and they will currently always
be tiled internally.

Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35878>
2025-07-14 07:42:27 +00:00
David Rosca
e2554c8f51 ac/surface: Support RADEON_SURF_FORCE_SWIZZLE_MODE on gfx12
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35878>
2025-07-14 07:42:26 +00:00
Valentine Burley
cbb9ebcd82 freedreno/ci: Fix configuration for a618-traces-performance
The a618-traces-performance job wasn’t actually running performance tests
because it didn’t extend the `.piglit-performance-base` template, which
is what sets the traces to be replayed 150 times.

This also hides the job from non-Marge pipelines, as intended.

Signed-off-by: Valentine Burley <valentine.burley@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36070>
2025-07-14 06:48:18 +00:00
Valentine Burley
d1972be598 ci: Fix trace update script following environment variable changes
Since 655cf2f553 ("ci: Simplify filter_env_vars using indirect expansion"),
PIGLIT_REPLAY_DEVICE_NAME is declared using `declare -x`, not `export`.

Update the regex in update_traces_checksum.py accordingly. This is safe
for now, as all performance trace jobs currently run in LAVA and use this
declaration style.

Signed-off-by: Valentine Burley <valentine.burley@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36070>
2025-07-14 06:48:18 +00:00
Samuel Pitoiset
a51afbaff8 radv/sdma: fix unaligned 96-bits copies on GFX9
On SDMA4, when the pitch isn't aligned, the width needs to be scaled
by 3 for 96-bits formats.

On SDMA5+, the pitch is aligned and the driver doesn't need to fallback
to unaligned copies.

CC: mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36067>
2025-07-14 06:30:55 +00:00
Sagar Ghuge
36172c41dc intel/compiler: Drop unused param from set_memory_address
Signed-off-by: Sagar Ghuge <sagar.ghuge@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36092>
2025-07-14 03:46:21 +00:00
Caio Oliveira
887642b0f2 intel: Add INTEL_DEBUG=no-vrt
Add support for disabling the VRT (Variable Register Thread) feature.
The strategy here is to force the old BRW_MAX_GRF limit for the
register allocator (locks the upper limit) and make sure
ptl_register_blocks() always return that amount of blocks (locks
the lower limit).

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35781>
2025-07-13 21:11:02 +00:00
Caio Oliveira
636c37990a iris: Refactor BRW_KEY_INIT to get an iris_prog_base_key
Avoids passing individual fields of that key repeatedly in
the call-sites.

Reviewed-by: José Roberto de Souza <jose.souza@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35781>
2025-07-13 21:11:00 +00:00
Yogesh Mohan Marimuthu
9fa192ea22 radeonsi: submit cs_preamble_state to as first job in userqueue
Also any other new context's cs_preamble_state will not be submitted.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35106>
2025-07-13 20:05:27 +00:00
Yogesh Mohan Marimuthu
0186977988 ac, radeonsi: prepare cs_preamble_state for userq reg shadowing
register shadowing has to be enabled in CONTEXT_CONTROL packet
in cs_preamble_state for user queue.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35106>
2025-07-13 20:05:27 +00:00
Yogesh Mohan Marimuthu
aab890644b radeonsi: reorder if condition in si_init_cp_reg_shadowing() function
cs_preamble_state can be created before initializing register shadowing
since register shadowing failure means driver failed now.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35106>
2025-07-13 20:05:27 +00:00
Yogesh Mohan Marimuthu
1cb0af6308 radeonsi: add uses_kernelq_reg_shadowing in struct si_context
sctx->uses_kernelq_reg_shadowing instead of sctx->shadowing.registers
for register shadowing enable check.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35106>
2025-07-13 20:05:27 +00:00
Yogesh Mohan Marimuthu
b55ee5f335 radeonsi: rename sctx->has_graphics to sctx->is_gfx_queue
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35106>
2025-07-13 20:05:26 +00:00
Yogesh Mohan Marimuthu
761496b49e radeonsi: has_kernelq_reg_shadowing failure means driver failed
If register shadowing enabling failed, then driver ctx init will
fail instead of disabling register shadowing.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35106>
2025-07-13 20:05:26 +00:00
Yogesh Mohan Marimuthu
0068dbd76b ac: enable kernelq reg shadowing only when userq is disabled
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35106>
2025-07-13 20:05:25 +00:00
Yogesh Mohan Marimuthu
1000ee3d2f ac,radeonsi,radv: rename register_shadowing_required
rename register_shadowing_required to has_kernelq_reg_shadowing

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35106>
2025-07-13 20:05:25 +00:00
Asahi Lina
067d820c9d asahi: Mark KMS exported resource BOs as shared
Fixes: #13524

Signed-off-by: Asahi Lina <lina@asahilina.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36097>
2025-07-13 17:43:06 +00:00
Asahi Lina
a8f33c35f9 asahi: Add BO handles to resource debug
Signed-off-by: Asahi Lina <lina@asahilina.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36097>
2025-07-13 17:43:06 +00:00
Asahi Lina
c6e959c871 asahi: Add refcnt assert to agx_bo_unreference()
Signed-off-by: Asahi Lina <lina@asahilina.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36097>
2025-07-13 17:43:06 +00:00
Rob Clark
09936883a4 freedreno: dump layout in import path as well
Signed-off-by: Rob Clark <rob.clark@oss.qualcomm.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36075>
2025-07-13 17:16:54 +00:00
Rob Clark
65931bfc7f freedreno: Move layout to layout_resource_for_handle()
This is already done for a6xx.  For everyone else move it out of the
common code path and into fd_layout_resource_for_handle().

Signed-off-by: Rob Clark <rob.clark@oss.qualcomm.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36075>
2025-07-13 17:16:54 +00:00
Rob Clark
329a022894 freedreno/a6xx: Use metadata to resolve INVALID modifier
Signed-off-by: Rob Clark <rob.clark@oss.qualcomm.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36075>
2025-07-13 17:16:53 +00:00
Rob Clark
b4b1573258 freedreno/a6xx: Refactor handle import
Explicitly layout the resource in all cases, rather than depending on
the partial/incomplete layout that is done in fd_resource_from_handle()
(which will be going away).

Now that we are not YOLOing the layout, it turns up some questionable
assumptions in piglit.  Just mark those xfails for now.

Signed-off-by: Rob Clark <rob.clark@oss.qualcomm.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36075>
2025-07-13 17:16:53 +00:00
Rob Clark
27b0f64b3e freedreno/a6xx: Use handle for explicit layout
Use the winsys_handle to get the fdl_explicit_layout params rather than
relying on pre-populated layout params.

Signed-off-by: Rob Clark <rob.clark@oss.qualcomm.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36075>
2025-07-13 17:16:53 +00:00
Rob Clark
eb7e6a567e freedreno: Pass handle down to layout_resource_for_modifier
And rename it to layout_resource_for_handle.  The handle contains
additional information such as the pitch/offset for the imported
buffer.

Signed-off-by: Rob Clark <rob.clark@oss.qualcomm.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36075>
2025-07-13 17:16:53 +00:00
Rob Clark
091313c558 freedreno/layout: Remove unneeded shims
Now that everything is migrated, we can drop the backwards-compat shims.

Signed-off-by: Rob Clark <rob.clark@oss.qualcomm.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36075>
2025-07-13 17:16:52 +00:00
Rob Clark
e55c6c5f25 freedreno/a6xx: Convert to fdl6_layout_image
Signed-off-by: Rob Clark <rob.clark@oss.qualcomm.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36075>
2025-07-13 17:16:52 +00:00
Rob Clark
b6e27a9f57 freedreno/a5xx: Convert to fdl5_layout_image
Signed-off-by: Rob Clark <rob.clark@oss.qualcomm.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36075>
2025-07-13 17:16:52 +00:00
Rob Clark
617969d8a2 freedreno: Move layout init to backends
Export the existing helper, and call it from the legacy backends which
are not using fdl.

This moves all the layout initialization to the backends (and eventually
to fdl for the backends using that).

Signed-off-by: Rob Clark <rob.clark@oss.qualcomm.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36075>
2025-07-13 17:16:52 +00:00
Rob Clark
4d4745764c freedreno: Pass layout type to backend
Pass the layout type to setup_slices, renamed to layout_resource, to
move some of the partial layout initialization to the gen specific
backend.

Signed-off-by: Rob Clark <rob.clark@oss.qualcomm.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36075>
2025-07-13 17:16:51 +00:00
Rob Clark
34153d92b5 freedreno: Add helper to initialize layout params
No point in duplicating this in many places.

Signed-off-by: Rob Clark <rob.clark@oss.qualcomm.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36075>
2025-07-13 17:16:51 +00:00
Rob Clark
43bd9082fa freedreno: Don't call setup_slices for buffers
We already use fdl_layout_buffer() when the resource is allocated.  But
it was missed to convert fd_resource_resize().  Convert it so there is
no path into ->setup_slices() with something that is a buffer.

Signed-off-by: Rob Clark <rob.clark@oss.qualcomm.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36075>
2025-07-13 17:16:51 +00:00
Rob Clark
d485c7b446 turnip: convert to fdl6_layout_image
Signed-off-by: Rob Clark <rob.clark@oss.qualcomm.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36075>
2025-07-13 17:16:50 +00:00
Rob Clark
15bccc29bd freedreno/layout: Introduce fdl_image_params
fdl6_layout() (and to a lesser degree) fdl5_layout() is growing an
unwieldly argument list, and it isn't obvious at first glance what
fdl_layout fields should be initialized before calling it.  So split
out a fdl_image_params struct to clean this up.

Signed-off-by: Rob Clark <rob.clark@oss.qualcomm.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36075>
2025-07-13 17:16:50 +00:00