Commit graph

220922 commits

Author SHA1 Message Date
David Rosca
363447b7d0 radv/video: Use quality level for encode preset instead of tuning mode
qualityLevel as a speed/quality tradeoff is better match for encode presets
than the tuning mode. In addition we can support more quality levels than
what is available from tuning modes, this adds support for High Quality
preset on VCN4+.
This also makes it possible to use Low Latency tuning with balance and
quality presets.

Reviewed-by: Benjamin Cheng <benjamin.cheng@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40765>
2026-04-08 10:19:29 +00:00
Samuel Pitoiset
a41724e923 nir: remove nir_intrinsic_global_addr_to_descriptor
It's no longer emitted by vk_nir_lower_descriptor_heaps().

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40826>
2026-04-08 09:46:01 +00:00
Samuel Pitoiset
78a1e44e97 vulkan: stop emitting global_addr_to_descriptor
This is unnecessary because it's BDA, so making a descriptor from it
doesn't make sense.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40826>
2026-04-08 09:46:01 +00:00
Georg Lehmann
d1ed4e1774 aco/optimizer: do not try to create 3 byte constant operands
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
Operand::get_const will assert.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/work_items/15239
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40828>
2026-04-08 09:17:26 +00:00
Georg Lehmann
0066328cf1 nir/opt_algebraic: create more 64bit bit test
Foz-DB GFX1201:
Totals from 2 (0.00% of 205032) affected shaders:
Instrs: 3429 -> 3425 (-0.12%)
CodeSize: 19580 -> 19568 (-0.06%)
Latency: 13629 -> 13628 (-0.01%); split: -0.02%, +0.01%
InvThroughput: 1853 -> 1847 (-0.32%)
Copies: 235 -> 237 (+0.85%)
VALU: 1901 -> 1898 (-0.16%)
SALU: 381 -> 380 (-0.26%)
VOPD: 307 -> 309 (+0.65%)

Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40705>
2026-04-08 08:44:20 +00:00
Georg Lehmann
792ce7ddf6 aco/isel: optimize 16/64bit non constant valu bit test
By using the constant path we can combine the v_and and the v_cmp.

Foz-DB GFX1201:
Totals from 2 (0.00% of 205032) affected shaders:
Instrs: 2833 -> 2831 (-0.07%)
Latency: 27385 -> 27367 (-0.07%)
InvThroughput: 1712 -> 1710 (-0.12%)
VALU: 1301 -> 1299 (-0.15%)

Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40705>
2026-04-08 08:44:20 +00:00
Icenowy Zheng
3db93bbf34 pvr: fix pvr_clear_vdm_state_get_size_in_dw() inverted feature condition
The pvr_clear_vdm_state_get_size_in_dw() wrongly think instance count
inputs are needed when doing RTA clear for cores without the
gs_rta_support feature. However, the instance ID is exploited to output
the target layer ID, which isn't supported at all for cores w/o that
feature, so it looks that the condition is inverted. In addition, the
pvr_pack_clear_vdm_state() function seems to have similar logic deciding
whether to emit instance_count, and the logic is opposite to the logic
in pvr_clear_vdm_state_get_size_in_dw() for the part checking the
gs_rta_support feature.

Invert the condition to take instance ID inputs for cores with the
gs_rta_support feature instead of those without this feature.

Fixes: b59eb30e88 ("pvr: Fix cs corruption in pvr_pack_clear_vdm_state()")
Signed-off-by: Icenowy Zheng <zhengxingda@iscas.ac.cn>
Reviewed-by: Luigi Santivetti <luigi.santivetti@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40831>
2026-04-08 08:24:16 +00:00
Mary Guillemard
b2e55f5a1a nvk: Remove old comments from draw state init
Those were relevent for Fermi or just the Gallium driver.
For the vertex runout, it is implemented a bit after
(SET_VERTEX_STREAM_SUBSTITUTE_A)

I also rewrote the comment about CSAA_ENABLE as it is still relevent.

Signed-off-by: Mary Guillemard <mary@mary.zone>
Reviewed-by: Mel Henning <mhenning@darkrefraction.com>
Tested-by: Thomas H.P. Andersen <phomes@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40753>
2026-04-08 08:06:19 +00:00
Mary Guillemard
091db8a827 nvk: adjust reduce color thresholds default values
NVIDIA proprietary driver set 4 for UNORM8 and SRGB8, let's match this.

