Commit graph

216710 commits

Author SHA1 Message Date
Georg Lehmann
f68b891a81 util: add IEEE 754-2019 min/max number
fmin/fmax are not signed zero correct.

The name is taken from RDNA4's ISA, because the full IEEE name is a bit long.

Cc: mesa-stable

Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39137>
2026-01-06 10:55:03 +00:00
Georg Lehmann
1d120c1bf2 ci: disable vmware farm
Runner always fails:
https://gitlab.freedesktop.org/mesa/mesa/-/pipelines/1578327

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39173>
2026-01-06 10:49:42 +00:00
Rhys Perry
614437ead5 ac/nir: don't vectorize 16-bit shared loads to 8-bit
Fixes an issue where a 2x16 load was vectorized with a 1x16 load into a
8x8 load. This became possible after 49d923078f increased
aligned_new_size from 6 bytes to 8 bytes.

fossil-db (navi31):
Totals from 5 (0.01% of 79825) affected shaders:
Instrs: 6994 -> 6257 (-10.54%)
CodeSize: 44000 -> 39464 (-10.31%)
Latency: 90482 -> 89795 (-0.76%)
InvThroughput: 202955 -> 201926 (-0.51%)
VClause: 560 -> 565 (+0.89%)
Copies: 1135 -> 1108 (-2.38%); split: -2.82%, +0.44%
PreVGPRs: 201 -> 199 (-1.00%)
VALU: 3882 -> 3201 (-17.54%)
SALU: 493 -> 479 (-2.84%)
VOPD: 262 -> 258 (-1.53%)

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Fixes: 49d923078f ("ac/nir: fix calculation of aligned_new_size")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/14500
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39156>
2026-01-06 10:28:02 +00:00
Tapani Pälli
4ac7bbb1d1 crocus: make sure we have at least 1x1 surface to create null surf
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
Otherwise we will have width of -1 later in null_fill_state_s.

Fixes: 2eb45daa9c ("gallium: de-pointerize pipe_surface")
Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38872>
2026-01-06 07:15:47 +00:00
Dave Airlie
04071c5f9a zink: use device select layer settings to disable device selection
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
In the case where we have a device that we want to choose after
probing, there is no point in asking the device select layer to do
any reordering at all.

This helps avoid a deadlock inside compositors where we don't need
device selection anyways.

Cc: mesa-stable
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38252>
2026-01-05 23:51:26 +00:00
Dave Airlie
833706e381 device-select: add a layer setting to disable device selection logic
There are cases like zink where we have a file descriptors we are searching
for devices for, so we don't need device selecting reordering, we just want
the fastest path to get the devices so we can match them.

This also helps avoid some cases of deadlock inside compositors where
zink/vulkan initialises later and tries to connect to the compositor.

This uses a VK_EXT_layer_setting to add a bypass setting.

Cc: mesa-stable
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38252>
2026-01-05 23:51:26 +00:00
Jesse Natalie
d9d33b7c96 d3d12: Fix resolving global state vs per-context state with promotion
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39077>
2026-01-05 23:25:21 +00:00
Jesse Natalie
43ed15a61b d3d12: Don't promote to read-write states
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39077>
2026-01-05 23:25:21 +00:00
Jesse Natalie
bbd16fdf05 d3d12: Ensure that flush_resource causes batches to get flushed
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39077>
2026-01-05 23:25:21 +00:00
Jesse Natalie
d9997c97be d3d12: Assert that there's no front buffer writes
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39077>
2026-01-05 23:25:21 +00:00
Jesse Natalie
86587517b2 d3d12: Decay state when resolving context -> global state
Also ensure that *all* promotions are considered promotions, not
just ones that combine with an existing state bit.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39077>
2026-01-05 23:25:20 +00:00
Jesse Natalie
fe48cd7c5a d3d12: Allow state promotion for non-simultaneous access textures
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39077>
2026-01-05 23:25:20 +00:00
Jesse Natalie
7f058c4740 wgl/d3d12: Return success based only on Present return
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39077>
2026-01-05 23:25:19 +00:00
Jesse Natalie
21e5d19f9e wgl: Only swap back and front buffers after a successful present
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39077>
2026-01-05 23:25:19 +00:00
Jesse Natalie
2805822141 wgl: Support contexts created from non-window DCs
Store the original HDC along with the HWND if we can get an HWND. If we
have the HWND, then the original HDC is basically useless, but if we don't,
we can use the HDC as a lookup key for the framebuffer.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39077>
2026-01-05 23:25:19 +00:00
Marek Olšák
fe45960b8a radeonsi: fix clip/cull distance gathering for mesh shaders
clipdist_mask was always 0. Just merge the codepaths to reuse what we
have for VS/TES/GS.

