Commit Graph

192288 Commits

Author SHA1 Message Date
Faith Ekstrand 59f4c8dac2 nak: Use set_ureg_src() for Blackwell texture offsets and handles
Also add handles (they're currently missing).

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35795>
2025-06-27 21:23:24 +00:00
Dave Airlie 45bd5502f5 nak: Add misc Blackwell tex encoding bits
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35795>
2025-06-27 21:23:24 +00:00
Dave Airlie 06e8db646a nouveau: workaround linear/z rendering interaction
nvidia hardware can't render to linear surfaces except under some
very limited circumstances, one of those is if Z is enabled.

However there appears to be some combination of gnome-shell, and
prime (with 2 nouveau cards) where we end up getting through the
GL API to the situation where we try this. This in a production
build causes the kernel to crash with a GR error.

However there existed a period of time where the hw/kernel due to
some other random hw misconfiguration didn't crash when this happened
and doing this was prefect fine. (linear + tiled Z).

This restores the userspace code to do this and just ignores the
Z buffers if we are asked for linear rendering, and seems sufficient
to fix the problem.

I do understand this is a workaround, but I think it's reasonable to
add to the nouveau GL driver at this time since we don't want to
maintain if for ever and it probably should fix a bunch of wierd
user problems with multi gpu and nouveau.

Cc: mesa-stable
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35221>
2025-06-27 21:09:13 +00:00
Yiwei Zhang 5dc3708e97 panvk: refactor swapchain image alias bind
This is to prepare for ANB support.

Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35779>
2025-06-27 16:16:31 +00:00
Yiwei Zhang 827108ab7d panvk: refactor panvk_image to track panvk_device_memory instead of bo
Since we have already dropped the refcounting there, replacing with a
back pointer to the device memory makes it clear we don't hold any ref.

Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35779>
2025-06-27 16:16:31 +00:00
Alyssa Rosenzweig 1fd993388e hk: fix gs static topology + indirect draw
Fixes: 5640266eb3 ("agx/nir_lower_gs: rework gs rast shape handling")
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35797>
2025-06-27 15:31:49 +00:00
Alyssa Rosenzweig 1c4eb71cbc libagx: port pre-GS to CL
in prep for changing the compile flow for it.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35797>
2025-06-27 15:31:49 +00:00
Alyssa Rosenzweig dff1230879 agx/nir_lower_gs: remove random idiv const call
should be fixed in the agx backend now

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35797>
2025-06-27 15:31:49 +00:00
Alyssa Rosenzweig 73659b4f67 agx/nir_lower_gs: CLify more XFB code
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35797>
2025-06-27 15:31:48 +00:00
Alyssa Rosenzweig 10554ccad2 agx/nir_lower_gs: rework XFB prim calculation
significant instr count reduction for many outputs in a buffer.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35797>
2025-06-27 15:31:48 +00:00
Alyssa Rosenzweig 46e139d453 libagx: optimize xfb offset pointers
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35797>
2025-06-27 15:31:47 +00:00
Alyssa Rosenzweig 2544259030 asahi,hk,libagx: drop null checks
instead require scratch addresses be passed.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35797>
2025-06-27 15:31:45 +00:00
Alyssa Rosenzweig 222ffc352e hk: eliminate null_sink
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35797>
2025-06-27 15:31:45 +00:00
Alyssa Rosenzweig fa21722f1c asahi: use zero/scratch page for null textures
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35797>
2025-06-27 15:31:44 +00:00
Alyssa Rosenzweig db2891ec5f hk,asahi: move scratch BO to common
gl needs this too.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35797>
2025-06-27 15:31:44 +00:00
Alyssa Rosenzweig d3adef3164 agx: defer nir_opt_idiv_const
noticed in GS work.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35797>
2025-06-27 15:31:43 +00:00
David Rosca 53e3e44eb3 frontends/va: Fix SyncSurface when used to sync coded buffer
This would skip the coded buffer fence wait if the surface fence is NULL.

Fixes: 0f20a3a4f1 ("frontends/va: Add surface pipe_fence for vl_compositor rendering")
Reviewed-by: Ruijing Dong <ruijing.dong@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35782>
2025-06-27 15:17:08 +00:00
Eric R. Smith 65bc0f715e panvk: add a driConf to force enable atomics in shaders
This is mainly useful for enabling validation layers, but might also
be useful for a few apps that use very basic atomic operations. In
general these operations do not work properly in Bifrost, but they
work well enough to e.g. pass some piglit tests.

Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35710>
2025-06-27 14:48:16 +00:00
Erik Faye-Lund fcd2fbfdfd panfrost/ci: fix up msaa fails... again
I should really have performed a full run here rather than just copying
the failures from a recent run... poorly.

Fixes: 8e646739baf ("panfrost/ci: add new 8x/16x msaa fails on t760")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35716>
2025-06-27 14:18:39 +00:00
Erik Faye-Lund 345026ebf1 panfrost/ci: bump timeout for panfrost-t760-gles
This test regularly takes close to an hour, and sometimes exceeds that.
Let's bump the timeout for it, to give it a better chance to finish.

This job is only run manually, so it shouldn't affect the time it takes
to merge changes.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35716>
2025-06-27 14:18:39 +00:00
Corentin Noël c0d1b199ae venus: Fix leak in syncobj creation failure path
CID: 1475984 Resource leak
Signed-off-by: Corentin Noël <corentin.noel@collabora.com>
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35474>
2025-06-27 13:56:24 +00:00
Yiwei Zhang 6469d7268f venus: suppress Coverity Uninitialized scalar variable
Just false alarm. Adjusted the code to suppress it.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35474>
2025-06-27 13:56:24 +00:00
Corentin Noël 4f8612f568 mesa/st: Fix leak in st_create_fp_variant
CID: 1643014 Resource leak
Signed-off-by: Corentin Noël <corentin.noel@collabora.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35474>
2025-06-27 13:56:24 +00:00
Corentin Noël c9513782bc mesa/st: Fix memory leak in st_create_common_variant
CID: 1642998 Resource leak
Signed-off-by: Corentin Noël <corentin.noel@collabora.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35474>
2025-06-27 13:56:24 +00:00
Corentin Noël ad9db6b259 glx: Free all populated fields of the glx_display on creation failure
Add a common path to ensure that there is no copy-paste error.

CID: 1644424,1644409 Resource leak

Signed-off-by: Corentin Noël <corentin.noel@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35474>
2025-06-27 13:56:23 +00:00
Corentin Noël e3829eccc8 egl/wayland: Plug leak when implicit modifiers are unsupported
Do not leak modifiers_subset and modifiers_subset_opaque.

CID: 1644433 Resource leak
Signed-off-by: Corentin Noël <corentin.noel@collabora.com>
Acked-by: Daniel Stone <daniels@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35474>
2025-06-27 13:56:23 +00:00
Corentin Noël 8adb2d4949 virgl: Free resource memory on creation failure
CID: 1646975 Resource leak
Signed-off-by: Corentin Noël <corentin.noel@collabora.com>
Reviewed-by: Feng Jiang <jiangfeng@kylinos.cn>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35474>
2025-06-27 13:56:23 +00:00
Eric Engestrom b885e39c63 broadcom/ci: document flakes
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35787>
2025-06-27 09:09:53 +00:00
Eric Engestrom 6ebef82ae8 zink+lavapipe/ci: document flakes
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35787>
2025-06-27 09:09:53 +00:00
Eric Engestrom 30f92cff89 zink+nvk/ci: document flakes
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35787>
2025-06-27 09:09:53 +00:00
Eric Engestrom 39585f9372 zink+radv/ci: document flakes
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35787>
2025-06-27 09:09:53 +00:00
Eric Engestrom 671a63b0c7 nvk/ci: document flakes
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35787>
2025-06-27 09:09:52 +00:00
Eric Engestrom 0e78939afb radv/ci: document flakes
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35787>
2025-06-27 09:09:52 +00:00
Eric Engestrom e0e35c051d radeonsi/ci: document flakes
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35787>
2025-06-27 09:09:52 +00:00
Eric Engestrom 286318d0f3 radv/ci: sort previously added flakes
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35787>
2025-06-27 09:09:52 +00:00
Pierre-Eric Pelloux-Prayer 3210484fe2 ac/virtio: fix alignment of metadata command
Command size must be aligned to 8.

Tested-by: Dmitry Osipenko <dmitry.osipenko@collabora.com>
Acked-by: Marek Olšák <marek.olsak@amd.com>
Acked-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Fixes: 22263616ed ("amd: amdgpu-virtio implementation")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34470>
2025-06-27 08:15:50 +00:00
Pierre-Eric Pelloux-Prayer 7c6fb24067 amd/virtio: clear DRM_SYNCOBJ_WAIT_FLAGS_WAIT_FOR_SUBMIT
Calls to radv_amdgpu_cs_submit will come with either no waits
or through vk_queue.
vk_queue uses VK_SYNC_WAIT_PENDING which is translated as
DRM_SYNCOBJ_WAIT_FLAGS_WAIT_AVAILABLE.

WAIT_AVAILABLE will wait for the fence to materialize, so
it means it's safe to pass the syncobj in a
AMDGPU_CHUNK_ID_SYNCOBJ_TIMELINE_WAIT chunk without the
WAIT_FOR_SUBMIT flag.

Tested-by: Dmitry Osipenko <dmitry.osipenko@collabora.com>
Acked-by: Marek Olšák <marek.olsak@amd.com>
Acked-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34470>
2025-06-27 08:15:50 +00:00
Pierre-Eric Pelloux-Prayer f0ab43ec1b ac/virtio: support timeline syncobj
The only missing bit was supporting the timeline chunk_ids
during submit.

Tested-by: Dmitry Osipenko <dmitry.osipenko@collabora.com>
Acked-by: Rob Clark <robdclark@chromium.org>
Acked-by: Marek Olšák <marek.olsak@amd.com>
Acked-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34470>
2025-06-27 08:15:50 +00:00
Pierre-Eric Pelloux-Prayer c1fdd540aa ac/info: add ac_drm_query_pci_bus_info
This allows to return dummy values for the vpipe case.

Tested-by: Dmitry Osipenko <dmitry.osipenko@collabora.com>
Acked-by: Rob Clark <robdclark@chromium.org>
Acked-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34470>
2025-06-27 08:15:50 +00:00
Pierre-Eric Pelloux-Prayer ddf73e76a9 ac/info: use u_sync_provider instead of DRM_CAP_SYNCOBJ(_TIMELINE)
So we get the correct results regardless of the backend (amdgpu,
virtio nctx, vpipe, null).

Tested-by: Dmitry Osipenko <dmitry.osipenko@collabora.com>
Acked-by: Rob Clark <robdclark@chromium.org>
Acked-by: Marek Olšák <marek.olsak@amd.com>
Acked-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34470>
2025-06-27 08:15:50 +00:00
Pierre-Eric Pelloux-Prayer df1224c8b2 radv: rework VM_ALWAYS_VALID handling
Instead of assuming that VM_ALWAYS_VALID is always available,
make its use conditionnal on its support.

This allows to remove the virtio nctx special case (where
VM_ALWAYS_VALID is only possible with virtio for buffers that
also have the NO_CPU_ACCESS flag since CPU access is implemented
through dmabuf on the host).

Tested-by: Dmitry Osipenko <dmitry.osipenko@collabora.com>
Acked-by: Rob Clark <robdclark@chromium.org>
Acked-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34470>
2025-06-27 08:15:50 +00:00
Pierre-Eric Pelloux-Prayer 8c529ba58c radv: disable extension depending on timeline syncobj when missing
It was already done through sync_types but we also need to declare
that the extensions are not supported.

Similarly .KHR_present_wait can't be exposed since it requires
timeline support.

This is useful for virtio native context which currently doesn't
support timelines on amdgpu.

Tested-by: Dmitry Osipenko <dmitry.osipenko@collabora.com>
Acked-by: Rob Clark <robdclark@chromium.org>
Acked-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34470>
2025-06-27 08:15:50 +00:00
Pierre-Eric Pelloux-Prayer 999d5098b4 radv/virtio: support vpipe
Tested-by: Dmitry Osipenko <dmitry.osipenko@collabora.com>
Acked-by: Rob Clark <robdclark@chromium.org>
Acked-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34470>
2025-06-27 08:15:50 +00:00
Pierre-Eric Pelloux-Prayer a96356b26e radeonsi/virtio: support vpipe
For now use an environment variable to test the virtio code
using vpipe.

Exposing DRM_PRIME_CAP_EXPORT manually is required, otherwise
gbm platform will fallback to dummy buffers which aren't
supported.

Tested-by: Dmitry Osipenko <dmitry.osipenko@collabora.com>
Acked-by: Rob Clark <robdclark@chromium.org>
Acked-by: Marek Olšák <marek.olsak@amd.com>
Acked-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34470>
2025-06-27 08:15:50 +00:00
Pierre-Eric Pelloux-Prayer 84c137ff14 amd/virtio: add vpipe support
When vpipe is used we won't have a valid fd available,
so make sure init doesn't fail.

Tested-by: Dmitry Osipenko <dmitry.osipenko@collabora.com>
Acked-by: Rob Clark <robdclark@chromium.org>
Acked-by: Marek Olšák <marek.olsak@amd.com>
Acked-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34470>
2025-06-27 08:15:50 +00:00
Pierre-Eric Pelloux-Prayer 5d63d2fb04 ac/drm: replace direct ioctl calls by util_sync_provider
Tested-by: Dmitry Osipenko <dmitry.osipenko@collabora.com>
Acked-by: Rob Clark <robdclark@chromium.org>
Acked-by: Marek Olšák <marek.olsak@amd.com>
Acked-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34470>
2025-06-27 08:15:50 +00:00
Pierre-Eric Pelloux-Prayer 62b9c3eafc ac/drm: store a util_sync_provider in ac_drm_device
util_sync_provider provides a wrapper to manipulate syncobjs.
This allows replacing direct ioctl usages with other functions,
and is going to be used to support vpipe.

Tested-by: Dmitry Osipenko <dmitry.osipenko@collabora.com>
Acked-by: Rob Clark <robdclark@chromium.org>
Acked-by: Marek Olšák <marek.olsak@amd.com>
Acked-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34470>
2025-06-27 08:15:50 +00:00
Pierre-Eric Pelloux-Prayer 80985767cb ac/drm: remove ac_drm_cs_create_syncobj
ac_drm_cs_create_syncobj2 is a simple replacement and this allows
to remove some code.

Tested-by: Dmitry Osipenko <dmitry.osipenko@collabora.com>
Acked-by: Rob Clark <robdclark@chromium.org>
Acked-by: Marek Olšák <marek.olsak@amd.com>
Acked-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34470>
2025-06-27 08:15:49 +00:00
Pierre-Eric Pelloux-Prayer e0bd24672c ac/virtio: port to vdrm functions
Let's use the shared helpers instead of our own version.

Tested-by: Dmitry Osipenko <dmitry.osipenko@collabora.com>
Reviewed-by: Rob Clark <robdclark@chromium.org>
Acked-by: Marek Olšák <marek.olsak@amd.com>
Acked-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34470>
2025-06-27 08:15:49 +00:00
Pierre-Eric Pelloux-Prayer ffdf13bd48 ac/info: rename has_local_buffers into has_vm_always_valid
The has_local_buffers name is based on the original name of this
feature (the GEM flag was AMDGPU_GEM_CREATE_LOCAL).

But in v3 the flag was renamed AMDGPU_GEM_CREATE_VM_ALWAYS_VALID,
so it's clearer to have the Mesa flag to match the kernel one.

Tested-by: Dmitry Osipenko <dmitry.osipenko@collabora.com>
Acked-by: Rob Clark <robdclark@chromium.org>
Acked-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34470>
2025-06-27 08:15:49 +00:00