Commit Graph

215990 Commits

Author SHA1 Message Date
Faith Ekstrand b5e47ba894 pan/kmod: Add new helpers to sync BO CPU mappings
pan_kmod_flush_bo_map_syncs() queues CPU-sync operations, and
pan_kmod_flush_bo_map_syncs_locked() ensures all queued
operations are flushed/executed. Those will be used when we start
adding support for CPU-cached mappings.

Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Christoph Pillmayer <christoph.pillmayer@arm.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36385>
2025-12-12 10:15:41 +01:00
Boris Brezillon af14c37bf1 pan/kmod: Enforce PAN_KMOD_BO_FLAG_NO_MMAP
Fail early in pan_kmod_bo_mmap() if PAN_KMOD_BO_FLAG_NO_MMAP is set.
This saves us a user -> kernel round-trip, but most importantly, it
allows us to enforce NO_MMAP at the userspace level on BOs that the
kernel would otherwise accept to mmap() (mapping of imported BOs
requires extra DMA_BUF_IOCTL_SYNC calls we don't have).

Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Christoph Pillmayer <christoph.pillmayer@arm.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36385>
2025-12-12 10:15:41 +01:00
Boris Brezillon 0f4f556229 pan/kmod: Expose the IO coherency property
Will be used to skip cache maintenance operations when the GPU is IO
coherent.

Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Reviewed-by: Christoph Pillmayer <christoph.pillmayer@arm.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36385>
2025-12-12 10:15:41 +01:00
Faith Ekstrand cd8b8baf6e pan/kmod: Expose the BO flags supported by a pan_kmod_device
Will be needed to let the frontend know if it can use cached CPU-mappings,
and it allows us to extend the set of supported flags without introducing
a new field if we ever have to.

Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Christoph Pillmayer <christoph.pillmayer@arm.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36385>
2025-12-12 10:15:41 +01:00
Faith Ekstrand 7e65322c93 pan/kmod: Add a panfrost_kmod_driver_version_at_least() helper
We have a few hand-rolled instances of this which work well enough but it
gets more complicated as soon as we care about checking a major version
more than 1.  Add a helper to make this more robust.

Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Christoph Pillmayer <christoph.pillmayer@arm.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36385>
2025-12-12 10:15:41 +01:00
Boris Brezillon ee172bb769 pan/kmod: Cache the device props at the pan_kmod_dev level
The frontend is going to query the device props anyway, so let's just
query it at device creation time and store it in pan_kmod_dev::props.

Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Acked-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Reviewed-by: Christoph Pillmayer <christoph.pillmayer@arm.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36385>
2025-12-12 10:15:30 +01:00
Faith Ekstrand f43cff3728 util: Move STACK_ARRAY into util
It's useful for more than just Vulkan.

Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Christoph Pillmayer <christoph.pillmayer@arm.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36385>
2025-12-12 10:03:02 +01:00
Faith Ekstrand 61f7990b9a drm-uapi: Sync the panfrost header
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Christoph Pillmayer <christoph.pillmayer@arm.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36385>
2025-12-12 10:03:02 +01:00
Faith Ekstrand 8c8864baea drm-uapi: Sync the panthor header
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Christoph Pillmayer <christoph.pillmayer@arm.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36385>
2025-12-12 10:03:02 +01:00
Boris Brezillon ef760d4c59 people: Add Christoph Pillmayer to the list
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Christoph Pillmayer <christoph.pillmayer@arm.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36385>
2025-12-12 10:03:02 +01:00
Georg Lehmann 0fe8250bf4 radv: optimize known front_face_fsign too
Foz-DB Navi21:
Totals from 1941 (1.99% of 97581) affected shaders:
MaxWaves: 44196 -> 44612 (+0.94%); split: +0.97%, -0.03%
Instrs: 1553182 -> 1548823 (-0.28%); split: -0.36%, +0.08%
CodeSize: 8261308 -> 8261496 (+0.00%); split: -0.17%, +0.18%
VGPRs: 98488 -> 97968 (-0.53%); split: -0.56%, +0.03%
SpillSGPRs: 1288 -> 1347 (+4.58%)
Latency: 19136399 -> 19094748 (-0.22%); split: -0.38%, +0.16%
InvThroughput: 5424693 -> 5409469 (-0.28%); split: -0.32%, +0.04%
VClause: 29941 -> 29943 (+0.01%); split: -0.26%, +0.27%
SClause: 39922 -> 39972 (+0.13%); split: -1.02%, +1.14%
Copies: 109736 -> 109684 (-0.05%); split: -1.45%, +1.40%
Branches: 24523 -> 24499 (-0.10%); split: -0.12%, +0.02%
PreSGPRs: 99206 -> 99191 (-0.02%); split: -0.02%, +0.00%
PreVGPRs: 79019 -> 78240 (-0.99%); split: -1.00%, +0.02%
VALU: 1145088 -> 1140731 (-0.38%); split: -0.44%, +0.06%
SALU: 164035 -> 164077 (+0.03%); split: -0.48%, +0.51%
SMEM: 80668 -> 80658 (-0.01%)

We used to call this pass before front_face_fsign is created
but that has changed.

Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38906>
2025-12-12 08:24:38 +00:00
Collabora's Gfx CI Team dd05c4a566 Uprev ANGLE to 2ed4b049c064add3109c7b1e0c954a0bce856df8
https://github.com/google/angle/compare/ee05836a4934129527544385203ecf420afc5dd1...2ed4b049c064add3109c7b1e0c954a0bce856df8

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38917>
2025-12-12 07:04:49 +00:00
Marek Olšák 9bd2c6dcb2 ac/nir: allow smaller workgroups for GS
It's not good for performance, but it's possible to use for debugging.
Running single-wave GS workgroups could work around any LDS race conditions.

Setting the workgroup size to 64 reliably works around
GLCTS *primitive_counter*line failures, indicating streamout data
corruption with multi-wave GS workgroups.

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38328>
2025-12-12 04:27:32 +00:00
stefan11111 ff8df8712e gallium/frontends/dri: Don't force dri cursor buffers to be 64x64
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Signed-off-by: stefan11111 <stefan11111@shitposting.expert>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38841>
2025-12-12 02:39:41 +00:00
Qiang Yu 3f37740762 ac/llvm: workaround legacy fma intrinsic crash on gfx12
This is a llvm bug:
  https://github.com/llvm/llvm-project/issues/170437

Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/14359
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38884>
2025-12-12 02:08:41 +00:00
Rob Clark cb9d9b8a6e asahi: Set prefer_real_buffer_in_constbuf0
This avoids u_upload_data_ref() when cb0 is bound.  The u_upload_*_ref()
paths are still problematic to mix with uploaders that the front-end
uses with explicitly managed releasebufs, but this at least side-steps
the issue, and is a legit fix on it's own.

Cc: mesa-stable
Signed-off-by: Rob Clark <rob.clark@oss.qualcomm.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38896>
2025-12-12 00:55:55 +00:00
Rob Clark 51605bfac2 gallium: Make upload_cb0 return a releasebuf
pipe_upload_constant_buffer0() was immediately releasing the
u_upload_alloc() releasebuf.  But it is used in various call-
paths where the release needs to be deferred further.

Fixes crashes in firefox for any driver that uses the same
u_upload_mgr instance for pipe->const_uploader and
pipe->stream_uploader.

Fixes: b3133e250e ("gallium: add pipe_context::resource_release to eliminate buffer refcounting")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/14309
Signed-off-by: Rob Clark <rob.clark@oss.qualcomm.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38896>
2025-12-12 00:55:55 +00:00
Rob Clark b2daaaec81 gallium/aux: Add debug option to force u_upload rollover
Triggering the rollover where the old upload buffer is released is a
good way to catch bugs with a releasebuf being dropped too soon (ie.
while the frontend still needs a reference).

This makes it easy to reproduce firefox crashes in any driver where
pipe->const_uploader == pipe->stream_uploader.

Signed-off-by: Rob Clark <rob.clark@oss.qualcomm.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38896>
2025-12-12 00:55:55 +00:00
Kenneth Graunke bdacab49c7 brw: Use LSC extended descriptor offsets for Xe2 URB messages
URB messages on Xe2 are LSC messages with FLAT addressing.  We can
specify a S19 immediate offset in the extended message descriptor,
which should be more than adequate to hold any offsets we need.

We wrote the original URB code before implementing that, and never
doubled back to take advantage of it.  But doing so can drop ADDs
near every URB access.

fossil-db results on Battlemage:

   Totals:
   Instrs: 232239759 -> 231432254 (-0.35%)
   Cycle count: 34044435848.0 -> 34055507100.0 (+0.03%); split: -0.00%, +0.04%
   Spill count: 520370 -> 520362 (-0.00%); split: -0.00%, +0.00%
   Fill count: 470790 -> 470803 (+0.00%); split: -0.00%, +0.00%
   Max live registers: 72111853 -> 72111369 (-0.00%); split: -0.00%, +0.00%

   Totals from 227920 (28.89% of 788851) affected shaders:
   Instrs: 59841897 -> 59034392 (-1.35%)
   Cycle count: 683385208.0 -> 694456460.0 (+1.62%); split: -0.14%, +1.76%
   Spill count: 17278 -> 17270 (-0.05%); split: -0.10%, +0.06%
   Fill count: 17481 -> 17494 (+0.07%); split: -0.03%, +0.10%
   Max live registers: 23052652 -> 23052168 (-0.00%); split: -0.00%, +0.00%

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Rohan Garg <rohan.garg@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38899>
2025-12-12 00:12:03 +00:00
Kenneth Graunke 9482d392a1 brw: Fix outdated comments about urb->offset units
I recently converted urb->offset to be in bytes on Xe2, but neglected to
update these comments that still said OWord.

Fixes: 9ffae42975 ("brw: Store brw_urb_inst::offset in bytes on Xe2")
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Rohan Garg <rohan.garg@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38899>
2025-12-12 00:12:03 +00:00
Alejandro Piñeiro bb06af3f9b panfrost/job: avoid shadowing variable name
Without this commit, panfrost_batch_update_access receives a parameter
called "batch", and then it uses the same name while iterating for all
batches on the current context. This can be confusing and error-prone,
so let's rename the latter.

Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38908>
2025-12-11 23:44:20 +00:00
Lionel Landwerlin fecb9e0952 anv: switch shader heap placement to beginning of heap by default
It seems placing the shader at the end has a negative performance
impact.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: 8ba197c9ef ("anv: Switch shaders to dedicated VMA allocator")
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38900>
2025-12-11 23:20:06 +00:00
Iván Briano 094f8f041f anv: enable fragmentShadingRateWithShaderSampleMask on Xe2+
Before DG2, the value the HW gives us seems to be backwards, but
since DG2 this is supposed to be supported just fine.
However, due to Wa_22012766191, enable it only for Xe2 and up.

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38641>
2025-12-11 22:50:10 +00:00
Iván Briano df15770785 anv: coarse_pixel doesn't require any InputCoverageMaskState
The UNUSED is to avoid warnings on the gen9 variant.

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38641>
2025-12-11 22:50:10 +00:00
Iván Briano 978d4b2a99 anv: maxFragmentShadingRateCoverageSamples is 16 on all platforms
But before ACM, we need to mis-report it to keep the CTS sane, as the
implementation of coarse pixel seems to have all sorts of wrongs in
older HW.

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38641>
2025-12-11 22:50:10 +00:00
Iván Briano a7280ab590 nir: add nir_lower_single_sampled::lower_sample_mask_in option
GLSL defines gl_SampleMaskIn as :
   "a fragment language that indicates the set of samples covered
    by the primitive generating the fragment during multisample
    rasterization"

when variable rate shading is enabled, a single invocation might cover
multiple samples. The lowering done in nir_lower_single_sampled() does
not account for that case, so add an option to selectively disable it.

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38641>
2025-12-11 22:50:10 +00:00
Iván Briano ef31f07077 nir: clear SAMPLE_MASK_IN if we lowered it
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38641>
2025-12-11 22:50:10 +00:00
Emma Anholt 71b59563fe tu: Move tu_xs_config() to use the CRB builder.
This duplicates the field setup per stage, but lets us use the nice reg
packers.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38762>
2025-12-11 22:22:34 +00:00
Emma Anholt 780de476e7 tu: Split loading immediates for a program from the program config.
This moves the immediates load down a bit, so we can continue the CRB
conversion of program config.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38762>
2025-12-11 22:22:34 +00:00
Emma Anholt 5f091af897 tu: Move a bunch of program config to CRB.
This shows off how we don't need to pass an explicit size per CRB instance
in our non-growable CSes.

However, I don't like the additional indentation I did to make a CRB go
out of scope when I needed.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38762>
2025-12-11 22:22:34 +00:00
Emma Anholt c130c94bcb tu: move tu6_emit_msaa() to use CRB.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38762>
2025-12-11 22:22:34 +00:00
Emma Anholt f973ff307d tu: Move tu6_emit_window_offset() to use CRB.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38762>
2025-12-11 22:22:34 +00:00
Emma Anholt 5bfc950128 tu: Move tu6_emit_mrt() to use CRB.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38762>
2025-12-11 22:22:34 +00:00
Emma Anholt daa9c0e228 tu: Move VFD CRBs to the CRB builder.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38762>
2025-12-11 22:22:34 +00:00
Emma Anholt 02602cc3e4 tu: Move pipeline SO setup to the CRB builder.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38762>
2025-12-11 22:22:34 +00:00
Emma Anholt 1b93a4b778 tu: Add CRB builder.
Loosely based on freedreno's, but simplified since a lot of overflow
handling was already there in tu_cs.  It successfully catches issues of:

- Overflowing the CRB reservation
- Starting a new CRB with one in progress.
- Emitting a pkt4 while a CRB emit is in progress.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38762>
2025-12-11 22:22:34 +00:00
Jonathan Marek 2d6c15ad57 tu: remove magic bo reg packing (use iovas directly)
Signed-off-by: Jonathan Marek <jonathan@marek.ca>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38762>
2025-12-11 22:22:34 +00:00
Emma Anholt 67c6abb20b tu,freedreno: Drop the ".bo_write" flag.
It's been unused since my commit 064f395a89 ("freedreno: Tell the kernel
that all BOs are for writing.") back in 2020.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38762>
2025-12-11 22:22:34 +00:00
Calder Young 0b3f0d1662 anv: Fix typo when checking if async rt scratch size changed
Current stack size is stored in layout.sw_stack_size, but the function
thats supposed to update it is comparing layout.total_size instead.

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
CC: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38898>
2025-12-11 20:43:51 +00:00
Christian Gmeiner b393518bdf treewide: Use wsi_common_is_swapchain_image() helper
Replace the duplicated swapchain image detection pattern across all
Vulkan drivers with the new wsi_common_is_swapchain_image() helper.

Since the swapchain handle can be extracted from VkImageCreateInfo's
pNext chain inside wsi_common_create_swapchain_image(), remove the
now-redundant VkSwapchainKHR parameter from that function.

This removes the #ifdef guards for Android/WSI platforms from each
driver, as the helper now handles this uniformly.

Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com>
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Yonggang Luo <luoyonggang@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38541>
2025-12-11 20:20:39 +00:00
Christian Gmeiner 9a89280d62 vulkan/wsi: Add wsi_common_is_swapchain_image() helper
Add a helper function to check if a VkImageCreateInfo represents a
swapchain image by looking for VkImageSwapchainCreateInfoKHR in the
pNext chain.

This consolidates the swapchain detection logic that is currently
duplicated across all Vulkan drivers, and handles the Android case
in one place.

Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com>
Suggested-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Yonggang Luo <luoyonggang@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38541>
2025-12-11 20:20:39 +00:00
Boris Brezillon 840c80d80e pan/ci: Disable THP on panfrost-g52-piglit
This is causing an OOM, and weston gets killed, which causes all
the remaining jobs to fail after that point.

Until this is sorted out, disable THP for this specific job.

Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38912>
2025-12-11 19:45:33 +00:00
Erik Faye-Lund 708d331a04 pvr: run clang-format
This fixes up a bunch of clang-format issues that was missed recently.

Reviewed-by: Frank Binns <frank.binns@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38886>
2025-12-11 19:07:40 +00:00
Erik Faye-Lund 306de6782c pvr: disable has_gs_rta_support for ge7800 as well
The MR adding support for ge7800 (!38211) was submitted while the MR
that disabled has_gs_rta_support (!38024) was under review. It seems
nobody noticed that we missed disabling it here as well.

Let's fix that up, so we don't try to use this when it's not expected to
work.

Fixes: c60232c0c5 ("pvr: temporarily disable gs_rta_support on all cores")
Reviewed-by: Frank Binns <frank.binns@imgtec.com>
Reviewed-by: Alessio Belle <alessio.belle@imgtec.com>
Reviewed-by: Simon Perretta <simon.perretta@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38909>
2025-12-11 18:52:36 +00:00
Faith Ekstrand 39b8456a79 panvk: Drop compile_inputs from panvk_lower_nir()
We no longer need this.  Now panvk_lower_nir() is simply about
descriptors, I/O, and calling into the back-end lowering code.

Reviewed-by: Christoph Pillmayer <christoph.pillmayer@arm.com>
Acked-by: Eric R. Smith <eric.smith@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38821>
2025-12-11 18:29:54 +00:00
Faith Ekstrand 4909e23d11 panvk: Pull multiview lowering out of panvk_lower_nir()
It only applies to vertex shaders right now.  Also, once we add
geometry, it won't really work anymore so we'll need to do something
else.

Reviewed-by: Christoph Pillmayer <christoph.pillmayer@arm.com>
Acked-by: Eric R. Smith <eric.smith@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38821>
2025-12-11 18:29:54 +00:00
Faith Ekstrand 4f0386fbfb panvk: Restructure VS variant handling
There's no real point in the array of NIRs and the array of infos.  It
just makes everything more of a headache inside the loop.

Reviewed-by: Christoph Pillmayer <christoph.pillmayer@arm.com>
Acked-by: Eric R. Smith <eric.smith@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38821>
2025-12-11 18:29:54 +00:00
Faith Ekstrand 0191e1f28a panvk: Make compile_inputs const in panvk_compile_nir()
Reviewed-by: Christoph Pillmayer <christoph.pillmayer@arm.com>
Acked-by: Eric R. Smith <eric.smith@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38821>
2025-12-11 18:29:53 +00:00
Faith Ekstrand c161619a0c panvk: Only pass the panvk_shader_desc_info to panvk_lower_nir()
Now that input attachment lowering is factored out, there's no reason to
be passing the whole shader variant around here.  This both makes things
a lot more clear and gives us more flexibility about when we call it,
allowing us to potentially call it once per-shader instead of once
per-variant.

Reviewed-by: Christoph Pillmayer <christoph.pillmayer@arm.com>
Acked-by: Eric R. Smith <eric.smith@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38821>
2025-12-11 18:29:53 +00:00
Faith Ekstrand 1c5ea90042 panvk: Store the varying attribute descriptor count in desc_info
This is what everybody outside the compiler actually wants.  This also
gives us the opportunity to centralize our choice to use LD_VAR_BUF[_IMM]
to one place in the compiler and stop sprinkling it around all over.

Reviewed-by: Christoph Pillmayer <christoph.pillmayer@arm.com>
Acked-by: Eric R. Smith <eric.smith@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38821>
2025-12-11 18:29:52 +00:00