Reviewed-by: Qiang Yu <yuq825@gmail.com>
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39147>
2026-01-05 22:58:36 +00:00
Marek Olšák
cf333ae9a2 radeonsi: fix incorrect PS shader key with sample shading
discovered when writing a sample shading test

Fixes: 65398d571b - radeonsi: ignore pipe_rasterizer_state::force_persample_interp

Reviewed-by: Qiang Yu <yuq825@gmail.com>
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39147>
2026-01-05 22:58:36 +00:00
Marek Olšák
c49d1bbea9 radeonsi: fix slightly incorrect assertions in si_shader_ps
Fixes: 5be9d76861 - radeonsi: fix an assertion failure in si_shader_ps with AMD_DEBUG=mono

Reviewed-by: Qiang Yu <yuq825@gmail.com>
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39147>
2026-01-05 22:58:36 +00:00
Marek Olšák
07265681fb radeonsi: remove the PointSize output if it has no effect
GL_VERTEX_PROGRAM_POINT_SIZE disables the output. This removes it from
shaders to reduce HW overhead.

Reviewed-by: Qiang Yu <yuq825@gmail.com>
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39147>
2026-01-05 22:58:36 +00:00
Marek Olšák
3552028e87 ac/lower_ngg_mesh: fix a segfault accessing out_variables out of bounds
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
component_addr_off (in bytes) was used to offset a component index (in dwords).

Cc: mesa-stable

Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39144>
2026-01-05 22:23:42 +00:00
Marek Olšák
b340588119 ac/gpu_info: don't read uninitialized dev_filename
This fixes radeonsi-run-tests.py not being able to read AMD_DEBUG=info.

Fixes: 8777894d3e - amd: remove radeon_info::dev_filename

Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39145>
2026-01-05 21:56:36 +00:00
Marek Olšák
86b74563a0 nir/clip_cull_distance_utils: add more assertions validating the type & sizes
Reviewed-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39146>
2026-01-05 21:24:10 +00:00
Marek Olšák
bba2536bb0 nir/clip_cull_distance_utils: fix assertion failures with GL_EXT_mesh_shader
Those outputs are never compact in GLSL mesh shaders. The assertions might
not be needed.

Cc: mesa-stable

Reviewed-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39146>
2026-01-05 21:24:10 +00:00
Jeff Burnett
320d757578 util: Don't force 64-bit division on 32-bit platforms
When converting between snorm and between unorm values, the following
patch introduced 64-bit division on all platforms.

  util: Add and use functions to calculate min and max int for a size
  Commit hash: 72259a870f

The following unit math
  // local MAX_UINT macro based on UINT32_MAX
  (uint64_t * uint32_t + uint32_t) / uint32_t
changed to
  // macros.h inlined 'uint64_t u_uintN_max()' functions.
  (uint64_t * uint64_t + uint32_t) / uint64_t

This can significantly impact performance on 32-bit platforms.

Address this by type-casting the return values from the inlined
functions to avoid the 64-bit divide on 32-bit platforms.

