Commit graph

208090 commits

Author SHA1 Message Date
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
Rhys Perry
34f1a8f707 aco: handle FPAtomicToDenormModeHazard
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
This is quite unlikely to happen, but I guess it might be possible and
it's relatively simple to work around.

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35884>
2025-07-07 13:02:43 +00: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
b31f73a1b1 ac/nir: use u_foreach_bit more
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35345>
2025-07-07 11:41:57 +00:00
Marek Olšák
896dd9bc93 ac/nir: eliminate sample_id/sample_pos if MSAA is 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
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
Juan A. Suarez Romero
3c7a8b4913 broadcom/ci: update expected results
Add new failures/flakes.

Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35964>
2025-07-07 11:07:40 +00:00
Juan A. Suarez Romero
044800cf5a vc4/ci: disable skqp job
This is quite unstable, with lots of hangs. So just disable it.

Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35964>
2025-07-07 11:07:40 +00:00
Job Noorman
22c3bbcbd7 ir3/legalize: merge predication quirk nops with existing nops
Now that we emit these nops at the beginning of block, we can merge them
with any existing nops.

Totals from 7747 (4.71% of 164575) affected shaders:
Instrs: 10458516 -> 10439473 (-0.18%)
CodeSize: 19276236 -> 19255126 (-0.11%)
NOPs: 2379189 -> 2360146 (-0.80%)
(ss)-stall: 932629 -> 932685 (+0.01%)
(sy)-stall: 3634623 -> 3635354 (+0.02%)
Cat0: 2610461 -> 2591418 (-0.73%)

Signed-off-by: Job Noorman <jnoorman@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35934>
2025-07-07 10:36:50 +00:00
Job Noorman
39ff20b757 ir3/legalize: emit predication quirk nops in next block
Emitting in the same block as the pred[tfe] caused helper_sched to
sometimes insert unnecessary (eq). For example:

block i:
...
prede
(eq)(rpt6)nop
block i+1:
(eq)nop

Emitting the quirk nops in the next block (i+1 in this case) prevents
this.

Note that the small number of shaders where NOPs regress, are cases
where an extra (eq)nop is inserted in a block that doesn't contain any
other nops (but did contain the quirk nop before this change).

Totals from 3814 (2.32% of 164575) affected shaders:
Instrs: 6732543 -> 6732252 (-0.00%); split: -0.01%, +0.00%
CodeSize: 11978286 -> 11978086 (-0.00%); split: -0.00%, +0.00%
NOPs: 1683239 -> 1682948 (-0.02%); split: -0.02%, +0.01%
(ss)-stall: 635237 -> 634077 (-0.18%)
(sy)-stall: 2562027 -> 2533761 (-1.10%); split: -1.10%, +0.00%
Cat0: 1849898 -> 1849607 (-0.02%); split: -0.02%, +0.01%

Signed-off-by: Job Noorman <jnoorman@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35934>
2025-07-07 10:36:50 +00:00
Wolf480pl
62b3fd0a5e radv/virtio: don't leak drm FD when using vpipe
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
The fd in radv_physical_device_try_create is one we opened in that function.
We don't need it when vpipe is in use, so we should close it,
before setting it to -1.

Fixes: 999d5098b4 ("radv/virtio: support vpipe")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35947>
2025-07-07 09:51:15 +00:00
Eric Engestrom
a1466b762d docs/perfetto: update link to documentation
They moved things around, but the content is the same as before.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35962>
2025-07-07 10:12:16 +02:00
Valentine Burley
72e76689a3 turnip/ci: Reduce parallelism of a660-vk
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
Some `sm8350-hdk` DUTs are currently failing LAVA health checks in the
Collabora farm, reducing available capacity. To mitigate job delays,
temporarily reduce the parallelism of the `a660-vk` job.

Thanks to previous optimizations and further increasing the
tests_per_group setting, there is no loss in test coverage.

