Commit graph

70132 commits

Author SHA1 Message Date
Mike Blumenkrantz
ab1dbd0899 zink: capture KHR_timeline_semaphore properties
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35866>
2025-07-07 21:18:29 +00:00
Mike Blumenkrantz
6e8b9e143d mesa: support NV_timeline_semaphore
this is for use with vulkan interop and carries the same mechanics

Acked-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35866>
2025-07-07 21:18:29 +00:00
Mike Blumenkrantz
03e5a63058 zink: fix signaling multiple API semaphores
it's possible for multiple user semaphores to be signaled in one batch,
and these all have the same mechanics as wait semaphores, which means
they unfortunately need their own submit in order to preserve ownership
when resetting the batch state

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35866>
2025-07-07 21:18:28 +00:00
Mike Blumenkrantz
d65c37f72e mesa: PIPE_FD_TYPE_TIMELINE_SEMAPHORE -> PIPE_FD_TYPE_TIMELINE_SEMAPHORE_D3D12
functionally this is the same as other types of timeline semaphores, but
it is not actually the same as other types of timeline semaphores, e.g.,
in vulkan it would be VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT
whereas other types of timeline semaphores would have different handle types

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Acked-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35866>
2025-07-07 21:18:28 +00:00
Mike Blumenkrantz
213874d42b zink: use unsynchronized cmdbuf for unsynchronized image GENERAL barriers
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
this fixes all the random sync issues

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35979>
2025-07-07 16:07:54 +00:00
Jesse Natalie
09096189c0 mediafoundation: Use C++ brace initialization instead of C-style
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35900>
2025-07-07 15:41:29 +00:00
Jesse Natalie
eca4743535 mediafoundation: Fix fence handling
- Use the right fence_wait method on the codec instead of the screen.
- Use fence_wait instead of using shared handles to wait.
- Release fence references.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35900>
2025-07-07 15:41:28 +00:00
Jesse Natalie
5f3a7cee83 gallium/video: Frontends separate in_fence and out_fence
Reviewed-by: Ruijing Dong <ruijing.dong@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35900>
2025-07-07 15:41:28 +00:00
Sil Vilerino
9fc42666f4 d3d12: Remove requirement of surface creation/clearing functions for video
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35900>
2025-07-07 15:41:27 +00:00
Jesse Natalie
1959a352ea d3d12: Fix video fence lifetime issues
pipe_fence_handle is a refcounted object, it can't be owned by a container
which might have a different lifetime, it needs a dedicated heap allocation
so it can outlive its container.

Make sure that when we're handing out pipe_fence_handle references, that
we add a ref to them before handing them out.

Instead of assuming that a fence_wait call is for the exact fence that we
returned from a given op, mirror what's done on graphics and
opportunistically scan the batches to see what's done, and reclaim
resources for them.

Use d3d12_fence helpers to replace a lot of duplicated code.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35900>
2025-07-07 15:41:27 +00:00
Jesse Natalie
e9301b36fe d3d12: Store fence FD type in the fence
Native sync fences represent point-in-time (fence + value) and can have
CPU wait events. Timeline semaphores represent a full timeline, do not
have a CPU wait event, and can have their value updated dynamically.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35900>
2025-07-07 15:41:27 +00:00
Mike Blumenkrantz
f335158cfa zink: always insert current batch sparse semaphore into sparse wait chain
this avoids desync in the case where a batch performs multiple distinct
sparse commit operations

cc: mesa-stable

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35978>
2025-07-07 15:21:27 +00:00
Mike Blumenkrantz
de9b4f1ae5 zink: move HIC resource usage check into hic transition function
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35976>
2025-07-07 10:48:07 -04:00
Yogesh Mohan Marimuthu
d9e5e8f5fc winsys/amdgpu: pass r/w bo to w/r list in userq_wait ioctl
bo with write usage should wait for read and write fence. bo
with read usage should wait for write fence. Currently wrote bos
are passed to write list and read bos are passed to read like.
This patch fixes the issue.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35963>
2025-07-07 12:34:25 +00:00
Patrick Lerda
9e5d11bff3 r600: fix emit_ssbo_store() wrmask compatibility
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
This issue was generating unwanted write accesses that
could overwrite previous operations.

Note: This functionality could also be tested with
nir_lower_wrmasks. This problem seems to only affect
the ssbos.

