Commit graph

217252 commits

Author SHA1 Message Date
Marek Olšák
20515c83ea radeonsi: rename hiz_his to gfx12_*hiz
Only GFX12 will ever have this.

Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39260>
2026-01-19 16:58:18 +00:00
Marek Olšák
6bdb8abf22 radeonsi: set FORCE_STENCIL_VALID less often on gfx12
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39260>
2026-01-19 16:58:18 +00:00
Marek Olšák
3abe31aa7f radeonsi: set WALK_ALIGN8_PRIM_FITS_ST=0 for 64K rendering
this is required

Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39260>
2026-01-19 16:58:17 +00:00
Marek Olšák
f8f4c02c97 radv: rename hiz_his to gfx12_*hiz
Only GFX12 will ever have this.

Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39260>
2026-01-19 16:58:17 +00:00
Marek Olšák
482c410f41 ac: remove never enabled gfx12 HiS
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39260>
2026-01-19 16:58:17 +00:00
Georg Lehmann
0165175d4a ci: update trace checksums
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39180>
2026-01-19 16:11:29 +00:00
Georg Lehmann
70a951c3f3 nir/search: allow inexact patterns if denorms have to be flushed
Patterns should ensure that they flush denorms with fcanonicalize.

Removing in between denorm flushing when fusing operations is explicitly
allowed unless those optimizations are generally disallowed by other
floating point math control flags.

Foz-DB Navi21:
Totals from 291 (0.35% of 82377) affected shaders:
Instrs: 138347 -> 137773 (-0.41%)
CodeSize: 751460 -> 748516 (-0.39%)
Latency: 1686466 -> 1686226 (-0.01%); split: -0.02%, +0.01%
InvThroughput: 270847 -> 269963 (-0.33%)
VClause: 2023 -> 2022 (-0.05%)
SClause: 5271 -> 5260 (-0.21%); split: -0.25%, +0.04%
Copies: 8929 -> 8912 (-0.19%)
VALU: 87108 -> 86552 (-0.64%)
SALU: 23460 -> 23443 (-0.07%)

Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39180>
2026-01-19 16:11:29 +00:00
Georg Lehmann
442daeb54a nir/opt_algebraic: use fcanonicalize
Mostly optimizations, some minor fixes but I don't
think they are worth backporting.

Foz-DB Navi21:
Totals from 7570 (9.21% of 82151) affected shaders:
MaxWaves: 204288 -> 204476 (+0.09%); split: +0.09%, -0.00%
Instrs: 4511439 -> 4500261 (-0.25%); split: -0.25%, +0.00%
CodeSize: 23727088 -> 23644388 (-0.35%); split: -0.35%, +0.00%
VGPRs: 290944 -> 290616 (-0.11%); split: -0.12%, +0.01%
SpillSGPRs: 1256 -> 1251 (-0.40%)
Latency: 16738072 -> 16726717 (-0.07%); split: -0.10%, +0.04%
InvThroughput: 3736856 -> 3716631 (-0.54%); split: -0.55%, +0.01%
VClause: 66150 -> 66156 (+0.01%); split: -0.05%, +0.06%
SClause: 93644 -> 93631 (-0.01%); split: -0.02%, +0.01%
Copies: 448816 -> 458584 (+2.18%); split: -0.05%, +2.22%
Branches: 139817 -> 139775 (-0.03%); split: -0.03%, +0.00%
PreSGPRs: 321922 -> 321900 (-0.01%); split: -0.01%, +0.00%
PreVGPRs: 239709 -> 238856 (-0.36%); split: -0.39%, +0.03%
VALU: 2595164 -> 2584250 (-0.42%); split: -0.43%, +0.01%
SALU: 839038 -> 838965 (-0.01%); split: -0.02%, +0.01%
VMEM: 137584 -> 137583 (-0.00%)

Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39180>
2026-01-19 16:11:29 +00:00
Rhys Perry
625afb0d29 nir: add fcanonicalize
v2(Georg Lehmann):
Always remove fcanonicalize if denorms must be neither flushed nor preserved.

Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39180>
2026-01-19 16:11:29 +00:00
Georg Lehmann
43d998df84 nir: document that both input and output denorms have to be flushed
This allows us to remove a * 1.0 or a - 0.0 if is_only_used_as_float.
We already rely on that.

Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39180>
2026-01-19 16:11:28 +00:00
Georg Lehmann
d7e88c0ccd nir/constant_expressions: flush input denorms if denorms have to be flushed
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39180>
2026-01-19 16:11:28 +00:00
Georg Lehmann
7e93aebbec nir/constant_expressions: don't avoid unused source variable warnings
The only use case for this was fddx/fddy and they are no longer alu
for good reasons. For current and future alu, unused sources don't make sense.

