Commit graph

217464 commits

Author SHA1 Message Date
Connor Abbott
14269166b2 freedreno, turnip, ir3: Always gather streamout info from NIR
pipe_stream_output_info is considered deprecated, and not filled out for
drivers using I/O intrinsics. Switch to using NIR instead, which should
be more reliable and allows us to stop having separate paths for
gathering this info in turnip and freedreno.

Since we don't have a map of location -> driver_location before
compiling, we have to switch to using locations in the streamout info.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39328>
2026-01-21 20:54:20 +00:00
Connor Abbott
1bd967ba64 ir3: Remove variables after i/o lowering
Other parts of NIR, such as unlower_io_to_variables, expect i/o
variables to be gone, and the NIR linker removes them. Now that we've
removed all the remaining bits relying on variables we can start
deleting them.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39328>
2026-01-21 20:54:20 +00:00
Connor Abbott
a47316c19a ir3: Don't use variables for passthrough TCS
We will delete variables soon.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39328>
2026-01-21 20:54:19 +00:00
Connor Abbott
dd236bf392 ir3: Stop using variables when translating from NIR
We can trivially remove the last vestiges of variables.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39328>
2026-01-21 20:54:18 +00:00
Connor Abbott
51db95e2d5 ir3: Stop relying on variables in ir3_nir_lower_layer_id
We will soon delete all variables. Instead we have to scan the shader to
find if there are any pre-existing reads of the varying.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39328>
2026-01-21 20:54:17 +00:00
Connor Abbott
069bdc499b ir3: Fix ir3_nir_lower_layer_id indentation
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39328>
2026-01-21 20:54:17 +00:00
Connor Abbott
b74e301c7e ir3, freedreno, tu: Move nir_lower_io out of post_finalize()
In gallium, the GLSL linker already lowers variables so this was mostly
a no-op. However in order to use common passes that operate on
intrinsics in turnip, and eventually convert turnip passes to use
intrinsics, we need to split out nir_lower_io so that we can call it
earlier. Split out the call to nir_lower_io to a separate function, and
move it up in turnip. In the future we will move it up even further
until we can use the new NIR linking passes that operate on intrinsics.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39328>
2026-01-21 20:54:16 +00:00
Connor Abbott
c7a60fca3c nir, ir3: Make ir3 GS varyings use a proper index
Use a similar technique of reusing TCS-only varyings for VS/TES/GS.
This way outputs_written can be used to see whether GS lowering has
already been run.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39328>
2026-01-21 20:54:15 +00:00
Connor Abbott
aa04692bb4 st/mesa: Call nir_recompute_io_bases after lowering FP variants
Lowering FP variants calls a number of passes that aren't aware of
driver locations. For drivers relying on them, make sure that they are
still correct by recomputing them rather than adding awareness to every
pass.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39328>
2026-01-21 20:54:15 +00:00
Connor Abbott
5abe3db518 nir/lower_clip: Correctly handle driver_location in VS lowering
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39328>
2026-01-21 20:54:15 +00:00
Connor Abbott
62085044a4 nir: Allow lower_clip_fs with lowered IO
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39328>
2026-01-21 20:54:14 +00:00
Connor Abbott
b8905ff2f0 nir/recompute_io_bases: Fix num_inputs with dual-slot VS inputs
Use num_normal_inputs, which also includes dual-slot inputs.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39328>
2026-01-21 20:54:14 +00:00
Connor Abbott
778ed567ed nir/recompute_io_bases: Fix handling of dual-source blending
We forgot to increment num_outputs for dual-source outputs.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39328>
2026-01-21 20:54:14 +00:00
Connor Abbott
32a4146992 nir: Fix recompute_io_bases with compact i/o arrays
Follow the example of unlower_io_to_vars, so that when called within
that pass we don't incorrectly recalculate bases for backends that have
compact arrays.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39328>
2026-01-21 20:54:14 +00:00
Connor Abbott
3208cc80b1 nir: Move is is_compact() out of unlower_io_to_vars
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39328>
2026-01-21 20:54:13 +00:00
Jesse Natalie
b8e1ca9913 wgl: Support PFD_SWAP_COPY pixel formats
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39441>
2026-01-21 20:37:59 +00:00
Jesse Natalie
2d46ac527c wgl: Delete stw_pfd_flag
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39441>
2026-01-21 20:37:58 +00:00
Eric Engestrom
bba73d9c81 docs: update calendar for 26.0.0-rc1
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39439>
2026-01-21 19:27:35 +00:00
jaap aarts
8f7941f92d radv/sqtt: Prevent concurrent submit when sqtt is enabled
cc: mesa-stable

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39090>
2026-01-21 18:55:56 +00:00
Aitor Camacho
1b1e38ffd5 kk: Update kk_bind_descriptor_sets comment to reflect updated binding
Signed-off-by: Aitor Camacho <aitor@lunarg.com>
Reviewed-by: Mel Henning <mhenning@darkrefraction.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39203>
2026-01-21 18:16:05 +00:00
Aitor Camacho
aaf4405507 hk: Handle unbound sets that contain dynamic buffers
The offset for the dynamic buffers needs to be computed with the currently
bound pipeline layout. This change fixes incorrectly selecting the offset
for a dynamic buffer if a descriptor with a lower index than the currently
being bound contains a dynamic buffer but said descriptor hasn't being
bound yet. It also prevents the binding to override the dynamic buffers in
order to preserve the already bound dynamic descriptors.