Signed-off-by: Mary Guillemard <mary@mary.zone>
Reviewed-by: Mel Henning <mhenning@darkrefraction.com>
Tested-by: Thomas H.P. Andersen <phomes@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40753>
2026-04-08 08:06:19 +00:00
Mary Guillemard
99c226b833 nvk: Set VAF eviction policy to nornmal
NVIDIA proprietary driver does that, we were missing this and possibly
making the VAF (Vertex Attribute Fetch) unit evict the first entry
instead if nothing was setting it.

The golden ctx already set it for us at least on Ada but for consistency
let's make sure it's set here in case this is different on other
generations.

Signed-off-by: Mary Guillemard <mary@mary.zone>
Reviewed-by: Mel Henning <mhenning@darkrefraction.com>
Tested-by: Thomas H.P. Andersen <phomes@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40753>
2026-04-08 08:06:18 +00:00
Mary Guillemard
90c005dd90 nvk: Do not use SET_L1_CONFIGURATION on 3D state init
There is no reasons to cut 48KiB of memory out of L1 cache on gfx
considering that we do not have shared memory and that local
memory does not need to be directly addressable.

This is not set by NVIDIA proprietary driver and the golden ctx setup keep it
uninitialized.

Unsure if that will change anything in term of performance but it might reduce
L1 cache usage on 3D.

Signed-off-by: Mary Guillemard <mary@mary.zone>
Reviewed-by: Mel Henning <mhenning@darkrefraction.com>
Tested-by: Thomas H.P. Andersen <phomes@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40753>
2026-04-08 08:06:18 +00:00
Mary Guillemard
3b674771bb nvk: Do not fill cb0 at queue creation
We are already doing this in nvk_push_draw_state_init there is no need
for the extra DMA fill.

Signed-off-by: Mary Guillemard <mary@mary.zone>
Reviewed-by: Mel Henning <mhenning@darkrefraction.com>
Tested-by: Thomas H.P. Andersen <phomes@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40753>
2026-04-08 08:06:18 +00:00
Jakob Sinclair
5e2c951ba6 pan: add sigil to SSA values for debug printing
Make it easier to distinguish between SSA values and constant values
when debug printing BIR.

Reviewed-by: Christoph Pillmayer <christoph.pillmayer@arm.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40711>
2026-04-08 07:41:56 +00:00
Jakob Sinclair
a24364e418 pan: move discard/kill_ssa flag after index for debug prints
Match the style of the disassembler when debug printing BIR.

Reviewed-by: Christoph Pillmayer <christoph.pillmayer@arm.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40711>
2026-04-08 07:41:56 +00:00
Jakob Sinclair
c3d56e9f82 pan: improve debug printing of multiple registers
This makes printing of BIR in SSA-form more similar to NIR and after
register allocation, it shows consecutive registers for operands
reading/writing to more than one register.

Reviewed-by: Christoph Pillmayer <christoph.pillmayer@arm.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40711>
2026-04-08 07:41:56 +00:00
Rhys Perry
54515bf8d1 nir/propagate_invariant: handle images
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
No fossil-db changes.

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/40740>
2026-04-08 07:10:26 +00:00
Rhys Perry
4d65a7d16e nir/propagate_invariant: be more conservative with aliasing variables
No fossil-db changes.

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/40740>
2026-04-08 07:10:26 +00:00
Rhys Perry
310c8a0a17 nir/propagate_invariant: be more conservative with NULL variables
If we can't determine what variable is accessed, we should assume it could
be any.

This might make things worse with Vulkan since it does
vulkan_resource_index+load_vulkan_descriptor, but I don't think it matters
much. SSBO stores are rarely used in vertex shaders.

fossil-db (navi21):
Totals from 1 (0.00% of 202427) affected shaders:
Instrs: 442 -> 445 (+0.68%)
Latency: 2038 -> 2043 (+0.25%)
InvThroughput: 432 -> 437 (+1.16%)
VALU: 295 -> 298 (+1.02%)

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/40740>
2026-04-08 07:10:26 +00:00
Rhys Perry
b6f9a9092a nir/propagate_invariant: include derefs
In case an array index is calculated using floating point.

