Commit graph

221922 commits

Author SHA1 Message Date
Karmjit Mahil
00f006d841 nvk: Add heap_memory_percent driconf support
The budget calculation has changes slightly as the budget scaling
is applied prior to adding the used up heap memory.

Signed-off-by: Karmjit Mahil <karmjit.mahil@igalia.com>
2026-05-05 11:31:27 +01:00
Karmjit Mahil
253f3a30eb panfrost: Add heap_memory_percent driconf support
This also changes `max_mem_alloc_size` to use 100% instead of the
heuristic, consistent with `video_memory`.

Signed-off-by: Karmjit Mahil <karmjit.mahil@igalia.com>
2026-05-05 11:31:27 +01:00
Karmjit Mahil
084164fbb5 panvk: Add heap_memory_percent driconf support
The budget calculation has changes slightly as the budget scaling
is applied prior to adding the used up heap memory.

This also introduces a new tier since the common helper exposes
25% of memory as heap on devices with <=1GiB memory. Previously
50% was being used.

Signed-off-by: Karmjit Mahil <karmjit.mahil@igalia.com>
2026-05-05 11:31:27 +01:00
Karmjit Mahil
69d7a20fa6 freedreno: Add heap_memory_percent driconf support
Note: instead of using the common heuristic, the old behavior is
maintained.

Signed-off-by: Karmjit Mahil <karmjit.mahil@igalia.com>
2026-05-05 11:31:26 +01:00
Karmjit Mahil
9e52b99500 tu: Add heap_memory_percent driconf support
Also remove the clamping to va_size in the budget calculation
since the heap_size is already clamped to va_size and the budget
is clamped to heap_size.

This also introduces a new tier since the common helper exposes
25% of memory as heap on devices with <=1GiB memory. Previously
50% was being used.

Signed-off-by: Karmjit Mahil <karmjit.mahil@igalia.com>
2026-05-05 11:24:09 +01:00
Karmjit Mahil
57d7ce06b6 v3d: Add heap_memory_percent driconf support
Signed-off-by: Karmjit Mahil <karmjit.mahil@igalia.com>
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
2026-05-05 11:24:09 +01:00
Karmjit Mahil
37384a648e v3dv: Add heap_memory_percent driconf support
This also introduces a new tier since the common helper exposes
25% of memory as heap on devices with <=1GiB memory. Previously
50% was being used.

This also fixes `device->heap_used` not using atomic read.

Signed-off-by: Karmjit Mahil <karmjit.mahil@igalia.com>
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
2026-05-05 11:24:09 +01:00
Karmjit Mahil
bb58ff5b0e asahi: Add heap_memory_percent driconf support
Signed-off-by: Karmjit Mahil <karmjit.mahil@igalia.com>
2026-05-05 11:23:56 +01:00
Karmjit Mahil
a0415a4763 hk: Add heap_memory_percent driconf support
The budget calculation has changes slightly as the budget scaling
is applied prior to adding the used up heap memory.

Signed-off-by: Karmjit Mahil <karmjit.mahil@igalia.com>
2026-05-05 11:23:55 +01:00
Karmjit Mahil
111ff08c40 kk: Use common helper for heap memory and budget
The budget calculation has changes slightly as the budget scaling
is applied prior to adding the used up heap memory.

Signed-off-by: Karmjit Mahil <karmjit.mahil@igalia.com>
2026-05-05 10:49:34 +01:00
Karmjit Mahil
df76580e22 vulkan: Add heap budget helper function
Some drivers scale the available memory proportionally to the
advertised heap memory. The `heap_memory_percent` driconf option
allows tweaking the percentage of system memory exposed as heap
memory, so drivers supporting this also need to scale their
budgets accordingly. So add `vk_gpu_heap_budget_from_system()`.

Some drivers just clamp the available memory to the heap size. This
is accounted for by having the `scale_with_heap` parameter.

Signed-off-by: Karmjit Mahil <karmjit.mahil@igalia.com>
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
2026-05-05 10:42:44 +01:00
Karmjit Mahil
fbdd9bec92 util: Add heap_memory_percent driconf option
Also adds helper function to be used by drivers.

Signed-off-by: Karmjit Mahil <karmjit.mahil@igalia.com>
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
2026-05-05 10:20:32 +01:00
Icenowy Zheng
38cf44a733 pvr: ignore DS attachment's D or S when it's unused in dynamic rendering
Dynamic rendering codepath allows binding an attachment with a
depth+stencil format, but only depth or stencil active. The
corresponding test should be disable in such case.