Signed-off-by: Micah Shennum <micah.shennum@garmin.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39001>
2026-01-05 20:52:24 +00:00
Faith Ekstrand
41d8e1ecde nvk: Add support for 64-bit vertex attributes
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Mary Guillemard <mary@mary.zone>
Acked-by: Mel Henning <mhenning@darkrefraction.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39135>
2026-01-05 20:11:56 +00:00
Faith Ekstrand
5ed98c8267 nak: Use nir_lower_io_lower_64bit_to_32
This is the one that has Vulkan semantics.  We could probably make
nir_lower_io_lower_64bit_to_32_new work but it assumes the weird GL
semantics which don't map to what Vulkan does.  Using it with a Vulkan
driver would require remapping all the attribute indices.

Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Mary Guillemard <mary@mary.zone>
Acked-by: Mel Henning <mhenning@darkrefraction.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39135>
2026-01-05 20:11:56 +00:00
Faith Ekstrand
230fb83d61 nil: Claim buffer support for R64_[US]INT
They're implemented as RG32 so it's fine to claim storage texel buffer
support.

Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Mary Guillemard <mary@mary.zone>
Acked-by: Mel Henning <mhenning@darkrefraction.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39135>
2026-01-05 20:11:56 +00:00
Faith Ekstrand
26c50cb7ff nvk: Check before claiming UNIFORM_TEXEL_BUFFER_BIT
This is a no-op right now because NIL never claims buffer support on
anything that can't support texturing.  That will change in the next
commit.

Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Mary Guillemard <mary@mary.zone>
Acked-by: Mel Henning <mhenning@darkrefraction.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39135>
2026-01-05 20:11:56 +00:00
Eric Engestrom
5a917f035c rusticl: fix 'enable-drivers' meson option
Fixes: 1301d61de4 ("rusticl: allow devices to be enabled by default")
Fixes: 9cdf897c5e ("rusticl: allow asahi to be enabled by default")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/14302
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39163>
2026-01-05 19:35:42 +00:00
Icenowy Zheng
e8c81652c9 vulkan/wsi/headless: do not destroy images that are never created
Currently the image creation failure handling codepath of
wsi_headless_surface_create_swapchain() just calls
wsi_headless_swapchain_destroy() , which will try to destroy all
`image_count` of images. However, some of these images might never be
successfully created because of the failure, which leads to double-free.

Set image_count to the number of successfully created images before
calling wsi_headless_swapchin_destroy() to prevent over-destroying.

Fixes dEQP-VK.wsi.headless.swapchain.simulate_oom.* on lavapipe and pvr,
although some of the tests got QualityWarning saying "Creating swapchain
did not succeed, callback limit exceeded" on lavapipe (Pass on pvr).

Cc: mesa-stable
Signed-off-by: Icenowy Zheng <uwu@icenowy.me>
Reviewed-by: Frank Binns <frank.binns@imgtec.com>
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39039>
2026-01-05 19:05:06 +00:00
Gurchetan Singh
bb17ad3f08 gfxstream: fix warning
Fixes:

DrmVirtGpuBlob.cpp:46:21: warning: comparison of integer
    expressions of different signedness: ‘uint32_t’
    {aka ‘unsigned int’} and ‘int’ [-Wsign-compare]

Reviewed-by: Aaron Ruby <aruby@qnx.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39161>
2026-01-05 18:47:21 +00:00
Jason Macnak
d1ea08738a gfxstream: Remove unnecessary tag to simplify perfetto trace config
Test: capture guest + host trace

Reviewed-by: Aaron Ruby <aruby@qnx.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39161>
2026-01-05 18:47:21 +00:00
Jason Macnak
462e73ce1c gfxstream: Add Vulkan func/structs for passing debugging data to host
... and send data on connection creation.

Test: cvd create --gpu_mode=gfxstream_guest_angle
      and go/cuttlefish-tracing to grab perfetto trace

Reviewed-by: Aaron Ruby <aruby@qnx.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39161>
2026-01-05 18:47:21 +00:00
Emma Anholt
4edef77876 ir3: Fix leak in vars_to_scratch callback.
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
Fixes: c00ebca5c4 ("ir3: Improve spilling of NIR vars to scratch.")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39113>
2026-01-05 18:24:33 +00:00
Emma Anholt
2878b86ccf tu: Fix use-after-free in device destruction on old kernels
tu_bo_make_zombie() accesses the queue.

Fixes: f6c7f16322 ("tu: Implement VK_EXT_multisampled_render_to_single_sampled")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39113>
2026-01-05 18:24:33 +00:00
Alyssa Rosenzweig
2e78d6edf1 pan/mdg: clean up csel typing pass
v2: invert logic (Francesco Ansanelli)

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Acked-by: Boris Brezillon <boris.brezillon@collabora.com>
Acked-by: Eric R. Smith <eric.smith@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39136>
2026-01-05 17:47:52 +00:00
Alyssa Rosenzweig
347a0ac212 panfrost,nir: drop my lonely Authors tags
We all know who wrote a bunch of Panfrost code. No need to repeat this a million
places, the copyright line is plenty.

