Commit graph

207185 commits

Author SHA1 Message Date
Olivia Lee
b8c7fcda27 panfrost: fix depth clip range with u_blitter
u_blitter sets a viewport transform with depth range [-1,1], which is
outside the [0,1] range that is allowed by opengl.

The mali hardware docs state that setting the LOW_DEPTH_CLAMP register
outside of [0,1] is undefined behavior. We haven't observed any problems
with this so far, but better to fix it.

Signed-off-by: Olivia Lee <olivia.lee@collabora.com>
Fixes: 810135fb42 ("gallium/u_blitter: Fix depth.")
Reviewed-by: Eric R. Smith <eric.smith@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35225>
2025-06-18 21:16:23 +00:00
Sagar Ghuge
a676ba9294 anv: Apply flush during WriteAccelerationStructures
We are reading accel header parameter those are updated by CS, so we
need to apply flushes to make L3 coherent with CS.

This fixes ray query tests on MTL:
- dEQP-VK.ray_query.*.serialization.*

Cc: mesa-stable

Signed-off-by: Sagar Ghuge <sagar.ghuge@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35590>
2025-06-18 20:56:56 +00:00
Eric Engestrom
6446433761 docs: add sha sum for 25.1.4
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35611>
2025-06-18 20:52:32 +00:00
Eric Engestrom
5e772e00d5 docs: add release notes for 25.1.4
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35611>
2025-06-18 20:52:32 +00:00
Eric Engestrom
952305e853 docs: update calendar for 25.1.4
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35611>
2025-06-18 20:52:32 +00:00
Emma Anholt
0ba0681cfc tu: Add a link to my branch for stencil read optimization.
No sense in someone else retimplementing it if they want to test it, too.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34991>
2025-06-18 20:30:31 +00:00
Emma Anholt
7714480c79 tu,freedreno/a6xx: Give the FS_CTRL UNK24 bit a name: INOUTREGOVERLAP.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34991>
2025-06-18 20:30:31 +00:00
Emma Anholt
7fe18b147d tu,freedreno: Rename the MRT enable_blend field to blend_reads_dest.
The per-MRT blend enables are in RB_MRT_CONTROL regs, this field is a
bitmask of whether we need to read in the MRT's current color in order to
perform the blending/colormask/logicop.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34991>
2025-06-18 20:30:31 +00:00
Job Noorman
78f62d6d6d nir: remove unused global_atomic(_swap)_ir3 intrinsics
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
ir3 switched to using the generic ones.

Signed-off-by: Job Noorman <jnoorman@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33797>
2025-06-18 19:06:33 +00:00
Job Noorman
2490ecf5fc ir3: ingest global addresses as 64b values from NIR
There are currently two places where we have to handle values that are
logically 64b: 64b atomics and 64b global addresses. For the former, we
ingest the values as 64b from NIR, while the latter uses 2x32b values.
This commit makes things more consistent by using 64b NIR values for
global addresses as well.

Of course, we could also go the other way around and use 2x32b values
everywhere, which would make things consistent as well. Given that ir3
doesn't actually have 64b registers, and 64b values are represented by
collected 2x32b registers, this could actually make more sense.

In the end, both methods are mostly equivalent and it probably doesn't
matter too much one way or the other. However, the reason I have a
slight preference for ingesting things as 64b is that it allows us to
use more of the generic NIR intrinsics, which use 1-component values for
64b addresses or atomic values. This commit already makes
global_atomic(_swap)_ir3 obsolete and I'm planning to create generic
intrinsics to support ldg.a/stg.a as well.

Signed-off-by: Job Noorman <jnoorman@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33797>
2025-06-18 19:06:32 +00:00
Job Noorman
c91f4b2363 ir3: use ir3_64b helpers where possible
Don't rely on manually (un)packing 64b values from/into components but
use the newly introduced ir3_64b helpers.

Signed-off-by: Job Noorman <jnoorman@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33797>
2025-06-18 19:06:32 +00:00
Job Noorman
7cf01a1ae0 ir3: don't vectorize 64b values
The only 64b ops that are supported are (un)packs and using rptN won't
help them.