Ignore the attachment's depth or stencil according to the rendering
attachment info's is_depth and is_stencil variables.

Fixes the following CTS testcases:
dEQP-VK.pipeline.monolithic.stencil.no_stencil_att.dynamic_rendering.static_enable.d24_unorm_s8_uint
dEQP-VK.pipeline.monolithic.stencil.no_stencil_att.dynamic_rendering.static_enable.d32_sfloat_s8_uint
dEQP-VK.pipeline.monolithic.stencil.no_stencil_att.dynamic_rendering.dynamic_enable.d24_unorm_s8_uint
dEQP-VK.pipeline.monolithic.stencil.no_stencil_att.dynamic_rendering.dynamic_enable.d32_sfloat_s8_uint

Signed-off-by: Icenowy Zheng <zhengxingda@iscas.ac.cn>
Reviewed-by: Luigi Santivetti <luigi.santivetti@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41054>
2026-05-01 08:22:05 +00:00
Dave Airlie
645de2b433 gallivm: handle llvm 22 scatter/gather intrinsic changes.
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
The intrinsics moved alignment to an attribute on the pointer.

Cc: mesa-stable
Acked-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41308>
2026-05-01 03:51:55 +00:00
Dave Airlie
469270b914 gallivm: handle llvm 22 coroutine end change
the coroutine end changed return value.

Cc: mesa-stable
Acked-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41308>
2026-05-01 03:51:55 +00:00
Mike Blumenkrantz
d998456d21 llvmpipe: fix min_samples + A2C
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
running a2c in its usual loop fails to update the mask for the current
sample, which breaks successive operations BUT ONLY WHEN RUNNING PER-SAMPLE

cc: mesa-stable

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41272>
2026-05-01 03:32:54 +00:00
Marek Olšák
740b9fa19b radeonsi: set glsl_bindless_handles_are_32bit
to lower bindless handles to 32 bits in the GLSL compiler and eliminate
input loads of high 32 bits of bindless handles before nir_opt_varyings.

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41170>
2026-05-01 03:00:17 +00:00
Marek Olšák
5db0493a04 glsl,gallium: add pipe_caps::glsl_bindless_handles_are_32bit
to lower bindless handles to 32 bits before nir_opt_varyings, so that
the high 32 bits of (input) loads of bindless handles are eliminated early.

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41170>
2026-05-01 03:00:17 +00:00
Marek Olšák
1b409ff681 aco/tests: update ACO tests for ac_nir_lower_tex_coords refactoring
For: ac/nir/lower_tex_coords: move input loads instead of cloning them

Suggested by: Georg Lehmann

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41173>
2026-05-01 02:37:16 +00:00
Marek Olšák
ac33f82d54 ac/nir/lower_tex_coords: move input loads instead of cloning them
This stops leaving dead input loads behind.

Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41173>
2026-05-01 02:37:16 +00:00
Marek Olšák
ad4eaaae68 ac/nir: factor out ac_nir_lower_tex_coords from ac_nir_lower_image_tex
This just separates tex coord lowering into a new pass.

The gfx_level parameter is now unused in ac_nir_lower_image_tex, but I'm
keeping it because it will be used in the future.

Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41173>
2026-05-01 02:37:16 +00:00
Calder Young
6aabe5482e anv: Fix support for indirect SBTs on Xe3+
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
Fixes: 6deb195 ("anv: Update RT dispatch globals to use 64bit data structure")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41004>
2026-05-01 00:18:23 +00:00
Calder Young
8f7309d9a9 anv: Fix address bit masking for indirect SBTs
Fixes: ce68824 ("anv: fix invalid masking of 48bit address")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41004>
2026-05-01 00:18:23 +00:00
Christian Gmeiner
3e51d35d1a egl: Switch to mesa_log(..)
Mesa's common logging framework supports Android already - switch
to it.

Note: on non-Android platforms this changes the message format -
the "libEGL" prefix is gone, replaced by mesa_log's "MESA-EGL" tag.

Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com>
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33975>
2026-04-30 23:51:48 +00:00
Mohamed Ahmed
d04945ed96 nvk: Remove nvk_image_plane_size_align_B()
Now that we stash the offset and alignment, this helper is redundant.

Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Reviewed-by: Mel Henning <mhenning@darkrefraction.com>
Tested-by: Mary Guillemard <mary@mary.zone>

