Mark Collins
0342d34bdb
tu/kgsl: Remove zero CB queue submission fast path
...
The fast path for kgsl_queue_submit when there are no command buffers
and only sync objects led to breakage for two reasons:
* The fast path was not properly handling duplication of the merged sync
object assigned to signalled `kgsl_syncobj`(s), which could lead to
multiple `kgsl_syncobj`s owning the same FD and consequently issues
such as double close of that FD leading to UB. This is fixed by moving
to the slow path as it always produces a timestamp sync object which
can be trivially duplicated.
* The Vulkan specification requires that drivers strictly follow the
order of submission of command buffers and consequently the order of
semaphore signal/wait operations. Since no submission was being made
to the kernel, subsequent submissions could be executed without waiting
for wait/signal operations from previous submissions to complete.
As both of these issues are fixed by moving to the slow path, this patch
removes the fast path in favor of the more correct slow path.
Signed-off-by: Mark Collins <mark@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33894 >
2025-03-06 19:40:41 +00:00
Pavel Ondračka
87a90a3b38
r300: fix temps counting for shader-db stats
...
RC_FILE_INPUT is pretty much just a RC_FILE_TEMPORARY with an initial
value in it. So we regalloc it the same way we do normal temps, however
for unknown reasons (probably to have a bit more readable shader dumps)
we still keep the RC_FILE_INPUT type even though its the same as
temporary. This is handled correctly when emitting the machine code,
however, it was not taken into account in shader stats.
Signed-off-by: Pavel Ondračka <pavel.ondracka@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33817 >
2025-03-06 19:12:24 +00:00
Martin Krastev
15e0e53b4d
svga/ci: enable vmware farm
...
Farm was down due to infra outage.
Signed-off-by: Martin Krastev <martin.krastev@broadcom.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33919 >
2025-03-06 18:47:49 +00:00
Yiwei Zhang
6868212774
venus: fix a memory corruption in query records recycle
...
The free list must be re-initialized. Found the bug while running:
dEQP-VK.ray_tracing_pipeline.acceleration_structures.device_compability_khr.gpu_built.top
where it invokes VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT to purge
the cmd pool resources, and the next alloc still gets cache hit with the
"empty" list.
Fixes: e2c4bafccc ("venus: free query batches for VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT")
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33908 >
2025-03-06 18:25:20 +00:00
Ruijing Dong
a3c859d9f3
radeonsi/vcn: vcn5 roi fix
...
Compared to vcn4, vcn5's implementation has changed.
It needs to apply the qp_delta directly instead of
dividing by 5.
Reviewed-by: David Rosca <david.rosca@amd.com >
Signed-off-by: Ruijing Dong <ruijing.dong@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33886 >
2025-03-06 17:59:22 +00:00
Marek Olšák
171ee1797b
glapi: remove extension definitions that will likely never be implemented
...
If somebody needs these in the future, they can add them back, but a lot
of these extensions are very old (SUN, SGI, ...).
No code is added, though git diff is having trouble detecting that.
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33794 >
2025-03-06 17:13:23 +00:00
Marek Olšák
0a330b1660
egl: use the current dispatch to execute glFlush instead of get_proc_address
...
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33794 >
2025-03-06 17:13:23 +00:00
Marek Olšák
8bb7033095
glx: fix build with -Dlegacy-x11=dri2
...
Fixes: 71bb62e3c9 - glx: stop exporting GL functions from libGLX_mesa.so
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33794 >
2025-03-06 17:13:23 +00:00
Marek Olšák
0cebfb15b5
glapi: remove duplicated generated header glapitable.h
...
mesa/main/dispatch.h is exactly the same. We generated the same header
twice.
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33794 >
2025-03-06 17:13:23 +00:00
Marek Olšák
db7e49d5ff
glapi: remove static glapi (it's dead code now)
...
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33794 >
2025-03-06 17:13:22 +00:00
Marek Olšák
fefb1a6fb3
meson: remove with_shared_glapi variable (it's always true)
...
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33794 >
2025-03-06 17:13:22 +00:00
Marek Olšák
fde53ac020
glx/xlib: switch glapi from static to shared (which is also static)
...
Shared glapi doesn't make GL functions globally available, so we have
to use the dispatch API.
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Acked-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33794 >
2025-03-06 17:13:22 +00:00
Marek Olšák
e5c76088e9
meson: never use static glapi because shared glapi is also static and better
...
Shared glapi is already statically linked with libmesa (src/mesa),
and some parts are statically linked with loaders.
Static glapi will be removed after this is merged.
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Acked-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33794 >
2025-03-06 17:13:22 +00:00
José Roberto de Souza
f0f896ef21
iris: Replace BO_ALLOC_* macros by a enum
...
This changes makes it strongly typed and gives more context.
No changes in behavior expected here.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Signed-off-by: José Roberto de Souza <jose.souza@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30723 >
2025-03-06 16:25:04 +00:00
José Roberto de Souza
a13a6656dd
intel: Add function to check if PXP is supported in Xe KMD
...
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Signed-off-by: José Roberto de Souza <jose.souza@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30723 >
2025-03-06 16:25:04 +00:00
José Roberto de Souza
63861472ff
iris: Add support to create protected bo and protected exec_queue in Xe KMD
...
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Signed-off-by: José Roberto de Souza <jose.souza@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30723 >
2025-03-06 16:25:04 +00:00
José Roberto de Souza
e146e573f7
anv: Add support to create protected bo and protected exec_queue in Xe KMD
...
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Signed-off-by: José Roberto de Souza <jose.souza@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30723 >
2025-03-06 16:25:03 +00:00
José Roberto de Souza
a99d90d015
anv: Move code adding protected memory type to common code
...
Xe KMD now has support for protected memory, so lets move it
to common code.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Signed-off-by: José Roberto de Souza <jose.souza@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30723 >
2025-03-06 16:25:03 +00:00
José Roberto de Souza
187e65002f
intel: Sync xe_drm.h
...
Sync with:
commit 33e26f3544a558e7476eb221ff33173759b3a116
Merge: 16893dd23f6d1 b7b68c6e36776
Author: Dave Airlie <airlied@redhat.com >
Merge tag 'drm-xe-next-2025-02-24' of https://gitlab.freedesktop.org/drm/xe/kernel into drm-next
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Signed-off-by: José Roberto de Souza <jose.souza@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30723 >
2025-03-06 16:25:03 +00:00
José Roberto de Souza
4860532f49
anv: Remove protected memory support from compute queue
...
CCS don't support MI_SET_APPID instruction, that might be the reason
some tests protected memory tests fail on CCS.
Re-enable it if a workaround/solution is found.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Signed-off-by: José Roberto de Souza <jose.souza@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30723 >
2025-03-06 16:25:03 +00:00
José Roberto de Souza
008ac818ba
intel/common: Retry GEM_CONTEXT_CREATE when PXP have not finished initialization
...
If PXP initialization is not completed and application requested a
protected context the GEM_CONTEXT_CREATE will wait up to 250ms for
PXP to finish initialization but if that do not happens it will
return a error and set errno to EIO.
This patch add the missing retry handling.
Cc: mesa-stable
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Signed-off-by: José Roberto de Souza <jose.souza@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30723 >
2025-03-06 16:25:03 +00:00
Karol Herbst
ce60f47e96
rusticl/program: fix building kernels
...
We ended up with duplicates, but also rebuilt the same kernel over and
over again for multi dev builds.
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33892 >
2025-03-06 16:02:43 +00:00
Karol Herbst
57a7e86aa9
rusticl/program: rework build_nirs so it only touches devices we care about
...
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33892 >
2025-03-06 16:02:43 +00:00
Karol Herbst
241279ac2c
rusticl/program: loop over all devices inside Program::build
...
We want to build the kernels once and atm we are doing it several times
for each device.
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33892 >
2025-03-06 16:02:43 +00:00
Karol Herbst
e434ce1559
rusticl/program: pass options by reference
...
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33892 >
2025-03-06 16:02:43 +00:00
Karol Herbst
b2f3933c8d
rusticl/program: implement CL_INVALID_PROGRAM_EXECUTABLE check in clGetProgramInfo
...
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33892 >
2025-03-06 16:02:43 +00:00
Rob Clark
ee787b64ed
freedreno: Wait for imported syncobj fences to be available
...
Waiting on a fence created from an imported syncobj needs wait for the
fence_fd to become available
Fixes piglit tests added in https://gitlab.freedesktop.org/mesa/piglit/-/merge_requests/992
Fixes the following issue for freedreno: #12650
Cc: mesa-stable
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33724 >
2025-03-06 15:12:31 +00:00
Rob Clark
fac2c4af1b
tc: Add missing tc_set_driver_thread()
...
Cc: mesa-stable
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33724 >
2025-03-06 15:12:31 +00:00
Rebecca Mckeever
6df35783cc
panvk: Enable shaderStorageImageExtendedFormats
...
Signed-off-by: Rebecca Mckeever <rebecca.mckeever@collabora.com >
Reviewed-by: Benjamin Lee <benjamin.lee@collabora.com >
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33459 >
2025-03-06 14:45:17 +00:00
Rebecca Mckeever
27037efcfd
panvk: Add STORAGE_IMAGE_BIT feature for formats supporting sampled images
...
All formats that support sampled images should also be suitable for
storage images.
Fixes: d970fe2e ("panfrost: Add a Vulkan driver for Midgard/Bifrost GPUs")
Signed-off-by: Rebecca Mckeever <rebecca.mckeever@collabora.com >
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33459 >
2025-03-06 14:45:16 +00:00
Valentine Burley
90f33b217d
panfrost/ci: Pin g610-gl job to 4GB DUTs
...
Use exclusively the 4GB devices for the panfrost-g610-gl job, to preserve
the 8GB+ devices for the Vulkan jobs.
Signed-off-by: Valentine Burley <valentine.burley@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33865 >
2025-03-06 13:48:36 +00:00
Valentine Burley
dceb9a1a9b
panfrost/ci: Shorten Piglit job names
...
Drop extra gl and gles labels from the job names.
Signed-off-by: Valentine Burley <valentine.burley@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33865 >
2025-03-06 13:48:35 +00:00
Valentine Burley
b310a4a13d
panfrost/ci: Add a Piglit job on G57
...
We have more than enough devices available to add a new Piglit job on the
new mt8195-cherry-tomato-r2 device.
Signed-off-by: Valentine Burley <valentine.burley@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33865 >
2025-03-06 13:48:35 +00:00
Valentine Burley
815295e7bb
panforst/ci: Migrate the G57 GL job to MT8195
...
Migrate the panfrost-g57-gl job to a new device in LAVA,
mt8195-cherry-tomato-r2. This DUT is faster than the
mt8192-asurada-spherion-r0 device it replaces.
Signed-off-by: Valentine Burley <valentine.burley@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33865 >
2025-03-06 13:48:35 +00:00
Vasily Khoruzhick
dd765da872
lima: ppir: try inserting nodes into successor instr for uncond branch
...
It is safe to attempt inserting a node into the same instruction as
successor if successor is an unconditional branch.
ppir_instr_insert_node() will take care of conflicts with ALU_COMBINE
slot
Reviewed-by: Erico Nunes <nunes.erico@gmail.com >
Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33754 >
2025-03-06 13:25:40 +00:00
Vasily Khoruzhick
fa9ddbe82b
lima: ppir: optimize branches
...
Implement 2 optimizations for branches:
1) if unconditional branch target is a block that only has
unconditional branch, propagate the target
2) optimize following contruction:
block 1:
...
if (cond) block 3
block 2:
branch block N
block 3:
...
into
block 1:
...
if (!cond) block N
block 2:
block 3:
...
Note: optimization 1) significantly improves runtime of if ladders, but
it is not visible in shader-db because we do not track shortest/longest
path and it doesn't always create dead code (usually just a single
instruction)
Reviewed-by: Erico Nunes <nunes.erico@gmail.com >
Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33754 >
2025-03-06 13:25:40 +00:00
Vasily Khoruzhick
69b119bc00
lima: ppir: assign actual index to discard block
...
Discard block is always added to the block list after translation from NIR,
so we can just assign it an index that equals to block list size.
Reviewed-by: Erico Nunes <nunes.erico@gmail.com >
Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33754 >
2025-03-06 13:25:40 +00:00
Samuel Pitoiset
2a56afed8d
radv: switch to device address from vk_buffer
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33897 >
2025-03-06 09:46:01 +00:00
Faith Ekstrand
c99039e189
vulkan/meta: Use vk_buffer.device_address directly
...
This saves us jumping through an entrypoing just to fetch a uint64_t.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33897 >
2025-03-06 09:46:01 +00:00
Faith Ekstrand
b808277d09
hk: Use the new buffer device address infrastructure
...
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33897 >
2025-03-06 09:46:01 +00:00
Faith Ekstrand
8ca0531485
panvk: Use the new buffer device address infrastructure
...
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33897 >
2025-03-06 09:46:00 +00:00
Faith Ekstrand
7900ff5c56
nvk: Use the new buffer device address infrastructure
...
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33897 >
2025-03-06 09:46:00 +00:00
Faith Ekstrand
73da18b956
vulkan: Add device address helpers to vk_buffer
...
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33897 >
2025-03-06 09:46:00 +00:00
Job Noorman
c44243099f
ir3: lower immediates to const regs in preamble on a7xx
...
On a7xx, const registers should be loaded via the preamble instead of
uploaded by the driver to the const state. This commit implements this
by adding a new pass that emits the consts created by ir3_cp to a
sequence of stc instructions in the preamble.
Signed-off-by: Job Noorman <jnoorman@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32454 >
2025-03-06 08:47:54 +00:00
Job Noorman
fbe8fc0dae
ir3: fix max const size calculation for the binning pass
...
The binning pass should never exceed the const size of the non-binning
pass.
Signed-off-by: Job Noorman <jnoorman@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32454 >
2025-03-06 08:47:54 +00:00
Job Noorman
434b82469f
ir3: make const_imm_index_to_reg helper public
...
Signed-off-by: Job Noorman <jnoorman@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32454 >
2025-03-06 08:47:54 +00:00
Job Noorman
68ab25e6d4
ir3: split immediate state from rest of const state
...
On a7xx, the immediates that get promoted to const registers will be
initialized in the preamble instead of being part of the const state. So
technically, we won't need the immediate state that is part of the const
state anymore on a7xx. However, it is still a convenient place for
ir3_cp to store the immediates that should be promoted to const
registers before they are lowered to the preamble.
This causes one issue: the binning pass isn't allowed to modify the
const state while it's perfectly fine for it to use different immediates
compared to the non-binning pass on a7xx. Even pre-a7xx this is fine as
long as the size of the immediate buffer is the same.
To allow the binning pass to modify its immediate state while keeping
its const state immutable, this commit moves the fields related to
immediates into a new struct. Runtime checks are added to enforce that
the size of the immediate buffer is the same for the binning and
non-binning variant pre-a7xx.
Signed-off-by: Job Noorman <jnoorman@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32454 >
2025-03-06 08:47:54 +00:00
Job Noorman
f9fc0fc8fd
ir3/sched: handle dependencies between stc and const reads
...
Signed-off-by: Job Noorman <jnoorman@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32454 >
2025-03-06 08:47:54 +00:00
Job Noorman
0f6ec14925
ir3: fix false dependencies of rpt instructions
...
When merging multiple instructions into one rpt instruction, the false
deps of the rpt instruction should be the union of the false deps of its
parts.
Signed-off-by: Job Noorman <jnoorman@igalia.com >
Fixes: 4c4366179b ("ir3: add post-RA pass to merge repeat groups into rptN instructions")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32454 >
2025-03-06 08:47:54 +00:00
Job Noorman
62d2069617
ir3: add helper to create STC
...
Creating STC is complicated since we might need to use a1.x for
addressing. Extract the current code into a helper so that it can be
used elsewhere.
Signed-off-by: Job Noorman <jnoorman@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32454 >
2025-03-06 08:47:53 +00:00