This change was tested on cypress, barts and cayman. Here are the tests fixed:
khr-gl4[3-6]/compute_shader/pipeline-pre-vs: fail pass
khr-gl4[5-6]/direct_state_access/queries_functional: fail pass
khr-gl4[5-6]/es_31_compatibility/shader_image_load_store/advanced-cast-cs: fail pass
khr-gl4[5-6]/es_31_compatibility/shader_image_load_store/advanced-cast-fs: fail pass
khr-gl4[5-6]/es_31_compatibility/shader_storage_buffer_object/advanced-switchbuffers-cs: fail pass
khr-gl4[5-6]/es_31_compatibility/shader_storage_buffer_object/advanced-switchprograms-cs: fail pass
khr-gl4[5-6]/es_31_compatibility/shader_storage_buffer_object/basic-operations-case1-cs: fail pass
khr-gl4[3-6]/shader_storage_buffer_object/advanced-switchbuffers-cs: fail pass
khr-gl4[3-6]/shader_storage_buffer_object/advanced-switchprograms-cs: fail pass
khr-gl4[3-6]/shader_storage_buffer_object/basic-operations-case1-cs: fail pass
khr-gl4[4-6]/texture_buffer/texture_buffer_max_size: fail pass
khr-gles31/core/compute_shader/pipeline-pre-vs: fail pass
khr-gles31/core/shader_image_load_store/advanced-cast-cs: fail pass
khr-gles31/core/shader_image_load_store/advanced-cast-fs: fail pass
khr-gles31/core/shader_storage_buffer_object/advanced-switchbuffers-cs: fail pass
khr-gles31/core/shader_storage_buffer_object/advanced-switchprograms-cs: fail pass
khr-gles31/core/shader_storage_buffer_object/basic-operations-case1-cs: fail pass
khr-gles31/core/texture_buffer/texture_buffer_max_size: fail pass
khr-glesext/texture_buffer/texture_buffer_max_size: fail pass

Cc: mesa-stable
Signed-off-by: Patrick Lerda <patrick9876@free.fr>
Reviewed-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35830>
2025-07-07 12:08:15 +00:00
Marek Olšák
1c2007005e ac/nir: rename force_center_interp_no_msaa to msaa_disabled
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35345>
2025-07-07 11:41:57 +00:00
Alyssa Rosenzweig
d31cb824df treewide: use VARYING_BIT_*
Some checks failed
macOS-CI / macOS-CI (dri) (push) Has been cancelled
macOS-CI / macOS-CI (xlib) (push) Has been cancelled
Via Coccinelle patch generated by the following Python:

  varys = [ "POS", "COL0", "COL1", "FOGC", "TEX0", "TEX1", "TEX2", "TEX3", "TEX4",
           "TEX5", "TEX6", "TEX7", "PSIZ", "BFC0", "BFC1", "EDGE", "CLIP_VERTEX",
           "CLIP_DIST0", "CLIP_DIST1", "CULL_DIST0", "CULL_DIST1", "PRIMITIVE_ID",
           "PRIMITIVE_COUNT", "LAYER", "VIEWPORT", "FACE",
           "PRIMITIVE_SHADING_RATE", "PNTC", "TESS_LEVEL_OUTER",
           "TESS_LEVEL_INNER", "PRIMITIVE_INDICES", "BOUNDING_BOX0",
           "BOUNDING_BOX1", "VIEWPORT_MASK", "CULL_PRIMITIVE" ]
  t = """
  @@
  @@

  -(1 << VARYING_SLOT_${V})
  +VARYING_BIT_${V}

  @@
  @@

  -BITFIELD_BIT(VARYING_SLOT_${V})
  +VARYING_BIT_${V}

  @@
  @@

  -(1ull << VARYING_SLOT_${V})
  +VARYING_BIT_${V}

  @@
  @@

  -BITFIELD64_BIT(VARYING_SLOT_${V})
  +VARYING_BIT_${V}

  """
  for v in varys:
      from mako.template import Template
      print(Template(t).render(V = v))

Closes: #13453
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Reviewed-by: Marek Olšák <maraeo@gmail.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com> [panfrost, common]
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com> [broadcom]
Reviewed-by: Corentin Noël <corentin.noel@collabora.com> [virgl]
Acked-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com> [zink]
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35917>
2025-07-04 19:01:04 +00:00
Mike Blumenkrantz
3925e53efe zink: fix submit_count disambiguation for bo usage checks
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
also improve docs for submit_count to avoid similar errors

Fixes: 61b0955308 ("zink: always check submit_count to disambiguate when checking/waiting")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35940>
2025-07-04 17:19:44 +00:00
Mike Blumenkrantz
69b5abee14 zink: fix acquire semaphore sync
the semaphore stage is VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT,
so the src access barrier must also use this in order to ensure it happens
after the acquire

cc: mesa-stable

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35940>
2025-07-04 17:19:44 +00:00
Mike Blumenkrantz
85e4a19ed1 zink: stop deleting src stage in image sync
this probably doesn't help much and makes debugging harder