Backport-to: 26.1
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40473>
2026-04-30 23:32:09 +00:00
Mohamed Ahmed
c6fbd3402e nvk: Use the pre-calculated offsets for sparse binds
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Reviewed-by: Mel Henning <mhenning@darkrefraction.com>
Tested-by: Mary Guillemard <mary@mary.zone>

Backport-to: 26.1
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40473>
2026-04-30 23:32:09 +00:00
Mohamed Ahmed
98185bfb8e nvk: Enable multiplanar YCbCr linear modifiers
Closes: #14975

Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Reviewed-by: Mel Henning <mhenning@darkrefraction.com>
Tested-by: Mary Guillemard <mary@mary.zone>

Backport-to: 26.1
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40473>
2026-04-30 23:32:09 +00:00
Mohamed Ahmed
72e4b256c7 nvk: Defer tiled shadow plane memory allocation to draw time
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Reviewed-by: Mel Henning <mhenning@darkrefraction.com>
Tested-by: Mary Guillemard <mary@mary.zone>

Backport-to: 26.1
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40473>
2026-04-30 23:32:08 +00:00
Mohamed Ahmed
1564995b0f nvk: Extend tiled_shadow to be multiplanar
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Reviewed-by: Mel Henning <mhenning@darkrefraction.com>
Tested-by: Mary Guillemard <mary@mary.zone>

Backport-to: 26.1
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40473>
2026-04-30 23:32:08 +00:00
Mohamed Ahmed
29ffb84501 nvk: Calculate and stash the plane offset and alignment at create time
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Reviewed-by: Mel Henning <mhenning@darkrefraction.com>
Tested-by: Mary Guillemard <mary@mary.zone>

Backport-to: 26.1
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40473>
2026-04-30 23:32:08 +00:00
Mohamed Ahmed
7f5767a2f2 nil/modifiers: Clarify drm_format_mods_for_format rejecting modifiers for unsupported color formats
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Reviewed-by: Mel Henning <mhenning@darkrefraction.com>
Tested-by: Mary Guillemard <mary@mary.zone>

Backport-to: 26.1
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40473>
2026-04-30 23:32:07 +00:00
Faith Ekstrand
baa13f6a86 zink: Assert if we try to use a dedicated allocation with offset > 0
Acked-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Reviewed-by: Mel Henning <mhenning@darkrefraction.com>
Tested-by: Mary Guillemard <mary@mary.zone>

Backport-to: 26.1
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40473>
2026-04-30 23:32:07 +00:00
Emma Anholt
d8b525466c ir3: Fix shared IMAD24 lowering.
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
Caught by
dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_us_v2i16_out32
and friends in !41178

Fixes: b4874aa5cf ("ir3: Use scalar ALU instructions when possible")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41278>
2026-04-30 22:39:29 +00:00
Samuel Pitoiset
608bc0e593 radv/meta: fix expanding HTILE on compute with multisampling
The expand was considering only the first sample, very old bug.

This fixes test_{copy,compute}_queue_depth_stencil_msaa from
vkd3d-proton on GFX11-GFX11.7 GPUs. Older GPUs don't support image
stores with depth/stencil MSAA images.

Cc: mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41267>
2026-04-30 22:17:43 +00:00
Valentine Burley
207aa9eba4 venus/ci: Skip more robustness tests on ANV
dEQP-VK.robustness.buffer_access.* can cause hangs in Cuttlefish:

https://gitlab.freedesktop.org/mesa/mesa/-/jobs/98383598

04-27 18:45:39.578  5675  5675 I dEQP    : Test case 'dEQP-VK.robustness.buffer_access.through_pointers.compute.reads.32B_in_memory_with_vec4_f32'..
04-27 18:45:39.583  5675  5675 I vulkan  : CreateInfoWrapper::FilterExtension: already have 'VK_KHR_external_fence_fd'.
04-27 18:45:43.428  5675  5675 D MESA-VIRTIO: stuck in fence wait with iter at 1024
04-27 18:45:43.486  5675  5675 D MESA-VIRTIO: ERROR: ffb must be signaled now
04-27 18:45:43.488  5675  5675 I dEQP    :   Fail (vk.waitForFences(*m_device, 1, &m_fence.get(), true, ~(0ull) ): VK_ERROR_UNKNOWN at vktRobustBufferAccessWithVariablePointersTests.cpp:1608)