in cases where there's a joint me & Italo/Eric/.. tag, i've left it alone to
respect others' potential wishes.

$ find . -type f -exec perl -i -p0e 's/ \*\s+\* Author[^\n]+\s+\*\s+Alyssa[^\n]+\n \*\// \*\//' \{} \;

v2: delete more tags (Boris).

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Acked-by: Boris Brezillon <boris.brezillon@collabora.com>
Acked-by: Eric R. Smith <eric.smith@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39136>
2026-01-05 17:47:52 +00:00
Eric Engestrom
93bda77fb5 mr-label-maker: tag src/virtio/virtgpu_kumquat* as part of gfxstream
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38924>
2026-01-05 17:01:39 +00:00
Eric Engestrom
4f91d4d888 virtgpu_kumquat_ffi: mark single-item match as expected
It will presumably get more values in the future and should not just be
replaced with an `if`.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38924>
2026-01-05 17:01:39 +00:00
Eric Engestrom
590daa1282 virtgpu_kumquat_ffi: use auto-deref instead of doing it by hand
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38924>
2026-01-05 17:01:39 +00:00
Eric Engestrom
6cb997ab22 virtgpu_kumquat_ffi: use mutex.get_mut() instead of mutex.lock() to get compile-time garantee that the mutex isn't already locked
See https://rust-lang.github.io/rust-clippy/rust-1.92.0/index.html#mut_mutex_lock

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38924>
2026-01-05 17:01:38 +00:00
Eric Engestrom
ea9f75e85c virtgpu_kumquat_ffi: mark the remaining allow annotations (all non_camel_case_types) as expected
`#[expect(...)]` instead of `#[allow(...)]` means that the linter warns
once the annotation should be removed.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38924>
2026-01-05 17:01:37 +00:00
Eric Engestrom
2b76adb765 virtgpu_kumquat: cleanup derelict allow(dead_code) & allow(unused) annotations
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38924>
2026-01-05 17:01:37 +00:00
Pohsiang (John) Hsu
aba2bb4a16 mediafoundation: handle the case where output sample is returning after MFT has been released.
we can't use pipe object in stat pool on shutdown, because the pipe object is released when the MFT is released.
For async sink (i.e mp4 sinkwriter), the output samples can be returning after HMFT is released.

Reviewed-by: Yubo Xie <yuboxie@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39131>
2026-01-05 16:47:45 +00:00
Anna Maniscalco
6a68542167 zink: fix use_reusable_pool condition
The code originally disabled reuse whenever a pNext was passed to
`bo_create_internal`, however code has been added before it that messed
with the pointer disabling it more often that necessary.

Rearrange code to restore the original check.

cc: mesa-stable

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39008>
2026-01-05 16:19:00 +00:00
Konstantin Seurer
405c93c665 radv: Optimize BVH4 acceleration structure updates
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
It is more efficient to compute the child index of the current node
inside the parent node and write the bounds when available. The previous
code could load up to 16 AABBs to compute the new ones. The new code
also only needs 1/7 of the previously used scratch memory. The new code
seems to be around 30% faster (0.5ms) in GOTG on a 6700XT.

Reviewed-by: Natalie Vock <natalie.vock@gmx.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39139>
2026-01-05 15:24:54 +00:00
Daniel Schürmann
2d0d5fc104 aco/validate: validate constant bus limit after register allocation based on PhysReg
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39107>
2026-01-05 14:54:00 +00:00
Daniel Schürmann
eb16f701a6 aco/tests: Add new test to pack 2x16 SGPRs into VGPR
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39107>
2026-01-05 14:54:00 +00:00
Daniel Schürmann
61c1ec541d aco/tests: Add test for subdword extraction from SGPR
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39107>
2026-01-05 14:54:00 +00:00
Daniel Schürmann
0674c9d30e aco/validate: Validate correct RegisterClasses after lowering to HW instructions
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39107>
2026-01-05 14:53:59 +00:00