And if you really want it, you can still explicitly cast the variable to void.

Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39180>
2026-01-19 16:11:28 +00:00
Georg Lehmann
050507ab81 brw: make sure nir_opt_algebraic_late was called after late brw_nir_optimize
Not only is it questionable for code quality to not call nir_opt_algebraic_late
after nir_opt_algebraic, it also breaks correctness for late lowerings.

Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39180>
2026-01-19 16:11:28 +00:00
Rhys Perry
0cd16d1bae lavapipe,nv50/ir,lima: run nir_opt_algebraic_late
This will become necessary to lower fcanonicalize without creating a
fmul(a, 1.0)<->fcanonicalize(a) optimization loop.

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Vasily Khoruzhick <anarsoul@gmail.com> (lima)
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39180>
2026-01-19 16:11:28 +00:00
José Roberto de Souza
81a5512565 intel/blorp: Remove duplicated calls in blorp_exec_compute()
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
We can have only one of those calls before the 'if GFX_VERx10 >= 125' block.

Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39362>
2026-01-19 15:09:29 +00:00
Ella Stanforth
f5aa7364e9 pvr: fix suspend and resume for dynamic rendering
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
Fixes: 564bf2379e ("pvr: enable VK_KHR_dynamic_rendering")

Reviewed-by: Luigi Santivetti <luigi.santivetti@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39353>
2026-01-19 12:05:50 +00:00
Christian Gmeiner
1c98532e15 etnaviv: blt: Set 64BPP_FORMAT flag for clears and copies
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
64bpp formats (like RGBA16F) require the 64BPP_FORMAT flag in the BLT
image config registers. For clears, set the flag in both SRC and DEST
config registers. For copies, set the flag in the SRC config register.

This matches the blob driver behavior and fixes incorrect rendering
with 16-bit float formats.