cc: mesa-stable

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35940>
2025-07-04 17:19:44 +00:00
Pierre-Eric Pelloux-Prayer
c6086f3a54 frontends/va: fix potential overflows
The multiplication of 32 bits integers will be truncated before
being widened to the destination variable' size.
Reported by static analysis.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35877>
2025-07-04 15:26:39 +00:00
Pierre-Eric Pelloux-Prayer
41c7e6b17c aux/indices: remove useless lines
Presumably these were added to silence a "variable j not used"
compiler warning, but "j" seems used in the loop counter.
Reported by static analysis.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35877>
2025-07-04 15:26:39 +00:00
Pierre-Eric Pelloux-Prayer
bd625f7453 tc: fix potential overflows
Reported by static analysis. Multiplication may overflow
before being converted to the larger type, so fix this
by casting one of the operands to the destination type.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35877>
2025-07-04 15:26:38 +00:00
Pierre-Eric Pelloux-Prayer
8731293170 radeonsi: fix potential overflows
Reported by static analysis. Multiplication may overflow
before being converted to the larger type, so fix this
by casting one of the operands to the destination type.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35877>
2025-07-04 15:26:38 +00:00
Erik Faye-Lund
504e511c44 panfrost: limit sample_shading to bifrost and later
We haven't wired this up in the Midgard compiler, so we can't expose
sample shading on Midgard GPUs. This all seems fixable, because the KILL
instruction can update the coverage without the kill-flag (yeah, a bit
confusing naming), but until someone puts in the time to wire up that,
let's just disable the functionality to avoid crashes.

Fixes: 6bba718027 ("panfrost: Advertise SAMPLE_SHADING")
Reviewed-by: Eric R. Smith <eric.smith@collabora.com>
Reviewed-by: Mary Guillemard <mary.guillemard@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35881>
2025-07-04 11:53:03 +00:00
Danylo Piliaiev
3bcedb66c6 freedreno/regs: update A2D definitions
Co-authored-by: Karmjit Mahil <karmjit.mahil@igalia.com>
Signed-off-by: Karmjit Mahil <karmjit.mahil@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35709>
2025-07-04 11:25:09 +00:00
Caleb Callaway
6f38d58db3 iris: ISP invalidate at end of compute batches
We're now re-emitting push constants at the
start of compute batches, so we can avoid the
overhead of restoring them.

CC: mesa-stable
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35873>
2025-07-04 11:05:38 +00:00
Caleb Callaway
8fd008a45f iris: re-emit push constants at compute batch start
Per Ken Graunke, corruption issues with push
constants for render batches on Gen12 graphics
have been observed and worked around by re-emitting
push constants at the start of the batch buffer.
We're seeing similar issues with compute batches,
so we'll apply the same work-around.

Fixes corruption reported in Blender on ADL/RPL

CC: mesa-stable
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35873>
2025-07-04 11:05:38 +00:00
Mike Blumenkrantz
30e79aafa0 zink: fix another case of blocking image op reordering with GENERAL layouts
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35896>
2025-07-04 03:41:48 +00:00
Mike Blumenkrantz
446d8d23c2 zink: more fixups for GENERAL image sync
these need to always use unordered access when set

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35896>
2025-07-04 03:41:48 +00:00
Mike Blumenkrantz
3f51dad5bb zink: use HIC image transitions to init swapchain images
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35896>
2025-07-04 03:41:48 +00:00
Mike Blumenkrantz
5e98018e80 zink: make HIC image transitions public
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35896>
2025-07-04 03:41:47 +00:00
Mike Blumenkrantz
ef0bf50ae9 zink: don't modify the u_foreach_bit64 bit inside the loop in loop_io_var_mask()
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
this breaks the macro and causes infinite loops on patch locations in release builds

cc: mesa-stable

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35922>
2025-07-03 17:21:21 +00:00
Robert Mader
15f6652e12 llvmpipe: Fix parameter queries for mulitplanar formats
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
For emulated multiplanar formats like PIPE_FORMAT_IYUV /
DRM_FORMAT_YUV420 resource->format is set to one of the sub-
formats, PIPE_FORMAT_R8_UNORM in this case. As this has only
one plane, users like `dri2_from_planar()` fail for queries
where plane > 0. This in turn breaks queries like
gbm_dri_bo_get_handle_for_plane() which is commonly used
by Wayland compositors to offload client supplied DMABufs
to KMS, using drmModeAddFB2WithModifiers().

Follow the example of most other drivers and return the number
of resources instead.

Signed-off-by: Robert Mader <robert.mader@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35915>
2025-07-03 15:15:48 +00:00
Brian Paul
6fe6c18c12 util: add/use new os_mkdir() function
os_mkdir() is a simple wrapper around mkdir() or _mkdir().

Remove a bunch of unneeded #includes in dd_util.h.  Testing by
compiling llvmpipe and radeonsi (the only user of the dd_util.h
header).