Signed-off-by: Job Noorman <jnoorman@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33797>
2025-06-18 19:06:32 +00:00
Job Noorman
669270ca7e ir3: add support for u2u64
Signed-off-by: Job Noorman <jnoorman@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33797>
2025-06-18 19:06:31 +00:00
Job Noorman
d2f9972945 ir3/lower_preamble: add support for 64b values
Now that we support 64b values in more places, they might end up being
stored in the preamble.

Signed-off-by: Job Noorman <jnoorman@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33797>
2025-06-18 19:06:31 +00:00
Job Noorman
917c56c78c ir3: add ir3_split_off_scalar helper
This implements the common pattern of splitting-off a scalar value from
a vector. It handles both 64b (via ir3_64b) and normal register scalars.

Signed-off-by: Job Noorman <jnoorman@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33797>
2025-06-18 19:06:31 +00:00
Job Noorman
37f4786881 ir3: add helpers to handle 64b values
64b values occupy 2 registers but we receive them as a single component
value from NIR. Since there are many places that assume a 1:1
relationship between components and instructions, this can be error
prone as we have to remember to double the number of components whenever
a 64b value is involved.

This commit tries to improve on this situation by representing 64b
values as a collect of 2 registers, restoring the 1:1 mapping between
NIR components and ir3 instructions. This commit only adds some helpers
to create 64b values and access their individual components but doesn't
actually use them yet. This will happen in a follow-up commit.

Signed-off-by: Job Noorman <jnoorman@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33797>
2025-06-18 19:06:31 +00:00
Job Noorman
2f75e6cba9 ir3: flatten nested collects
When creating a collect with a source that is itself a collect, flatten
the latter's sources into the new collect. This is mainly useful for
collects used for 64b values, as we can treat them just like non-64b
values when collecting them.

Signed-off-by: Job Noorman <jnoorman@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33797>
2025-06-18 19:06:30 +00:00
Job Noorman
74aecf2207 ir3: add support for collects in ir3_get_src_shared
We want to start lowering certain NIR instructions to collects (e.g.,
instructions with a 64b def) which means that ir3_get_src_shared has to
support collects. Since we can't mov the result of a collect, implement
this by converting its sources and creating a new collect.

Signed-off-by: Job Noorman <jnoorman@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33797>
2025-06-18 19:06:30 +00:00
Job Noorman
36300ee51d ir3: move collect/split helpers to ir3.{c,h}
They have nothing to do with ir3_context and this way, we can use them
from ir3.h.

Signed-off-by: Job Noorman <jnoorman@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33797>
2025-06-18 19:06:30 +00:00
José Roberto de Souza
37f4182ac3 Revert "anv: Enable preemption due 3DPRIMITIVE in GFX 12"
Enabling preemption in 3DPRIMITIVE is causing glitches on Dota 2,
so reverting this until the issue with preemption is fixed.

This reverts commit 3cd972a2d3.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/13289
Fixes: 12ddaa6b8b ("anv: Enable preemption due 3DPRIMITIVE in GFX 12")
Acked-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35586>
2025-06-18 18:52:19 +00:00
Georg Lehmann
e9c886c331 nir/opt_intrinsic: fix inclusive scan rewrite with multiple uses
Modifying the iterated list is a footgun, so just create a new instruction.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/13364
Fixes: 5c70a55bf3 ("nir/opt_intrinsics: optimize (exclusive_scan(op, a) op a) to inclusive scan")

Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35577>
2025-06-18 18:18:15 +00:00
Corentin Noël
ab5605aab3 ci: Update CrosVM and Virglrenderer
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
Update to their latest version on time

Update Rust to 1.81 as it is the minimal required version for CrosVM

