Commit graph

221328 commits

Author SHA1 Message Date
Stéphane Cerveau
242130fde5 vulkan/video: Reject interlaced picture layout for H.264 baseline profile
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
The H.264 baseline profile does not support interlaced content. Return
VK_ERROR_VIDEO_PICTURE_LAYOUT_NOT_SUPPORTED_KHR when a non-progressive
picture layout is requested with a baseline profile.

Reviewed-by: Hyunjun Ko <zzoon@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40942>
2026-04-17 14:16:13 +00:00
Aitor Camacho
94cac134dd kk: Increase maxFragmentCombinedOutputResources to KK_MAX_DESCRIPTORS
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/15249 for kk
Signed-off-by: Aitor Camacho <aitor@lunarg.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41026>
2026-04-17 13:24:18 +00:00
Erik Faye-Lund
ebe4a56650 panvk: use perf-trilinear when doing anisotropic sampling
This should be faster, and matches what the DDK does.

Reviewed-by: Marc Alcala Prieto <marc.alcalaprieto@arm.com>
Reviewed-by: Eric R. Smith <eric.smith@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40869>
2026-04-17 12:52:17 +00:00
Erik Faye-Lund
779981a3f1 panfrost: use perf-trilinear when doing anisotropic sampling
This should be faster, and matches what the DDK does.

Reviewed-by: Marc Alcala Prieto <marc.alcalaprieto@arm.com>
Reviewed-by: Eric R. Smith <eric.smith@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40869>
2026-04-17 12:52:17 +00:00
Marc Alcala Prieto
a073fb193e pan/genxml: Add performance-trilinear enum values
The HW supports these, so let's define the enum values.

Reviewed-by: Eric R. Smith <eric.smith@collabora.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40869>
2026-04-17 12:52:17 +00:00
Samuel Pitoiset
6e20e96a64 radv: add enable_mrt_output_nan_fixup to the physical cache key
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
It's already correct but it's better to have this in the physical
device cache key for future changes.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40991>
2026-04-17 12:00:00 +00:00
Rhys Perry
e450849761 radv/gfx11.7: don't advertise shaderImageFloat32AtomicMinMax
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40917>
2026-04-17 11:33:04 +00:00
Rhys Perry
c85805e10b radv/gfx11.7: enable shaderMixedFloatDotProductFloat8AccFloat32
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40917>
2026-04-17 11:33:03 +00:00
Rhys Perry
c10aa0f7b2 radv/gfx11.7: enable float8
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40917>
2026-04-17 11:33:02 +00:00
Rhys Perry
df9195ac34 radv/gfx11.7: take GFX12 paths in radv_nir_lower_cooperative_matrix
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40917>
2026-04-17 11:33:01 +00:00
Rhys Perry
ee78bea393 aco/gfx11.7: claim support
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40917>
2026-04-17 11:33:00 +00:00
Rhys Perry
7173e630a7 ac/gpu_info/gfx11.7: enable has_point_sample_accel
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40917>
2026-04-17 11:33:00 +00:00
Rhys Perry
f67b861f78 aco/gfx11.7: allow any src VGPR for VOPD with two v_dual_mov_B32
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40917>
2026-04-17 11:32:59 +00:00
Rhys Perry
ad5be681bd aco/gfx11.7: don't use v_pack_b32_f16 in do_pack_2x16
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40917>
2026-04-17 11:32:58 +00:00
Rhys Perry
a1d9fec91f aco/gfx11.7: don't create v_dot2c_f32_f16
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40917>
2026-04-17 11:32:57 +00:00
Rhys Perry
efb863173e aco: adjust some gfx_level checks for gfx11.7
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40917>
2026-04-17 11:32:56 +00:00
Rhys Perry
58debf726c aco/gfx11.7: add opcode numbers
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40917>
2026-04-17 11:32:56 +00:00
Rhys Perry
7b1a1fcf5e ac: add gfx11.7 enums
This is just enough to compile future patches and run tests.

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40917>
2026-04-17 11:32:55 +00:00
Aitor Camacho
0c6019e265 kk: Reuse as much poly utilities as possible for unrolling
We cannot use poly_unroll_restart since we may require a promoted index
size when we want to disable primitive restart for 16 bit indices. For
32 bit indices we cannot do much...