There's a few other mkdir() callsites that I haven't touched but
could be updated to os_mkdir().

Signed-off-by: Brian Paul <brian.paul@broadcom.com>
Tested-by: Mauro Rossi <issor.oruam@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35841>
2025-07-03 14:30:17 +00:00
Brian Paul
b85265bbc2 gallivm: always use mkdir() instead of std::filesytem::create_directory()
Suse Linux Enterprise 15 is still on g++ 7.5 so std::filesystem
does not exist.  Just use mkdir() instead.

Signed-off-by: Brian Paul <brian.paul@broadcom.com>
Tested-by: Mauro Rossi <issor.oruam@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35841>
2025-07-03 14:30:16 +00:00
José Roberto de Souza
248462cbe3 iris: Reduce compiled code for Wa_16018063123
Wa_16018063123 is not a workaround that depends on stepping, so we
can use the INTEL_WA_16018063123_GFX_VER macro to reduce code generate
for non affected platforms.

Reviewed-by: Nanley Chery <nanley.g.chery@intel.com>
Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35700>
2025-07-03 14:09:13 +00:00
Rob Clark
4b89184e9a freedreno/a6xx: Add single common source for a6xx.xml.h
In the following commits, as we split up a6xx.xml, the #include sequence
gets a bit more complicated.  Let's keep it in one place.

Signed-off-by: Rob Clark <rob.clark@oss.qualcomm.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35899>
2025-07-03 12:50:04 +00:00
Martin Krastev
89f8c53fd7 svga/ci: drop 'fraction' from deqp-vmware-vmx-piglit job config
Drop fraction=1 as that is a default.

Signed-off-by: Martin Krastev <martin.krastev@broadcom.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35860>
2025-07-03 11:23:11 +00:00
Martin Krastev
099ac9aa5c svga/ci: bump up FDO_CI_CONCURRENT to 2
Signed-off-by: Martin Krastev <martin.krastev@broadcom.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35860>
2025-07-03 11:23:11 +00:00
Martin Krastev
38aa17619f svga/ci: bump up piglit coverage to 100%
Signed-off-by: Martin Krastev <martin.krastev@broadcom.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35860>
2025-07-03 11:23:11 +00:00
Boris Brezillon
53e4f4149b panfrost: Force strict import rules for AFBC(YUV)
AFBC(YUV) has been introduced after the stricter import rules. Let's
make them strict by default now, so we don't encourage exporters to pass
funky WSI pitch values.

We add a driconf option to allow relaxing this strictness on a per-app
basis.

Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Reviewed-by: Lars-Ivar Hesselberg Simonsen <lars-ivar.simonsen@arm.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35762>
2025-07-03 09:09:31 +02:00
Karol Herbst
ec05d4b1fa rusticl: drop Arc around PipeResource
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35812>
2025-07-02 22:52:16 +00:00
Karol Herbst
900dacb0ef rusticl/mesa: add PipeResource::new_ref
pipe_resources are already ref counted, so we can simply make use of that.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35812>
2025-07-02 22:52:16 +00:00
Karol Herbst
ff0d77d69d rusticl: reset VMA address of resource inside SVMAlloc::drop
If we want to use of the internal refcounting of pipe_resources, we have
to stop setting the resources's SVM address to 0 inside
PipeResource::drop.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35812>
2025-07-02 22:52:16 +00:00
Karol Herbst
c1ba062a30 rusticl: use image_copy_buffer
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35809>
2025-07-02 21:42:28 +00:00
Marek Olšák
028591aead ac/nir: remove kill_pointsize and kill_layer options from lowering passes
The outputs are removed by a separate pass.

Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35352>
2025-07-02 20:27:46 +00:00
Marek Olšák
42ad7543b8 ac/nir: switch legacy GS lowering to ac_nir_prerast_out completely
This changes legacy GS outputs to use the same logic as NGG GS.
It enables the same optimizations that NGG has such as forwarding
constant GS output components to the GS copy shader at compile time.

ac_nir_gs_output_info is removed.

GS output info is no longer passed to ac_nir_lower_legacy_gs and
ac_nir_create_gs_copy_shader separately.

ac_nir_lower_legacy_gs now gathers ac_nir_prerast_out, generates GSVS ring
stores, and also generates the GS copy shader with GSVS ring loads.

Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35352>
2025-07-02 20:27:45 +00:00
Marek Olšák
2c64cdc047 ac/nir: return the GS copy shader from ac_nir_lower_legacy_gs
This way we won't have to pass output info between the two functions.

Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35352>
2025-07-02 20:27:44 +00:00
Marek Olšák
098d33766a ac: add legacy GS subgroup size computation from radeonsi
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35352>
2025-07-02 20:27:43 +00:00