fossil-db (navi21):
Totals from 1339 (0.66% of 202427) affected shaders:
MaxWaves: 30368 -> 30396 (+0.09%)
Instrs: 805468 -> 817035 (+1.44%); split: -0.00%, +1.44%
CodeSize: 4084432 -> 4130548 (+1.13%); split: -0.01%, +1.14%
VGPRs: 62000 -> 61952 (-0.08%)
Latency: 3885607 -> 3903915 (+0.47%); split: -0.01%, +0.48%
InvThroughput: 726350 -> 742176 (+2.18%); split: -0.03%, +2.21%
VClause: 22187 -> 22676 (+2.20%); split: -0.14%, +2.34%
SClause: 14663 -> 14616 (-0.32%); split: -0.42%, +0.10%
Copies: 65726 -> 65840 (+0.17%); split: -0.09%, +0.26%
Branches: 21075 -> 21076 (+0.00%); split: -0.02%, +0.03%
PreVGPRs: 48970 -> 48941 (-0.06%)
VALU: 454510 -> 466082 (+2.55%); split: -0.01%, +2.55%
SALU: 130543 -> 130521 (-0.02%); split: -0.03%, +0.01%
VMEM: 43876 -> 43896 (+0.05%)

Most of these changes are elden_ring shaders which can no longer optimize
f2u32(u2f32()).

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/40740>
2026-04-08 07:10:26 +00:00
Rhys Perry
75ccfd8fb2 nir/propagate_invariant: set fp_math_ctrl for intrinsics
No fossil-db changes.

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/40740>
2026-04-08 07:10:26 +00:00
Rhys Perry
20e85604ad nir/propagate_invariant: include intrinsics
No fossil-db changes.

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/40740>
2026-04-08 07:10:26 +00:00
Rhys Perry
b30c0d8264 nir/algebraic: optimize exact f2u32(fmul(unpack_norm))
fossil-db (navi21):
Totals from 16 (0.01% of 202427) affected shaders:
Instrs: 17730 -> 17226 (-2.84%)
CodeSize: 97500 -> 95708 (-1.84%)
InvThroughput: 44437 -> 44419 (-0.04%)
Copies: 1502 -> 1446 (-3.73%)
VALU: 9973 -> 9525 (-4.49%)
SALU: 3509 -> 3453 (-1.60%)

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/40740>
2026-04-08 07:10:26 +00:00
Rhys Perry
f52dace6e8 nir/tests: fix NaN/inf checks in skip_test()
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/40740>
2026-04-08 07:10:26 +00:00
Rhys Perry
72f2b8a034 util: fix UBSan error with _mesa_bfloat16_bits_to_float
runtime error: left shift of 65535 by 16 places cannot be represented in type 'int'

This fixes nir_opt_algebraic_pattern_test.bf2f.

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Fixes: ecd2d2cf46 ("util: Add functions to convert float to/from bfloat16")
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40740>
2026-04-08 07:10:26 +00:00
Vinson Lee
ca6edbd9c8 nil: Fix Rust test link failure under Coverity due to missing -lm
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
The nil Rust test fails to link when built under Coverity (cov-build):

  /usr/bin/ld: src/util/libmesa_util.a.p/format_u_format_other.c.o:
    undefined reference to symbol 'sqrtf@@GLIBC_2.2.5'
  /usr/bin/ld: /lib/x86_64-linux-gnu/libm.so.6:
    error adding symbols: DSO missing from command line

This does not reproduce with plain GCC or Clang builds.

When rustc invokes the linker for the nil test binary, the generated
link command is structured as:

  cc ... [Rust rlibs] -Bdynamic -lm -ldl -lc ...
     -fuse-ld=lld -B.../gcc-ld ...
     [static archives: libmesa_util.a ...]

The -lm appears before libmesa_util.a in both Coverity and non-Coverity
builds. With --as-needed enabled, the linker only records a shared
library as needed if it resolves an undefined symbol at the point it
is encountered. Since no symbols need -lm when it is first seen, the
outcome depends on the linker implementation:

- lld (rustc's bundled linker, used in plain builds): Tolerates
  back-references from later static archives to earlier shared
  libraries, so libmesa_util.a's sqrtf reference is still resolved
  by the previously-seen libm.so.

- ld.bfd (GNU ld): Strict single-pass left-to-right. Once -lm is
  skipped by --as-needed, it cannot satisfy sqrtf when libmesa_util.a
  is processed later.

Coverity's cov-build wrapper intercepts rustc's call to the linker
and strips the -fuse-ld=lld and -B.../gcc-ld arguments, causing the
linker to fall back to the system's ld.bfd. This exposes the latent
link-order problem that lld was masking.

The underlying issue is that rustc places default libraries (-lm, -lc,
etc.) before user-specified static archives in the link command, which
is a known rustc limitation.
See also: https://github.com/rust-lang/rust/issues/154975

Fix this by passing -lm via rust_args with --no-as-needed brackets.
This forces ld.bfd to record libm as needed regardless of when it
appears on the command line, so sqrtf from libmesa_util.a is resolved
correctly under both lld and ld.bfd.

Fixes: 0920e0afb5 ("nil: Add zcull support")
Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Reviewed-by: Mel Henning <mhenning@darkrefraction.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40793>
2026-04-07 21:17:27 -07:00
Ian Romanick
cfdb3ddb93 brw: brw_reg::nr for an accumulator is not part of the offset
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
Without this, reg_offset will return 1024 for acc0. This causes
has_invalid_dst_region to decide that the destination region is invalid
(because 1024 != 0), and the lowering code tries to treat the floating
point accumulators as integers. It's a mess.

v2: Add and use set_gfx_platform. Suggested by Caio.

Fixes: 937373eb25 ("i965/fs: Handle fixed HW GRF subnr in reg_offset().")
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40716>
2026-04-08 00:36:39 +00:00
Jason Macnak
bc848da244 gfxstream: fix goldfish guards on fence functions
... to ensure that "mSyncHelper->close()" still happens on
non goldfish devices.

Android equivalent ag/39315505 for b/500332164

Tested with CtsGraphicsTestCases after the build file changes.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40836>
2026-04-08 00:21:15 +00:00
Mary Guillemard
5a5febfccd nvk: Ensure that shader I-cache prefetch is enabled on Ada+
Signed-off-by: Mary Guillemard <mary@mary.zone>
Reviewed-by: Mel Henning <mhenning@darkrefraction.com>
Tested-by: Thomas H.P. Andersen <phomes@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40700>
2026-04-08 00:05:40 +00:00
Mary Guillemard
55a279e8b8 nvk: Wire up shader program prefetch method
On Ampere B and later, we can specify the prefetch size in blocks of a
gfx shader we are binding.

NVIDIA proprietary driver always set it with the
max size possible. (up to 127 blocks)

Signed-off-by: Mary Guillemard <mary@mary.zone>
Reviewed-by: Mel Henning <mhenning@darkrefraction.com>
Tested-by: Thomas H.P. Andersen <phomes@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40700>
2026-04-08 00:05:40 +00:00
Mary Guillemard
742c91ce68 nvk: Move shader size and offset calculations to nvk_shader_get_shader_size
We are going to need the total shader size (without embedded data),
let's move this out of the upload codepath.

Signed-off-by: Mary Guillemard <mary@mary.zone>
Reviewed-by: Mel Henning <mhenning@darkrefraction.com>
Tested-by: Thomas H.P. Andersen <phomes@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40700>
2026-04-08 00:05:40 +00:00
Ian Romanick
ffdc310bf1 brw/const: Don't allow type changes when accumulators are involved
Integer accumulators and float accumulators do not occupy the same bits,
so the types cannot be arbitrarily changed.

No shader-db or fossil-db changes on any Intel platform.

v2: Use is_accumulator() instead if brw_reg_is_arf(). Add an extra test
to show the desired behavior when an accumulator is not
involved. Suggested by Caio.

Fixes: 64c251bb3a ("intel/fs: Combine constants for SEL instructions too")
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40638>
2026-04-07 23:37:26 +00:00
Mixie
11c3173890 xlib: clear currentDpy when switching current context
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
When making a new context current, the previously current context may be
unbound as part of the transition.

In this path, current->currentDpy was not cleared for the old context,
leaving a stale display association behind after the context was no
longer current.

Related: https://gitlab.freedesktop.org/mesa/mesa/-/issues/14947

Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40422>
2026-04-07 22:39:49 +00:00
Mixie
96cbc791d5 xlib: remove vishandle from XMesaVisual and fix XVisualInfo leak
Remove the unused vishandle pointer and rely solely on visualid-based
matching. This also eliminates the leak.

This mirrors the cleanup previously done in fakeglx.c. (781232e0ac)

Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40422>
2026-04-07 22:39:49 +00:00
Mixie
59ef73d71f xlib: fix skipping visuals in destroy_visuals_on_display
This commit decrements the loop index after deletion to ensure
all visuals for the display are properly destroyed.

Related: https://gitlab.freedesktop.org/mesa/mesa/-/issues/14947
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40422>
2026-04-07 22:39:49 +00:00
Mixie
61d1e8fc85 xlib: use XMesaDestroyVisual instead of manual free
Replace it with XMesaDestroyVisual() to properly handle deallocation.

Related: https://gitlab.freedesktop.org/mesa/mesa/-/issues/14947
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40422>
2026-04-07 22:39:49 +00:00
Mixie
8131af3f77 xlib: use XMesaDestroyVisual when destroying display visuals
destroy_visuals_on_display() frees XMesaVisual objects directly, but
XMesaVisual has a dedicated destructor.

Related: https://gitlab.freedesktop.org/mesa/mesa/-/issues/14947
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40422>
2026-04-07 22:39:49 +00:00
Mixie
447a1d2e8d xlib: clear currentDpy when releasing the current context
After abe6d750e5, glXDestroyContext() can defer destruction by marking
the context with xid == None while it is still current.

However, the release-current path did not clear current->currentDpy,
so a context that had already been marked for deletion could remain
associated with a display after unbinding.

Fixes: abe6d750e5 ("xlib: fix glXDestroyContext in Gallium frontends")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/14947
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40422>
2026-04-07 22:39:49 +00:00
Marek Olšák
cec1024b22 ac,radv: remove AC_TRACKED_DB_VRS_OVERRIDE_CNTL as well
AC_TRACKED_DB_PA_SC_VRS_OVERRIDE_CNTL can be used instead because
the DB and PA registers are mutually exclusive.

2 definitions are moved because consecutive enums aren't allowed
to cross a multiple of 32 because of static assertions in the bitset.

Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40586>
2026-04-07 22:07:48 +00:00
Marek Olšák
623d2a9f3c radv,radeonsi: don't set PA_SC_HIS_INFO
the preamble sets it

Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40586>
2026-04-07 22:07:48 +00:00
Marek Olšák
9c26b8b924 ac,radv: use AC_TRACKED_DB_PA_SC_VRS_OVERRIDE_CNTL for PA_SC_VRS_OVERRIDE_CNTL
The enum is meant to be used for both.

Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40586>
2026-04-07 22:07:48 +00:00
Caio Oliveira
3b4a7f2d1a brw: In "Clear Accumulator" workaround, never set predicate_inverse
Since there's no predicate, the inverse bit is not relevant, so always
set it to false instead of using whatever was set by the previous
instruction.  Hardware already ignores this but will make verifying
later changes easier.

Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40800>
2026-04-07 20:33:46 +00:00
Caio Oliveira
e382d82ca9 anv: Fix assert in anv_nir_compute_push_layout
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
When per-primitive padding is needed, max_push_buffers is set to 3
(instead of 4) to reserve the last slot for it.

The assert was requiring `n_push_ranges < max_push_buffers`, which
incorrectly fired when the 3 ranges were used.

Fixes: a8ba682919 ("anv: assert we haven't gone over the maximum number of push_buffers")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/work_items/15155
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Dylan Baker <dylan.c.baker@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40803>
2026-04-07 19:56:55 +00:00
Alyssa Rosenzweig
959ec01ac8 brw/nir_lower_fs_load_output: optimize pixel coord
this saves a conversion or two.

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40829>
2026-04-07 19:32:15 +00:00
Alyssa Rosenzweig
1d0f42c264 brw/eu_emit: relax assertion to allow ARF NULL
On new platforms, it's valid to use a NULL destination in conjunction with a
cmod, where you care about the implicit flag write but you don't need to clobber
any GRF. Something like:

   if (x * y > z) {

compiling (with fast-math) to

        mad.gt.f0 _, -z, x, y
   (f0) if

This patch allows us to emit that instruction.

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40829>
2026-04-07 19:32:15 +00:00
Alyssa Rosenzweig
2ed6ff728a brw: explicitly pad tgl_swsb
This lets us treat it as a packed data structure without worrying about garbage.

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40829>
2026-04-07 19:32:15 +00:00
Samuel Pitoiset
33676d8296 spirv: mark all resources as non-uniform by default with descriptor heap
It's required by descriptor heap. There is already a NIR pass that
optimizes non-uniform access, so this should be mostly safe.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40768>
2026-04-07 18:55:49 +00:00
Samuel Pitoiset
74aa40f6ed nir: remove resource/sampler heap ptrs sysvals
They are no longer used.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40768>
2026-04-07 18:55:49 +00:00
Samuel Pitoiset
d2b9ccf20b vulkan: adjust lowering of descriptor heaps
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40768>
2026-04-07 18:55:49 +00:00
Samuel Pitoiset
fb96f85d19 spirv: implement SpvOpUntypedImageTexelPointerEXT
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40768>
2026-04-07 18:55:49 +00:00
Samuel Pitoiset
7088621874 spirv: emit nir_intrinsic_image_heap when resource/sampler ptrs are used
This seems better because there are no variables at all.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40768>
2026-04-07 18:55:49 +00:00