Signed-off-by: Corentin Noël <corentin.noel@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35598>
2025-06-18 17:34:11 +00:00
Hoe Hao Cheng
412d97e667 zink/codegen: init properties struct fully for double-loaded extensions
Fixes: 4d1768aec5
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35608>
2025-06-18 17:17:08 +00:00
Jesse Natalie
1fb0e76233 microsoft/compiler: Fix PSV0 for validator 1.8
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35595>
2025-06-18 16:49:36 +00:00
Christopher Gautier
48e8d6d207 panfrost, panvk: The size of resource tables needs to be a multiple of 4.
The HW specifications require the size of shader resource tables to be a
multiple of 4, otherwise correct behaviour is not guaranteed.

Fixes: 713f5c3600 ("panvk: Prepare the cmd_desc_state logic for Valhall")
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Lars-Ivar Hesselberg Simonsen <lars-ivar.simonsen@arm.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35553>
2025-06-18 16:09:03 +00:00
Christopher Gautier
db4c878e4f panfrost, panvk: Use arch version 9 to distinguish between Bifrost & Valhall
The change was performed automatically with a regular expression over
the code base.

Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35553>
2025-06-18 16:09:03 +00:00
Gurchetan Singh
3a3239dcf9 gfxstream: proper depedendences in non virtgpu-kumquat case
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
In case virtgpu_kumquat isn't built, provide a null_dep
rather than undefined meson dependencies.

Reviewed-by: Marcin Radomski <dextero@google.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35607>
2025-06-18 15:16:32 +00:00
Martin Krastev
fb97f3f836 svga/ci: enable vmware farm
Issue with farm infra licensing banished for one more year.

Signed-off-by: Martin Krastev <martin.krastev@broadcom.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35602>
2025-06-18 14:52:25 +00:00
Karol Herbst
b4b6582220 rusticl: cl_khr_icd 2.0.0
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35241>
2025-06-18 13:30:40 +00:00
Karol Herbst
dd686e0d81 rusticl/icd: use default value for cl_icd_dispatch
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35241>
2025-06-18 13:30:40 +00:00
Karol Herbst
924c76b7e5 include: sync OpenCL headers
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35241>
2025-06-18 13:30:40 +00:00
Christian Gmeiner
034ac06c64 etnaviv: nir: Use texldlpcf opcode for shadow texture look-ups with explicit LOD
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
Fixes the following test on GC7000:
 - dEQP-GLES3.functional.shaders.texture_functions.texture.sampler2darrayshadow_vertex
 - dEQP-GLES3.functional.shaders.texture_functions.texturelod.sampler2dshadow_vertex
 - dEQP-GLES3.functional.shaders.texture_functions.texturelod.sampler2dshadow_fragment
 - dEQP-GLES3.functional.shaders.texture_functions.textureprojlod.sampler2dshadow_vertex
 - dEQP-GLES3.functional.shaders.texture_functions.textureprojlod.sampler2dshadow_fragment

Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com>
Reviewed-by: Lucas Stach <l.stach@pengutronix.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35600>
2025-06-18 13:10:59 +00:00
Eric Engestrom
081aa09aeb meson: drop unnecessary -D legacy-x11=none
Array options are allowed to be empty, so there's no need to add an
extra value to convey that.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35309>
2025-06-18 12:39:26 +00:00
Russell Greene
e1bcd0f4a5 radeonsi: vpe: fix noisy false error
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
When running `ffmpeg -vaapi_device /dev/dri/renderD128 -f lavfi -i smptebars=duration=5:size=1280x720:rate=30 -vf format=rgba,hwupload,scale_vaapi=format=nv12,hwdownload  testout.mp4`,

the vpe is asked to transform into NV12, which cannot be done with a blit. `si_vpe_construct_blt` fails, but then it gracefully falls back into `vlVaPostProcCompositor` and finishes the task correctly, but not before logging the error:

SIVPE ERROR ../mesa-25.1.3/src/gallium/drivers/radeonsi/si_vpe.c:1095 si_vpe_construct_blt Failed in checking process operation and build settings(9)

for each frame that is processed. Since this is expected, my original thought was to demote this to a warning. But looking at all the reasons it could fail for, there already is a warning (or error) logged, so it seems to me the best thing to do is remove the error entirely

There may be a better approach here, and I'm all ears.