Signed-off-by: Aitor Camacho <aitor@lunarg.com>
Reviewed-by: Mel Henning <mhenning@darkrefraction.com>
Acked-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39203>
2026-01-21 18:16:05 +00:00
Aitor Camacho
80a076f5d0 nvk: Handle unbound sets that contain dynamic buffers
The offset for the dynamic buffers needs to be computed with the currently
bound pipeline layout. This change fixes incorrectly selecting the offset
for a dynamic buffer if a descriptor with a lower index than the currently
being bound contains a dynamic buffer but said descriptor hasn't being
bound yet. It also prevents the binding to override the dynamic buffers in
order to preserve the already bound dynamic descriptors.

Reviewed-by: Mel Henning <mhenning@darkrefraction.com>
Signed-off-by: Aitor Camacho <aitor@lunarg.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39203>
2026-01-21 18:16:05 +00:00
Eric Engestrom
8846c0246d docs/releasing: skip ci when creating the branchpoint
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
This isn't a new git state to be tested, we're just pushing it to a new location.

The push above doesn't need this because it doesn't run the CI anyway.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39435>
2026-01-21 18:11:43 +00:00
Eric Engestrom
f43bab301f docs/releasing: rephrase sentence about not letting the mr label script run
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39435>
2026-01-21 18:11:43 +00:00
Eric Engestrom
3f9f7f864f docs/releasing: s/pull request/merge request/
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39435>
2026-01-21 18:11:43 +00:00
Eric Engestrom
5bfd522c9a docs: reset new_features.txt
Signed-off-by: Eric Engestrom <eric@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39436>
2026-01-21 17:56:17 +00:00
Eric Engestrom
ab3cc1d0a0 VERSION: bump to 26.1
Signed-off-by: Eric Engestrom <eric@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39436>
2026-01-21 17:56:17 +00:00
Timur Kristóf
87a8d19b51 ac/gpu_info: Remove FIXME from regalloc hang description
This is now implemented.

Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39288>
2026-01-21 17:24:57 +00:00
Timur Kristóf
d7f3096ee9 radeonsi: Remove previous mitigation of CS regalloc hang bug
Now that all larger workgroup sizes are lowered to 256,
the old workaround is not needed anymore.

Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39288>
2026-01-21 17:24:57 +00:00
Timur Kristóf
fc0827126f radv: Remove previous mitigation of CS regalloc hang bug
Now that all larger workgroup sizes are lowered to 256,
the old workaround is not needed anymore.

Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39288>
2026-01-21 17:24:57 +00:00
Timur Kristóf
f3e8e93906 radeonsi: Allow using compute queue with regalloc hang bug on GFX7
Now that all larger workgroup sizes are lowered to 256,
the regalloc hang cannot mess up the compute queues anymore.

Still don't allow compute queues on GFX6 though,
those have never been enabled ever since RadeonSI started using
the compute queue in a1378639ab - let's keep it that way.

Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39288>
2026-01-21 17:24:56 +00:00
Timur Kristóf
86ff28b3da radv: Allow using compute queue with CS regalloc hang bug on GFX7
Now that all larger workgroup sizes are lowered to 256,
the regalloc hang cannot mess up the compute queues anymore.

Still don't allow compute queues on GFX6 though,
they are prone to hangs. Needs further investigation.

Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39288>
2026-01-21 17:24:56 +00:00
Timur Kristóf
0961aba8a7 radeonsi: Lower larger workgroups to 256 for CS regalloc bug
Even though radeonsi may not use compute queues, other processes
might run compute jobs in the background, so radeonsi must make
sure not to use	larger than 256	sized workgroups on GPUs that
are affected by	the regalloc hang.

Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39288>
2026-01-21 17:24:56 +00:00
Timur Kristóf
d31b4451f2 radv: Lower larger workgroups to 256 for CS regalloc bug
This is the safest maximum workgroup size if we want to avoid
the hang on affected GPUs.

Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39288>
2026-01-21 17:24:56 +00:00
Timur Kristóf
dc41023510 radeonsi: Limit variable workgroup size to 256 for CS regalloc bug
Even though radeonsi may not use compute queues, other processes
might run compute jobs in the background, so radeonsi must make
sure not to use larger than 256 sized workgroups on GPUs that
are affected by the regalloc hang.

Unfortunately that means that for now RadeonSI won't be able to
support ARB_compute_variable_group_size on these GPUs.

Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39288>
2026-01-21 17:24:56 +00:00
Timur Kristóf
3d934c7951 mesa: Require at least 512 variable invocations for ARB_compute_variable_group_size
The specification for ARB_compute_variable_group_size requires
the driver to support at least 512 variable invocations in
the MAX_COMPUTE_VARIABLE_GROUP_INVOCATIONS_ARB variable.