Fixes all failes from dEQP-GLES3.functional.*clear*16f*
Fixes five failes from dEQP-GLES3.functional.*blit*16f*

Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com>
Tested-by: Daniel Lang <dalang@gmx.at> (GC7000 rev 6009)
Reviewed-by: Daniel Lang <dalang@gmx.at>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39371>
2026-01-19 11:34:10 +00:00
Christian Gmeiner
1f55fd4b3e etnaviv: Update headers from rnndb
Update to rnndb commit 4d660c896e75

Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com>
Tested-by: Daniel Lang <dalang@gmx.at> (GC7000 rev 6009)
Reviewed-by: Daniel Lang <dalang@gmx.at>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39371>
2026-01-19 11:34:10 +00:00
Rhys Perry
893e9d7595 aco: don't spill no-op copies of input parameters in preserved registers
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38679>
2026-01-19 09:17:53 +00:00
Rhys Perry
8a3cc7200e aco/sched: don't use previously unused preserved registers
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38679>
2026-01-19 09:17:53 +00:00
Rhys Perry
da1dca28a7 aco/ra: consider already-used preserved registers to be free
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38679>
2026-01-19 09:17:53 +00:00
Rhys Perry
103160ff2f aco/ra: prefer clobbered registers in get_reg_specified()
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38679>
2026-01-19 09:17:53 +00:00
Rhys Perry
2b20d568e0 aco/ra: prefer clobbered registers in callees
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38679>
2026-01-19 09:17:53 +00:00
Rhys Perry
21b1118a08 aco/ra: refactor get_reg_impl and get_regs_for_copies using tuples
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38679>
2026-01-19 09:17:52 +00:00
Rhys Perry
61919b93fa aco/ra: always abort loop in get_regs_for_copies() if candidate is worse
fossil-db (navi31):
Totals from 2 (0.00% of 79825) affected shaders:
Instrs: 58162 -> 58178 (+0.03%)
CodeSize: 299132 -> 299212 (+0.03%)
Latency: 72864 -> 72861 (-0.00%)
VClause: 977 -> 984 (+0.72%)
Copies: 7433 -> 7428 (-0.07%)
Branches: 1602 -> 1603 (+0.06%)
VALU: 37100 -> 37095 (-0.01%)

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38679>
2026-01-19 09:17:51 +00:00
Rhys Perry
137f71895d aco/ra: always prefer earlier regs in get_reg_impl() if costs are the same
Before, this would have updated best_win if it encounters an assignment
with the same num_moves and num_vars but is aligned, even if the previous
best assignment was also aligned.

fossil-db (navi31):
Totals from 7693 (9.64% of 79825) affected shaders:
Instrs: 9767559 -> 9766370 (-0.01%); split: -0.11%, +0.09%
CodeSize: 51008244 -> 51002396 (-0.01%); split: -0.09%, +0.08%
VGPRs: 497224 -> 497212 (-0.00%); split: -0.00%, +0.00%
Latency: 80435654 -> 80373798 (-0.08%); split: -0.20%, +0.12%
InvThroughput: 12426170 -> 12414490 (-0.09%); split: -0.15%, +0.06%
VClause: 217725 -> 217438 (-0.13%); split: -0.59%, +0.46%
SClause: 230555 -> 230551 (-0.00%); split: -0.00%, +0.00%
Copies: 758396 -> 757988 (-0.05%); split: -0.81%, +0.75%
Branches: 200669 -> 200662 (-0.00%); split: -0.01%, +0.01%
VALU: 6040415 -> 6039979 (-0.01%); split: -0.10%, +0.09%
SALU: 960327 -> 960671 (+0.04%); split: -0.03%, +0.07%
VOPD: 426 -> 458 (+7.51%)

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38679>
2026-01-19 09:17:50 +00:00
Rhys Perry
0a744ba735 aco: increase max_reg_demand to help avoid preserved VGPRs
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38679>
2026-01-19 09:17:50 +00:00
Rhys Perry
bf56f1efd3 aco: move update(fixed_reg_demand) into update_vgpr_sgpr_demand
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38679>
2026-01-19 09:17:50 +00:00
Rhys Perry
a932bc40d3 aco/ra: don't use update_vgpr_sgpr_demand in increase_register_file
In a future commit, update_vgpr_sgpr_demand() should only be given the
register demand calculated from the number of live temporaries, not the
maximum register used.

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38679>
2026-01-19 09:17:49 +00:00
Rhys Perry
6e618ac327 aco: don't try to preserve SCC in callees
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38679>
2026-01-19 09:17:48 +00:00
Rhys Perry
88ee78c6b7 aco: track number of post-RA spilled vgprs/sgprs
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38679>
2026-01-19 09:17:47 +00:00
Rhys Perry
f5f2f9110c radv/rt: lower non-return load_param to variable loads
nir_intrinsic_load_param can't be CSE'd, which can prevent phi cleanup
and potentially unneeded scratch access.