Fixes: e85a6b6a63 ("radeonsi/vpe: check reduction ratio")
Reviewed-by: Peyton Lee <peytolee@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35449>
2025-06-18 10:48:07 +00:00
Karol Herbst
93f24f0bd0 rusticl: support cl_khr_extended_bit_ops
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35448>
2025-06-18 10:13:44 +00:00
Karol Herbst
6a36056f59 zink: lower bitfield operations without maintenance9
Acked-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35448>
2025-06-18 10:13:44 +00:00
Karol Herbst
8ba63c1d16 zink: check for VK_KHR_maintenance9
Acked-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35448>
2025-06-18 10:13:44 +00:00
Karol Herbst
9c0d121366 v3d: lower bitfield_extract8|16
Reviewed-by: Juan A. Suarez <jasuarez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35448>
2025-06-18 10:13:44 +00:00
Karol Herbst
9d9a17ea2a r600: lower bitfield_extract8|16
Reviewed-by: Patrick Lerda <patrick9876@free.fr>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35448>
2025-06-18 10:13:44 +00:00
Karol Herbst
0e24452535 panfrost: lower bitfield_extract8|16
Reviewed-by: Mary Guillemard <mary.guillemard@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35448>
2025-06-18 10:13:44 +00:00
Karol Herbst
b9e1e91a86 ir3: enable bitfield lowering for cl_khr_extended_bit_ops
Co-developed-by: Rob Clark <rob.clark@oss.qualcomm.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35448>
2025-06-18 10:13:44 +00:00
Karol Herbst
dd652bb8f0 agx: enable bitfield lowering for cl_khr_extended_bit_ops
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35448>
2025-06-18 10:13:44 +00:00
Karol Herbst
a16eb630fa llvmpipe: more bitfield_extract lowering
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35448>
2025-06-18 10:13:44 +00:00
Karol Herbst
cf3b16f7af clc: support cl_khr_extended_bit_ops
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35448>
2025-06-18 10:13:44 +00:00
Karol Herbst
1a5b5a883d vtn: mark BitInstructions cap as supported
It simply enables certain Shader only instructions for Kernels.

Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35448>
2025-06-18 10:13:44 +00:00
Samuel Pitoiset
e5d047d160 ci: uprev VKCTS main to 9cc8e038994c32534b3d2c4ba88c1dc49ef53228
RADV is the only driver using VKCTS main. This bumps adds tests for
maintenance9, unified_image_layout and VP9.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35540>
2025-06-18 09:15:34 +00:00
Christian Gmeiner
07f5cbcd9b etnaviv: nir: Add assertion to prevent src2 conflicts in texture instructions
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
Add an assert to catch cases where both nir_tex_src_comparator and
nir_tex_src_ddy attempt to use the same src2 slot in texture instructions.
This prevents silent overwrites that could cause incorrect shader
compilation.

The assertion helps catch potential issues in complex texture operations
like those found in dEQP textureGrad shadow tests, where multiple
texture sources compete for the same hardware slot.

Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com>
Reviewed-by: Lucas Stach <l.stach@pengutronix.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35531>
2025-06-18 08:58:41 +00:00
Christian Gmeiner
3225d3e918 etnaviv: nir: Use texldgpcf opcode for shadow texture gradients
Passes all dEQP-GLES3.functional.shaders.texture_functions.texturegrad.*
tests on GC7000.

Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com>
Reviewed-by: Lucas Stach <l.stach@pengutronix.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35531>
2025-06-18 08:58:41 +00:00
Christian Gmeiner
7149597860 etnaviv: Push nir_tex_instr down to etna_emit_tex(..)
There are too many parameters already.

Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com>
Reviewed-by: Lucas Stach <l.stach@pengutronix.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35531>
2025-06-18 08:58:41 +00:00
Christian Gmeiner
cc4a6fa25c etnaviv: nir: Legalize txd comparator
The hardware expects textureGrad (txd) shadow comparator to be
specified as the w component of the coordinate, rather than as a
separate comparator source.

Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com>
Reviewed-by: Lucas Stach <l.stach@pengutronix.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35531>
2025-06-18 08:58:41 +00:00