Signed-off-by: Aitor Camacho <aitor@lunarg.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40864>
2026-04-17 10:52:53 +00:00
Aitor Camacho
1d57784308 kk: Add poly dependency to KK
Signed-off-by: Aitor Camacho <aitor@lunarg.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40864>
2026-04-17 10:52:53 +00:00
Ryan Zhang
62e7120384 panvk: add VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL to host copy layouts
Add the missing layout which do not need implemented anything in
mali gpu.

Fixed: dEQP-VK.image.host_image_copy.properties.properties
unifiedImageLayouts feature is supported, but layout
VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL was not included in
VkPhysicalDeviceHostImageCopyProperties::pCopySrcLayouts.

Fixes: 1cd61ee ("panvk: implement VK_EXT_host_image_copy for linear color images")

Signed-off-by: Ryan Zhang <ryan.zhang@nxp.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40899>
2026-04-17 10:19:44 +00:00
Thong Thai
5e6a6e4e14 amd: make ac_ib_parser an amd tool build option
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
Only build ac_ib_parser when "amd" is specified as a tool build option.
ac_ib_parser is used with radeonsi and RADV.

Also re-arrange the choices in the "tools" build option so that it is
alphabetical.

Signed-off-by: Thong Thai <thong.thai@amd.com>
Reviewed-by: David Rosca <david.rosca@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40493>
2026-04-17 09:40:13 +00:00
Thong Thai
5bf30149ec radeonsi: move si_get video functions to si_video
Signed-off-by: Thong Thai <thong.thai@amd.com>
Reviewed-by: David Rosca <david.rosca@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40493>
2026-04-17 09:40:13 +00:00
Thong Thai
4cbb20c59c frontends/va: decode only stubs
Stub VA functions to allow for code for different encode/decode codecs
to be excluded from the build, along with for allowing to build without
shader code.

Signed-off-by: Thong Thai <thong.thai@amd.com>
Reviewed-by: David Rosca <david.rosca@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40493>
2026-04-17 09:40:13 +00:00
Thong Thai
92fd45381e meson: check if video encoding support is to be built
This commit adds a variable `with_encode` and sets it to true if any
"encode" video codec is enabled through the `video-codecs` build option.
This allows for video encoding related code to be included/excluded from
the build.

Signed-off-by: Thong Thai <thong.thai@amd.com>
Reviewed-by: David Rosca <david.rosca@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40493>
2026-04-17 09:40:13 +00:00
Thong Thai
c8aaa8b902 meson: update default build option for libva subproject
Add c_std=none as a default build option for when building libva as a
subproject, otherwise it will complain with messages such as:

../va/va_compat.h:90:9: error: expected declaration specifiers or '...' before string constant
   90 |     asm(".symver " #func "_" #major "_" #minor "_" #micro ", "

Signed-off-by: Thong Thai <thong.thai@amd.com>
Reviewed-by: David Rosca <david.rosca@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40493>
2026-04-17 09:40:13 +00:00
Thong Thai
e9fe2aeba2 util: allow for overriding u_stub tail
This commit allows for overriding the normal u_stub's TAIL
implementation (returning -1) with a custom implementation, allowing for
different TAIL implementations to be added without having to create a
new TAIL+ in u_stub.h.

Signed-off-by: Thong Thai <thong.thai@amd.com>
Reviewed-by: David Rosca <david.rosca@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40493>
2026-04-17 09:40:13 +00:00
Thong Thai
f9df50eb31 util: move u_stub to src/util, add u_stub_gfx_compute.h
Move u_stub.h from amd/common, to util, so that it can be used in more
places.

Also, rename u_stub's PROC to MESAPROC, as it conflicts with the PROC
keyword and create a new TAILZ which returns 0.

Add u_stub_gfx_compute.h so that the following:

...can be a single-line:

Signed-off-by: Thong Thai <thong.thai@amd.com>
Reviewed-by: David Rosca <david.rosca@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40493>
2026-04-17 09:40:13 +00:00
Karmjit Mahil
c36e3ce934 freedreno/decode: Fix error() in script.c
Previously the error() would just print `f' instead of indicating
the function where the error occurred.

Signed-off-by: Karmjit Mahil <karmjit.mahil@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40995>
2026-04-17 09:16:34 +00:00
Karmjit Mahil
ce6ed3da8b freedreno/decode,ir3: Mark decoded dwords as const
Signed-off-by: Karmjit Mahil <karmjit.mahil@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40995>
2026-04-17 09:16:34 +00:00
Samuel Pitoiset
3eb6798089 radv/ci: document some HIC failures since addrlib uprev for GFX11.7
This new addrlib bump contains AVX2 code for optimized host image
copies but it introduced few regressions on navi1x. The AMD developer
who implemented it is aware of the issue and a fix should be provided
soon.

Let's document the regressions to unblock HIC for navi2x+ in the mean
time because it greatly improves performance and it's useable in
production now.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40958>
2026-04-17 10:19:24 +02:00
Ganesh Belgur Ramachandra
d778ede72c amd: import gfx11.7 addrlib
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40958>
2026-04-17 09:47:10 +02:00
Mauro Rossi
dfca417db8 radv: Fix gnu-empty-initializer errors in 8c10eab1
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 building errors:

../src/amd/vulkan/radv_rra.c:1369:43: error: use of GNU empty initializer extension [-Werror,-Wgnu-empty-initializer]
      struct radv_bvh_stats_gfx12 stats = {};
                                          ^
../src/amd/vulkan/radv_rra.c:1376:45: error: use of GNU empty initializer extension [-Werror,-Wgnu-empty-initializer]
      struct radv_bvh_stats_gfx10_3 stats = {};
                                            ^
2 errors generated.

Fixes: 8c10eab1 ("radv: Add an option for dumping BVH stats")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41011>
2026-04-17 07:09:51 +00:00
Mauro Rossi
46d396d9d8 radv: Fix gnu-empty-initializer errors in 480a94fb
Fixes the following building errors:

../src/amd/vulkan/radv_shader.c:3460:42: error: use of GNU empty initializer extension [-Werror,-Wgnu-empty-initializer]
   struct radv_shader_debug_info debug = {};
                                         ^
1 error generated.

../src/amd/vulkan/radv_shader_args.c:975:43: error: use of GNU empty initializer extension [-Werror,-Wgnu-empty-initializer]
   struct user_sgpr_info user_sgpr_info = {};
                                          ^
1 error generated.

Fixes: 480a94fb ("radv: Gather debug info about shader args")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41011>
2026-04-17 07:09:51 +00:00
Georg Lehmann
cc212f6beb radv: remove radv_graphics_shaders_link
Only one actual linking step remains, so simplify the call.

Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40982>
2026-04-17 06:46:30 +00:00
Georg Lehmann
ae2213fa6d radv: export multi view index as layer after lowering io
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40982>
2026-04-17 06:46:30 +00:00
Georg Lehmann
8e74c0020e radv: remove draw_id from mesh shader a bit later
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40982>
2026-04-17 06:46:29 +00:00
Georg Lehmann
f85767a035 radv: never call nir_assign_io_var_locations
The comment is outdated and this info is never used.

Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40982>
2026-04-17 06:46:29 +00:00
Georg Lehmann
97c7e4b41f radv: remove unused vs/tes num_outputs from shader info
Supposedly used for ngg xfb, but apparently unused.

Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40982>
2026-04-17 06:46:28 +00:00
Georg Lehmann
1dd9c57233 radv: move fs view_index handling after lowering io
And update the comment to reflect that we now use a sysval to load
the layer id.

Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40982>
2026-04-17 06:46:28 +00:00
Georg Lehmann
2a5823c988 radv: move per-primitive fixup closer to radv_nir_lower_io
Ideally this would be in radv_nir_lower_io, but we need the information
about the previous stage.

Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40982>
2026-04-17 06:46:28 +00:00
Dhruv Mark Collins
78e2bbc70f tu/query_pool: Avoid CP counter conflict with autotune
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
With autotune allocating counters low-to-high, the conflict with
PERFORMANCE_QUERY_KHR will happen if any CP-based counters are
used. This is a temporary workaround which just drops the first
two CP counters from being usable for performance queries.

Cc: mesa-stable
Signed-off-by: Dhruv Mark Collins <mark@igalia.com>
Assisted-by: OpenAI Codex (GPT-5.4)
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40949>
2026-04-16 21:59:35 +00:00
Dhruv Mark Collins
f78541b765 tu/autotune: Allocate performance counters from low-to-high
This is more consistent with the newly established pattern of the
UMD allocating all locally used performance counters low-to-high
instead of the prior high-to-low order.

Cc: mesa-stable
Signed-off-by: Dhruv Mark Collins <mark@igalia.com>
Assisted-by: OpenAI Codex (GPT-5.4)
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40949>
2026-04-16 21:59:35 +00:00
Dhruv Mark Collins
24849eef9f fd/pps: Allocate performance counters from high-to-low
The UMD will be switching to allocating counters from low-to-high,
so to avoid the chances of conflict with this new policy the PPS
driver now allocates the other way around. Additionally, this will
future proof it for the MSM-DRM uAPI for performance counters which
will similarly allocate from high-to-low.

Cc: mesa-stable
Signed-off-by: Dhruv Mark Collins <mark@igalia.com>
Assisted-by: OpenAI Codex (GPT-5.4)
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40949>
2026-04-16 21:59:35 +00:00
Dhruv Mark Collins
a5ec9b7892 tu/autotune: Fail gracefully when CP counters are unavailable
When preemption optimization is supported then the necessary CP
counters being missing causes a device initialization error which
is unnecessary as support can simply be disabled instead to allow
for a more graceful fail. This also fixes A8XX which doesn't have
performance counters hooked up yet.

Cc: mesa-stable
Signed-off-by: Dhruv Mark Collins <mark@igalia.com>
Assisted-by: OpenAI Codex (GPT-5.4)
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40949>
2026-04-16 21:59:35 +00:00
Zan Dobersek
c2708afbc7 tu: only support userspace-managed perfcounters on a7xx and earlier
Future kernel API for perfcounter management will likely be required for
a8xx and onwards. For a7xx and earlier, cmdstream-based selector and
counter register management is still supported.

Cc: mesa-stable
Signed-off-by: Zan Dobersek <zdobersek@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40949>
2026-04-16 21:59:35 +00:00
Aleksi Sapon
712a4e5691 llvmpipe: fix overflow in rasterizer
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
Reviewed-by: Roland Scheidegger <roland.scheidegger@broadcom.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39498>
2026-04-16 19:36:28 +00:00
Aleksi Sapon
0326051618 llvmpipe: remove unused SSE rasterization code
Reviewed-by: Roland Scheidegger <roland.scheidegger@broadcom.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39498>
2026-04-16 19:36:28 +00:00
Georg Lehmann
ae8f83d465 radv: allow input attachment to use pixel coord optimization
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
The vectorized f2i32 would block nir_opt_frag_coord_to_pixel_coord.

Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40985>
2026-04-16 14:54:49 +00:00
Alyssa Rosenzweig
4b81cb6206 nir/opt_generate_bfi: avoid trivial instructions
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
With the pass order shuffling, code like `(x & 0xf) + (x & 0xfffffff0)` gets
optimized to bitfield_select(0xF, x, x). But it would be much better to optimize
simply to x. nir_opt_algebraic would do that for us but we run this pass too
late for algebraic to save us from ourselves, so be smarter.

Observed on dEQP-GLES31.functional.compute.basic.image_atomic_op_local_size_8
with Jay, this saves an instruction there.

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40956>
2026-04-16 13:54:41 +00:00