fossil-db (navi31):
Totals from 4 (0.01% of 79825) affected shaders:
Instrs: 2504 -> 2384 (-4.79%)
CodeSize: 13584 -> 12784 (-5.89%)
Latency: 96124 -> 96056 (-0.07%)
InvThroughput: 12016 -> 12008 (-0.07%)
Copies: 664 -> 504 (-24.10%)
Branches: 92 -> 88 (-4.35%)
VALU: 1232 -> 1112 (-9.74%)
VOPD: 308 -> 228 (-25.97%)

fossil-db (navi31, monolithic pipelines disabled):
Totals from 52 (0.06% of 80095) affected shaders:
Instrs: 126296 -> 124734 (-1.24%)
CodeSize: 718272 -> 707864 (-1.45%)
Latency: 2866019 -> 2865125 (-0.03%)
InvThroughput: 502663 -> 502537 (-0.03%)
Copies: 19616 -> 17536 (-10.60%)
Branches: 4344 -> 4292 (-1.20%)
VALU: 65432 -> 63872 (-2.38%)
VOPD: 14543 -> 13503 (-7.15%)

fossil-db (navi31, monolithic pipelines disabled, any-hit function calls):
Totals from 52 (0.06% of 80304) affected shaders:
Instrs: 38232 -> 34956 (-8.57%)
CodeSize: 184616 -> 171400 (-7.16%)
Latency: 944112 -> 941483 (-0.28%)
InvThroughput: 122152 -> 121817 (-0.27%)
Copies: 13065 -> 10302 (-21.15%)
Branches: 1471 -> 1419 (-3.54%)
PreSGPRs: 2673 -> 2598 (-2.81%)
VALU: 22576 -> 19368 (-14.21%)
SALU: 6549 -> 6474 (-1.15%)

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Konstantin Seurer <konstantin.seurer@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39344>
2026-01-19 08:55:39 +00:00
Rhys Perry
37b956a203 radv/rt: cleanup phis after lowering parameter variables to SSA
No fossil-db changes.

fossil-db (navi31, monolithic pipelines disabled):
Totals from 21 (0.03% of 80095) affected shaders:
MaxWaves: 312 -> 320 (+2.56%)
Instrs: 9989 -> 9666 (-3.23%)
CodeSize: 56020 -> 53696 (-4.15%)
VGPRs: 1488 -> 1440 (-3.23%)
Latency: 157965 -> 146639 (-7.17%)
InvThroughput: 25192 -> 22390 (-11.12%)
VClause: 186 -> 148 (-20.43%)
PreVGPRs: 1196 -> 1147 (-4.10%)
VALU: 5053 -> 5040 (-0.26%)
VMEM: 506 -> 240 (-52.57%)
VOPD: 992 -> 1005 (+1.31%)

fossil-db (navi31, monolithic pipelines disabled, any-hit function calls):
Totals from 41 (0.05% of 80304) affected shaders:
Instrs: 20615 -> 20436 (-0.87%); split: -0.97%, +0.10%
CodeSize: 98780 -> 98080 (-0.71%); split: -0.79%, +0.09%
Latency: 341542 -> 341796 (+0.07%); split: -0.05%, +0.13%
InvThroughput: 46353 -> 46386 (+0.07%); split: -0.05%, +0.12%
Copies: 6958 -> 6818 (-2.01%); split: -2.41%, +0.40%
Branches: 676 -> 657 (-2.81%)
VALU: 12232 -> 12092 (-1.14%); split: -1.37%, +0.23%

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Konstantin Seurer <konstantin.seurer@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39344>
2026-01-19 08:55:39 +00:00
Samuel Pitoiset
91a5a0f2b9 radv/meta: fix layered depth stencil resolves with compute
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
Fixes a bunch of new VKCTS coverage like
dEQP-VK.pipeline.monolithic.multisample.m10_resolve.resolve_cmd.d32_sfloat.depth.average.full_multilayer.no_flags

Cc: mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39349>
2026-01-19 07:22:26 +00:00
Konstantin Seurer
091b43b970 radv: Use HPLOC for TLAS builds
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
The BVH quality is comparable to PLOC but the build is much faster.