Skip the entire group to improve CI stability.

Signed-off-by: Valentine Burley <valentine.burley@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41296>
2026-04-30 21:58:55 +00:00
Paulo Zanoni
8ced368644 anv: don't silently convert view ranges from u64 to u32 then u64
Both anv_buffer_view->vk.range and VkDescriptorAddressInfoEXT->range
are VkDeviceSize, which is uint64_t. In Anv, we pass this to
align_down_npot_u32(), anv_fill_buffer_surface_state() and
anv_fill_buffer_view_surface_state(), all which convert it down to
uint32_t. Then we call isl_buffer_fill_state(), converting the value
back to uin64_t as size_B.

Remove the intermediate u32 truncation everywhere. If some place does
not accept values bigger than UINT_MAX, it is that place that should
have a check. We shouldn't silently convert a u64 value to u32 and
then back to u64.

I'm not aware or any workloads that are affected by this bug today.

Reviewed-by: Dylan Baker <dylan.c.baker@intel.com>
Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41251>
2026-04-30 21:32:23 +00:00
Paulo Zanoni
4167b7d51f intel/isl: warn about excessive num_elements only once
Commit f3c7e14f09 ("isl: don't assert(num_elements > (1ull << 27))")
replaced an assert(num_elements <= (1 << 27)) with a mesa_logw(). At
that time, the only games I knew that printed this message (Marvel's
Spider-Man Remastered and Assassin's Creed: Valhalla) only printed
it a few times during startup.

It turns out that The Last Of Us Part II Remastered constantly prints
this message during gameplay. Downgrade it to mesa_logw_once() so we
don't spam the terminal, don't fill disks with log messages and don't
make things slower in general.

Fixes: f3c7e14f09 ("isl: don't assert(num_elements > (1ull << 27))")
Reviewed-by: Dylan Baker <dylan.c.baker@intel.com>
Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41251>
2026-04-30 21:32:23 +00:00
Paulo Zanoni
c4b6df29bf intel/isl: fix assert when surf->size_B is > UINT_MAX
I have some local tests for Sparse Resources that I wrote when I was
working on that for Anv. One of them tries to create a sparse buffer
with size 4294967296 (which doesn't fit in an uint32_t). Without this
patch, the right side of the assertion overflows and we get:

sparse: ../../src/intel/isl/isl.c:3787: isl_surf_from_mem: Assertion `surf->size_B == surf->row_pitch_B * extent.h * extent.a' failed

Fixes: fcdae4d4c0 ("intel: Add and use isl_surf_from_mem()")
Reviewed-by: Dylan Baker <dylan.c.baker@intel.com>
Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41253>
2026-04-30 21:07:02 +00:00
Adrián Larumbe
293b264b7d pan/kmod: fix double syncop count sum when populating vm_bind syncs
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
In order to assign bind_ops[i].syncs a slice of the sync_ops array,
op_sync_cnt must record the exact number sync operations for that vm_bind
operation, so that &sync_ops[syncop_ptr - op_sync_cnt] will give us the
right start of its slice.

Fixes: 97f6a62f7e ("pan/kmod: Add a backend for panthor")
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Signed-off-by: Adrián Larumbe <adrian.larumbe@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41274>
2026-04-30 20:20:08 +00:00
Adrián Larumbe
9145ce0bb2 pan/kmod: Fix minor version number check for USER_MMIO_OFFSET ioctl
It has been available in the Panthor KMD since 1.5

Fixes: 590ad83b98 ("panfrost: Use pan_image_test_modifier_with_format() to do our modifier check")
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Signed-off-by: Adrián Larumbe <adrian.larumbe@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41274>
2026-04-30 20:20:08 +00:00
Allen Ballway
b64cd520f7 vulkan/android: Set COLOR_ATTACHMENT_BIT for external format resolve
When using ANDROID_external_format_resolve if a valid
colorAttachmentFormat is returned by
VkAndroidHardwareBufferFormatResolvePropertiesAndroid, the
formatFeatures should include VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT so
strict applications can use the buffer as a render target.

Signed-off-by: Allen Ballway <ballway@chromium.org>
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Reviewed-by: Lucas Fryzek <lfryzek@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41142>
2026-04-30 19:56:26 +00:00
Lorenzo Rossi
db27a10f38 pan/compiler: Add better documentation for second lower_int64
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: Lorenzo Rossi <lorenzo.rossi@collabora.com>
Reviewed-by: Christoph Pillmayer <christoph.pillmayer@arm.com>
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40924>
2026-04-30 18:26:13 +00:00
Lorenzo Rossi
d2f7b8db9d pan/compiler: Collect nopersp varyings in lower_noperspective_fs
Now that lower_noperspective_fs and varying collection are closer
together we can merge nopersp collection in lower_noperspective_fs
without fear of desyncrhonization, making everything also a bit cleaner.

Signed-off-by: Lorenzo Rossi <lorenzo.rossi@collabora.com>
Reviewed-by: Christoph Pillmayer <christoph.pillmayer@arm.com>
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40924>
2026-04-30 18:26:13 +00:00
Lorenzo Rossi
dfdb9f1d41 pan/compiler: Sort postprocess
Now that we removed a lot of upcoming bugs using time-travel, we can
reorders the passes in postprocess to be more in-line with modern
compilers.  We also lift a lot of passes from compile_shader_nir into
postprocess.

Signed-off-by: Lorenzo Rossi <lorenzo.rossi@collabora.com>
Co-authored-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Reviewed-by: Christoph Pillmayer <christoph.pillmayer@arm.com>
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40924>
2026-04-30 18:26:13 +00:00
Lorenzo Rossi
312603b2fa pan/compiler: Rename bifrost_optimize_nir
Signed-off-by: Lorenzo Rossi <lorenzo.rossi@collabora.com>
Reviewed-by: Christoph Pillmayer <christoph.pillmayer@arm.com>
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40924>
2026-04-30 18:26:12 +00:00
Lorenzo Rossi
6f05b27b9a panvk: Remove pan_optimize_nir call
The shader will be optimized a few passes later in preprocess, this way
we can have the same pipeline as in Gallium

Signed-off-by: Lorenzo Rossi <lorenzo.rossi@collabora.com>
Reviewed-by: Christoph Pillmayer <christoph.pillmayer@arm.com>
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40924>
2026-04-30 18:26:12 +00:00
Lorenzo Rossi
39f54ddea2 panvk,panfrost: Pass inputs and info to postprocess
This is needed if we want postprocess to decide IDVS and layout later in
the series

Signed-off-by: Lorenzo Rossi <lorenzo.rossi@collabora.com>
Reviewed-by: Christoph Pillmayer <christoph.pillmayer@arm.com>
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40924>
2026-04-30 18:26:12 +00:00
Lorenzo Rossi
01e6a0555c pan/compiler: Rework scratch memory strategy
Before this commit, all scartch memory was allocated in 16-byte chunks
and indirect references where always lowered into if-else trees.  This
patch tries to clean this up a little bit, by using a more compact layout
that is still TLS friendly, allowing indirect accesses and only lowering
them for optimizations and using the newer nir_lower_explicit_io.

The patches should improve performance on some shaders, but lifts a lot
of dust off the compiler uncovering some new bugs.  They have been kept
at bay by disabling local memory vectorization.

Signed-off-by: Lorenzo Rossi <lorenzo.rossi@collabora.com>
Reviewed-by: Christoph Pillmayer <christoph.pillmayer@arm.com>
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40924>
2026-04-30 18:26:11 +00:00
Lorenzo Rossi
f0d2ad9840 panvk/jm: Fix tls_size overwrite in indirect draws
Only caused problems when the VS/FS has more TLS than our internal shaders
that doesn't usually happen but will cause bugs when we start to
compress local memory.

Fixes: 005703e5b5 ("panvk: Move TLS preparation logic to cmd_dispatch_prepare_tls")
Signed-off-by: Lorenzo Rossi <lorenzo.rossi@collabora.com>
Reviewed-by: Christoph Pillmayer <christoph.pillmayer@arm.com>
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40924>
2026-04-30 18:26:11 +00:00
Lorenzo Rossi
768d7cb149 pan/compiler: Sort preprocess
Reorders the preprocess passes to be more in-line with modern compilers.

Signed-off-by: Lorenzo Rossi <lorenzo.rossi@collabora.com>
Co-authored-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Reviewed-by: Christoph Pillmayer <christoph.pillmayer@arm.com>
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40924>
2026-04-30 18:26:11 +00:00