Source:
https://registry.khronos.org/OpenGL/extensions/ARB/ARB_compute_variable_group_size.txt

In Gallium, that capability is max_variable_threads_per_block,
let's require that is at least 512 to stay in spec.

Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39288>
2026-01-21 17:24:56 +00:00
Utku Iseri
e58b32a8c1 zink: handle split DS blits with zink_blit calls
This fixes resource tracking and state setting for depth-only blits.

Cc: mesa-stable
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39410>
2026-01-21 16:33:47 +00:00
Lionel Landwerlin
79aff6e274 brw: use fp64 to compute coarse_z
For some reason we cannot get the precision needed from the HW at fp32.

LNL internal fossildb changes :

Totals from 7226 (0.76% of 947978) affected shaders:
Instrs: 5512598 -> 5586086 (+1.33%); split: -0.00%, +1.33%
Cycle count: 153836056 -> 155079472 (+0.81%); split: -0.77%, +1.58%
Spill count: 2025 -> 2021 (-0.20%); split: -0.35%, +0.15%
Fill count: 3139 -> 3112 (-0.86%); split: -1.12%, +0.25%
Max live registers: 1034601 -> 1034632 (+0.00%); split: -0.00%, +0.00%
Max dispatch width: 207296 -> 207264 (-0.02%); split: +0.02%, -0.03%
Non SSA regs after NIR: 1147942 -> 1109326 (-3.36%)

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/12726
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38996>
2026-01-21 16:00:52 +00:00
Lionel Landwerlin
a19e949824 brw: move coarse_z computation to NIR
So that we can print it easily with debug printfs

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38996>
2026-01-21 16:00:52 +00:00
Lionel Landwerlin
98194dfa0b nir: add intrinsics for Z calculation in shaders with FSR
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38996>
2026-01-21 16:00:52 +00:00
Lionel Landwerlin
89a53f048a brw: make coarse pixel bit available to NIR lowering
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38996>
2026-01-21 16:00:51 +00:00
Lionel Landwerlin
e3fd1b0ac0 brw: populate wm_prog_data earlier
So that we can put the coarse_pixel_dispatch value available to NIR
lowering.

LNL internal fossildb changes:

Totals from 40 (0.01% of 490838) affected shaders:
Instrs: 33321 -> 33311 (-0.03%); split: -0.04%, +0.01%
Cycle count: 780136 -> 779936 (-0.03%); split: -0.03%, +0.00%
Max live registers: 5292 -> 5298 (+0.11%)
Non SSA regs after NIR: 26638 -> 26464 (-0.65%)

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38996>
2026-01-21 16:00:51 +00:00
Lionel Landwerlin
6a7ff83874 brw: set nir_shader_compiler_options::has_pixel_coord
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38996>
2026-01-21 16:00:50 +00:00
Lionel Landwerlin
12be2a580c nir/compiler_options: add nir_load_pixel_coord
And use it for nir_printf_fmt_at_px().

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38996>
2026-01-21 16:00:50 +00:00
Lucas Stach
063d480a62 etnaviv: simplify constant dirty bit handling during state emission
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
We don't need to take ETNA_DIRTY_SHADER into consideration for pure
updates of the constant states. When the shader is dirty constants
and code will be uploaded together and the update path will be skipped.

The uniform cache in the context has been removed in ee1ed59458
("etnaviv: prep for UBOs"), so the comment referencing this cache
is confusing and can go as well.

Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Reviewed-by: Christian Gmeiner <cgmeiner@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39422>
2026-01-21 15:42:45 +00:00
Lucas Stach
bfd7a8d8d3 etnaviv: check all necessary dirty bits when marking constbufs during draw
Constant buffers may be changed without the shader changing.
Check the correct dirty bits when marking constant buffers
as read during the draw to ensure proper synchronization.

Fixes: a40a6e551e ("etnaviv: draw: only mark resources as read/written when the state changed")
Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Reviewed-by: Christian Gmeiner <cgmeiner@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39422>
2026-01-21 15:42:45 +00:00
Christian Gmeiner
1de924c870 pvr/ci: Update CI expectations
Catching up with the latest development.

Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39432>
2026-01-21 15:10:49 +00:00
Christian Gmeiner
720ee2b9eb pvr/ci: Increase timeout to prevent job failures
Jobs have been timing out, requiring 2-6 additional minutes beyond the
previous 30-minute limit. Increase the overall timeout from 30 to 45
minutes, with an additional 5-minute buffer for GitLab (50m total) to
provide margin for variance.

Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39432>
2026-01-21 15:10:49 +00:00
Dylan Baker
00aa3bdb1d docs/releasing: Use the GitLab CI as the test procedure
The GitLab CI is much more useful than trying to hand test.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39011>
2026-01-21 15:03:47 +00:00
Dylan Baker
a5dce21782 docs/releasing: Add a section to update the website
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39011>
2026-01-21 15:03:47 +00:00