Reviewed-by: Natalie Vock <natalie.vock@gmx.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39116>
2026-01-18 19:21:08 +01:00
Konstantin Seurer
a6a62363df vulkan: Implement HPLOC
Reviewed-by: Natalie Vock <natalie.vock@gmx.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39116>
2026-01-18 19:20:36 +01:00
Tapani Pälli
ab9d3528dc anv: fix queue check in anv_blorp_execute_on_companion on xe3
Fixes:
   dEQP-VK.api.copy_and_blit.dedicated_allocation.resolve_image.whole_copy_before_resolving_transfer.2_bit

Otherwise we attempt to use blorp and hit various asserts later in:

- blorp_copy_supports_blitter
- blorp_xy_block_copy_blt

Fixes: 61287b00f3 ("anv: Stop using RCS companion for MSAA copy/clear on Xe3+")
Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39346>
2026-01-18 17:19:05 +00:00
Lakshman Chandu Kondreddy
ffb5d5d224 dri: Add R32F,RG32F,RGBA32F format mappings for DRIImage
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
Add pipe format to sized internal format mappings for R32F,
RG32F and RGBA32F in the DRIImage format table. This fixes shader
image store operations on EGL images imported from DMA-BUF with
respective DRM formats.

Without these mappings, DMA-BUF imported textures received base internal
formats instead of sized internal formats, causing shader image unit
validation to fail and DispatchCompute write zeroes on compute shader
imageStore operation.

Fixes: 6d3f266406 ("dri: Add additional 16/32b float/int formats")
Signed-off-by: Lakshman Chandu Kondreddy <lkondred@qti.qualcomm.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39004>
2026-01-18 15:48:34 +00:00
Yiwei Zhang
c2c9266fed venus: workaround to consider ALIAS for image mem req cache
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
ANV can return different memory requirements with and w/o the ALIAS bit.
See https://gitlab.freedesktop.org/mesa/mesa/-/issues/14671 for details.

Meanwhile, venus has a driver side cache for image memory requirements.
As blessed per spec for memory aliasing, venus strips the ALIAS bit when
populating the cache key. Because of the use of imageless mem req query,
the ALIAS mem req now can hit the cache first, leaving a smaller/relaxed
requirement in the cache...busted.

Venus is unable to fix ANV behavior behind the scene, so this workaround
is only to align Venus behavior with ANV to not suffer from Venus-only
rendering artifacts.

Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39368>
2026-01-18 08:48:01 +00:00
Yiwei Zhang
fea23746ce venus: amend missing logs for image format cache dump
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39339>
2026-01-18 08:10:53 +00:00
Yiwei Zhang
c57659c9a3 venus: cache VkBufferUsageFlags2CreateInfo
Proton has widely used this struct.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39339>
2026-01-18 08:10:53 +00:00
Yiwei Zhang
a16ae2f684 venus: refactor vn_buffer_get_cache_index
Prepare to handle VkBufferUsageFlags2CreateInfo.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39339>
2026-01-18 08:10:53 +00:00
Yiwei Zhang
25970096d4 venus: only preserve 12 bits for VkBufferCreateFlagBits
Save more bits to prepare for VkBufferUsageFlags2CreateInfo.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39339>
2026-01-18 08:10:52 +00:00
Mauro Rossi
197cb437cd radv/rt: Fix gnu-empty-initializer error in radv_pipeline_rt.c
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 error happening with clang:

FAILED: src/amd/vulkan/libvulkan_radeon.so.p/radv_pipeline_rt.c.o
...
../src/amd/vulkan/radv_pipeline_rt.c:934:38: error: use of GNU empty initializer extension [-Werror,-Wgnu-empty-initializer]
   struct nir_function raygen_stub = {};
                                     ^
1 error generated.