Signed-off-by: Valentine Burley <valentine.burley@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35939>
2025-07-07 06:06:25 +00:00
Valentine Burley
1d5d6e3560 turnip/ci: Skip slow tests in a660-vk
These tests have been intermittently timing out even before the changes
in this MR (see e.g. https://gitlab.freedesktop.org/mesa/mesa/-/jobs/79736836),
so skip them in the pre-merge job by adding them to the slow-skips list.

They will still run in the full nightly job.

Signed-off-by: Valentine Burley <valentine.burley@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35939>
2025-07-07 06:06:25 +00:00
Valentine Burley
43a70fc385 freedreno/ci: Increase the concurrency of sm8350-hdk
The sm8350-hdk has 8 threads and 12 GB of RAM, which allows increasing
`FDO_CI_CONCURRENT` to 9 to speed up all its jobs.

Signed-off-by: Valentine Burley <valentine.burley@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35939>
2025-07-07 06:06:25 +00:00
Dmitry Osipenko
d561be1c27 venus: Fix vn_CreateImage crashing with debug build of venus
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
Fix Venus crashing when running in KMS mode and using debug build of Mesa
due to previous patch missing to adjust the assert-check, making it prepared
to handle WSI/scanout images.

Fixes: 31a8218f5b78 ("venus: wsi workaround for gamescope")
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Signed-off-by: Dmitry Osipenko <dmitry.osipenko@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35958>
2025-07-07 01:45:50 +03: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
956d3f1562 mesa/st: handle renderbuffer with null zsbuf
this matches cbuf handling

Fixes: 2eb45daa9c ("gallium: de-pointerize pipe_surface")

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35941>
2025-07-04 17:36:40 +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
f7890c0df9 mesa: fix total_invocations computation
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>
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
fddd5bc2e5 util/texcompress: fix comparison warning
Fixes warnings reported by static analysis. It shouldn't change
the behavior as numxpixels/numypixels should always be smaller
than 255.

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
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
62657471c8 egl: cast printf argument to the expected type
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
1aaf1f858e mesa/program: remove useless assignment
target_mask is set to 0 and then unconditionnally assigned
a different value 10 lines below. Drop the useless init.
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
Pierre-Eric Pelloux-Prayer
fab2c9a923 ac: fix invalid array 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:38 +00:00
Pierre-Eric Pelloux-Prayer
6e371f0a8a ac: 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
Eric Engestrom
0c641c8170 panfrost/meson: drop invalid C-only -Wno-override-init from C++ args
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
cc1plus: warning: command-line option '-Wno-override-init' is valid for C/ObjC but not for C++

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35892>
2025-07-04 13:03:46 +00:00
Antonio Ospite
924027865b ci/android: allow unbound ARTIFACTS_BASE_URL in android-cts-runner.sh
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
It may happen that `android-cts-runner.sh` is launched from a pure LAVA
job which may not define `ARTIFACTS_BASE_URL`.

Allow the script to continue even in that case.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35937>
2025-07-04 12:30:35 +00:00
Zoltán Böszörményi
8f336cd889 docs/features.txt: Indicate SPIR-V version for rusticl
Suggested-by: Karol Herbst <kherbst@redhat.com>
Signed-off-by: Zoltán Böszörményi <zboszor@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35599>
2025-07-04 12:25:19 +00:00
Zoltán Böszörményi
b3a98b8a7b docs/features.txt: Follow-up changes for rusticl
Suggested-by: Karol Herbst <kherbst@redhat.com>
Signed-off-by: Zoltán Böszörményi <zboszor@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35599>
2025-07-04 12:25:19 +00:00
Karol Herbst
45c3b0efbd docs/features.txt: entirely rework OpenCL feature 2.x reporting
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35599>
2025-07-04 12:25:18 +00:00
Karol Herbst
dbc68ebfc0 doc/features.txt: synchronize OpenCL extension list with official spec
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35599>
2025-07-04 12:25:18 +00:00
Zoltán Böszörményi
16f7344102 docs/features.txt: Move optional OpenCL 1.2 features to the new section
Signed-off-by: Zoltán Böszörményi <zboszor@gmail.com>
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35599>
2025-07-04 12:25:18 +00:00
Zoltán Böszörményi
2397bb4d56 docs/features.txt: Move optional features of OpenCL 1.0 and 1.1 into a new section
Signed-off-by: Zoltán Böszörményi <zboszor@gmail.com>
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35599>
2025-07-04 12:25:17 +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
Karmjit Mahil
6237388454 tu: Remove handling of float16 in the 3D blit path
We're using the 2D path for float16 now, so no need for this code
anymore.

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:10 +00:00
Karmjit Mahil
65861e81af tu: Use A2D for float16 formats
Previously we had to utilize the 3D path for float16 formats since
the hw would implicitly convert f16->f32 canonicalizing NaNs
resulting in copies that were not bit exact.
The `HALF_PRECISION` bit was discovered which avoids this
conversion, so we can go back to using the 2D path.

Using the 2D path is faster than the 3D path. Results of Crucible
bench.cast-image show an improvement of slightly above a 50% average
for the 1 MiB image->image copy of {4,6,16,32,64)B chunks, and for
the 16 GiB there's a slight improvement.
The affected formats are {R16,R16G16,R16G16A16}_SFLOAT.

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:10 +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
Job Noorman
c757b22c5f ir3: add subreg move optimization
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
Certain instructions essentially behave as a move of half of their full
src to their half dst. More specifically:
- `cov.u32u16 hdst, src`: moves lower half of src to hdst.
- `[a]shr.b hdst, src, 16`: moves upper half of src to hdst.

In mergedregs mode, if the src and dst of these instructions are
assigned overlapping registers, they can be removed.

Implement this by 1) merging the src and dst merge sets of such
instruction before RA, and 2) removing them if RA assigned overlapping
registers.

Totals from 7483 (4.55% of 164575) affected shaders:
Instrs: 8913039 -> 8859209 (-0.60%); split: -0.62%, +0.01%
CodeSize: 16588988 -> 16489082 (-0.60%); split: -0.61%, +0.00%
NOPs: 2020848 -> 2013070 (-0.38%); split: -0.71%, +0.33%
MOVs: 352179 -> 352146 (-0.01%); split: -0.06%, +0.05%
COVs: 256946 -> 242972 (-5.44%)
Full: 145737 -> 145738 (+0.00%)
(ss): 224816 -> 222102 (-1.21%); split: -1.24%, +0.03%
(sy): 109208 -> 109222 (+0.01%); split: -0.01%, +0.02%
(ss)-stall: 842387 -> 831457 (-1.30%); split: -1.63%, +0.33%
(sy)-stall: 3353188 -> 3337732 (-0.46%); split: -0.62%, +0.16%
Preamble Instrs: 1403333 -> 1401362 (-0.14%)
Cat0: 2219312 -> 2211530 (-0.35%); split: -0.65%, +0.30%
Cat1: 690367 -> 677240 (-1.90%); split: -1.99%, +0.09%
Cat2: 3279215 -> 3246293 (-1.00%)
Cat7: 412865 -> 412866 (+0.00%)

Signed-off-by: Job Noorman <jnoorman@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35858>
2025-07-04 10:38:36 +00:00