Fixes: 0a1911b2 ("radv,aco: Use function call structure for RT programs")
Reviewed-by: Konstantin Seurer <konstantin.seurer@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39370>
2026-01-17 17:13:05 +01:00
Icenowy Zheng
ba43568f4b mesa: fix GL_INVALID_OPERATION when releasing buffer in GLES1/2 ctx
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
The Function glInternalReleaseBufferMESA is called whenever a
intermediate buffer is used by MESA internal and being released, however
it's only exported for GLES3, which leads to drawing w/o VBO not
operational for GLES1/2.

Fixes invalid operation warning in `glmark2-es2 -b build:use-vbo=false` for
GLES2 HW / any HW with MESA_GLES_VERSION_OVERRIDE=2.0 .

VBO-less drawing is possible for GLES 1.0 too, so this function is also
exported with GLES1. Tested on GLES1 with mesa-demos gears demo with
VBO allocation commented out.

Fixes: ae75b59cb5 ("glthread, tc: Fix buffer release with glthread and tc")
Signed-off-by: Icenowy Zheng <uwu@icenowy.me>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39092>
2026-01-17 07:27:47 +00:00
Icenowy Zheng
f1d199285a mesa: fix GL_INVALID_OPERATION with GLES1/2 + Kopper
Kopper draw codepath calls an internal helper called
InternalInvalidateFramebufferAncillaryMESA, which is currently only
exported for GLES3 contexts.

This leads to a warning when the underlying Vulkan driver capability
isn't enough for GLES3 or GLES version number is forced to 2.0 or the
program is a GLES1 one.

Export this internal helper for GLES1/2 too.

Fixes: 0c7994bb2d ("mapi: add InternalInvalidateFramebufferAncillaryMESA")
Signed-off-by: Icenowy Zheng <uwu@icenowy.me>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39092>
2026-01-17 07:27:46 +00:00
Icenowy Zheng
2c770a8dce mesa: workaround GL_INVALID_OPERATION in GLES 2.0 draws
Mesa internally converts some draw calls to DrawArraysInstancedBaseInstance
or DrawElementsInstancedBaseVertexBaseInstance, which are only available
in GLES contexts via GL_EXT_base_instance, a GLES3-only extension.

Export these two functions into the internal namespace for GLES 2.0
contexts too.

This fixes black screen for `glmark2-es2 -b build:use-vbo=false` (which is
the first test item for glmark2 auto test sequence) on GLES 2 HW / GLES
3 HW with MESA_GLES_VERSION_OVERRIDE=2.0 .

Fixes: 7c1f8b63ad ("glthread: work around GL_INVALID_OPERATION with OpenGL ES 1.x draws")
Signed-off-by: Icenowy Zheng <uwu@icenowy.me>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39092>
2026-01-17 07:27:46 +00:00
llyyr
c3763b12e2 vulkan/wsi/headless: implement vkReleaseSwapchainImagesKHR for headless
We need to support this if we advertise KHR_swapchain_maintenance1

Cc: mesa-stable
Signed-off-by: llyyr <llyyr.public@gmail.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39218>
2026-01-17 06:21:32 +00:00
llyyr
a1dd7eec87 vulkan/wsi/headless: add stub for VkSurfacePresentScalingCapabilitiesKHR
Similar to last MR, since we advertise support for
KHR_swapchain_maintenance1, we need to advertise this

Cc: mesa-stable
Signed-off-by: llyyr <llyyr.public@gmail.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39218>
2026-01-17 06:21:32 +00:00
llyyr
9cd5a4849a vulkan/wsi/headless: populate VkSurfacePresentModeCompatibilityKHR
Previously, we ignored this struct which caused VVL to treat the
compatible mode list as NULL, causing false positive validation errors
on headless applications.

Closes: #14622

Cc: mesa-stable
Signed-off-by: llyyr <llyyr.public@gmail.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39218>
2026-01-17 06:21:32 +00:00