Compare commits

..

391 commits

Author SHA1 Message Date
Dylan Baker
3848a08053 VERSION: bump for 25.3.2
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: Dylan Baker <dylan.c.baker@intel.com>
2025-12-17 13:00:46 -08:00
Dylan Baker
ca4575c936 docs: add release notes for 25.3.2 2025-12-17 13:00:37 -08:00
Dylan Baker
391b31ce88 .pick_status.json: Mark bbc8ce2704 as backported
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/39003>
2025-12-17 11:44:08 -08:00
Dylan Baker
4591eeb383 .pick_status.json: Mark 6dff50c8bc as backported
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39003>
2025-12-17 11:44:08 -08:00
Dylan Baker
5e2a06dcc1 .pick_status.json: Update to dfdaee5ca7
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39003>
2025-12-17 11:44:05 -08:00
Boris Brezillon
0bf0f4d3de pan/cs: Don't leak builder resources
cs_finish() is doing two things:

1. wrapping up the CS to prepare for its execution
2. freeing the temporary instrs array and maybe_ctx allocations

Mixing those two things lead to confusion and leaks, so let's split
those into cs_end() and cs_builder_fini(), and make sure panvk/panfrost
call both when appropriate.

Fixes: 50d2396b7e ("pan/cs: add helpers to emit contiguous csf code blocks")
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Acked-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39003>
2025-12-17 16:57:41 +01:00
Lionel Landwerlin
6bc126b86d anv: fix dynamic buffers & independent sets
In 0ca870c6f3 I forgot to fill the bind_map::dynamic_descriptors
array... Duh!

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: 0ca870c6f3 ("anv: fix broken ray tracing dynamic descriptors")
Reviewed-by: Ivan Briano <ivan.briano@intel.com>
(cherry picked from commit 6dff50c8bc)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39003>
2025-12-16 12:20:33 -08:00
Lionel Landwerlin
f48d731953 anv: move load_num_workgroups tracking to driver
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
(cherry picked from commit 578d2f0daa)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39003>
2025-12-16 12:20:32 -08:00
Lionel Landwerlin
deaf382293 anv: reintroduce non independent sets dynamic descriptor optimization
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
(cherry picked from commit 36ba2672ca)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39003>
2025-12-16 12:20:32 -08:00
Lionel Landwerlin
bf02a31dd4 vulkan/runtime: add an internal flag for independent sets
Shader objects are by definition I think independents.

But implementation like Anv would like to optimize dynamic descriptors
if possible. It's possible if the sets are not independent.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
(cherry picked from commit 104206fb0f)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39003>
2025-12-16 12:20:32 -08:00
Caio Oliveira
837aa643cf nir/gcm: Consider dead code elimination done by GCM as progress
This will also fix NIR_DEBUG=extended_validation complaining about
invalid loop analysis.  GCM will invalidate loop analysis if progress
was made, and depending on the removed instruction it will affect the
instr_cost.

Cc: mesa-stable
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
(cherry picked from commit a4e84c9244)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39003>
2025-12-16 09:51:58 -08:00
Erik Faye-Lund
7e327e5e31 panfrost: do not over-estimate memory needed for dummy-rt
This matches better what we do in pan_emit_fbd, where we don't increase
the cbuf_offset variable for unused render-targets. This way we simply
make sure we *at least* can fit a dummy-RT (as per the HW spec), but
since we don't write to it we also don't need to give it dedicated
memory beyond that.

This also seemingly fixes a subtle bug where we don't deal with PLS if
there's no active render-targets.

Fixes: 9ec6197a0b ("panfrost: allocate tile-buffer for dummy render-targets")
Fixes: c15a43cce0 ("pan/lib: prepare for pixel local storage support")
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
(cherry picked from commit 762fe6e9dc)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39003>
2025-12-16 09:51:57 -08:00
Boris Brezillon
8f15e54119 panvk: Free the decode context in the create_device() error path
If we don't do that and something fails in the middle, we leak
the decode context.

Fixes: d155d6b7a3 ("panvk: Add a decode context at the panvk_device level")
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
(cherry picked from commit 55481b6f10)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39003>
2025-12-16 09:51:56 -08:00
Boris Brezillon
33f50d918f panvk: Don't leak shader binaries when loaded from the cache
own_bin needs to be set to true if we want the bin_ptr to be freed.

Fixes: 3d2cc01f8a ("panvk: Add create_shader_from_binary")
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
(cherry picked from commit d9fa4d5cbb)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39003>
2025-12-16 09:49:58 -08:00
Boris Brezillon
44c67805d1 pan/bi: Fix leak in bi_iterator_schedule()
s/util_dynarray_clear/util_dynarray_fini/ to fix the leak.

Fixes: 7dc4f28507 ("pan/bi: schedule simple iterators to avoid extra move")
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
(cherry picked from commit b66861a5f0)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39003>
2025-12-16 09:49:57 -08:00
Boris Brezillon
58226fb70c panvk: Fix a memory leak in the descriptor set logic
The desc_heap field is unconditionally initialized, so we need to
call util_vma_heap_finish() on it.

Fixes: ec02137c86 ("panvk: Support DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT")
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
(cherry picked from commit 29d173060e)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39003>
2025-12-16 09:49:57 -08:00
Kenneth Graunke
4a15deeda6 nir: Fix mod analysis of ishl to shift the recursive result
When considering ((x << y) % divisor), we recursed to calculate
mod = (x % (divisor << y)) but incorrectly returned mod directly,
rather than the correct value, (mod << y).

(Note that we require divisor to be a power-of-two.)

As an example of this going wrong, (x << 1) % 4 was returning (x % 2)
which is 0 or 1, but x << 1 is 2x, which is always an even number so
the result mod 4 can only be 0 or 2.

Unit test suggested by Caio Oliveira during review.

Fixes: 2255375c4d ("nir: add nir_mod_analysis & its tests")
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
(cherry picked from commit 97857d3224)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39003>
2025-12-16 09:49:26 -08:00
Lionel Landwerlin
f873b7f6c9 anv: disable crast on SKL
SKL is failing the following tests (maybe more) :

dEQP-VK.rasterization.conservative.overestimate.samples_1.triangles.degenerate.0_00
dEQP-VK.rasterization.conservative.overestimate.samples_16.triangles.degenerate.max
dEQP-VK.rasterization.conservative.overestimate.samples_2.triangles.degenerate.max
dEQP-VK.rasterization.conservative.overestimate.samples_2.triangles.degenerate.min
dEQP-VK.rasterization.conservative.overestimate.samples_4.triangles.degenerate.0_00
dEQP-VK.rasterization.conservative.overestimate.samples_8.triangles.degenerate.max
dEQP-VK.rasterization.conservative.overestimate.samples_8.triangles.degenerate.min

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Cc: mesa-stable
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
(cherry picked from commit 94d2ec975d)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39003>
2025-12-16 09:49:26 -08:00
Dylan Baker
3093f7fc70 .pick_status.json: Update to 9c16bbd023
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39003>
2025-12-16 09:49:20 -08:00
Nanley Chery
7de72fc3a6 iris: Fix pipe control around fast-clears
Use the right pipe control helper function so that texture invalidates
occur after the end-of-pipe sync rather than during.

Fixes: 23658920d1 ("anv,iris: Skip tex invalidate for clear conversion")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/12550
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
(cherry picked from commit 18e67d853f)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39003>
2025-12-16 09:49:04 -08:00
Karmjit Mahil
d1dfae23c5 gallium: Fix gnu-empty-initalizer error
Addresses:
```
../src/gallium/auxiliary/hud/hud_context.c:498:42: error: use of GNU
empty initializer extension [-Werror,-Wgnu-empty-initializer]
   struct pipe_resource *releasebuf[3] = {};
                                         ^

../src/gallium/auxiliary/postprocess/pp_mlaa.c:76:42: error: use of GNU
empty initializer extension [-Werror,-Wgnu-empty-initializer]
   struct pipe_resource *releasebuf[2] = {};
                                         ^
```

Fixes: 51605bfac2 ("gallium: Make upload_cb0 return a releasebuf")
Signed-off-by: Karmjit Mahil <karmjit.mahil@igalia.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
(cherry picked from commit cfd10a729d)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39003>
2025-12-16 09:49:04 -08:00
Mary Guillemard
9ce7afc1ac nvk: Use rendering state attachment count when setting SET_CT_SELECT
In case vk_color_attachment_location_state is in its default state, we
would end up with an identity mapping for color_map resulting in 8 RTs
being selected instead of what is really required.

This now use the rendering state attachment count to properly emit
SET_CT_SELECT.

Found while debugging MRT on
"dEQP-VK.shader_object.rendering.color_attachment_count_1.extra_attachment_after_1.none.none.same_color_formats.after.none.r16g16_sint_d32_sfloat_s8_uint"
and while comparing with the proprietary driver.

Signed-off-by: Mary Guillemard <mary@mary.zone>
Fixes: 84de6c12b2 ("nvk: Emit SET_CT_SELECT based on the dynamic color location map")
Reviewed-by: Mel Henning <mhenning@darkrefraction.com>
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
(cherry picked from commit 86d190e158)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39003>
2025-12-16 09:49:04 -08:00
Nanley Chery
0823d1b35c intel/isl: Only assert surface addresses on gfx9+
Restrict the surface address assertions to platforms with soft-pin. We
technically could check for (gfx8+ && !CHV), but we choose to use the
simpler condition instead.

Fixes: 8e96b516ca ("intel/isl: Assert alignments of surface addresses")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/11331
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
(cherry picked from commit d2f336c108)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39003>
2025-12-16 09:49:04 -08:00
LingMan
f84713e2cd rust: build ucd-trie dependency with the correct edition
Although a crate may happen to be compatible with multiple editions, building with the wrong
edition can - generally speaking - lead to subtle bugs.

There are no known failures in this case, but better to match the official Cargo.toml anyway.

Fixes: e28ff81869 ("meson: Add pest rust dependencies")
Reviewed-by: Christian Gmeiner <cgmeiner@igalia.com>
(cherry picked from commit 2044cf885b)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39003>
2025-12-16 09:49:04 -08:00
LingMan
c063c0b616 rust: build paste dependency with the correct edition
Although a crate may happen to be compatible with multiple editions, building with the wrong
edition can - generally speaking - lead to subtle bugs.

There are no known failures in this case, but better to match the official Cargo.toml anyway.

Fixes: dde95fc039 ("meson,ci: Add the paste crate")
Reviewed-by: Christian Gmeiner <cgmeiner@igalia.com>
(cherry picked from commit f95a5d5df8)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39003>
2025-12-16 09:49:04 -08:00
LingMan
5a991ee2a5 rust: build equivalent dependency with the correct edition
Although a crate may happen to be compatible with multiple editions, building with the wrong
edition can - generally speaking - lead to subtle bugs.

There are no known failures in this case, but better to match the official Cargo.toml anyway.

Fixes: 9e3e12e6a9 ("meson: Add indexmap rust dependencies")
Reviewed-by: Christian Gmeiner <cgmeiner@igalia.com>
(cherry picked from commit d757018e77)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39003>
2025-12-16 09:49:04 -08:00
Dylan Baker
7cd32d5ad7 .pick_status.json: Update to 518705a4fe
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39003>
2025-12-16 09:49:04 -08:00
Rhys Perry
8c4c1ebc49 ac/nir: fix check for increasing size of non-descriptor loads
In the previous version, "end" could have been zero, which would have
allowed an increase of "mul" bytes, when it should not not be increased at all.

For example:
- align_offset=4
- mul=4
- unaligned_new_size=96
- aligned_new_size=128
This would have loaded a dword which was not loaded previously.

fossil-db (gfx1201):
Totals from 115 (0.14% of 79839) affected shaders:
Instrs: 286697 -> 287097 (+0.14%); split: -0.16%, +0.30%
CodeSize: 1477728 -> 1481256 (+0.24%); split: -0.13%, +0.37%
SpillSGPRs: 1662 -> 1658 (-0.24%); split: -0.42%, +0.18%
Latency: 2288612 -> 2290248 (+0.07%); split: -0.04%, +0.11%
InvThroughput: 467307 -> 467602 (+0.06%); split: -0.03%, +0.10%
VClause: 3689 -> 3691 (+0.05%)
SClause: 5052 -> 5064 (+0.24%); split: -0.20%, +0.44%
Copies: 34837 -> 35103 (+0.76%); split: -0.80%, +1.56%
Branches: 7402 -> 7401 (-0.01%)
PreSGPRs: 9147 -> 9143 (-0.04%); split: -0.44%, +0.39%
VALU: 159333 -> 159372 (+0.02%); split: -0.01%, +0.04%
SALU: 52047 -> 52276 (+0.44%); split: -0.55%, +0.99%
SMEM: 9556 -> 9697 (+1.48%)

fossil-db (navi31):
Totals from 238 (0.30% of 79825) affected shaders:
Instrs: 484480 -> 485105 (+0.13%); split: -0.05%, +0.17%
CodeSize: 2514012 -> 2517928 (+0.16%); split: -0.06%, +0.22%
SpillSGPRs: 1064 -> 1059 (-0.47%)
Latency: 3941121 -> 3944670 (+0.09%); split: -0.04%, +0.13%
InvThroughput: 897483 -> 898090 (+0.07%); split: -0.04%, +0.11%
VClause: 7101 -> 7098 (-0.04%)
SClause: 9036 -> 9052 (+0.18%); split: -0.44%, +0.62%
Copies: 42790 -> 43096 (+0.72%); split: -0.30%, +1.01%
PreSGPRs: 14357 -> 14342 (-0.10%); split: -0.37%, +0.26%
VALU: 298325 -> 298347 (+0.01%); split: -0.01%, +0.02%
SALU: 57288 -> 57577 (+0.50%); split: -0.20%, +0.70%
SMEM: 18768 -> 18967 (+1.06%); split: -0.01%, +1.07%

fossil-db (navi21):
Totals from 239 (0.30% of 79825) affected shaders:
Instrs: 444783 -> 445177 (+0.09%); split: -0.07%, +0.15%
CodeSize: 2371776 -> 2373136 (+0.06%); split: -0.13%, +0.19%
Latency: 4226478 -> 4219221 (-0.17%); split: -0.24%, +0.07%
InvThroughput: 1430962 -> 1428445 (-0.18%); split: -0.23%, +0.06%
SClause: 9357 -> 9398 (+0.44%); split: -0.20%, +0.64%
Copies: 42742 -> 42927 (+0.43%); split: -0.53%, +0.96%
Branches: 12975 -> 12970 (-0.04%); split: -0.05%, +0.02%
PreSGPRs: 14368 -> 14312 (-0.39%); split: -0.47%, +0.08%
VALU: 306642 -> 306720 (+0.03%); split: -0.02%, +0.05%
SALU: 63702 -> 63790 (+0.14%); split: -0.31%, +0.45%
SMEM: 20030 -> 20231 (+1.00%); split: -0.00%, +1.01%

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/14458
Backport-to: 25.3
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
(cherry picked from commit b5cf3b1628)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39003>
2025-12-15 11:23:34 -08:00
Rhys Perry
35e34299ff ac/nir: fix calculation of aligned_new_size
This should consider nir_round_up_components().

fossil-db (gfx1201):
Totals from 90 (0.11% of 79839) affected shaders:
MaxWaves: 1829 -> 1901 (+3.94%)
Instrs: 410780 -> 411825 (+0.25%); split: -0.02%, +0.27%
CodeSize: 2227956 -> 2234464 (+0.29%); split: -0.02%, +0.31%
VGPRs: 6952 -> 6760 (-2.76%); split: -3.11%, +0.35%
Latency: 3071765 -> 3073960 (+0.07%); split: -0.00%, +0.07%
InvThroughput: 766201 -> 767322 (+0.15%); split: -0.00%, +0.15%
VClause: 7887 -> 7898 (+0.14%); split: -0.08%, +0.22%
Copies: 48189 -> 48324 (+0.28%); split: -0.05%, +0.33%
PreVGPRs: 6605 -> 6595 (-0.15%); split: -0.18%, +0.03%
VALU: 237272 -> 238147 (+0.37%); split: -0.01%, +0.37%
SALU: 48987 -> 49003 (+0.03%)
VMEM: 15542 -> 15560 (+0.12%)
VOPD: 188 -> 200 (+6.38%)

fossil-db (navi31):
Totals from 89 (0.11% of 79825) affected shaders:
MaxWaves: 1811 -> 1883 (+3.98%)
Instrs: 403695 -> 404691 (+0.25%); split: -0.01%, +0.26%
CodeSize: 2150612 -> 2154860 (+0.20%); split: -0.03%, +0.23%
VGPRs: 6892 -> 6676 (-3.13%)
Latency: 3306107 -> 3310010 (+0.12%); split: -0.01%, +0.13%
InvThroughput: 813092 -> 814382 (+0.16%); split: -0.00%, +0.16%
VClause: 7999 -> 8010 (+0.14%); split: -0.06%, +0.20%
Copies: 50089 -> 50210 (+0.24%); split: -0.05%, +0.29%
PreVGPRs: 6596 -> 6586 (-0.15%); split: -0.18%, +0.03%
VALU: 239617 -> 240392 (+0.32%); split: -0.01%, +0.33%
SALU: 45349 -> 45363 (+0.03%)
VMEM: 15762 -> 15780 (+0.11%)
VOPD: 258 -> 262 (+1.55%)

fossil-db (navi21):
Totals from 89 (0.11% of 79825) affected shaders:
Instrs: 345634 -> 346426 (+0.23%); split: -0.00%, +0.23%
CodeSize: 1895616 -> 1900156 (+0.24%); split: -0.00%, +0.24%
Latency: 3043334 -> 3046859 (+0.12%); split: -0.01%, +0.13%
InvThroughput: 928236 -> 929626 (+0.15%); split: -0.01%, +0.16%
VClause: 7894 -> 7905 (+0.14%); split: -0.06%, +0.20%
Copies: 48694 -> 48785 (+0.19%); split: -0.03%, +0.22%
PreVGPRs: 6580 -> 6570 (-0.15%); split: -0.18%, +0.03%
VALU: 228323 -> 229072 (+0.33%); split: -0.01%, +0.33%
SALU: 47202 -> 47216 (+0.03%)
VMEM: 16546 -> 16564 (+0.11%)

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Gitlab: https://gitlab.freedesktop.org/mesa/mesa/-/issues/14458
Backport-to: 25.3
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
(cherry picked from commit 49d923078f)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39003>
2025-12-15 11:23:34 -08:00
Hyunjun Ko
7ee41d2337 anv/video: fix VP9 chroma subsampling format detection
Fixes: 314de7af ("anv: Initial support for VP9 decoding")
Signed-off-by: Hyunjun Ko <zzoon@igalia.com>
(cherry picked from commit 2fe09217a1)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39003>
2025-12-15 11:23:34 -08:00
Qiang Yu
36f02f4d26 ac/llvm: workaround legacy fma intrinsic crash on gfx12
This is a llvm bug:
  https://github.com/llvm/llvm-project/issues/170437

Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/14359
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
(cherry picked from commit 3f37740762)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39003>
2025-12-15 11:23:34 -08:00
Rob Clark
3c817582b2 asahi: Set prefer_real_buffer_in_constbuf0
This avoids u_upload_data_ref() when cb0 is bound.  The u_upload_*_ref()
paths are still problematic to mix with uploaders that the front-end
uses with explicitly managed releasebufs, but this at least side-steps
the issue, and is a legit fix on it's own.

Cc: mesa-stable
Signed-off-by: Rob Clark <rob.clark@oss.qualcomm.com>
(cherry picked from commit cb9d9b8a6e)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39003>
2025-12-15 11:23:34 -08:00
Rob Clark
d4a14cba74 gallium: Make upload_cb0 return a releasebuf
pipe_upload_constant_buffer0() was immediately releasing the
u_upload_alloc() releasebuf.  But it is used in various call-
paths where the release needs to be deferred further.

Fixes crashes in firefox for any driver that uses the same
u_upload_mgr instance for pipe->const_uploader and
pipe->stream_uploader.

Fixes: b3133e250e ("gallium: add pipe_context::resource_release to eliminate buffer refcounting")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/14309
Signed-off-by: Rob Clark <rob.clark@oss.qualcomm.com>
(cherry picked from commit 51605bfac2)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39003>
2025-12-15 11:23:34 -08:00
Calder Young
b9be682a27 anv: Fix typo when checking if async rt scratch size changed
Current stack size is stored in layout.sw_stack_size, but the function
thats supposed to update it is comparing layout.total_size instead.

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
CC: mesa-stable
(cherry picked from commit 0b3f0d1662)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39003>
2025-12-15 11:23:34 -08:00
Connor Abbott
ca7b936f2c ir3: Fix condition for using uniform predicates
cat2_may_use_scalar_alu() was incorrect because the instruction could
use an indirectly-accessed const where a0.x (i.e. the offset) is
non-uniform. Fortunately, we already know whether this is the case,
because the original instruction would then write a non-shared GPR.
Also, the restrictions for scalar ALU are the same regardless of whether
we write up0.x or a shared GPR, and vice versa the restrictions for
normal cat2 are the same regardless of whether we write p0.x or a
non-shared GPR, so it should always be safe to write p0.x if non-shared
and up0.x if shared. So, just do that.

Fixes: 2a8c5ebc77 ("ir3: enable scalar predicates")
(cherry picked from commit da969df092)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39003>
2025-12-15 11:23:34 -08:00
Konstantin Seurer
1e56c29cc0 nir: Ignore ray query ranges that don't start with rq_initialize
Handles is a rare edge case where the ray query is used "before"
there is a rq_initialize.

cc: mesa-stable

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
(cherry picked from commit 034f58c7e3)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39003>
2025-12-15 11:23:34 -08:00
Hans-Kristian Arntzen
cf3635fa07 egl/x11: Fix memory leak when querying translated coord.
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
Cc: mesa-stable
(cherry picked from commit c00ae68585)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39003>
2025-12-15 11:23:34 -08:00
Samuel Pitoiset
a6f2db03cd radv: fix race condition when getting the blit queue
Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/14439
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
(cherry picked from commit a89118c5b0)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39003>
2025-12-15 11:23:34 -08:00
Samuel Pitoiset
cb7143572e radv: only include executable size when capturing shaders with RGP
This might help RGP to not try to disassemble past s_endpgm and crashes
on unknown instructions.

Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/14419
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
(cherry picked from commit 31a24caad9)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39003>
2025-12-15 11:23:34 -08:00
Valentine Burley
1de30ef284 panfrost/ci: Fix GitLab rules after YAML split
Add the new file so panfrost CI jobs are properly triggered.

Fixes: c793f612fc ("ci/panfrost: Split inherit definitions into -inc")
Signed-off-by: Valentine Burley <valentine.burley@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
(cherry picked from commit 040a24785e)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39003>
2025-12-15 11:23:34 -08:00
Connor Abbott
407e4978a7 tu: Fill render pass state when resuming
We forgot to call tu_fill_render_pass_state when resuming because it was
mixed in with emitting commands for the start of the subpass. Fix that
by pulling it out. This adds some duplication, but I think it's better
than mixing command emission and CPU-side state setup in the same
function.

Fixes: cb0f414b2a ("tu: Add support for suspending and resuming renderpasses")
(cherry picked from commit f734dff419)

Conflicts:
	src/freedreno/vulkan/tu_cmd_buffer.cc

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39003>
2025-12-15 11:23:34 -08:00
Lionel Landwerlin
77324494ce anv: fixup error path for shader allocation
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: d39e443ef8 ("anv: add infrastructure for common vk_pipeline")
Acked-by: Michael Cheng <michael.cheng@intel.com>
(cherry picked from commit 7cc9d8eec7)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39003>
2025-12-15 11:23:34 -08:00
Lionel Landwerlin
98293eb81e anv: add missing device_memory_report for shaders
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: d39e443ef8 ("anv: add infrastructure for common vk_pipeline")
Acked-by: Michael Cheng <michael.cheng@intel.com>
(cherry picked from commit 567c1b3af4)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39003>
2025-12-15 11:23:34 -08:00
Lionel Landwerlin
6686559724 anv: fix internal representations of shaders
The shader assembly was only available when not hitting the cache.

Additionally the serialized shader code was also the relocated variant
which meant that it could differ from one run to the next. Instead
serialize the unrelocated code produced by the compiler.

With this change we now decode the copy of the ISA we have on the
host.

NIR dumps are only available for shaders not loaded from the cache
(much like the other drivers).

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: 8f4c2bd566 ("anv: add runtime shader statistic support")
Acked-by: Michael Cheng <michael.cheng@intel.com>
(cherry picked from commit 37789249a1)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39003>
2025-12-15 11:23:34 -08:00
Nanley Chery
5a9c6de6d3 anv: Don't allow STORAGE + CCS for Y_TILED mod
This can happen as a result of us adding on CCS to modifiers which don't
support it on gfx9-11.

Fixes image corruption seen with the following test:

   $ mpv av://lavfi:testsrc --config=no --vo=gpu-next --scale=ewa_lanczossharp --fs

Fixes: 01c4ea771c ("anv: Enable storage accesses with modifiers on gfx12+")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/12910
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
(cherry picked from commit fe372f3b1b)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39003>
2025-12-15 11:23:34 -08:00
Dylan Baker
418e7cfad1 .pick_status.json: Update to b5cf3b1628
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39003>
2025-12-15 11:23:34 -08:00
Dylan Baker
ac0750d90c anv/video: Cast intentional read past end of struct member to void*
Coverity notices that we read past the end of the array we're pointing
to, which is intentional, we want to copy additional members from the
source struct into the target pointer. As such, cast to a `void *`,
since this will make Coverity happy.

CID: 1649589
Fixes: 314de7af06 ("anv: Initial support for VP9 decoding")
Reviewed-by: Hyunjun Ko <zzoon@igalia.com>
(cherry picked from commit 938fb7703e)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39003>
2025-12-15 11:23:34 -08:00
Georg Lehmann
e5bd122d7b nir/divergence_analysis: fix swizzle_amd without fetch inactive
Fixes: ad5be40303 ("nir: add fetch inactive index to quad_swizzle_amd/masked_swizzle_amd")
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
(cherry picked from commit 5f28bb72a7)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39003>
2025-12-15 11:23:34 -08:00
Georg Lehmann
5f2cb73ced nir/opt_uniform_subgroup: fix swizzle_amd without fetch_inactive
Fixes: ad5be40303 ("nir: add fetch inactive index to quad_swizzle_amd/masked_swizzle_amd")
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
(cherry picked from commit 1fc38d8539)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39003>
2025-12-15 11:23:34 -08:00
Georg Lehmann
3349c578ed nir/opt_uniform_subgroup: don't try to optimize non trivial clustered reduce
Fixes: 535caaf3e0 ("nir: Optimize uniform iadd, fadd, and ixor reduction operations")
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
(cherry picked from commit e11d7f06d0)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39003>
2025-12-15 11:23:34 -08:00
Dylan Baker
26d7753c99 anv/video: Read the right source for memcpy
I'm assuming this based off the `if` branch above, after reading the
code for bit that Coverity pointed out in that branch. It doesn't look
correct to start at the base pointer, which will be 0 initialized and
has 52 bits of zero padding, while the default values are 255.

Fixes: 314de7af06 ("anv: Initial support for VP9 decoding")
Reviewed-by: Hyunjun Ko <zzoon@igalia.com>
(cherry picked from commit 0735551b08)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39003>
2025-12-15 11:23:34 -08:00
Dylan Baker
de96d98ae3 .pick_status.json: Update to 095c2acf01
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39003>
2025-12-15 11:23:34 -08:00
Benjamin Cheng
5fcc06830d radv/video: Always end ref pic modification list
The app-provided arrays should always end with IDC_END, but when
overriding we need to end the list with IDC_END as well.

Fixes: 2e21eec921 ("radv/video: Fix num_ref_idx_l{0,1} related overrides")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/14436
Reviewed-by: David Rosca <david.rosca@amd.com>
(cherry picked from commit 72b43c0595)

Conflicts:
	src/amd/vulkan/radv_video_enc.c

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39003>
2025-12-15 11:23:34 -08:00
Erik Faye-Lund
d11eefc3ed docs/panfrost: remove some stray newlines
These were accidental when I split up the large article in to multiple
documents. Let's fix that up, so we don't end up repeating this for
future documents.

Fixes: 8248cc0bf4 ("docs/panfrost: move details to separate articles")
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
(cherry picked from commit 7b61b2eb61)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39003>
2025-12-15 11:23:34 -08:00
Calder Young
7264f03e23 anv: Fix misplaced assertion in anv_scratch_pool_alloc
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com>
Fixes: ee42a489 ("anv: Fix scratch pool buffer allocation sizes")
(cherry picked from commit 2fbc722dcf)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39003>
2025-12-15 11:23:34 -08:00
Rob Clark
66d590cf24 freedreno/decode: Add extra indent levels
Now we start hitting an extra indent level.

Fixes: d7db333b0e ("freedreno/decode: Add gen8 support")
Signed-off-by: Rob Clark <rob.clark@oss.qualcomm.com>
(cherry picked from commit ccdd5eb49d)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39003>
2025-12-15 11:23:34 -08:00
Connor Abbott
345811c1b3 tu: Fix FragCoord offset when HW viewport offset is enabled
FragCoord seems to have the offset applied to it, so we don't need to
subtract it out. Fixes upcoming test
dEQP-VK.renderpasses.dynamic_rendering.primary_cmd_buff.custom_resolve.monolithic.fdm_nonsubsampled_multiview_with_offset.

Fixes: b34b089ca1 ("tu: Use GRAS bin offset registers")
(cherry picked from commit cd1e784148)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39003>
2025-12-15 11:23:34 -08:00
Connor Abbott
d0aed5d4b8 tu: Fix GRAS_BIN_FOVEAT* programming with more than 1 layer
Similar to when patching load/store coordinates, we have to convert the
layer to the view, splatting view 0 to all layers when there is more
than 1 layer and FDM-per-layer is not enabled.

Fixes upcoming new test
dEQP-VK.renderpasses.*.custom_resolve.*.fdm_nonsubsampled_multilayer_with_offset.

Fixes: b34b089ca1 ("tu: Use GRAS bin offset registers")
(cherry picked from commit b2c685af42)

Conflicts:
	src/freedreno/vulkan/tu_cmd_buffer.cc

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39003>
2025-12-15 11:23:34 -08:00
Calder Young
34cda6974b anv: Fix scratch pool buffer allocation sizes
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
CC: mesa-stable
(cherry picked from commit ee42a48984)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39003>
2025-12-15 11:23:34 -08:00
Ashley Smith
3a0683435e panfrost,panvk: Enable shader_realtime_clock on panthor 1.6
shader_realtime_clock requires a newer kernel version in order to enable
GLB_COUNTER_EN this change adds a check on this kernel functionality.

Remove GL_EXT_shader_realtime_clock from extensions as this now depends
on kernel version.

Fixes: e9c2c324 ("panvk: enable VK_KHR_shader_clock")
Signed-off-by: Ashley Smith <ashley.smith@collabora.com>
Reviewed-by: Daniel Stone <daniels@collabora.com>
(cherry picked from commit 5681fabdc2)

Conflicts:
	src/panfrost/ci/panfrost-g610-gles2-extensions.txt

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39003>
2025-12-15 11:23:34 -08:00
Dylan Baker
c49e76b529 .pick_status.json: Update to 72b43c0595
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39003>
2025-12-15 11:23:34 -08:00
Natalie Vock
e619c5fdc7 radv: Move VMID reservation to vkCreateDevice
DXVK's DXGI implementation can create extra instances used for
enumerating physical devices besides the games' instance. When reserving
VMIDs for SPM, the DXGI instances may snatch the VMID reservation early,
making VMID reservation for the instance that actually needs it fail.
This starts being a problem on kernels 6.18+ where only one user may
reserve a VMID at a time.

Move reserving VMIDs to SQTT initialization inside vkCreateDevice so
that only the instances that actually create logical devices try
reserving VMIDs.

Cc: mesa-stable
(cherry picked from commit a7a4abc8d8)

Conflicts:
	src/amd/vulkan/radv_physical_device.c
	src/amd/vulkan/winsys/amdgpu/radv_amdgpu_winsys.c

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39003>
2025-12-15 11:23:34 -08:00
Janne Grunau
cd707cc449 util/driconf/asahi: Override GL renderer for web browsers
Several web sites block clients with "Apple" in the WebGL renderer
string if the reported OS is not one of Apple's.
This check seems to implemented via a 3rd party product which is slowly
rolled out over more web sites. Instead of playing whack-a-mole with
web sites in multiple browsers override the OpenGL renderer in mesa for
known browsers.

Backport-to: 25.3
Signed-off-by: Janne Grunau <j@jannau.net>
(cherry picked from commit f912db3f8d)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39003>
2025-12-08 09:25:38 -08:00
Patrick Lerda
43f7efc999 r600: improve cayman scissor 1x1 workaround
This change improves evergreen_apply_scissor_bug_workaround().
It provides a fully functional workaround for cayman.

Note: this was the last functionality which was working
properly on evergreen but not on cayman.

Here are the tests fixed:
spec/arb_framebuffer_no_attachments/arb_framebuffer_no_attachments-atomic/glscissor: fail pass
spec/arb_framebuffer_no_attachments/arb_framebuffer_no_attachments-query/glscissor: fail pass
deqp-gles31/functional/fbo/no_attachments/interaction/1x1ms0_default_2048x2048ms4: fail pass
deqp-gles31/functional/fbo/no_attachments/npot_size/1x1: fail pass

Fixes: 87a5b07f90 ("gallium/radeon: add R600/Evergreen/Cayman support to common viewport code")
Signed-off-by: Patrick Lerda <patrick9876@free.fr>
(cherry picked from commit 6246b7be10)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39003>
2025-12-08 09:25:37 -08:00
Dave Airlie
b2e6480488 nak/cmat: free the type mapping hash table.
Just noticed this on review.

Cc: mesa-stable
Reviewed-by: Karol Herbst <kherbst@redhat.com>
(cherry picked from commit 96662cd459)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39003>
2025-12-08 09:25:37 -08:00
Faith Ekstrand
af123810f7 pan/bi: Handle small vectors in bi_src_index()
bit_size <= 32 does not actually guarantee a single component, which
nir_src_as_uint() requires.  We could just check num_components == 1 but
it's easy enough to support any vector that fits in 32 bits.

Cc: mesa-stable
Reviewed-by: Romaric Jodin <rjodin@google.com>
(cherry picked from commit d3a890a58e)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39003>
2025-12-08 09:25:36 -08:00
Utku Iseri
f9b14ec2d1 panfrost: add earlyzs FPK condition for v6-
While v7+ checks this on HW, older architectures depend on SW to do it.

Fixes: c43882ad54 ("panfrost: Allow pixels using discard to be killed")
Reviewed-by: Lars-Ivar Hesselberg Simonsen <lars-ivar.simonsen@arm.com>
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
(cherry picked from commit 5c63446b94)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39003>
2025-12-08 09:25:36 -08:00
Yiwei Zhang
d929c83df9 pan: fix pan_blend_reads_dest to consider special min/max funcs
The min/max funcs are designed to operate solely on the source and
destination colors directly, without any scaling or multiplication by a
factor.

Test: dEQP-GLES3.functional.fragment_ops.blend.* pass with enabled FPK

Cc: mesa-stable
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
(cherry picked from commit d5bf0b0df7)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39003>
2025-12-08 09:25:35 -08:00
Dylan Baker
e2731438f5 .pick_status.json: Update to f912db3f8d
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39003>
2025-12-08 09:25:32 -08:00
Eric R. Smith
a88c776da0 panfrost: do not allow skipping of fragment shader when alpha-to-coverage
When alpha to coverage is enabled we cannot allow the fragment shader to
be skipped, because the calculated alpha result is essentially a side
effect (it can cause some samples to be discarded).

This brings the OpenGL driver in line with panvk, which already has this
check in its version of fs_required().

Signed-off-by: Eric R. Smith <eric.smith@collabora.com>
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>

Cc: mesa-stable
(cherry picked from commit 3ce6bcb9e8)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39003>
2025-12-05 08:11:47 -08:00
Aitor Camacho
dcd2327de2 wsi/metal: Fix blit_imate_to_image's pool selection for cmd buffer alloc
Fixes: 39a7d65113 ("wsi/metal: Backend addition for drivers built on top of Metal")

Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Signed-off-by: Aitor Camacho <aitor@lunarg.com>
(cherry picked from commit 273f668520)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39003>
2025-12-05 08:11:47 -08:00
Aitor Camacho
419223b5fc wsi/metal: Fix command buffer release at destroy
Fixes: 39a7d65113 ("wsi/metal: Backend addition for drivers built on top of Metal")

Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Signed-off-by: Aitor Camacho <aitor@lunarg.com>
(cherry picked from commit a547c6306a)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39003>
2025-12-05 08:11:47 -08:00
Dylan Baker
3398b3afdf .pick_status.json: Update to 0104b3df41
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39003>
2025-12-05 08:11:47 -08:00
Benjamin Cheng
6e32611260 radv/video: Fix force_integer_mv=1 on intra frame
According to AV1 spec, force_integer_mv=1 on intra frames. However, VCN
FW does not expect integer mv to be set unless screen content tools are
enabled. This also aligns the code to the radeonsi logic.

(cherry-picked from commit fa1fd2413f)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39003>
2025-12-04 21:14:22 +00:00
Anna Maniscalco
f8714ad190 radv: recalculate legacy_gs_info on bind
Previously legacy_gs_info calculated based on
gs_info->legacy_gs_info.esgs_itemsize which is calculated based on gs
input varyings.

However, when using ESO vs/tes can have outputs not read by gs, which
leads to underestimating LDS usage.

Cc: mesa-stable
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39003>
2025-12-04 20:41:10 +00:00
Samuel Pitoiset
3e098dc352 radv: reduce maxTexelBufferElements to 1<<29
It's the number of elements. RADV exposes VK_FORMAT_R64_{UINT,SINT}
formats for texel buffers, so the maximum is 1<<29 to fit in the
32-bit bounds checking.

Fixes KHR-GL46.texture_buffer_size_clamping.* with Zink and new VKCTS
dEQP-VK.texture.misc.max_elements.*.

Cc: mesa-stable.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39003>
2025-12-04 20:41:10 +00:00
Samuel Pitoiset
e4049a3a07 radv: add radv_hide_rebar_on_dgpu and enable for Red Dead Redemption 2
RDR2 VRAM memory management when resizable BAR is enabled seems
incorrect because it keeps allocating VRAM without freeing anything.

This introduces a drirc option to emulate a fake carveout of 256MiB to
workaround this game bug. This also adjust memory budgets by
distributing it between visible and invisible because AMDGPU reports
the same value for both when REBAR is enabled.

Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/12091
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39003>
2025-12-04 20:41:10 +00:00
Faith Ekstrand
9ebced37e3 pan/bi: Fix LD_VAR_BUF indirect offset calculations
We multiply by 16 correctly but then drop that in the case where vbase
is non-zero.  We typically lower FS input indirects so we don't see this
often but there are a few cases where they still sneak through.

Fixes: 0fcddd4d2c ("pan/bi: Rework varying linking on Valhall")
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
(cherry picked from commit 83f90b0760)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39003>
2025-12-04 09:17:04 -08:00
Karol Herbst
cda749bd89 nir: add ACCESS to shared_uniform_block_intel
intel_nir_blockify_uniform_loads simply overwrites the intrinsic for
load_shared, which leads to messed up indicies, e.g:
  "base=0, access=volatile, align_mul=4, align_offset=0
became:
  "base=0, align_mul=4, align_offset=4"

Fixes: 0dd09a292b ("nir: add ACCESS_ATOMIC")
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
(cherry picked from commit a255e2ca56)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39003>
2025-12-04 09:15:34 -08:00
Timothy Arceri
37ae6d445a util/driconf: add Cursemark workaround
Fixes gpu hang on radeonsi and corrupt rendering on iris.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/14392
Cc: mesa-stable

Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
(cherry picked from commit b75cd07265)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39003>
2025-12-04 09:15:33 -08:00
Gurchetan Singh
6507723c18 gfxstream: fix logspam in TLS helper function
Logspam has been reported in a gfxstream initialization
path.

Fixes: 4a30c6fd70 ("gfxstream: Use the Mesa common tss_* TLS helper functions")
Cc: mesa-stable

Reviewed-by: David Gilhooley <djgilhooley.gmail.com>
(cherry picked from commit 4f45e834ae)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39003>
2025-12-04 09:15:31 -08:00
Dylan Baker
54387f7c7a .pick_status.json: Update to b13003133d
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39003>
2025-12-04 09:15:25 -08:00
Dylan Baker
44f723c6fb .pick_status.json: Mark 829bd406c0 as backported
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39003>
2025-12-03 22:29:45 -08:00
Dylan Baker
4d4a1b63e7 .pick_status.json: Update to b75cd07265
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39003>
2025-12-03 22:29:42 -08:00
Dylan Baker
837dfb8d62 docs: Add checksums for 25.3.1
Some checks failed
macOS-CI / macOS-CI (dri) (push) Has been cancelled
macOS-CI / macOS-CI (xlib) (push) Has been cancelled
2025-12-03 22:29:04 -08:00
Dylan Baker
5005a50879 VERSION: bump for 25.3.1
Signed-off-by: Dylan Baker <dylan.c.baker@intel.com>
2025-12-03 22:02:48 -08:00
Dylan Baker
c030e5312e docs: add release notes for 25.3.1 2025-12-03 22:02:09 -08:00
Yiwei Zhang
68d31c28d4 venus: fix racy semaphore feedback counter update
Previously, we update the sfb dst slot upon vn_SignalSemaphore so that
vn_GetSemaphoreCounterValue can poll just the feedback slot itself.
However, that can race with pending sfb cmds that are going to update
the slot value, ending up with stuck sync progression.

This change fixes it by disallowing vn_SignalSemaphore to touch the sfb
dst slot. To ensure counter query being monotonic, vn_GetSemaphoreCounterValue
now takes the greater of signaled counter and the sfb counter read.

Test with dEQP-VK.synchronization* group:
- w/o this: stuck shows up within 2 min with 8 parallel deqp runs
- with this: no stuck for multiple full runs of the same

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/14304
Fixes: 5c7e60362c ("venus: enable timeline semaphore feedback")
(cherry picked from commit 829bd406c0)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-12-03 15:02:48 -08:00
Sushma Venkatesh Reddy
e6a8e1321b drirc: Add anv_assume_full_subgroups for Detroit: Become Human
Add workaround to assume full 32-thread subgroups. This fixes rendering
corruption when running the Detriot: Become Human game using anv driver.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/14120

Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
(cherry picked from commit 36d7cd0514)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-12-03 22:24:03 +00:00
Dylan Baker
9685a1fbf0 docs/relnotes/25.3.0: Escape some rst language constructs
That are from the gitlog, which we don't currently escape.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-12-03 12:31:36 -08:00
Icenowy Zheng
0cfce3ffda pvr: enable samplerMirrorClampToEdge feature
This is forgotten when advertising the corresponding extension, which
leads to inconsistency, thus fail of
dEQP-VK.api.info.vulkan1p2.feature_extensions_consistency CTS testcase.

Enable the corresponding feature too. I ran all CTS tests with
"mirror_clamp_to_edge" in name, which are all skipped with NotSupported
before (because of the feature being not advertised), and gain
3695/11140 Pass with the remaining ones still NotSupported (no Fail).

This also makes the feature extension consistency CTS testcase Pass too.

Fixes: 4d34c07b7a ("pvr: advertise VK_KHR_sampler_mirror_clamp_to_edge")
Signed-off-by: Icenowy Zheng <uwu@icenowy.me>
Reviewed-by: Frank Binns <frank.binns@imgtec.com>
(cherry picked from commit ab9e148bfb)

Conflicts:
	src/imagination/vulkan/pvr_physical_device.c
        (File has been renamed since branchpoint)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-12-03 11:23:49 -08:00
Lionel Landwerlin
de09b48697 anv: add 32-wide subgroup requirement heuristic
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/13052
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
Tested-by: Sushma Venkatesh Reddy <sushma.venkatesh.reddy@intel.com>
Cc: mesa-stable
(cherry picked from commit 296325b787)

Stable:
    - `nir_src_as_alu` is still alled `nir_src_as_alu_instr`

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-12-03 11:17:49 -08:00
Gil Pedersen
a1afc1076f intel: Add PIPE_FORMAT_R10G10B10X2_UNORM support
This utilizes the RGBX format faking logic from e8cd7a30 to enable
PIPE_FORMAT_R10G10B10X2_UNORM renderer support using swizzling.

This format is needed for better HDR rendering support in the iris driver, to
support the Proton / Wine DXGI implementation, which requires an RGBA ordered
renderer for its Vulkan implementation. This in turn requires the Wayland
display to support both alpha and opaque formats. The check currently fails,
since only PIPE_FORMAT_R10G10B10A2_UNORM is exposed when Gallium (iris) is
the DRI Wayland renderer.

Cc: mesa-stable
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
(cherry picked from commit 858364be71)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-12-03 08:40:31 -08:00
Aitor Camacho
d110b38d32 vulkan/wsi: Fix double destroy of present_id_timeline at swapchain create
Fixes: c888da3d48 ("vulkan/wsi: Add mechanism to wait for WSI semaphore unsignal.")

Reviewed-by: Hans-Kristian Arntzen <post@arntzen-software.no>
Signed-off-by: Aitor Camacho <aitor@lunarg.com>
(cherry picked from commit df19ec3020)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-12-03 08:40:30 -08:00
Ian Romanick
84caa703c9 lavapipe: fp16 flrp must also be lowered
Prevents failures with fp16 in lavapipe and Zink on lavapipe when
"nir/lower_flrp: Check and set shader_info::flrp_lowered" is
applied. Lowering with an incomplete mask on the first call to
nir_lower_flrp will prevent later calls (with the complete mask) from
doing anything.

Fixes: b38879f8c5 ("vallium: initial import of the vulkan frontend")
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
(cherry picked from commit 341e2d3283)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-12-03 08:40:27 -08:00
Dylan Baker
2213869af3 .pick_status.json: Update to ac37885fc8
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-12-03 08:40:24 -08:00
Lionel Landwerlin
48d55072b1 anv: fix broken ray tracing dynamic descriptors
We completely missed that handling.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: e76ed91d3f ("anv: switch over to runtime pipelines")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/14284
Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
(cherry picked from commit 0ca870c6f3)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-12-02 11:01:45 -08:00
Lionel Landwerlin
9586b50990 vulkan/runtime: track dynamic descriptor offsets for RT pipelines
Dynamic descriptors are mapped an array of offsets provided through
vkCmdBindDescriptorSets*() commands.

When pipelines are compiled with independent sets layouts, the
implementation might have to do additional runtime calculation to
figure out what offset in the contiguous array maps to what dynamic
descriptor in the pipeline layout.

For graphics pipelines you can always compute that information when
binding the shaders. There is always a limited amount of shaders (5
max).

For ray tracing pipelines, there could be lots of shaders to process
at every pipeline binding call. Besides there is no interface from the
runtime to the driver to list all the shaders used at the moment.

So do that tracking in the runtime and pass the information down to
the driver through the cmd_set_rt_state() vfunc.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: 69a04151db ("vulkan/runtime: add ray tracing pipeline support")
Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
(cherry picked from commit 5c53c6e693)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-12-02 11:01:45 -08:00
David Rosca
c24290a929 radv/video: Fix AV1 quantization map maxQIndexDelta value
Fixes: ae6ea69c85 ("radv: Implement VK_KHR_video_encode_quantization_map")
Reviewed-by: Benjamin Cheng <benjamin.cheng@amd.com>
(cherry picked from commit 2b2914d81f)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-12-02 11:00:27 -08:00
Tapani Pälli
1ee375555c anv: add vk_wsi_disable_unordered_submits and enable for GTK
See radv change 0d9d45db4e for further explanation.

Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/14354
Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
(cherry picked from commit b2b5e83894)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-12-02 11:00:27 -08:00
Gurchetan Singh
27a88241ba util: fix arithmetic on a pointer to void warning
Otherwise, the following error is observed:

src/util/cache_ops_x86_clflushopt.c:40:22:
   error: arithmetic on a pointer to void is a GNU extension [-Werror,-Wgnu-pointer-arith]
   40 |    void *end = start + size;
      |                ~~~~~ ^
src/util/cache_ops_x86_clflushopt.c:44:9:
  error: arithmetic on a pointer to void is a GNU extension [-Werror,-Wgnu-pointer-arith]
   44 |       p += cpu_caps->cacheline;
      |       ~ ^

This works with GNU extension enabled, but does lead to warnings
with Clang.

v2: Add to trial_c + trial_cpp checks (Erik)
v3: use c_msvc_compat_args to avoid fixing other instances of this issue (Erik)

Fixes: 555881e574 ("util/cache_ops: Add some cache flush helpers")
Reviewed-by: Yonggang Luo <luoyonggang@gmail.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Acked-by: Faith Ekstrand <faith.ekstrand@collabora.com>
(cherry picked from commit 14cfe14626)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-12-02 11:00:27 -08:00
Aitor Camacho
3e8ecfedd4 vulkan/cmd_queue: Use vk_strdup and free allocated string memory
Fixes: 9082715ab0 ("vk/cmd_queue: generate copies for string struct members")

Reviewed-by: Karmjit Mahil <karmjit.mahil@igalia.com>
Reviewed-by: Konstantin Seurer <konstantin.seurer@gmail.com>
Signed-off-by: Aitor Camacho <aitor@lunarg.com>
(cherry picked from commit 16c98f4f18)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-12-02 10:12:06 -08:00
Dylan Baker
610dbae397 .pick_status.json: Update to a71b4a4b95
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-12-02 10:11:59 -08:00
Qiang Yu
212f734e37 glsl: support barrier() for task and mesh shader
It was ignored when translating glsl to nir.

Fixes: d52452a486 ("glsl: allow barrier builtin functions for mesh shader")
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
(cherry picked from commit 2f6a034528)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-12-01 09:16:56 -08:00
Benjamin Cheng
de081cee46 radv/video: Override direct_spatial_mv_pred to 1
VCN always uses spatial direct mode.

Cc: mesa-stable
Reviewed-by: David Rosca <david.rosca@amd.com>
(cherry picked from commit 9e37969179)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-12-01 09:16:56 -08:00
Benjamin Cheng
e9956932bb radv/video: Fix H264/H265 reference selection
The order of pReferenceSlots is not well-defined by spec. Instead we
need to look at the RefPicList0/1 which provides slot indices.

Cc: mesa-stable
Reviewed-by: David Rosca <david.rosca@amd.com>
(cherry picked from commit ab56ce154b)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-12-01 09:16:55 -08:00
Benjamin Cheng
0997cc6707 radv/video: Fix num_ref_idx_l{0,1} related overrides
Since we only support 1 L0/L1 ref, the default num refs in the PPS
should always be 0. With that there never any need to set the override
flag in the slice header (until more references are supported).
Also the ref pic list modifications should be clamped to the size of the
ref pic list.

This fixes an issue seen with dEQP-VK.video.encode.h264.i_p_b_13_*.

Cc: mesa-stable
Reviewed-by: David Rosca <david.rosca@amd.com>
(cherry picked from commit 2e21eec921)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-12-01 09:16:54 -08:00
Calder Young
a977cd49d1 intel: Fix calculation of max_scratch_ids on fused devices
The subslice IDs provided by the SR0.0 EU register are not adjusted to account
for fusing, so the upper bound max_scratch_ids can vary from device to device
depending on what specific slices were fused during manufacturing.

Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Cc: mesa-stable
(cherry picked from commit c0d809820f)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-12-01 09:16:54 -08:00
Tapani Pälli
7b0ce4bde3 anv: add furmark workaround layer
Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/14274
Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
(cherry picked from commit ba89826b75)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-12-01 09:16:53 -08:00
Timothy Arceri
0e019bd754 util/driconf: Add linux version of Penumbra fixes
Cc: mesa-stable
(cherry picked from commit d10036362f)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-12-01 09:16:52 -08:00
Emma Anholt
5693ff3e2a tu: Fix leak of compute shader pipeline->base.executables_mem_ctx;
Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/14358
(cherry picked from commit 89da258e71)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-12-01 09:16:52 -08:00
Pierre-Eric Pelloux-Prayer
1430b06e9b mesa: fix function prototype
Replace void* by GLvoid* and add GLAPIENTRY to match the gl_API.xml
version.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/14164
Fixes: ae75b59cb5 ("glthread, tc: Fix buffer release with glthread and tc")
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
(cherry picked from commit 671e943c9b)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-12-01 09:16:51 -08:00
Calder Young
f21dca7139 anv: Fix ray query shadow stack buffer size
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com>
Cc: mesa-stable
(cherry picked from commit 09e8a54087)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-12-01 09:16:50 -08:00
Ian Romanick
11d5d20e8b brw: Force allow_spilling when spill_all is set
This ensures that g0 is reserved for spilling since there is going to be
spilling.

Fixes: 8bca7e520c ("intel/brw: Only force g0's liveness to be the whole program if spilling")
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
(cherry picked from commit 1fc2f52d36)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-12-01 09:16:49 -08:00
David Rosca
c205817236 radeonsi/vcn: Fix maybe uninitialized warning
Backport-to: 25.3
Reviewed-by: Benjamin Cheng <benjamin.cheng@amd.com>
(cherry picked from commit 1884b03a10)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-12-01 09:16:48 -08:00
Natalie Vock
681e8b7e84 radv/rt: Correctly copy culling flags when updating to separate AS
This was missing and led to the field being uninitialized.

Cc: mesa-stable
(cherry picked from commit b7f011e653)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-12-01 09:16:42 -08:00
Natalie Vock
8e9da72044 radv/rt: Keep updated nodes always active
In updateable AS, we keep all nodes active even if they're
degenerate/NaN, because too many games ignore API rules about not
making inactive nodes active (and some vendor tips outright advise this
behavior). We also need to match this by keeping everything active in
the update side. The ALWAYS_ACTIVE macro has been long removed and
replaced by VK_BVH_BUILD_FLAG, too. Since updating only happens to
updateable AS, don't even check for the flag, just implement the
always-active handling.

Cc: mesa-stable
(cherry picked from commit bc1eea90b9)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-12-01 09:16:41 -08:00
Lionel Landwerlin
142c392389 nir/lower_printf: fix missing singleton add
If we're using the singleton, we need to add to it.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Cc: mesa-stable
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
(cherry picked from commit 4b9aa9dc91)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-12-01 09:16:41 -08:00
Lionel Landwerlin
97d5911e00 nir/lower_printf: fix array alignment
The pointer arithmetic doesn't need a 4byte alignment, otherwise
everything is broken.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Cc: mesa-stable
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
(cherry picked from commit d24633023f)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-12-01 09:16:40 -08:00
Lionel Landwerlin
45bd0be006 spirv: fix printf generation
Not having the uses_printf will drop the printf info in serialization.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Cc: mesa-stable
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
(cherry picked from commit 67faf6dfbd)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-12-01 09:16:40 -08:00
Lionel Landwerlin
e1eaedbd99 nir: fix lower_printf with no arguments
SPIRV generated printf with no arguments have an undef source (not the
expected deref).

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Cc: mesa-stable
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
(cherry picked from commit 6940b8fcd7)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-12-01 09:16:39 -08:00
Valentine Burley
54277ca7e1 egl: Disable kopper on Android
Kopper is not supported on Android, and attempting to use it breaks zink
on the platform.

Disable kopper automatically when running on Android, fixing zink without
`LIBGL_KOPPER_DISABLE`.

Fixes: 3294cad341 ("egl: Rename dri2_detect_swrast() and also detect kopper")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/14331
Signed-off-by: Valentine Burley <valentine.burley@collabora.com>
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Reviewed-by: Antonio Ospite <antonio.ospite@collabora.com>
(cherry picked from commit 8a1ea724b4)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-12-01 09:16:38 -08:00
Samuel Pitoiset
93d5e37c5b radv: fix per-submit RGP captures on video queues
SQTT user data packets aren't supported either.

Cc: mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
(cherry picked from commit af461de026)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-12-01 09:16:38 -08:00
Faith Ekstrand
7882a413fb vulkan/drm-syncobj: Stop returning early waiting for sync files
In the WAIT_ALL case in spin_wait_for_sync_file(), we were returning the
moment we saw the first success.  However, this isn't a wait-all, it's a
bad wait-any.  We should instead just continue on to check the next sync
until we've ensured that every sync in the array has a sync file.  The
only reason this wasn't blowing up in our face is because it only
affects non-timeline drivers (pretty rare these days) and because most
of the places where we use WAIT_PENDING on non-timeline drivers is to
guard a sync file export and those typically have only a single sync in
the array.

Cc: mesa-stable
Reviewed-by: Gurchetan Singh <gurchetansingh@google.com>
Reviewed-by: Emma Anholt <emma@anholt.net>
(cherry picked from commit e4e619d685)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-12-01 09:16:37 -08:00
Tapani Pälli
e6c814c448 drirc: set intel_disable_threaded_context for Amnesia The Bunker
Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/14084
Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
(cherry picked from commit 21f646d196)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-12-01 09:16:37 -08:00
Tapani Pälli
1f1f0d5ad6 drirc/iris: add drirc to disable threaded context
Cc: mesa-stable
Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
(cherry picked from commit 4daabf76b4)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-12-01 09:16:36 -08:00
Rob Clark
bbbee1f85d freedreno: Fix internal VBO reference leak
It appears that this extra ref is no longer needed.  And not dropped
anywhere.

Fixes: b3133e250e ("gallium: add pipe_context::resource_release to eliminate buffer refcounting")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/14315
Signed-off-by: Rob Clark <rob.clark@oss.qualcomm.com>
(cherry picked from commit cccdbbc360)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-12-01 09:16:36 -08:00
Ian Forbes
e32d0815af svga: Check if Stencil buffer is NULL
Fixes a nullptr dereference on older HW versions.

Fixes: f29d939824 ("svga: rework framebuffer state")
Signed-off-by: Ian Forbes <ian.forbes@broadcom.com>
(cherry picked from commit 4e16a5b68b)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-12-01 09:16:35 -08:00
Patrick Lerda
6599a0ea57 r600: fix error filters compatibility
The shader-db functionality was interfering with the error
filters.

Two new options are added: R600_DEBUG=shaderdb and
R600_DEBUG=precompile. The option precompile is added
to maintain the compatibility with the shader-db repository.

This change fixes 22 of these tests:
deqp-gles31/functional/debug/error_filters/case_.*: warn pass
deqp-gles31/functional/debug/error_groups/case_.*: warn pass

Fixes: 28d6a5af25 ("r600: Add shader precompile and shader-db support.")
Signed-off-by: Patrick Lerda <patrick9876@free.fr>
(cherry picked from commit f005c0b5ad)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-12-01 09:16:34 -08:00
Hyunjun Ko
33abe4a45e vulkan/video: Fix H.265 long-term reference handling
Without these fixes, H.265 streams using long-term references would
fail to decode correctly as the decoder wouldn't distinguish between
short-term and long-term reference frames.

Fixes: 896f95a37e ("vulkan/video: fix h265 decoding with LT enabled.")

Signed-off-by: Hyunjun Ko <zzoon@igalia.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
(cherry picked from commit 01de6ac134)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-12-01 09:16:34 -08:00
Eric Engestrom
3cdda99e9a ci: use $CI_TRON_JOB_PRIORITY tag on all ci-tron jobs
Moving `ci-tron:priority:` out of the variable because an empty value
will not be authorized, and this makes it obvious if that bug ever
happens (job will not be picked up and gitlab will complain that
`ci-tron:priority:` is not a tag registered by any runner), instead of
getting picked up by any runner that will then reject (fail) the job.

(This is caused by GitLab's API not allowing tags to be enforced when
picking up jobs, resulting in jobs with missing tags being picked up by
any runner, like the bug we had with the generic fd.o runners a few
months ago.)

v2 (Martin Roukala):
 * use the priority tags in all amdgpu jobs
 * add missing tags in etnaviv jobs
 * add missing tags in broadcom jobs

Cc: mesa-stable
(cherry picked from commit 53fe1f39a0)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-12-01 09:16:33 -08:00
Lionel Landwerlin
c9a52df804 brw: compute final copy propagation resulting source
Fixes this test on Xe2+:

INTEL_DEBUG=no32 ./deqp-vk -n dEQP-VK.spirv_assembly.instruction.maint9_vectorization.bit_field_u_extract.result_v16i-base_v16i-offset_s64u-count_s16i

Generate invalid code for that platform:

and(16)         g37<1>UW        g65<16,4,4>UW   0x000fUW        { align1 1H I@5 };
	ERROR: Invalid register region for source 0.  See special restrictions section.

Several helpers like has_subdword_integer_region_restriction() do not
see the final type of the source, so compute it early.

Maybe new_src could be used in more cases. Being conservative for now.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Cc: mesa-stable
Reviewed-by: Francisco Jerez <currojerez@riseup.net>
(cherry picked from commit 8f9acc0150)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-12-01 09:16:33 -08:00
Dave Airlie
4988213fe6 dozen: return INCOMPATIBLE_DRIVER on instance create failure
When probing on generic Linux platforms, the loading of d3d12 and
the first init of could fail, but the error returned causes a
loader warning to be printed.

Use the correct error return to stop this.

Cc: mesa-stable
(cherry picked from commit c00b66fa71)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-12-01 09:16:32 -08:00
Eric Engestrom
0648e0a222 meson: auto-disable draw-use-llvm when llvm=disabled
The option's description is:
> Whether to use LLVM for the Gallium draw module, if LLVM is included.

Let's disable it right away if LLVM is disabled, to avoid some
configurations from failing.

Cc: mesa-stable
(cherry picked from commit 37c7d19e46)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-12-01 09:16:31 -08:00
Eric Engestrom
fb984d2845 meson: auto-disable amd-use-llvm when llvm=disabled
The option's description is:
> Whether to use LLVM for the AMD drivers, if LLVM is included.

Let's disable it right away if LLVM is disabled, to avoid configurations
like the one in the issue below from failing.

Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/14306
(cherry picked from commit 69bb927ebf)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-12-01 09:16:30 -08:00
Matt Turner
005d8a870c meson: Let -Ddraw-use-llvm=false work for R300 on non-x86
Prior to commit b8b38d38b1 ("meson: reinstate LLVM requirement for r300
and enforce it for i915 too") it was possible to build and use r300 for
architectures that do not have LLVM (e.g., alpha).

The only SWTCL chips are integrated graphics in x86 systems, and are not
available in discrete cards.

Fixes: b8b38d38b1 ("meson: reinstate LLVM requirement for r300 and enforce it for i915 too")
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
(cherry picked from commit 4235c39a9a)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-12-01 09:16:29 -08:00
Rob Clark
1e2bf818fa freedreno/a6xx: Fix UB in convert_color()
Swizzle can include PIPE_SWIZZLE_0/_1 (4 and 5) which result in indexing
beyond the channel array.

Reported-by: Danylo Piliaiev <dpiliaiev@igalia.com>
Fixes: 76e350671f ("freedreno/a6xx: Sysmem clear fixes")
Signed-off-by: Rob Clark <rob.clark@oss.qualcomm.com>
(cherry picked from commit f0465ced7f)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-12-01 09:16:29 -08:00
Dylan Baker
6cd6fc82ed .pick_status.json: Update to 076a383437
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-12-01 09:16:12 -08:00
Dylan Baker
1400d5477a .pick_status.json: Update to bcedc88f21
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-11-21 14:37:39 -08:00
Matt Turner
4eac81ed95 meson: Fix sysprof-capture-4 dependency
The versioning scheme changed in v45.0 (the previous version was
3.48.0). As such, this version check would wrongly accept e.g. 48.0.

Fixes: e9341568fa ("meson: require sysprof-capture-4 >= 4.49.0")
Reviewed-by: Christian Gmeiner <cgmeiner@igalia.com>
(cherry picked from commit ad14942300)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-11-21 14:22:58 -08:00
Yurii Kolesnykov
54828a0b15 loader: Wrap nouveau_zink_predicate with HAVE_LIBDRM
Signed-off-by: Yurii Kolesnykov <root@yurikoles.com>
Fixes: 265afd9bfd ("loader: Don't fall back to nouveau GL without zink")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/14290
Reviewed-by: Mel Henning <mhenning@darkrefraction.com>
(cherry picked from commit 4913177b14)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-11-21 14:22:57 -08:00
Pierre-Eric Pelloux-Prayer
3134ebd354 radeonsi/sqtt: clear out sqtt bo on resize
If the resizing fails, we shouldn't use the destroyed bo anymore.

Fixes: 5794a86f19 ("radeonsi/sqtt: support sqtt buffer auto-resizing")
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
(cherry picked from commit bac9d17ead)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-11-21 14:22:55 -08:00
Lionel Landwerlin
72c77df965 anv: Wa_18040903259 only applies to RCS when in GPGPU mode
Sadly this probably won't change anything in terms of perf as the CCS
engine has a bunch of other restrictions.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: 243c01c703 ("anv/iris: implement Wa_18040903259")
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com>
(cherry picked from commit 07b7de35cc)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-11-21 14:22:54 -08:00
Samuel Pitoiset
5885477397 radv: fix RB+ for depth-only with unused attachments
When there are no color outputs in the rendering state, but color write
enable/write aren't masked out (which seems legal with
VK_EXT_dynamic_rendering_unused_attachments), the driver must emit
CB_DISABLE to disable CB rendering completely.

Otherwise, if there is also a depth/stencil attachment in the rendering
state, CB0 is always set to 32_R for RB+. That means, the pixel shader
would still export fragments but to the previously bound color
attachment.

VKCTS is missing coverage.

Fixes: 4580293ab2 ("radv: implement RB+ depth-only rendering for better perf")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/14319
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
(cherry picked from commit 168a8d0b52)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-11-21 14:22:53 -08:00
Yonggang Luo
8069763b02 ci/microsoft: Downgrading WinFlexBison.win_flex_bison to version 2.5.24
This is achieved by provide version parameter to winget-cli

Fixes: 9592686ca0 ("ci/windows: Use winget to install packages and install Microsoft.WindowsWDK.10.0.26100")

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/13968

Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
(cherry picked from commit 84cce2a739)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-11-21 14:22:51 -08:00
Mel Henning
5b6d043852 zink: Lock around screen_debug_marker_{begin,end}
vkQueueBeginDebugUtilsLabelEXT and vkQueueEndDebugUtilsLabelEXT
require queue to be externally synchronized, which means these functions
require the lock. Unfortunately, there's no guarantee that the debug
markers will be matched in the multithreaded case, but I suppose this is
better than crashing.

Fixes: 015eda4a41 ("zink: deduplicate VkDevice and VkInstance")
Reviewed-by: Dave Airlie <airlied@redhat.com>
(cherry picked from commit 80db8171de)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-11-21 14:22:50 -08:00
Mel Henning
7c1705c148 zink: Lock queue_lock in zink_destroy_screen
Fixes: 015eda4a41 ("zink: deduplicate VkDevice and VkInstance")
Reviewed-by: Dave Airlie <airlied@redhat.com>
(cherry picked from commit 018178842e)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-11-21 14:22:50 -08:00
Mel Henning
3b6f03bd49 zink: Create one queue lock per device
We currently only create one queue per queue family on the device. The
device can be shared between multiple zink_screens, so having one lock
per screen can still lead to multiple locks per queue. Fix this by
allocating queue_lock along with the device.

This fixes an issue that was causing crashes with nvk+zink and
QtWebEngine with QTWEBENGINE_FORCE_USE_GBM=1 This can be reproduced by
resizing the window in either:

 * anki - https://apps.ankiweb.net/ or
 * Qt's simplebrowser example
   https://doc.qt.io/qt-6/qtwebengine-webenginewidgets-simplebrowser-example.html

which would then cause this dmesg error:

    nouveau 0000:01:00.0: anki[92007]: Failed to find syncobj (-> in): handle=40

along with a context loss.
With VK_LOADER_LAYERS_ENABLE=VK_LAYER_KHRONOS_validation we would additionally
get warnings like:

    Validation Error: [ UNASSIGNED-Threading-MultipleThreads-Write ] | MessageID = 0xa05b236e
    vkQueueSubmit(): THREADING ERROR : object of type VkQueue is simultaneously used in current thread 139824449189568 and thread 139823901816512
    Objects: 1
        [0] VkQueue 0x557a666783e0

Fixes: 015eda4a41 ("zink: deduplicate VkDevice and VkInstance")
Reviewed-by: Dave Airlie <airlied@redhat.com>
(cherry picked from commit 9acce36652)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-11-21 14:22:49 -08:00
Mel Henning
81f1cefcea zink: Make screen->queue_lock a pointer
Fixes: 015eda4a41 ("zink: deduplicate VkDevice and VkInstance")
Reviewed-by: Dave Airlie <airlied@redhat.com>
(cherry picked from commit dff1b9d4e9)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-11-21 14:22:49 -08:00
Mel Henning
aaca86cd4d zink: Return zink_device in create_logical_device
Fixes: 015eda4a41 ("zink: deduplicate VkDevice and VkInstance")
Reviewed-by: Dave Airlie <airlied@redhat.com>
(cherry picked from commit f0dc8c0224)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-11-21 14:22:48 -08:00
Eric R. Smith
052f8bde04 pan: fix a bifrost disassembly assert failure
We were overflowing an array during bifrost disassembly. This was
only a problem if the user explicitly set an environment variable,
so unlikely to occur in casual use, and also only could be triggered
in very specific, dense code. But we still should get this right!

The specific CTS test that caused the assert is:

'dEQP-VK.graphicsfuzz.stable-quicksort-for-loop-with-injection'

with environment variable `BIFROST_MESA_DEBUG=shaders`. One of the
shaders has a clause with 6 constants (the maximum) and this overflowed
the array because we assume we always have an extra slot (used for
modifier processing).

Cc: mesa-stable
Reviewed-by: Christoph Pillmayer <christoph.pillmayer@arm.com>
(cherry picked from commit 65ba14519e)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-11-21 14:22:47 -08:00
Dylan Baker
e0669e19e9 .pick_status.json: Update to 7c193ffef1
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-11-21 14:22:46 -08:00
Lionel Landwerlin
28874a99ad anv: consider 64bit atomics on similar formats with mutable images
vkd3d-proton uses a R32G32_UINT image with MUTABLE

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: ed77f67e44 ("anv: add emulated 64bit integer storage support")
Acked-by: Nanley Chery <nanley.g.chery@intel.com>
(cherry picked from commit 73bf51dba0)

Conflicts:
	src/intel/ci/anv-adl-vkd3d-fails.txt

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-11-19 09:39:00 -08:00
Erik Faye-Lund
798ec2e23f mesa/st: do not enable EXT_texture_buffer_object with rgba only
GL_EXT_texture_buffer_object requires support for alpha, luminance,
luminance-alpha and intensity formats. If we can't support those, we
can't enable the extension.

Fixes: 45ca7798dc ("glsl: handle interactions between EXT_gpu_shader4 and texture extensions")
Reviewed-by: Lars-Ivar Hesselberg Simonsen <lars-ivar.simonsen@arm.com>
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
(cherry picked from commit 6f2b8c3f61)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-11-19 09:23:59 -08:00
Erik Faye-Lund
5dde2812b9 mesa/main: correct formatquery error-handling
Most of the time, we remember to check for both extensions. But in one
case, it seems we forgot the GLES extension. Whoops.

Let's switch to a helper here, so we don't have to repeat the logic over
and over again.

Fixes: b4c0c514b1 ("mesa: add OES_texture_buffer and EXT_texture_buffer support")
Reviewed-by: Lars-Ivar Hesselberg Simonsen <lars-ivar.simonsen@arm.com>
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
(cherry picked from commit 9d5e0c1ad2)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-11-19 09:23:59 -08:00
David Rosca
d9cbd8ce83 radeonsi/vcn: Reduce allocated size for pre-encode recon pics
We use 4x downscale for pre-encode, so we don't need full size
pre-encode reconstructed pictures.

Cc: mesa-stable
Reviewed-by: Benjamin Cheng <benjamin.cheng@amd.com>
(cherry picked from commit 1f83e73145)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-11-19 09:23:58 -08:00
Yiwei Zhang
3c8fb6206c venus: properly fix the blob mem mapping size
There's a single underlying bo mapping shared by the initial alloc here
and the later import of the same. The mapping size has to be initialized
with the real size of the created blob resource, since the app can query
the exported native handle size for re-import. e.g. lseek dma-buf size

Similar to virtgpu_bo_create_from_device_memory, the app can do multiple
imports with different sizes for suballocation. So on the initial
import, the mapping size has to be initialized with the real size of the
backing blob resource.

Backport-to: 25.3
(cherry picked from commit 0afc408cb9)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-11-19 09:23:58 -08:00
Yiwei Zhang
e583dc112f venus: avoid re-imported dma-buf to have a larger map size
If the allocation originates from the same instance, the tracker map
size follows the allocationSize. After export and re-import, mapping the
whole dma-buf can exceed the original map size. This change backs out
the offending changes.

Test: dEQP-VK.api.external.memory.*.suballocated.host_visible.*
Fixes: 442f242a49 ("venus: requests whole blob mem size for non-dedicated import")
(cherry picked from commit c259ea24ee)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-11-19 09:23:57 -08:00
Natalie Vock
9618c54d33 aco/insert_nops: Consider s_setpc target susceptible to VALUReadSGPRHazard
Some GPU hangs witnessed in the wild on RDNA4 in Control and Arc Raiders
seem to point towards closest-hit shaders reading a stale value for the
SGPR pair containing the currently-executing shader's address.

This SGPR pair was read by VALU in the preceding traversal shader,
making it susceptible to VALUReadSGPRHazard. Inserting
VALUReadSGPRHazard mitigations before accessing the s_setpc target seems
to fix the hang. We don't have conclusive proof that this is hazardous,
but given that all signs point towards it and we have a reasonably
simple workaround, let's roll with this for now to mitigate the hangs.

Cc: mesa-stable
(cherry picked from commit 1243d575a5)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-11-19 09:23:57 -08:00
Karol Herbst
eb51b0b39a rusticl/kernel: Do not run kernels with a workgroup size beyond work_dim
When no workgroup size is specified we try to run with the most optimal one
possible. However we didn't take into account that we shouldn't run a
workgroup of higher dimensionality than requested by the application.

Fixes: 376d1e6667 ("rusticl: implement cl_khr_suggested_local_work_size")
(cherry picked from commit d46be8fbf2)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-11-19 09:23:56 -08:00
Karol Herbst
57ea82d834 rusticl/kernel: fix clGetKernelSuggestedLocalWorkSizeKHR implementation
There were two issues:
1. The global_work_offset parameter is optional but we errored on NULL
2. We didn't return the reqd_work_group_size when set on the kernel.

Fixes: 376d1e6667 ("rusticl: implement cl_khr_suggested_local_work_size")
(cherry picked from commit 810dca450c)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-11-19 09:23:55 -08:00
Timothy Arceri
a7ed5d61b1 mesa: fix _mesa_update_texture_matrices()
_math_matrix_is_dirty() should only be used to decide if we need to
run _math_matrix_analyse(). We already decided that we had a new
texture matrix when we called _mesa_update_texture_matrices() so
we need to set _TexMatEnabled correctly otherwise we might
incorrectly return _NEW_FF_VERT_PROGRAM | _NEW_FF_FRAG_PROGRAM in
the following if-statement.

Fixes: ec978e002f ("mesa: only update fixed-func programs on texture matrix enablement changes")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/14286
Reviewed-by: Emma Anholt <emma@anholt.net>
(cherry picked from commit b0047be0c2)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-11-19 09:23:55 -08:00
Lionel Landwerlin
e4d77530b4 anv: ensure slab allocated memory matches image requirements
The VMA of VkDeviceMemory has to accomodate all the resources that can
be bound to it. For sparse images it's 64KiB alignment, for other
tiled images it's 4KiB. But we also have a workaround that requires a
64KiB alignment for Tile4 images.

The initial version of the slab allocator missed the 4KiB alignment.
This fix adds the workaround handling too.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: dabb012423 ("anv: Implement anv_slab_bo and enable memory pool")
Reviewed-by: Nanley Chery <nanley.g.chery@intel.com>
Reviewed-by: José Roberto de Souza <jose.souza@intel.com>
(cherry picked from commit 401b2066b0)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-11-19 09:23:54 -08:00
Lionel Landwerlin
db8281fdbb anv: fixup load_ubo lowering
Use ult like nir_lower_explicit_io.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Cc: mesa-stable
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
(cherry picked from commit 775f8ec105)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-11-19 09:23:54 -08:00
Olivia Lee
1d97f7da0c panvk/csf: explicitly set ls_sb_slot in set_fbds_provoking_vertex
SB_ID(LS) is currently equal to zero, so this is not a behavior change,
but worth setting it explicitly for clarity and in case the sb
assignments change.

Signed-off-by: Olivia Lee <olivia.lee@collabora.com>
Fixes: 885805560f ("panvk/csf: fix case where vk_meta is used before PROVOKING_VERTEX_MODE_LAST")
Reviewed-by: Eric R. Smith <eric.smith@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
(cherry picked from commit ebbf05f9d2)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-11-19 09:23:53 -08:00
Olivia Lee
9fbbbc994b panvk/csf: fix uninitialized read in draw context
We check fn_set_fbds_provoking_vertex_stride == 0 to determine whether a
previous function variant has already been allocated, so this value must
be initialized to zero before we start the loop. We could fix this by
explicitly initializing just that field, but I figure it's simpler and
safer to just zero-initialize the whole struct.

Signed-off-by: Olivia Lee <olivia.lee@collabora.com>
Fixes: 885805560f ("panvk/csf: fix case where vk_meta is used before PROVOKING_VERTEX_MODE_LAST")
Reviewed-by: Eric R. Smith <eric.smith@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
(cherry picked from commit e899bc8be8)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-11-19 09:23:52 -08:00
Lionel Landwerlin
229e6040a1 brw: fix workaround fence rlen field
send.ugm (1|M0)          r125     r0      null:0  0x0            0x0200651F           {$9} // wr:1+0, rd:0; fence invalid flush type scoped to tile

When destination of Send(s) is not null, the response length must not be 0.

Should only affect DG2 products.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Cc: mesa-stable
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
(cherry picked from commit 4816318887)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-11-19 09:23:52 -08:00
David Rosca
fce07c7f86 radeonsi/vce: Add workaround for unaligned input surface
VCE requires 16x16 aligned input surface. Blit into an internal
scratch surface when input surface is not 16 aligned.

Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/14270
Reviewed-by: Ruijing Dong <ruijing.dong@amd.com>
(cherry picked from commit 17c015c2de)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-11-19 09:23:51 -08:00
Dylan Baker
8a428651fe .pick_status.json: Update to 7a3bfd1f79
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-11-19 09:23:46 -08:00
Patrick Lerda
ddb166148b r600: fix rv770 read scratch compatibility
The flag mega_fetch should be set on rv770 for a
read scratch operation (as written in the r700
documentation p357). Without this flag, read scratch
does not work and a gpu hang could be triggered.

Here are the tests fixed:
shaders/glsl-predication-on-large-array: fail pass
spec/glsl-1.10/execution/temp-array-indexing/glsl-fs-giant-temp-array: fail pass
spec/glsl-1.10/execution/temp-array-indexing/glsl-vs-giant-temp-array: fail pass
spec/glsl-1.30/execution/fs-large-local-array: fail pass
spec/glsl-1.30/execution/fs-large-local-array-vec2: fail pass
spec/glsl-1.30/execution/fs-large-local-array-vec3: fail pass
spec/glsl-1.30/execution/fs-large-local-array-vec4: fail pass
spec/glsl-1.30/execution/fs-multiple-large-local-arrays: fail pass

Fixes: 9c48a139b0 ("r600g: Support emitting scratch ops")
Signed-off-by: Patrick Lerda <patrick9876@free.fr>
(cherry picked from commit f8de09a811)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-11-17 09:54:38 -08:00
Erik Faye-Lund
5238c8d029 panfrost: remove stale code
This code was no longer needed after switching to os_read_file, but I
accidentally left it around, whoops!

Fixes: 49183bfb79 ("pan/bi: use os_read_file-helper")
CID: 1665295
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Lars-Ivar Hesselberg Simonsen <lars-ivar.simonsen@arm.com>
(cherry picked from commit d77279fa9b)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-11-17 09:54:38 -08:00
Erik Faye-Lund
8c796df86f pan/kmod: fix priority query logic
The PANFROST_JM_CTX_PRIORITY values aren't bitmasks, but enum values.
But the kernel interface uses the BIT()-macro on them, so we need to do
the same. We don't have the macro, but it's trivial to do this with a
bitshift instead.

Fixes: f04dbf0bc0 ("pan/kmod: query and cache available context priorities from KMD")
CID: 1666511
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Lars-Ivar Hesselberg Simonsen <lars-ivar.simonsen@arm.com>
(cherry picked from commit 37a7a157e8)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-11-17 09:54:37 -08:00
Calder Young
f966640ddf brw: fix SIMD lowering of fp16 sampler message data with multiple components
Fixes: 61d6aea4 ("brw: fix SIMD lowering of sampler messages with fp16 data")
Closes: mesa/mesa#13149
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
(cherry picked from commit d6fbbfef5c)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-11-17 09:54:36 -08:00
David Rosca
7bdac1e66f radv/video: Fix coding used_by_curr_pic_lt_flag
Fixes: d68a1fc0d4 ("radv/video: port hevc slice header encoding from radeonsi")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/14301
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
(cherry picked from commit 3abb2707e2)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-11-17 09:54:36 -08:00
Christoph Pillmayer
8ddecf22ac nir: Fix preseved metadata in sort_unstructured_blocks
Fixes: c859ea5783 ("nir: Add a sort_unstructured_blocks() helper")

Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Reviewed-by: Mel Henning <mhenning@darkrefraction.com>
(cherry picked from commit 8db66767a9)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-11-17 09:54:35 -08:00
David Rosca
b951bbc5bd radv/video: Fix coding allow_screen_content_tools and force_integer_mv
This was copied from radeonsi which expected seq_force_screen_content_tools = 2
and seq_force_integer_mv = 2.

Fixes: 37e71a5cb2 ("radv/video: add support for AV1 encoding")
Reviewed-by: Benjamin Cheng <benjamin.cheng@amd.com>
(cherry picked from commit 3858a6a696)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-11-17 09:54:35 -08:00
David Rosca
51a21fa57e vulkan/video: Fix coding AV1 seq_choose_screen_content_tools = 1
Fixes: 724655bfc6 ("vulkan/video: add support for AV1 encoding to runtime")
Reviewed-by: Hyunjun Ko <zzoon@igalia.com>
Reviewed-by: Benjamin Cheng <benjamin.cheng@amd.com>
(cherry picked from commit 22803f0d50)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-11-17 09:54:34 -08:00
Timur Kristóf
1cbce7ea76 ac/gpu_info: Disable sparse VM mappings pre-Polaris, for now
Disable sparse mappings on GFX7-8 due to GPU hangs in the VK CTS,
except Polaris where it happens to work "well enough" to pass
the VK CTS and run some games already.

Cc: mesa-stable
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
(cherry picked from commit 567e1b56ef)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-11-17 09:54:33 -08:00
Timur Kristóf
1f6d6533c0 radv: Disable sparse mapping when unsupported by VM
Also disable the sparse binding queue and other related features.
Using sparse on GFX6-8 can cause GPU hangs at the moment.

Cc: mesa-stable
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
(cherry picked from commit 1c8881fc60)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-11-17 09:54:32 -08:00
Daniel Schürmann
19cab16a87 nir/opt_large_constants: Fix dead deref instructions accessing lowered variables
It could happen that unused derefs weren't removed
if DCE wasn't called prior to nir_opt_large_constants.

Cc: mesa-stable
(cherry picked from commit 0d70716c8a)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-11-17 09:54:32 -08:00
Lionel Landwerlin
8b20f43336 brw: fix SIMD lowering of sampler messages with fp16 data
We need to make sure the data part returned by sampler messages is
always aligned to a physical register. Just like the residency data
lives in a single physical register after the data.

Lowering a vec3 16bits per components led to a half a physical
register allocation which then confused the descriptor lowering
(expecting physical register units).

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: 295734bf88 ("intel/fs: fix residency handling on Xe2")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/12794
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
(cherry picked from commit 61d6aea401)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-11-17 09:54:31 -08:00
Yiwei Zhang
d29700fce6 venus: use seq_cst for ring cs and tail update ordering
To avoid incompatibility between the compiler implementations used by
the driver and the renderer, seq_cst ordering is picked here, which has
required a full mfence instruction. Then the renderer side acquire is
ensured to be ordered after the cache flush of ring cs updates.

Perf wise, there's no regression in headless vkmark runs. In theory,
the overhead introduced here weighs trivially as compared to the ring
cs encode/decode part. So we should go for better robustness.

Test: venus on windows guest works with renderer on Linux
Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/14277
(cherry picked from commit 07d059f3e2)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-11-17 09:54:30 -08:00
Lionel Landwerlin
d22a20de74 brw: fixup 64bit atomics emulation on 2D array images
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: ce7208c3ee ("brw: add support for texel address lowering")
Acked-by: Nanley Chery <nanley.g.chery@intel.com>
(cherry picked from commit b3cc54731f)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-11-17 09:54:27 -08:00
Connor Abbott
1f1b69c35a tu: Handle case where pipeline writes unused color attachments
With VK_EXT_unused_attachments, we may have a case where the FS writes
to attachments 0 and 1, both have valid formats and are enabled, yet the
renderpass only has 1 color attachment. In this case we would set
RB_PS_MRT_CNTL to 2, but since we never emitted RB_MRT_BUF_INFO[1] and
so on, we would get garbage attachment info from the last render pass
and end up writing to an attachment that doesn't exist.

Fix this by disabling attachments that are unused. We can't move setting
RB_PS_MRT_CNTL to emitting when we emit color RT state, because then we
have the inverse problem of a FS that writes to attachments 0 and 1, a
renderpass that has 2 attachments, but a blend state that only includes
1 attachment (and therefore disables color writes for attachment 1). At
least one side (blending or RT emission) has to assume that the other
side may have more RTs enabled and disable the rest of the RTs up to
MAX_RTS.

Fixes: c2eb768eb2 ("tu: Expose VK_EXT_dynamic_rendering_unused_attachments")
(cherry picked from commit 6064e3a7d8)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-11-17 09:54:26 -08:00
Alyssa Rosenzweig
b475bf8f26 nir/sweep: fix use-after-free with dominance LCA
Either we need to save this pointer or toss it.

==146166==ERROR: AddressSanitizer: heap-use-after-free on address 0x7bfe77013920 at pc 0x7b9e6fd5b978 bp 0x7ffc30ef18e0 sp 0x7ffc30ef18d8
READ of size 4 at 0x7bfe77013920 thread T0
    #0 0x7b9e6fd5b977 in get_header ../src/util/ralloc.c:83
    #1 0x7b9e6fd5b977 in ralloc_parent ../src/util/ralloc.c:382
    #2 0x7b9e6fd5b977 in reralloc_size ../src/util/ralloc.c:198
    #3 0x7b9e6fd5b977 in reralloc_array_size ../src/util/ralloc.c:241
    #4 0x7b9e705f83c2 in range_minimum_query_table_resize ../src/util/range_minimum_query.c:21
    #5 0x7b9e7018af1d in realloc_info ../src/compiler/nir/nir_dominance_lca.c:33
    #6 0x7b9e7018af1d in nir_calc_dominance_lca_impl ../src/compiler/nir/nir_dominance_lca.c:126
    #7 0x7b9e6ff9815c in nir_metadata_require ../src/compiler/nir/nir_metadata.c:42
    #8 0x7b9e6ff998e4 in nir_metadata_require_most ../src/compiler/nir/nir_metadata.c:200
    #9 0x7b9e6f8aab4d in st_finalize_nir ../src/mesa/state_tracker/st_glsl_to_nir.cpp:735
    #10 0x7b9e6f0afb14 in st_create_common_variant ../src/mesa/state_tracker/st_program.c:858
    #11 0x7b9e6f0be2d3 in st_get_common_variant ../src/mesa/state_tracker/st_program.c:973
    #12 0x7b9e6f0bf9cf in st_precompile_shader_variant ../src/mesa/state_tracker/st_program.c:1478
    #13 0x7b9e6f0bf9cf in st_finalize_program ../src/mesa/state_tracker/st_program.c:1596
    #14 0x7b9e6f8b0127 in st_link_glsl_to_nir ../src/mesa/state_tracker/st_glsl_to_nir.cpp:633
    #15 0x7b9e6f8b3611 in st_link_shader ../src/mesa/state_tracker/st_glsl_to_nir.cpp:816
    #16 0x7b9e6f7bcf51 in link_program ../src/mesa/main/shaderapi.c:1412
    #17 0x7b9e6f7bcf51 in link_program_error ../src/mesa/main/shaderapi.c:1474
    #18 0x0000004020b0 in main._omp_fn.0 /home/alyssa/shader-db/run.c:872
    #19 0x7f9e7893dd65 in GOMP_parallel (/lib64/libgomp.so.1+0xdd65) (BuildId: 9cc501fdca53b5d4ab094f709486781c98573bc9)
    #20 0x000000400d6a in main /home/alyssa/shader-db/run.c:689
    #21 0x7f9e78011574 in __libc_start_call_main (/lib64/libc.so.6+0x3574) (BuildId: 48c4b9b1efb1df15da8e787f489128bf31893317)
    #22 0x7f9e78011627 in __libc_start_main@GLIBC_2.2.5 (/lib64/libc.so.6+0x3627) (BuildId: 48c4b9b1efb1df15da8e787f489128bf31893317)
    #23 0x000000401014 in _start (/home/alyssa/shader-db/run+0x401014) (BuildId: a83b8d830cc265be3f54ea3e7a21a0fb5156624b)

0x7bfe77013920 is located 0 bytes inside of 64-byte region [0x7bfe77013920,0x7bfe77013960)
freed by thread T0 here:
    #0 0x7f9e782e5beb in free.part.0 (/usr/lib64/libasan.so.8+0xe5beb) (BuildId: cab80046dbc1c97c6e14490acc37d079701f8d9a)
    #1 0x7b9e6fd5bc39 in unsafe_free ../src/util/ralloc.c:319
    #2 0x7b9e6fd5bc39 in ralloc_free ../src/util/ralloc.c:264
    #3 0x7b9e70063d81 in nir_sweep ../src/compiler/nir/nir_sweep.c:219
    #4 0x7b9e6f0bf499 in st_finalize_program ../src/mesa/state_tracker/st_program.c:1585
    #5 0x7b9e6f8b0127 in st_link_glsl_to_nir ../src/mesa/state_tracker/st_glsl_to_nir.cpp:633
    #6 0x7b9e6f8b3611 in st_link_shader ../src/mesa/state_tracker/st_glsl_to_nir.cpp:816
    #7 0x7b9e6f7bcf51 in link_program ../src/mesa/main/shaderapi.c:1412
    #8 0x7b9e6f7bcf51 in link_program_error ../src/mesa/main/shaderapi.c:1474
    #9 0x0000004020b0 in main._omp_fn.0 /home/alyssa/shader-db/run.c:872

previously allocated by thread T0 here:
    #0 0x7f9e782e5e4b in realloc.part.0 (/usr/lib64/libasan.so.8+0xe5e4b) (BuildId: cab80046dbc1c97c6e14490acc37d079701f8d9a)
    #1 0x7b9e6fd5a883 in resize ../src/util/ralloc.c:167
    #2 0x7b9e705f83c2 in range_minimum_query_table_resize ../src/util/range_minimum_query.c:21
    #3 0x7b9e7018af1d in realloc_info ../src/compiler/nir/nir_dominance_lca.c:33
    #4 0x7b9e7018af1d in nir_calc_dominance_lca_impl ../src/compiler/nir/nir_dominance_lca.c:126
    #5 0x7b9e6ff9815c in nir_metadata_require ../src/compiler/nir/nir_metadata.c:42
    #6 0x7b9e6ff998e4 in nir_metadata_require_most ../src/compiler/nir/nir_metadata.c:200
    #7 0x7b9e6f8b0ede in st_link_glsl_to_nir ../src/mesa/state_tracker/st_glsl_to_nir.cpp:550
    #8 0x7b9e6f8b3611 in st_link_shader ../src/mesa/state_tracker/st_glsl_to_nir.cpp:816
    #9 0x7b9e6f7bcf51 in link_program ../src/mesa/main/shaderapi.c:1412
    #10 0x7b9e6f7bcf51 in link_program_error ../src/mesa/main/shaderapi.c:1474
    #11 0x0000004020b0 in main._omp_fn.0 /home/alyssa/shader-db/run.c:872

Fixes: 17876a00af ("nir: Add a faster lowest common ancestor algorithm")
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
Reviewed-by: Mel Henning <mhenning@darkrefraction.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
(cherry picked from commit 65fcdf4c81)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-11-17 09:54:26 -08:00
Benjamin Cheng
4bd93089a7 radv/video: Align each layer of encode DPB to 256
VCN requires the luma/chroma VAs to be 256 aligned. On VCN5, the
collocated buffer was not 256 aligned which can cause these VAs to be
unaligned.

This fixes VVL PositiveVideoEncodeH264.Basic on VCN5.

Fixes: 37e71a5cb2 ("radv/video: add support for AV1 encoding")
Reviewed-by: David Rosca <david.rosca@amd.com>
(cherry picked from commit 8848495875)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-11-17 09:54:25 -08:00
Dylan Baker
7e61052f7b .pick_status.json: Update to 018f45f981
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-11-17 09:54:24 -08:00
Dylan Baker
0cb99ef602 docs: Add sha sums for 25.3.0
Some checks failed
macOS-CI / macOS-CI (dri) (push) Has been cancelled
macOS-CI / macOS-CI (xlib) (push) Has been cancelled
2025-11-14 13:56:23 -08:00
Dylan Baker
f7aeb0d677 VERSION: bump for 25.3.0
Signed-off-by: Dylan Baker <dylan.c.baker@intel.com>
2025-11-14 13:25:42 -08:00
Dylan Baker
523eea18c5 docs: add release notes for 25.3.0 2025-11-14 13:24:41 -08:00
Samuel Pitoiset
48b0dd2892 radv: add vk_wsi_disable_unordered_submits and enable for GTK
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
GTK is missing a semaphore between QueueSubmit() and QueuePresent()
causing the WSI submit to be "unordered" and to immediately signal the
semaphores (because it's missing a wait semaphore in QueuePresent()).

The workaround is to disable unordered WSI submits until GTK fixes it
properly.

Cc: "25.3"
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/14087
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
(cherry picked from commit 0d9d45db4e)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-14 08:36:53 -08:00
Dylan Baker
25abf47e3e .pick_status.json: Update to 8f13905c5e
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-14 08:36:53 -08:00
Mario Kleiner
28ca4a48d6 wsi/wayland: Zero min_luminance, max_luminance HDR light levels are valid.
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
CTA-861-G section 6.9.1 Static Metadata Type 1 declares that zero values
for different groups of HDR Metadata properties are allowed, including
zero nits values for max display mastering luminance, max content light
level, max frame-average light level and min display mastering luminance.

A zero value is meant to be treated by the video sink as "undefined" /
"unknown", and handled accordingly. This is common for dynamically
generated visual content.

The is_hdr_metadata_legal() function in the Vulkan/WSI/Wayland HDR backend
currently declares HDR light level metadata as invalid if the mastering
display min_luminance and max_luminance light levels are set to the legal
level of zero nits. This causes valid HDR metadata as set by the client
via vkSetHdrMetadata() to be not sent to the compositor.

Fix this by skipping checks that don't apply if min_luminance or
max_luminance are zero. If max_luminance is zero then we skip sending
of mastering display min/max luminance to Wayland, as sending a a
max_luminance <= min_luminance would trigger a protocol error. All
other valid data is still send, ie. color primaries, white-point,
content light levels.

Fixes: cb7726bb2c ("vulkan/wsi: validate HDR metadata to not cause protocol errors")
Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com>
Co-authored-by: Michel Dänzer <michel@daenzer.net>
Reviewed-by: Xaver Hugl <xaver.hugl@kde.org>
(cherry picked from commit 490f05f82c)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-13 08:38:01 -08:00
Lars-Ivar Hesselberg Simonsen
23665f9bd9 pan/format: Disable PAN_BIND_STORAGE_IMAGE for RGBA4/BGRA4
The RGBA4/BGRA4 formats had the PAN_BIND_STORAGE_IMAGE set, but we
cannot support that.

Fixes: d95423686f ("pan/format: Add PAN_BIND_STORAGE_IMAGE flag")
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
(cherry picked from commit 15868cf6e9)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-13 08:38:00 -08:00
Lars-Ivar Hesselberg Simonsen
b7ce6abb6a pan/format: Fix mapping for I16F
This was mapped to RG16F, while R16F should be correct.

Cc: mesa-stable
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
(cherry picked from commit 1e2ca4dad6)

Conflicts:
	src/panfrost/ci/panfrost-g610-fails.txt
	src/panfrost/ci/panfrost-g610-flakes.txt

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-13 08:37:59 -08:00
Ludvig Lindau
0fbf00af9b panfrost: Make instrs_equal check res table/index
Add resource table and index check to instruction equality function.
This prevents CSE from mistakenly eliminating LEA_BUF_IMM instructions
that load from different resources, but with the same buffer offset.

Cc: mesa-stable
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
(cherry picked from commit 00b5275fe8)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-13 08:10:40 -08:00
Gert Wollny
e2164fbc11 r600/sfn: Don't start a new ALU-CF if LDS pipeline loads are pending
Fixes: e57643cf (r600/sfn: Add handling for R600 indirect access alias handling)

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
(cherry picked from commit 79e4323cf0)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-13 08:10:39 -08:00
Joshua Simmons
f651443a74 vtn: Fix OpCopyLogical destination type
Previously the type info for nested values was copied from the source
operand, rather than propagating the new type from the destination
operand.

Fixes: 4c363acf94 ("vtn: Allow for OpCopyLogical with different but compatible types")
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
(cherry picked from commit 7ac1f7777d)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-13 08:10:38 -08:00
Marek Olšák
b5a4245193 gallium/noop: don't unref buffers passed to set_vertex_buffers to fix crashes
this code is invalid after the refcounting rework

Fixes: b3133e250e - gallium: add pipe_context::resource_release to eliminate buffer refcounting

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
(cherry picked from commit 7d22e4c7ba)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-13 08:10:37 -08:00
Lionel Landwerlin
76d66b72db anv: disable software detiling on Xe2+ for image atomics 64bits
This is what happens when you leave MR unreviewed for months.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: d39e443ef8 ("anv: add infrastructure for common vk_pipeline")
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
(cherry picked from commit c4e2878537)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-13 08:10:37 -08:00
Timur Kristóf
09b856c367 ac/nir/ngg: Fix scratch space for NGG GS streamout
For GS streamout, we need the following LDS scratch space:

- Repacking streamout vertices takes 1 dword per 4 waves per stream
  (max 16 bytes for Wave64, max 32 bytes for Wave32)
- 1 dword per stream for buffer info
  (16 bytes)
- 1 dword per buffer for buffer info
  (16 bytes)

Previously, the space used for buffer info aliased with the
space for repacking the output vertices in ngg_gs_finale(),
and there was no barrier in between, which caused a race
condition, resulting in random failure.

Fix this by allocating a few more LDS dwords so that aliasing
is not required, which also allows us to remove an extra
workgroup barrier.

Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/12705
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
(cherry picked from commit 8f99d736d0)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-13 08:10:36 -08:00
Christian Gmeiner
e5f9980d50 meson: require sysprof-capture-4 >= 4.49.0
When Mesa is compiled with sysprof support, applications can crash with a
segfault during shutdown. This happens because sysprof_collector_mark()
registers thread-local storage destructors that get called after the library
containing the destructor code has been unloaded.

The problem was fixed in sysprof https://gitlab.gnome.org/GNOME/sysprof/-/merge_requests/152

CC: mesa-stable
Closes: mesa/mesa#13571
Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com>
(cherry picked from commit e9341568fa)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-13 08:10:35 -08:00
Dmitry Baryshkov
7f68450a6c ci: drop google-freedreno remnants
Drop remnants of the  google-freedreno lab entries.

Fixes: 6541b911bd ("freedreno/ci: Remove baremetal job templates")
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
(cherry picked from commit 9a33edca35)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-13 08:10:34 -08:00
Natalie Vock
feccefbc86 radv: Fix PSO history with RT pipelines
1. The prolog needs to have a null check. Libraries don't have prologs.
2. We only need to print the shaders actually included in this pipeline.
   Libraries were already printed separately.
3. The traversal shader was wrongly omitted from the output.

Cc: mesa-stable
(cherry picked from commit 73a31dafbc)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-13 08:10:33 -08:00
Sviatoslav Peleshko
a407dc6d83 driconf: Add vertex_program_default_out option for Penumbra: Overture
Penumbra's vertex program Diffuse_EnvMap_Reflect_vp.cg produces 3-component
texture coordinates and primitive colors while using the FF fragment
program. Add this WA to fix the misrenderings.

Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/14170
Signed-off-by: Sviatoslav Peleshko <sviatoslav.peleshko@globallogic.com>
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
(cherry picked from commit 5af8abbf8b)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-13 08:10:32 -08:00
Sviatoslav Peleshko
4a0cb910e4 mesa,driconf: Add WA to initialize vertex program outputs to vec4(0,0,0,1)
Per ARB_vertex_program spec result registers are 4-component and initially
undefined, and the FF fragment program expects its intputs to be
4-component too. So, if the client's vertex program does not write the
whole vector it will cause misrenderings unless the same client also
supplies fragment program that expects less than 4 componens.

This commit adds a workaround that initializes results to vec4(0, 0, 0, 1)
which seems to be an expected behavior for such clients.

Cc: mesa-stable
Signed-off-by: Sviatoslav Peleshko <sviatoslav.peleshko@globallogic.com>
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
(cherry picked from commit f03432c81a)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-13 08:10:31 -08:00
Faith Ekstrand
8ffc19f935 nir: Add a couple panfrost sysvals to divergence analysis
Fixes: 2af6e4beeb ("pan: Don't pretend we support load_{vertex_id_zero_base,first_vertex}")
Reviewed-by: Lars-Ivar Hesselberg Simonsen <lars-ivar.simonsen@arm.com>
Reviewed-by: Christoph Pillmayer <christoph.pillmayern@arm.com>
(cherry picked from commit 0e9fcb33c3)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-13 08:10:30 -08:00
Tapani Pälli
de44196bfb anv: fix issues found with indirect data stride
Use tristate for the aligned setting, otherwise it is always
first disabled which contributes to the condition if we set the
new stride active.

v2: set ByteStride in dword units and take secondary cmdbuf
    in to account (Lionel)

Cc: mesa-stable
Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Tested-by: Nataraj Deshpande <nataraj.deshpande@intel.com>
(cherry picked from commit 2741ddd75a)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-13 08:10:30 -08:00
Timothy Arceri
f0aeb824b9 glsl: assign block indices in the order they appear
The hash lookup should be negligible. This makes things
predictable rather than having hash table modifications causing
the order to change, and fixes things for some seemingly buggy games.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/13802
Fixes: be5a15f11d ("util/hash_table: start with 16 entries to reduce reallocations")

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
(cherry picked from commit 595a2fdbd2)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-13 08:10:29 -08:00
Sagar Ghuge
2cb191d7d1 intel/common: Consider 0 threads while setting TG
In ray tracing dispatch, we have dispatch.threads set to 0 since we
calculate the local_size_x/y/z based on the launch sizes.

This change takes 0 threads into an account and returh the TG size 8 in
such scenarios. Before this change, we were setting TG size to 2.

Fixes: 0c4e1c9efc ("intel/common: Add helper for compute thread group dispatch size")
Signed-off-by: Sagar Ghuge <sagar.ghuge@intel.com>
Reviewed-by: José Roberto de Souza <jose.souza@intel.com>
(cherry picked from commit 16f66ffe55)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-13 08:10:28 -08:00
Patrick Lerda
b074ea9fe8 r600: limit pre-evergreen predicate ready size
With the current stack configuration the rv770 seems to be unable
to go beyond three with the "vs-output-array-float-index-wr-before-gs.shader_test"
test. Anyway, the value four seems to be sufficient for the other tests.

This issue was triggered on rv770, for instance, with:
"piglit/bin/shader_runner tests/spec/glsl-1.50/execution/variable-indexing/gs-output-array-float-index-wr.shader_test -auto -fbo"
"piglit/bin/shader_runner tests/spec/glsl-1.50/execution/variable-indexing/vs-output-array-float-index-wr-before-gs.shader_test -auto -fbo"

Fixes: 713edb5998 ("r600/sfn: handle the IF predicate in the scheduler")
Signed-off-by: Patrick Lerda <patrick9876@free.fr>
(cherry picked from commit ae049f6fea)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-13 08:10:27 -08:00
Karol Herbst
42726a2afa rusticl/spirv: preserve signed zeroes by default
Cc: mesa-stable
(cherry picked from commit 92a4ae0ab2)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-13 08:10:26 -08:00
Karol Herbst
e42294ba9f rusticl/kernel: take no kernel_info reference inside the launch closure
Otherwise patterns like this wouldn't work:

clCreateKernel(prog)
clEnqueueNDRangeKernel
clReleaseKernel
clBuildProgram(prog)

Fixes: bb2453c649 ("rusticl/kernel: move most of the code in launch inside the closure")
(cherry picked from commit df344f12cc)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-13 08:10:26 -08:00
Karol Herbst
3bb77d6906 rusticl/queue: fix error code for invalid sampler kernel arg
Fixes: 5795ee0e08 ("rusticl: translate spirv to nir and first steps to kernel arg handling")
(cherry picked from commit c0f0baeaca)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-13 08:10:25 -08:00
Karol Herbst
efd2f1d61c rusticl/queue: fix error code for invalid queue properties part 2
Fixes: 2c202eb787 ("rusticl: verify validity of property names and values")
(cherry picked from commit e98abe35c0)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-13 08:10:24 -08:00
Karol Herbst
2cd6bc199a rusticl/queue: fix error code for invalid queue properties part 1
Cc: mesa-stable
(cherry picked from commit e83400cab2)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-13 08:10:23 -08:00
Eric Engestrom
5c3427b1fe ci: track src/android_stub/ changes
Fixes: 932f51d593 ("ci: Include enough Android headers to let us compile test EGL")
Suggested-by: Yonggang Luo <luoyonggang@gmail.com>
(cherry picked from commit f689322d27)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-13 08:10:23 -08:00
Eric Engestrom
b6ae45d326 ci: track src/c11/ changes
It's used by mesa_util, so let's just consider changes to it can affect
any job.

Fixes: b2ddec4e98 ("c11: Implement c11/time.h with c11/impl/time.c")
Reviewed-by: Yonggang Luo <luoyonggang@gmail.com>
(cherry picked from commit 2ec3e536fd)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-13 08:10:22 -08:00
Lionel Landwerlin
14097ed79d anv/blorp/iris: rework Wa_14025112257
Drivers already have to track this workaround, so remove the logic
from Blorp and let the driver manage this.

Also in Anv don't accumulate this workaround, emit it directly in
place right after COMPUTE_WALKER. Accumulating can be problematic when
you want to dispatch concurrent compute shaders that do not need any
cache flush interaction (typical example with the internal
simple_shader framework).

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: 3e0ad0176b ("anv: Emit state cache invalidation after every compute dispatch")
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com>
(cherry picked from commit c478b6355a)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-13 08:10:21 -08:00
Dave Airlie
0ef221f4a4 c11/threads: fix build on c23
C23/glibc is now including once_init in stdlib.h

https://patchwork.sourceware.org/project/glibc/patch/78061085-f04a-0c45-107b-5a8a15521083@redhat.com/#213088

Just fix up our use of it.

Cc: mesa-stable
Reviewed-by: Yonggang Luo <luoyonggang@gmail.com>
(cherry picked from commit 179e744f75)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-13 08:10:20 -08:00
Karol Herbst
263e1823d2 st/interop: fix fence leak
Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/14050
Fixes: 1396dc1c38 ("mesa/st, dri2, wgl, glx: Modify flush_objects interop func to export a fence_fd")
Tested-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
(cherry picked from commit 87550fc657)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-13 08:10:19 -08:00
Faith Ekstrand
e334938384 nil: Add support for Blackwell 8 and 16-bit modifiers
Backport-to: 25.2
Reviewed-by: James Jones <jajones@nvidia.com>
(cherry picked from commit f1cb63a21d)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-13 08:10:18 -08:00
Faith Ekstrand
f299249d8b drm-uapi: Import the new NVIDIA modifiers
Imported from kernel commit eef295a850820 of drm-misc-fixes

Backport-to: 25.2
Reviewed-by: James Jones <jajones@nvidia.com>
(cherry picked from commit 3247452b2c)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-13 08:10:17 -08:00
Sagar Ghuge
594ae17ec9 anv: Drop unwanted untyped flush for AS query
CmdWriteAccelerationStructuresPropertiesKHR writes the data with MI
commands, we no longer dispatch shaders to write the properties.
As a result, we don't need to flush untyped cache.

Fixes: f0e18c475b ("intel: remove GRL/intel-clc")
Signed-off-by: Sagar Ghuge <sagar.ghuge@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
(cherry picked from commit 14194e59a4)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-13 08:10:15 -08:00
Benjamin Cheng
02ba16ec03 radv/video: Fix dummy DPB addresses
This fixes the VVL PositiveVideoDecodeAV1.* tests, which trigger error
concealment. These DPB addresses would not be normally used, but get
used by the error concealment path.

Fixes: d103b76ad6 ("radv/video: add VK_KHR_video_decode_av1 support.")
Reviewed-by: David Rosca <david.rosca@amd.com>
(cherry picked from commit 82d944b388)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-13 08:10:14 -08:00
Lars-Ivar Hesselberg Simonsen
1460a0319f panvk: Fix IUB decode
The base address used for bounds checking the entry was wrong. Directly
pass the end_of_entry address instead.

Fixes: db4bcd48d7 ("panvk: Fix IUB decode")
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
(cherry picked from commit 89293120f0)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-13 08:10:09 -08:00
Dylan Baker
d48e4a3f3b .pick_status.json: Update to 294e72e2b5
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-13 08:10:00 -08:00
Christian Gmeiner
d3d820d6ef anv: Fix needs_temp_copy() incorrectly matching depth/stencil formats
The needs_temp_copy() function was incorrectly identifying some
depth/stencil formats as needing RGB<->RGBA conversion.

VK_FORMAT_D32_SFLOAT_S8_UINT maps to PIPE_FORMAT_Z32_FLOAT_S8X24_UINT,
which has 3 channels (F32 depth, UP8 stencil, X24 padding). The
component count check (== 3) was matching this as an RGB color format,
causing depth/stencil images to incorrectly use the RGB conversion path.

Add an explicit vk_format_is_depth_or_stencil() check before the
component count test to ensure depth/stencil formats always use the
direct copy path.

Fixes: f97b51186f ("anv: intermediate RGB <-> RGBX copy for HIC")
Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
(cherry picked from commit 0be53b2ed8)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-07 08:14:55 -08:00
Mario Kleiner
70e3af188d wsi/display: Allow atomic modeset for change of Colorspace or HDR poperties
At least some drivers need a full modeset to change the Colorspace
property or to en-/disable HDR mode. E.g., at least amdgpu-kms as
tested under Linux 6.8 on Polaris needs it. Otherwise the atomic
commit for disabling HDR in _wsi_display_cleanup_state() will fail,
and the connector stays stuck in HDR mode after vkDestroySwapchainKHR().

Fixes: 1ed78dd7ec ("wsi/display: Clean up DRM hdr/color state on swapchain destruction")
Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com>
Reviewed-by: Autumn Ashton <misyl@froggi.es>
(cherry picked from commit ba82d36dce)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-07 08:14:55 -08:00
Mario Kleiner
b777384e99 wsi/display: Initially set default HDR metadata from EDID for HDR modes
For a selected non-default imageColorSpace during swapchain creation,
make sure that proper HDR setup also works even if a client app does not
explicitly call vkSetHdrMetadataEXT() in time.

Assign the EDID provided metadata here, so the 1st atomic commit will
set Colorspace and HDR metadata properties on the connector, to make sure
HDR or other wide color gamut modes get enabled.

Without this, the chain->color_outcome_serial would stay at zero and
the properties would not ever get assigned during drm_atomic_commit(),
leaving HDR disabled on the display sink.

Fixes: 13137393f6 ("wsi/display: Expose HDR10 colorspace based on EDID")
Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com>
Reviewed-by: Autumn Ashton <misyl@froggi.es>
(cherry picked from commit 19b2e3b81b)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-07 08:14:54 -08:00
Mario Kleiner
c4e0f4d917 wsi/display: Accept 0 nits for HDR light level properties for "undefined"
CTA-861-G section 6.9.1 Static Metadata Type 1 declares that zero values
for different groups of HDR Metadata properties are allowed, including
zero nits values for max display mastering luminance, max content light
level, max frame-average light level and min display mastering luminance.

A zero value is meant to be treated by the video sink as "undefined" /
"unknown", and handled accordingly. This is common for dynamically
generated visual content.

Therefore don't assert on some minimum nits level > 0, but only check for
a non-negative level.

Fixes: b4176393a0 ("wsi/display: Implement VK_EXT_hdr_metadata on KHR_display swapchain")
Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com>
Reviewed-by: Autumn Ashton <misyl@froggi.es>
(cherry picked from commit 19dc09aded)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-07 08:14:54 -08:00
Danylo Piliaiev
f3268818d5 tu: Use cmd->rp_trace u_trace for draw calls
Fixes: 707c97f634 ("tu: Add tracepoints around draws, with shader sha1s.")

Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com>
(cherry picked from commit c04e375588)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-07 08:14:53 -08:00
Yiwei Zhang
9e809986f6 panvk: fix mem alloc size for VkBuffer backed by imported blob AHB
For AHB VkBuffer import, the allocationSize comes from the raw external
AHB props query and it can be larger than the underlying buffer memory
requirement. So we must respect the allocationSize for the actual mem
import to support mapping the whole AHB size, and the dedicated buffer
info has to be stripped to obey the spec.

Test: CtsNativeHardwareTestCases no longer crashes on debug build panvk

Fixes: 66bbd9eec8 ("panvk: implement AHB image deferred init and memory alloc")
Tested-by: Valentine Burley <valentine.burley@collabora.com>
Reviewed-by: Lars-Ivar Hesselberg Simonsen <lars-ivar.simonsen@arm.com>
Reviewed-by: Christoph Pillmayer <christoph.pillmayer@arm.com>
(cherry picked from commit 4ec2a921d3)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-07 08:14:53 -08:00
Lionel Landwerlin
8a813632c3 vulkan/runtime: simplify robustness state hashing
We're doing the same in vk_pipeline_precomp_shader_create().

Also fixes valgrind warning due to uninitialized fields

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Cc: mesa-stable
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
(cherry picked from commit fc6d17a290)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-07 08:14:52 -08:00
Daniel Schürmann
b17381dc8d radv/null_device: set more options which affect compilation
Cc: mesa-stable
(cherry picked from commit 23ef756496)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-07 08:14:52 -08:00
David Rosca
7aa2c70759 radv/video: Add NULL checks for picture parameters
Fixes vk_layer_validation_tests PositiveVideoDecode.* and
PositiveVideoDecode*.InlineSessionParams

Cc: mesa-stable
Reviewed-by: Benjamin Cheng <benjamin.cheng@amd.com>
(cherry picked from commit bd151bf8b2)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-07 08:14:51 -08:00
David Rosca
11a4adec73 radv/video: Correctly handle no feedback query for encode
Fixes vk_layer_validation_tests PositiveVideoEncodeAV1.*

Cc: mesa-stable
Reviewed-by: Benjamin Cheng <benjamin.cheng@amd.com>
(cherry picked from commit 23a3587aa6)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-07 08:14:50 -08:00
David Rosca
e21d417234 vulkan/video: Avoid NULL pointers in session parameters
Always copy parameters that are not guarded by a flag, zero init
the structs if not provided by application.

Fixes vk_layer_validation_tests PositiveVideoEncode*.GetEncodedSessionParams

Cc: mesa-stable
Reviewed-by: Benjamin Cheng <benjamin.cheng@amd.com>
(cherry picked from commit 6a1c6ab95b)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-07 08:14:50 -08:00
Benjamin Cheng
dafde3434a vulkan/video: NULL check codec-specific chain
It seems applications are allowed to do no-op updates by not passing any
codec-specific extension structures.

Cc: mesa-stable
Reviewed-by: David Rosca <david.rosca@amd.com>
(cherry picked from commit 4d22427079)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-07 08:14:49 -08:00
Timothy Arceri
38e258d5d4 mesa: skip redundant uniform update optimisation if unsafe
If multiple contexts are updating uniform values we can't assume
a uniform update can skip flushing.

Fixes: b32e20e630 ("mesa: skip redundant uniform updates for glUniformHandle")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/14129

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
(cherry picked from commit 34db720660)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-07 08:14:48 -08:00
Lionel Landwerlin
478d92171d anv: avoid invalid timestamp generation due to skipped commands
We skip the stall emission for STATE_BASE_ADDRESS since this one can
be skipped on Gfx12.5+ and instead add a new sba tracepoint that has
valid timestamps.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: 0147908a89 ("anv: predicate emission of STATE_BASE_ADDRESS")
Reviewed-by: Casey Bowman <casey.g.bowman@intel.com>
(cherry picked from commit cff047280a)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-07 08:14:48 -08:00
Emma Anholt
96d959986c v3dv: Fix assertion failure for not-found primary_fd during enumeration.
Found when I had v3dv built in my aarch64 turnip setup.

Fixes: 451a0bd490 ("v3dv: use v3d primary node for VK_EXT_physical_device_drm")
(cherry picked from commit bb532a7a39)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-07 08:14:47 -08:00
Yiwei Zhang
c167b0a816 glcpp/meson: fix libglcpp generated header dependency
Explicitly declare glcpp-parse.h as a file dependency to ensure
glcpp_parse custom target completes before compiling glcpp-lex.c.

Cc: mesa-stable
(cherry picked from commit 53482178ef)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-07 08:14:47 -08:00
Lionel Landwerlin
ec8518d123 brw: avoid invalid URB messages
Some new CTS tests have geometry shader looking like this :

   void main()
   {
      gl_Position = gl_in[0].gl_Position;
      EmitVertex();
      EndPrimitive();
      // <-- some storage buffer write
   }

The generate shader has :
   - a message to write the position
   - a message to write to the storage buffer
   - a final message to end the thread

This generates an empty EOT URB messages which is apparently not legal
(simulation complains, HW hangs) :

send(8)         nullUD          g126UD          nullUD          0x04088007                0x00000000
                urb MsgDesc: offset 0 SIMD8 write masked  mlen 2 ex_mlen 0 rlen 0 { align1 1Q A@1 EOT };

Instead emit a write with actual data and the mask set at 0 to discard
the effect :

mov(8)          g127<1>UD       0x00000000UD                    { align1 WE_all 1Q };
mov(8)          g125<1>UD       0x00000000UD                    { align1 1Q };
send(8)         nullUD          g126UD          g125UD          0x04088007                0x00000040
                urb MsgDesc: offset 0 SIMD8 write masked  mlen 2 ex_mlen 1 rlen 0 { align1 1Q A@1 EOT };

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Cc: mesa-stable
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
(cherry picked from commit ff57c31696)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-07 08:14:46 -08:00
Ian Romanick
269a6fe030 brw: Correctly generate conditional modifier for BFN
Fixes: 4193895145 ("brw/cmod: Enable limited cmod propagation for BFN")
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com>
(cherry picked from commit 34fe598b39)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-07 08:14:46 -08:00
Georg Lehmann
4b46e87296 aco/gfx10_3: work around NSA hazard
4+ dword NSA can hang if exec becomes non-zero again directly before
the instruction.

Foz-DB Navi21:
Totals from 608 (0.74% of 82161) affected shaders:
Instrs: 945138 -> 946431 (+0.14%)
CodeSize: 5171580 -> 5176864 (+0.10%)
Latency: 13356895 -> 13357113 (+0.00%)
InvThroughput: 3043234 -> 3043236 (+0.00%); split: -0.00%, +0.00%

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/9852
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/13981
Cc: mesa-stable

Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
(cherry picked from commit b2172467d1)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-07 08:14:45 -08:00
David Rosca
3f169d14d2 radv/video: Fix AV1 bidir compound encode with order_hint disabled
Cc: mesa-stable
Reviewed-by: Benjamin Cheng <benjamin.cheng@amd.com>
(cherry picked from commit bcb6e6b6e6)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-07 08:14:45 -08:00
David Rosca
3a63355583 radv/video: Don't require encode FW version >= interface version
Otherwise this breaks backwards compatibility when bumping interface
version for new features.

Cc: mesa-stable
Reviewed-by: Benjamin Cheng <benjamin.cheng@amd.com>
(cherry picked from commit 96db490318)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-07 08:14:44 -08:00
David Rosca
7fb0030c06 radeonsi/vcn: Fix AV1 bidir compound encode with order_hint disabled
Cc: mesa-stable
Reviewed-by: Benjamin Cheng <benjamin.cheng@amd.com>
(cherry picked from commit 1a8a8db8c5)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-07 08:14:44 -08:00
Yiwei Zhang
e96e71fb79 llvmpipe: misc fixes for sparse binding
This change:
1. Move size validation within sparse binding, but not escape to
   non-sparse code path.
2. Error out if sparse is requested on unsupported platforms.

Fixes: d747c4a874 ("lavapipe: Implement sparse buffers and images")
Reviewed-by: Christian Gmeiner <cgmeiner@igalia.com>
(cherry picked from commit e0acc5c2b4)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-07 08:14:43 -08:00
Yiwei Zhang
eface4be0d llvmpipe: add a missing alloc error handling in fd import
Fixes: d74ea2c117 ("llvmpipe: Implement dmabuf handling")
Suggested-by: Christian Gmeiner <cgmeiner@igalia.com>
(cherry picked from commit 66414c6b70)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-07 08:14:42 -08:00
Yiwei Zhang
36aff3454b llvmpipe: fix udmabuf mmap error check
Upon failing to mmap, MAP_FAILED (void *)-1 is returned instead of NULL.

Fixes: d74ea2c117 ("llvmpipe: Implement dmabuf handling")
Reviewed-by: Christian Gmeiner <cgmeiner@igalia.com>
(cherry picked from commit 3e07f57d4a)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-07 08:14:42 -08:00
Yiwei Zhang
3d9d9ca09b llvmpipe: zero is also a valid fd
Fixes: a062544d3d ("llvmpipe: Use an anonymous file for memory allocations")
Reviewed-by: Christian Gmeiner <cgmeiner@igalia.com>
(cherry picked from commit 3a655c212b)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-07 08:14:41 -08:00
Samuel Pitoiset
e817b525d8 radv,aco: wait for all VMEM loads when the prolog loads large 64-bit attributes
Not the most optimal solution but 64-bit vertex attributes are rarely
used. Could still revisit if we find a real use case that matters.

This fixes recent VKCTS coverage:

dEQP-VK.pipeline.fast_linked_library.vertex_input.component_mismatch.r64g64b64.*_to_dvec2
dEQP-VK.pipeline.shader_object_.*.vertex_input.component_mismatch.r64g64b64.*_to_dvec2

Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/14243
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
(cherry picked from commit a0d607bfdb)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-07 08:14:41 -08:00
Samuel Pitoiset
8eec239517 aco: fix reserving VGPRs for 64-bit attributes in VS prologs
Otherwise the fetch index would be overwritten if the attribute format
is 64-bit and more than 2 components are loaded.

Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/14242
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
(cherry picked from commit ba5bf81aa2)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-07 08:14:40 -08:00
Sagar Ghuge
e9f677dff9 anv: Use correct engine class for companion RCS
Fixes: 6f138fe723 ("anv: avoid null pointer access in utrace copies on CCS")
Signed-off-by: Sagar Ghuge <sagar.ghuge@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
(cherry picked from commit 43d98a3f1a)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-07 08:14:38 -08:00
Dylan Baker
4f5c1c6c75 .pick_status.json: Update to 04a0d512fa
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-07 08:14:36 -08:00
Dylan Baker
944ec88ca5 VERSION: bump for 25.3.0-rc4
Some checks failed
macOS-CI / macOS-CI (dri) (push) Has been cancelled
macOS-CI / macOS-CI (xlib) (push) Has been cancelled
Signed-off-by: Dylan Baker <dylan.c.baker@intel.com>
2025-11-06 09:02:18 -08:00
Georg Lehmann
7d4557bae8 radv: do not report wave32 in gl_SubgroupSize for Doom Dark Ages
Some checks failed
macOS-CI / macOS-CI (dri) (push) Has been cancelled
macOS-CI / macOS-CI (xlib) (push) Has been cancelled
The shaders in question use:

(memory_load + (gl_SubgroupSize - 1)) & ~(gl_SubgroupSize - 1)

My guess is that this is supposed to be the subgroup size of whatever
produced the value, not the subgroup size in this shader.
And because in the consumer the workgroup size is 32, we use wave32.

Fixes: a2d3cbac2a ("radv: determine subgroup/wave size early")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/14187

Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
(cherry picked from commit 83e9ae2d5c)

Conflicts:
	src/amd/vulkan/radv_instance.c
	src/amd/vulkan/radv_instance.h
	src/util/driconf.h

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38268>
2025-11-05 10:18:26 -08:00
Yiwei Zhang
4482281292 panvk: fix sample shading of internal blend shader for MSAA
Align with gallium side. When fixed-function blending is not available,
the internal blend shader is used. This is handled by a single ST_TILE
in the blend shader with the current sample ID, which requires sample
shading enablement.

Cc: mesa-stable
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Reviewed-by: Lars-Ivar Hesselberg Simonsen <lars-ivar.simonsen@arm.com>
(cherry picked from commit 763d2418b8)

CI fails removed from cherry-pick as the file doesn't exist on stable,
and the main branch change has only removals.

Conflicts:
	src/panfrost/ci/panfrost-g925-fails.txt

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38268>
2025-11-05 10:16:55 -08:00
Connor Abbott
1dadb38d7b tu: Fix attachment stores with subpasses with partial views
Subpasses can have different view masks, although this isn't often used.
So we can't use the view mask of the last subpass when deciding what to
store, instead we have to use the same used_views field that's used by
loads and clears.

Noticed by upcoming tests for VK_QCOM_multiview_per_view_render_areas.

Cc: mesa-stable
(cherry picked from commit c0b5c04b84)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38268>
2025-11-04 14:12:21 -08:00
Connor Abbott
ef9457d119 tu: Rename tu_render_pass_attachment::clear_views to used_views
It's not just used for clears, it was already used for loads and it
needs to be used for stores too so clear_views was a confusing name.

Cc: mesa-stable
(cherry picked from commit 6c3ed74ed2)

Conflicts:
	src/freedreno/vulkan/tu_pass.cc
	src/freedreno/vulkan/tu_pass.h

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38268>
2025-11-04 14:12:20 -08:00
Lionel Landwerlin
9696921018 anv: avoid null pointer access in utrace copies on CCS
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: 3e0ad0176b ("anv: Emit state cache invalidation after every compute dispatch")
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
(cherry picked from commit 6f138fe723)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38268>
2025-11-04 10:16:42 -08:00
Lionel Landwerlin
30678337dd u_trace: reserve chunk space before emitting copies
Some implementations can emit tracepoints when copying u_trace
buffers. It's important to reserve the slots we want to copy into
before emitting the copies so that both processes don't clash with one
another.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Cc: mesa-stable
Reviewed-by: Danylo Piliaiev <dpiliaiev@igalia.com>
(cherry picked from commit df5f92d114)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38268>
2025-11-04 10:16:42 -08:00
Danylo Piliaiev
eb2668aad7 vulkan: Always fill DS state for EXT_dynamic_rendering_unused_attachments
If renderpass has D/S attachment, but pipeline has D/S as UNDEFINED,
D/S should be properly disabled for the pipeline. The easiest way is to
ensure that D/S state is valid when pipeline's D/S format is UNDEFINED.
So we always create VkPipelineDepthStencilStateCreateInfo.

CC: mesa-stable

Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com>
Reviewed-by: Connor Abbott <cwabbott0@gmail.com>
(cherry picked from commit 2798ef7bfd)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38268>
2025-11-04 10:16:42 -08:00
Ryan Houdek
e23c722170 freedreno/fdl: Fix typo in tiled_to_linear_2cpp
The non-aarch64 path was copying in the wrong direction.

Fixes: 7a5a33e0e3 ("freedreno/fdl: Add tiling/untiling implementation for a6xx/a7xx")
(cherry picked from commit 455eb2c751)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38268>
2025-11-04 10:16:42 -08:00
Mel Henning
2ad12150e8 nak/opt_lop: Don't handle modifiers in dedup_srcs
The handling in dedup_srcs was incorrect because it would apply the
modifier from srcs[i] to the LUT without removing the modifier from the
instruction. We can fix and simplify this code by removing all modifiers
before the dedup_srcs() call, which we were doing immediately after the
call anyway.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/13966
Fixes: 66c9c40f68 ("nak: Handle modifiers in dedup_srcs() in opt_lop()")
Reviewed-by: Seán de Búrca <sdeburca@fastmail.net>
Reviewed-by: Lorenzo Rossi <git@rossilorenzo.dev>
(cherry picked from commit 041216e605)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38268>
2025-11-04 10:16:42 -08:00
Konstantin Seurer
3109237d7c llvmpipe: Always recompute 1/w
The value depends on the tgsi_interpolate_loc which is not constant for
the loop. llvm should be able to cse in cases where they are the same.

cc: mesa-stable

Reviewed-by: Dave Airlie <airlied@redhat.com>
(cherry picked from commit aa28fcb610)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38268>
2025-11-04 10:16:42 -08:00
Konstantin Seurer
775652e08b gallivm/nir/soa: Use the sign of src1 for imod
This is the behavior specified by the nir opcode, the spirv spec and
required by maintenance8.

cc: mesa-stable

Reviewed-by: Dave Airlie <airlied@redhat.com>
(cherry picked from commit 4d30da6599)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38268>
2025-11-04 10:16:42 -08:00
Konstantin Seurer
51285c6715 lavapipe: Bump MAX_DESCRIPTOR_UNIFORM_BLOCK_SIZE
cc: mesa-stable

Reviewed-by: Dave Airlie <airlied@redhat.com>
(cherry picked from commit 25e678a37d)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38268>
2025-11-04 10:16:42 -08:00
Konstantin Seurer
c70fd7f766 lavapipe: Zero image null descriptors
The size queries for images do not use function pointers so we need to
be careful that width, height and depth are 0.

cc: mesa-stable

Reviewed-by: Dave Airlie <airlied@redhat.com>
(cherry picked from commit d6dd96e1c7)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38268>
2025-11-04 10:16:42 -08:00
Konstantin Seurer
d527eedb15 lavapipe: Bump maxPrimitiveCount
The vulkan spec requires at least 2^29-1.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/14212
cc: mesa-stable

Reviewed-by: Dave Airlie <airlied@redhat.com>
(cherry picked from commit ff145d2ddc)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38268>
2025-11-04 10:16:42 -08:00
Marek Olšák
7c18540961 Revert ABI breakage "amd: Add user queue HQD count to hw_ip info"
This reverts commit 56d758d321.

It broke ABI between Mesa and libdrm, causing crashes due to stack smashing.

See: https://gitlab.freedesktop.org/mesa/libdrm/-/issues/121#note_3172362

Fixes: 56d758d321
(cherry picked from commit 5d92c92ce5)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38268>
2025-11-04 10:16:42 -08:00
Janne Grunau
90b6c3a8ac hk: Report the correct plane count in VkDrmFormatModifierProperties2?EXT
Fixes import of planar formats like NV12 in gtk4. Allows
`gst-launch-1.0 v4l2src ! gtk4paintablesink` to use vulkan instead of
falling back to OpenGL.

Closes: #14217
Cc: mesa-stable
Signed-off-by: Janne Grunau <j@jannau.net>
(cherry picked from commit 83b97379dc)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38268>
2025-11-04 10:16:42 -08:00
Alyssa Rosenzweig
3dab73159b asahi,ail: fix multi-plane imports
We need to handle plane offsets everywhere. I noticed this broken before but
didn't realize it was a GL driver issue. Fix is easy, wrote this on my sofa
while waking up in the morning.

Fixes gst-launch-1.0 v4l2src ! glimagesink

Note that cheese & snapshot both still hang for some reason due to
libgstpipewire, but the Mesa side should be fine now.

Closes: #14217
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Cc: mesa-stable
(cherry picked from commit aa9f937116)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38268>
2025-11-04 10:16:42 -08:00
Ian Romanick
55a37838b9 elk: Apply vgrf127 workaround in more cases
No shader-db changes on Broadwell. Older platforms were not tested.

Fixes: e7b7d572b3 ("intel/fs/ra: Re-arrange interference setup")
Acked-by: Caio Oliveira <caio.oliveira@intel.com>
(cherry picked from commit 2e8b89ec60)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38268>
2025-11-04 10:16:42 -08:00
Ian Romanick
9bad1beb98 brw: Apply Gfx9 vgrf127 workaround in more cases
No shader-db changes on any Intel platform.

fossil-db:

Skylake
Intel(R) HD Graphics 530 (SKL GT2)
Totals:
Cycle count: 57669758527 -> 57669757913 (-0.00%); split: -0.00%, +0.00%

Totals from 10 (0.00% of 1736875) affected shaders:
Cycle count: 274949 -> 274335 (-0.22%); split: -0.36%, +0.14%

This change is likely due to subtle differences of different registers
being allocated.

In addition, fossils/google-meet-clvk/BgBlur.1f58fdf742c27594.1.foz and
fossils/google-meet-clvk/Relight.1f58fdf742c27594.1.foz stopped failing
EU validation on Gfx9 platforms.

Closes: #14171
Fixes: e7b7d572b3 ("intel/fs/ra: Re-arrange interference setup")
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com>
(cherry picked from commit 3e6af6c5bb)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38268>
2025-11-04 10:16:42 -08:00
Dylan Baker
3086692bcd .pick_status.json: Update to 27d9e4ec2a
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38268>
2025-11-04 10:16:42 -08:00
David Rosca
ce6c6a7a57 radv/video: Only use write_memory for encode feedback with full support
write_memory is used after encoding every frame to mark the feedback
buffer as ready. Only use it when write_memory can work without PCIe
atomics support.

Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
(cherry picked from commit 874e02003a)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38268>
2025-11-03 13:17:41 +01:00
David Rosca
629a0a4dcc radv/video: Introduce two levels of write_memory support
Print warning when using write_memory with firmwares that require
PCIe atomics support.

Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
(cherry picked from commit 8e1d74bbb4)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38268>
2025-11-03 13:17:38 +01:00
Icenowy Zheng
12c82aaa82 gallivm: orcjit: remember Context in addition to ThreadSafeContext
The llvm::orc::ThreadSafeContext object wraps an llvm::Context and keeps
its reference.

As we are no longer able to squeeze out Context from ThreadSafeContext
in LLVM 21, do not let ThreadSafeContext create Context implicitly for
LLVM 21, instead explicitly create Context and then remember it.

This also eliminates the code creating a Context that is never disposed.

Fixes: cd129dbf8a ("gallivm: support LLVM 21")
Signed-off-by: Icenowy Zheng <uwu@icenowy.me>
(cherry picked from commit cc60a7a39d)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38268>
2025-10-31 12:07:14 -07:00
Samuel Pitoiset
1e885e7a88 radv: add a workaround for illegal depth/stencil descriptors with No Man's Sky
Using descriptors with both depth and stencil aspects is illegal in
Vulkan and this hangs the GPU.

Use NULL descriptors to mitigate the issue. Note that AMDVLK also
ignores them.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/13325
Cc: mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
(cherry picked from commit cb4e0c4140)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38268>
2025-10-31 12:07:13 -07:00
Tapani Pälli
3ddddf78b4 anv: bring back some lost game drirc workarounds for subgroups
Fixes: d39e443ef8 (" anv: add infrastructure for common vk_pipeline")
Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
(cherry picked from commit f48df6f45c)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38268>
2025-10-31 12:07:12 -07:00
Gert Wollny
86313f9571 r600/sfn: AR loads are not dependend on the future and other code blocks
If the AR is loaded from a register changing that register in a loop was
resulting in a scheduling failure because the AR load was made dependend
on a later instruction. Fix the dependencies by only using dependencies on
older instruuctions in the same block.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/14114
Fixes: d21054b4bc ("r600/sfn: Add pass to split addess and index register loads")

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
(cherry picked from commit 43d9765e35)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38268>
2025-10-31 12:07:12 -07:00
Paul Gofman
a46307a732 driconf: add a workaround for Investigation Stories : gunsound
CC: mesa-stable
(cherry picked from commit 63aec75981)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38268>
2025-10-31 12:07:11 -07:00
Dylan Baker
0a0d08dfe0 .pick_status.json: Update to e44a776f47
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38268>
2025-10-31 12:07:09 -07:00
Faith Ekstrand
182877f3c8 nvk: Don't re-initialize the descriptor writer if the set matches
The logic here before was wrong.  In the case where the set is the same,
it would avoid the flush but then re-initialize anyway, loosing the
dirty information and causing us not to actually flush out all the
descriptors.

Fixes: 1f0fda22f7 ("nvk: Flush descriptor set maps")
(cherry picked from commit 2f6b3b6b91)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38268>
2025-10-30 12:14:05 -07:00
Eric Engestrom
9aeac1e0a7 util/meson: don't build libmesa_util_clflush unless needed
Fixes: efbecd93ba ("util: Build util/cache_ops_x86.c with -msse2")
(cherry picked from commit 0fe0acd4c3)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38268>
2025-10-30 12:14:05 -07:00
Eric Engestrom
46f0422165 util/meson: don't build libmesa_util_clflushopt unless needed
Fixes: 555881e574 ("util/cache_ops: Add some cache flush helpers")
(cherry picked from commit ccf33664e8)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38268>
2025-10-30 12:14:04 -07:00
Samuel Pitoiset
f69d1abfcf radv: ignore dual-source blending when blending isn't enabled for MRT0
The Vulkan spec says:
    "VUID-vkCmdDraw-maxFragmentDualSrcAttachments-09239
     If blending is enabled for any attachment where either the source
     or destination blend factors for that attachment use the secondary
     color input, the maximum value of Location for any output attachment
     statically used in the Fragment Execution Model executed by this
     command must be less than maxFragmentDualSrcAttachments"

Which means it must be disabled.

Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/14190
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
(cherry picked from commit b2badb2b24)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38268>
2025-10-30 12:14:00 -07:00
Eric Engestrom
770e095766 asahi/virtio: fix memleak
Fixes: c64a2bbff5 ("asahi: port to stable uAPI")
(cherry picked from commit fdef10916e)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38268>
2025-10-30 12:13:58 -07:00
Dmitry Osipenko
205fe1a245 virtio/vdrm: Fix varying offsets of struct vdrm_device members
Struct virgl_renderer_capset_drm has a varying size depending on whether
AMDGPU driver is enabled or not. This breaks offset of struct vdrm_device
members for non-AMD drivers when Mesa is built with multiple native context
drivers including the AMD driver. Place varying capsets in the end struct
vdrm_device to mitigate the issue.

Fixes: 5736280730 ("virtio/vdrm: add ENABLE_DRM_AMDGPU for c_args")
Signed-off-by: Dmitry Osipenko <dmitry.osipenko@collabora.com>
(cherry picked from commit bd8377bb04)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38268>
2025-10-30 12:13:58 -07:00
Mike Blumenkrantz
093c7d9d8e zink: don't destroy old push layout when enabling fbfetch descriptor
this may be in use by programs, and adding tracking/refcounting just to
delete a descriptor layout isn't worth the effort

cc: mesa-stable

(cherry picked from commit 272cf1db8e)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38268>
2025-10-30 12:13:57 -07:00
Gert Wollny
2c67b0fac6 r600/sfn: make sure kill and update_exec don't happen in one group
v2: - Correctly test in multi-slot split whether the group has kill if
      we want to add a multi-slot op.
    - update group_has_predicate if an according vector op was added

Fixes: 359bfc3138 ("r600/sfn: make sure that kill and update pred are not in the same group")

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
(cherry picked from commit 317345cc98)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38268>
2025-10-30 12:13:57 -07:00
Gert Wollny
e082f6b6c0 r600/sfn: Track whether a ALU group has a exec flag update
Fixes: 359bfc3138 ("r600/sfn: make sure that kill and update pred are not in the same group")

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
(cherry picked from commit 0d065a2421)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38268>
2025-10-30 12:13:56 -07:00
Gert Wollny
a12369eb3d r600/sfn: move some common code into try_readport
Fixes: 359bfc3138 ("r600/sfn: make sure that kill and update pred are not in the same group")

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
(cherry picked from commit 51e7c477d6)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38268>
2025-10-30 12:13:55 -07:00
Gert Wollny
6670d0742b r600/sfn: extract function to update group after instr insert
Fixes: 359bfc3138 ("r600/sfn: make sure that kill and update pred are not in the same group")

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
(cherry picked from commit a7f477b51f)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38268>
2025-10-30 12:13:55 -07:00
Mike Blumenkrantz
a7a020dde6 zink: collapse mesh pipeline fetching and binding conditionals
this avoids taking the wrong conditional if a pipeline fetch fails

cc: mesa-stable

(cherry picked from commit 343eef990e)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38268>
2025-10-30 12:13:54 -07:00
Mike Blumenkrantz
7e15070ee1 zink: collapse gfx pipeline fetching and binding conditionals
this avoids taking the wrong conditional if a pipeline fetch fails

cc: mesa-stable

(cherry picked from commit 0b24fd174a)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38268>
2025-10-30 12:13:54 -07:00
Sagar Ghuge
0edb1852a7 vulkan/runtime: Fix typo in stack size calculation
Fixes: 69a04151db ("vulkan/runtime: add ray tracing pipeline support")
Signed-off-by: Sagar Ghuge <sagar.ghuge@intel.com>
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
(cherry picked from commit a00560f763)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38268>
2025-10-30 12:13:53 -07:00
Alyssa Rosenzweig
3ce875a2d0 anv: use D3D-compatible texturing for Proton
Intel & AMD Direct3D drivers modify their rounding behaviour for texturing to
match Direct3D expectations. Such behaviour is not conformant in Vulkan, and
Intel hardware lacks a reasonable way to get NVIDIA's behaviour (which uniquely
works for Vulkan & Direct3D). The second best choice is to use
Direct3D-compatible behaviour for Proton (via driconf) and our current
Vulkan-conformant behaviour everywhere else. Given the APIs diverge and there is
no Vulkan extension to control the behaviour explicitly, driconf'ing on the
engineName is the reasonable solution.

anv already has a anv_force_filter_addr_rounding driconf option to force
Direct3D behaviour for certain Direct3D titles. Here we simply apply it to all
D3D10+ titles, aligning us with the Windows driver.

Note that D3D9 does not have this behaviour. We therefore use standard Vulkan
behaviour for D3D9 to avoid breaking D3D9 titles, even though the engineName is
the same as D3D10+.

This is the same solution radv uses, they call it radv_disable_trunc_coord. We
could unify the driconf entries later.

See https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38098#note_3166306
for a more detailed analysis, as well as the linked references:

   https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27337
   https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25911
   https://github.com/HansKristian-Work/vkd3d-proton/pull/1884

This fixes misrendering in piles of Direct3D games run on anv via Proton,
including Assassin's Creed Valhalla.

Cc: mesa-stable
Closes: #13886
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
Co-authored-by: Calder Young <cgiacun@gmail.com>
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com>
(cherry picked from commit 7a71952762)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38268>
2025-10-30 12:13:52 -07:00
Dylan Baker
fd777ce645 .pick_status.json: Update to 3334284845
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38268>
2025-10-30 12:13:41 -07:00
Dylan Baker
315b688976 VERSION: bump for rc3
Some checks failed
macOS-CI / macOS-CI (dri) (push) Has been cancelled
macOS-CI / macOS-CI (xlib) (push) Has been cancelled
Signed-off-by: Dylan Baker <dylan.c.baker@intel.com>
2025-10-30 11:35:06 -07:00
Job Noorman
3a71d94735 spirv: don't set in_bounds for structs
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
The arr::in_bounds field was set unconditionally for every deref created
for a chain. For struct derefs, which don't have this field, this would
write to an unused memory location, which is probably why this never
caused issues.

Signed-off-by: Job Noorman <jnoorman@igalia.com>
Fixes: f19cbe98e3 ("nir,spirv: Preserve inbounds access information")
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
(cherry picked from commit 0ac55b786a)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38167>
2025-10-28 12:53:18 -07:00
Benjamin Cheng
8a2bf930bb radv/video: Override H265 SPS unaligned resolutions
VCN requires 64x16 alignment for HEVC. When the app requests non-aligned
resolutions, make up for it with conformance window cropping.

Reviewed-by: Ruijing Dong <ruijing.dong@amd.com>
Cc: mesa-stable
(cherry picked from commit cef8eff74d)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38167>
2025-10-28 12:53:18 -07:00
Benjamin Cheng
ac492d42be radv/video: Override H265 SPS block size parameters
VCN only supports this set of parameters.

Reviewed-by: Ruijing Dong <ruijing.dong@amd.com>
Cc: mesa-stable
(cherry picked from commit 84b6d8e0d7)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38167>
2025-10-28 12:53:17 -07:00
Lionel Landwerlin
2e17fd0cb2 vulkan/render_pass: Add a missing sType
Fixes: 3a204d5cf3 ("vulkan/render_pass: Add a better helper for render pass inheritance")
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
(cherry picked from commit c5740c2548)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38167>
2025-10-28 12:53:16 -07:00
Marek Olšák
9311f170c4 zink: fix mesh and task shader pipeline statistics
Fixes: 9d0e73335a - zink: enable GL_EXT_mesh_shader
(cherry picked from commit 41a8c4d37c)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38167>
2025-10-28 12:53:15 -07:00
Dylan Baker
3e227a04b1 .pick_status.json: Update to 32b646c597
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38167>
2025-10-28 12:53:10 -07:00
Sagar Ghuge
f63a5df30b brw/rt: fix ray_object_(direction|origin) for closest-hit shaders
We were returning world BVH level for origin/direction, this commit
fixes by retuning correct object BVH level origin/direction.

Fixes: aaff191356 ("brw/rt: fix ray_object_(direction|origin) for closest-hit shaders")
Signed-off-by: Sagar Ghuge <sagar.ghuge@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
(cherry picked from commit 89fbcc8c34)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38167>
2025-10-27 09:34:33 -07:00
Sagar Ghuge
9ba765e3e3 brw/rt: Move nir_build_vec3_mat_mult_col_major helper to header
Signed-off-by: Sagar Ghuge <sagar.ghuge@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
(cherry picked from commit 3edeb1e191)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38167>
2025-10-27 09:34:33 -07:00
Mike Blumenkrantz
8010d0cd39 zink: disable primitiveFragmentShadingRateMeshShader feature
features are auto-enabled, but some of them cause validation errors
which are simple to work around

Fixes: 90f3c57337 ("zink: hook up VK_EXT_mesh_shader")
(cherry picked from commit a2ef369abf)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38167>
2025-10-27 09:34:33 -07:00
Job Noorman
f1f32d557e ir3/ra: fix assert during file start reset
While accounting for an input register's merge set when resetting the
file start after the preamble, we implicitly assume that the allocated
register is the preferred one by asserting that the register's merge set
offset is not smaller than its physreg (to prevent an underflow).
However, inputs are not guaranteed to have their preferred register
allocated which causes the assert to get triggered.

Fix this by only taking the whole merge set into account for inputs that
actually got their preferred register allocated.

Signed-off-by: Job Noorman <jnoorman@igalia.com>
Fixes: 9d4ba885bb ("ir3/ra: make main shader reg select independent of preamble")
(cherry picked from commit f84d85790e)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38167>
2025-10-27 09:34:33 -07:00
Natalie Vock
05e5db1a4d nir/lower_shader_calls: Repair SSA after wrap_instrs
Wrapping jump instructions that are located inside ifs can break SSA
invariants because the else block no longer dominates the merge block.
Repair the SSA to make the validator happy again.

Cc: mesa-stable
(cherry picked from commit 50e65dac79)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38167>
2025-10-27 09:34:33 -07:00
Taras Pisetskyi
5ae8474029 drirc/anv: force_vk_vendor=-1 for Wuthering Waves
Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/12459

Signed-off-by: Taras Pisetskyi <taras.pisetskyi@globallogic.com>
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
(cherry picked from commit dcd9b90aff)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38167>
2025-10-27 09:34:33 -07:00
Mary Guillemard
b3470359bf hk: Allocate the temp tile buffer in copy_image_to_image_cpu
We may require a bigger more than 16KiB to handle the image copy.
We now always allocate a buffer to handle it properly fixing the
remaining failures on VKCTS 1.4.4.0 for HIC.

Fixes: 5bc8284816 ("hk: add Vulkan driver for Apple GPUs")
Signed-off-by: Mary Guillemard <mary@mary.zone>
(cherry picked from commit d37ba302d0)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38167>
2025-10-27 09:34:33 -07:00
Mary Guillemard
5e1a88cea0 hk: Make width and height per block in HIC
We were assuming that every formats used for HIC had a block widgh and
height of 1x1.

This is wrong for compressed formats like BC5, ASTC, ect.

Fixes: 5bc8284816 ("hk: add Vulkan driver for Apple GPUs")
Signed-off-by: Mary Guillemard <mary@mary.zone>
Reviewed-by: Eric Engestrom <eric@igalia.com>
(cherry picked from commit 887f06a966)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38167>
2025-10-27 09:34:33 -07:00
Sagar Ghuge
040453857b anv: Call brw_nir_lower_rt_intrinsics_pre_trace lowering pass
Call this pass before nir_lower_shader_calls().

Fixes: d39e443e ("anv: add infrastructure for common vk_pipeline")
Cc: mesa-stable
Signed-off-by: Sagar Ghuge <sagar.ghuge@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
(cherry picked from commit 006085e676)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38167>
2025-10-27 09:34:33 -07:00
Mary Guillemard
28e172e956 hk: Remove unused allocation in queue_submit
Unused and leaking memory, found with address sanitizer.

Fixes: c64a2bbff5 ("asahi: port to stable uAPI")
Signed-off-by: Mary Guillemard <mary@mary.zone>
Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
(cherry picked from commit 64131475a8)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38167>
2025-10-27 09:34:33 -07:00
Mary Guillemard
74880f8954 hk: Disable 1x in sampleLocationsSampleCounts
We don't support it, everyone dropped support for that, let's not expose it.

Fixes: 5bc8284816 ("hk: add Vulkan driver for Apple GPUs")
Signed-off-by: Mary Guillemard <mary@mary.zone>
Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
(cherry picked from commit 7e636d52f1)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38167>
2025-10-27 09:34:33 -07:00
Mary Guillemard
f02f5e217f hk: Fix maxVariableDescriptorCount with inline uniform block
Same problem as NVK on VKCTS 1.4.4.0

Fixes: 5bc8284816 ("hk: add Vulkan driver for Apple GPUs")
Signed-off-by: Mary Guillemard <mary@mary.zone>
Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
(cherry picked from commit 8447b99f61)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38167>
2025-10-27 09:34:33 -07:00
Dylan Baker
d9636807f7 intel/compiler/brw: Add assert that we don't have a negative value
Coverity notices that `nir_get_io_index_src_number` could return -1, and
that we use it to index an array. It cannot understand that -1 only
happens for unhandled enum values, but all of these are handled. Add an
assert to help it out.

CID: 1667234
Fixes: 37a9c5411f ("brw: serialize messages on Gfx12.x if required")
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
(cherry picked from commit a5b9f428f9)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38167>
2025-10-27 09:34:33 -07:00
Dylan Baker
b768139858 .pick_status.json: Update to 45a762727c
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38167>
2025-10-27 09:34:33 -07:00
Olivia Lee
498a25cfb8 hk: fix data race when initializing poly_heap
hk_heap is called during command buffer recording, which may be
concurrent, so writing dev->heap without synchronization is a data race.

Signed-off-by: Olivia Lee <olivia.lee@collabora.com>
Fixes: 5bc8284816 ("hk: add Vulkan driver for Apple GPUs")
Reviewed-by: Mary Guillemard <mary.guillemard@collabora.com>
(cherry picked from commit bca29b1c92)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38167>
2025-10-27 09:34:33 -07:00
Connor Abbott
9728bbf7b0 tu: Also disable stencil load for attachments not in GMEM
We were accidentally still emitting loads for D32S8 resolve attachments.

Cc: mesa-stable
(cherry picked from commit a3652af380)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38167>
2025-10-24 08:07:30 -07:00
Connor Abbott
f142fdc273 tu: Fix 3d load path with D24S8 on a7xx
We need to always use the FMT6_Z24S8_AS_R8G8B8A8 format for GMEM even if
UBWC is disabled, as already done for the 2d store path. Because we
use the pre-baked RB_MRT_BUF_INFO register value, this means we have to
override it.

Cc: mesa-stable
(cherry picked from commit 9417ce287c)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38167>
2025-10-24 08:07:28 -07:00
Connor Abbott
1c52a94428 tu: Don't patch GMEM for input attachments never in GMEM
This can happen if we resolve to a resolve attachment and then use that
resolve attachment as an input attachment in a later subpass. We don't
need to put it in GMEM, but it's still considered "written" because
input attachment reads need a dependency after the resolve.

MSRTSS input attachment tests effectively created such a scenario after
lowering to transient multisample attachments and inserting resolves.

Cc: mesa-stable
(cherry picked from commit d491a79027)

Conflicts:
	src/freedreno/vulkan/tu_pass.cc

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38167>
2025-10-24 08:07:28 -07:00
Faith Ekstrand
2cfd3c52b2 panvk/shader: Use the right copy size for deserializing dynamic UBOs/SSBOs
Fixes: 563823c9ca ("panvk: Implement vk_shader")
Acked-by: Eric R. Smith <eric.smith@collabora.com>
Reviewed-by: Lars-Ivar Hesselberg Simonsen <lars-ivar.simonsen@arm.com>
(cherry picked from commit 64ad337036)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38167>
2025-10-24 07:55:08 -07:00
Faith Ekstrand
606ebb042e panvk/shader: [de]serialize desc_info.max_varying_loads
Fixes: de86641d3f ("panvk: Limit AD allocation to max var loads in v9+")
Acked-by: Eric R. Smith <eric.smith@collabora.com>
Reviewed-by: Lars-Ivar Hesselberg Simonsen <lars-ivar.simonsen@arm.com>
(cherry picked from commit a546484ed9)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38167>
2025-10-24 07:55:07 -07:00
Samuel Pitoiset
424f37b348 radv: dirty dynamic descriptors when required
The user SGPRS might be different and dynamic descriptors need to be
re-emitted again

This fixes a regression with ANGLE, and VCKTS is currently missing
coverage.

Fixes: a47952d495 ("radv: upload and emit dynamic descriptors separately from push constants")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/14146
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
(cherry picked from commit 54a6c81d3a)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38167>
2025-10-24 07:55:06 -07:00
Faith Ekstrand
7f75931019 nvk: Capture/replay buffer addresses for EDB capture/replay
Fixes: 3f1c3f04be ("nvk: Advertise VK_EXT_descriptor_buffer")
(cherry picked from commit 998dbd43d3)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38167>
2025-10-24 07:55:05 -07:00
Faith Ekstrand
ba107091c2 nvk: Look at the right pointer in GetDescriptorInfo for SSBOs
It doesn't actually matter but we shouldn't poke at the wrong union
field.

Fixes: 77db71db7d ("nvk: Implement GetDescriptorEXT")
(cherry picked from commit a13474939d)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38167>
2025-10-24 07:55:05 -07:00
Faith Ekstrand
b74000dbce nvk: Emit inactive vertex attributes
VK_KHR_maintenance9 requires that vertex attributes in shaders which map
to vertex attributes that aren't bound at the API return a consistent
value.  In order to do this, we need toemit SET_VERTEX_ATTRIBUTE_A, even
for unused attributes.  The RGBA32F format was chosen to ensure we
return (0, 0, 0, 0) from unbound attributes.

Fixes: 7692d3c0e1 ("nvk: Advertise VK_KHR_maintenance9")
(cherry picked from commit d39221cef3)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38167>
2025-10-24 07:55:04 -07:00
Mauro Rossi
fb2273df78 util: Fix gnu-empty-initializer error
Fixes the following building error happening with clang:

../src/util/os_file.c:291:29: error: use of GNU empty initializer extension [-Werror,-Wgnu-empty-initializer]
   struct epoll_event evt = {};
                            ^
1 error generated.

Fixes: 17e28652 ("util: mimic KCMP_FILE via epoll when KCMP is missing")
Cc: "25.3"
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
(cherry picked from commit 7bbbfa6670)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38167>
2025-10-24 07:55:03 -07:00
Connor Abbott
65eb3aed4b tu: Fix RT count with remapped color attachments
The index of each RT is the remapped color attachment index, so we have
to use the remapped indices when telling the HW the number of RTs.

This fixes KHR-GLES3.framebuffer_blit.scissor_blit on ANGLE once we
enabled VK_EXT_multisampled_render_to_single_sampled, which switched
ANGLE to using dynamic rendering with
VK_KHR_dynamic_rendering_local_read.

Fixes: d50eef5b06 ("tu: Support color attachment remapping")
(cherry picked from commit 8d276e0d70)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38167>
2025-10-24 07:55:02 -07:00
Lionel Landwerlin
a9653fa019 anv: destroy sets when destroying pool
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/14169
Reviewed-by: Ivan Briano <ivan.briano@intel.com>
(cherry picked from commit 2689056c82)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38167>
2025-10-24 07:55:02 -07:00
Lionel Landwerlin
159d397437 anv/brw: fix output tcs vertices
brw_prog_tcs_data::instances can be divided by vertices per threads on
earlier generations.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: a91e0e0d61 ("brw: add support for separate tessellation shader compilation")
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
Reviewed-by: Ivan Briano <ivan.briano@intel.com>
(cherry picked from commit e450297ea9)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38167>
2025-10-24 07:55:01 -07:00
Xaver Hugl
6a7effe059 vulkan/wsi: remove support for VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT
It's not really clear whether or not it should use gamma 2.2 or the piece-wise
transfer function, or how clients would use it for wider gamut in general.
Currently no compositors I know of support ext_srgb, so this shouldn't affect
applications in practice.

Signed-off-by: Xaver Hugl <xaver.hugl@kde.org>
Fixes: 4b663d56 ("vulkan/wsi: implement support for VK_EXT_hdr_metadata on Wayland")
(cherry picked from commit 14fcf145e3)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38167>
2025-10-24 07:55:00 -07:00
Konstantin Seurer
2a0a2cc5b0 aco: Fixup out_launch_size_y in the RT prolog for 1D dispatch
launch_size_y is set to ACO_RT_CONVERTED_2D_LAUNCH_SIZE for 1D
dispatches. The prolog needs to set it to 1 so that the app shader
loads the correct value.

cc: mesa-stable

(cherry picked from commit 47ffe2ecd4)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38167>
2025-10-24 07:54:59 -07:00
Faith Ekstrand
3f9f4d79d3 nvk: Disable sampleLocationsSampleCounts for 1x MSAA
Suggested-by: Mel Henning <mhenning@darkrefraction.com>
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/14108
Fixes: a34edc7500 ("nvk: Fill out sample locations on Maxwell B+")
(cherry picked from commit aa0f404f7b)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38167>
2025-10-24 07:54:59 -07:00
Faith Ekstrand
cd253df92a nvk: Include the chipset in the pipeline/binary cache UUID
Cc: mesa-stable
(cherry picked from commit d1793c7a59)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38167>
2025-10-24 07:54:58 -07:00
Lionel Landwerlin
bfd09d9891 nir/lower_io: add missing levels intrinsics to get_io_index_src_number
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: c7ac46a1d8 ("nir/lower_io: add get_io_index_src_number support for image intrinsics")
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
(cherry picked from commit aa929ea706)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38167>
2025-10-24 07:54:57 -07:00
Lionel Landwerlin
dcecd8fd1e brw: handle GLSL/GLSL tessellation parameters
Apparently various tessellation parameters come specified from
TESS_EVAL stage in GLSL while they come from the TESS_CTRL stage in
HLSL.

We switch to store the tesselation params more like shader_info with 0
values for unspecified fields. That let's us merge it with a simple OR
with values from from tcs/tes and the resulting merge can be used for
state programming.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: a91e0e0d61 ("brw: add support for separate tessellation shader compilation")
Fixes: 50fd669294 ("anv: prep work for separate tessellation shaders")
Reviewed-by: Ivan Briano <ivan.briano@intel.com>
(cherry picked from commit f3df267735)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38167>
2025-10-24 07:54:56 -07:00
Lionel Landwerlin
1648f759c1 anv: rename structure holding 3DSTATE_WM_DEPTH_STENCIL state
Cc stable for the next commit.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Cc: mesa-stable
Reviewed-by: Ivan Briano <ivan.briano@intel.com>
(cherry picked from commit 8d05b7b72e)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38167>
2025-10-24 07:54:55 -07:00
Valentine Burley
d5f7261ce5 tu: Fix maxVariableDescriptorCount with inline uniform blocks
It must not be larger than maxInlineUniformBlockSize.

Fixes VKCTS 1.4.4.0's
dEQP-VK.api.maintenance3_check.support_count_inline_uniform_block*.

Cc: mesa-stable

Signed-off-by: Valentine Burley <valentine.burley@gmail.com>
(cherry picked from commit fd2fa0fbc9)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38167>
2025-10-24 07:54:54 -07:00
Valentine Burley
2c1c52a8c8 tu: Fix indexing with variable descriptor count
Based on RADV.
The Vulkan spec says:
    "If bindingCount is zero or if this structure is not included in
     the pNext chain, the VkDescriptorBindingFlags for each descriptor
     set layout binding is considered to be zero. Otherwise, the
     descriptor set layout binding at
     VkDescriptorSetLayoutCreateInfo::pBindings[i] uses the flags in
     pBindingFlags[i]."

Fixes dEQP-VK.api.maintenance3_check.* in VKCTS 1.4.4.0.

Cc: mesa-stable

Signed-off-by: Valentine Burley <valentine.burley@gmail.com>
(cherry picked from commit 17e25b4983)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38167>
2025-10-24 07:54:52 -07:00
Dylan Baker
fe3a3b08c9 .pick_status.json: Update to fd55e874ed
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38167>
2025-10-24 07:54:46 -07:00
Dylan Baker
d9812eaea8 VERSION: bump for rc2
Some checks failed
macOS-CI / macOS-CI (dri) (push) Has been cancelled
macOS-CI / macOS-CI (xlib) (push) Has been cancelled
Signed-off-by: Dylan Baker <dylan.c.baker@intel.com>
2025-10-22 16:13:33 -07:00
Benjamin Cheng
be191ceff7 radv/video_enc: Cleanup slice count assert
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
This was left over when first enabling multiple slice encoding.

Fixes: 63e952ff2c ("radv/video: Support encoding multiple slices")
Reviewed-by: David Rosca <david.rosca@amd.com>
(cherry picked from commit b6d6c1af73)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38010>
2025-10-22 09:03:39 -07:00
Pierre-Eric Pelloux-Prayer
49bfddbd11 radeonsi: propagate shader updates for merged shaders
In case of merged shaders (eg: VS+GS), a change to VS should trigger
a GS update.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/13935
Fixes: b1a34ac95d ("radeonsi: change do_update_shaders boolean to a bitmask")
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
(cherry picked from commit 90103fe618)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38010>
2025-10-22 09:03:39 -07:00
Faith Ekstrand
0182cde848 util: Build util/cache_ops_x86.c with -msse2
__builtin_ia32_clflush() requires -msse2 so we need to set -msse2 at
least for building that file.  Fortunately, there are no GPUs that
actually need userspace cache flushing that can ever be bolted onto a
pre-SSE2 x86 CPUs.

Fixes: 555881e574 ("util/cache_ops: Add some cache flush helpers")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/14134
Reviewed-by: Mel Henning <mhenning@darkrefraction.com>
(cherry picked from commit efbecd93ba)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38010>
2025-10-22 09:03:38 -07:00
Faith Ekstrand
94ec7c686d util: Don't advertise cache ops on x86 without SSE2
Fixes: 555881e574 ("util/cache_ops: Add some cache flush helpers")
Reviewed-by: Mel Henning <mhenning@darkrefraction.com>
(cherry picked from commit 3739d7a90c)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38010>
2025-10-22 09:03:37 -07:00
Olivia Lee
4202ea6c7f panfrost: fix cl_local_size for precompiled shaders
nir_lower_compute_system_values will attempt to lower
load_workgroup_size unless workgroup_size_variable is set. For precomp
shaders, the workgroup size is set statically for each entrypoint by
nir_precompiled_build_variant. Because we call
lower_compute_system_values early, it sets the workgroup size to zero.
Temporarily setting workgroup_size_variable while we are still
processing all the entrypoints together inhibits this.

Signed-off-by: Olivia Lee <olivia.lee@collabora.com>
Fixes: 20970bcd96 ("panfrost: Add base of OpenCL C infrastructure")
Reviewed-by: Eric R. Smith <eric.smith@collabora.com>
Reviewed-by: Mary Guillemard <mary.guillemard@collabora.com>
Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
(cherry picked from commit a410d90fd2)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38010>
2025-10-22 09:03:37 -07:00
Rhys Perry
10475e8ac1 amd/lower_mem_access_bit_sizes: fix shared access when bytes<bit_size/8
This can happen with (for example) 32x2 loads with
align_mul=4,align_offset=2.

This patch does bit_size=min(bit_size,bytes) to prevent num_components
from being 0.

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Fixes: 52cd5f7e69 ("ac/nir_lower_mem_access_bit_sizes: Split unsupported shared memory instructions")
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
(cherry picked from commit b18421ae3d)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38010>
2025-10-22 09:03:36 -07:00
Rhys Perry
c1cf6e75ae amd/lower_mem_access_bit_sizes: be more careful with 8/16-bit scratch load
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Backport-to: 25.3
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
(cherry picked from commit e89b22280f)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38010>
2025-10-22 09:03:34 -07:00
Rhys Perry
2b8675fd86 amd/lower_mem_access_bit_sizes: improve subdword/unaligned SMEM lowering
Summary of changes:
- handle unaligned 16-bit scalar loads when supported_dword=true
- increases the size of 8/16/32/64-bit buffer loads which are not dword
  aligned, which can create less SMEM loads.
- handles when "bytes" is less than "bit_size / 8"

fossil-db (gfx1201):
Totals from 26 (0.03% of 79839) affected shaders:
Instrs: 12676 -> 12710 (+0.27%); split: -0.30%, +0.57%
CodeSize: 67272 -> 67384 (+0.17%); split: -0.24%, +0.40%
Latency: 44399 -> 44375 (-0.05%); split: -0.09%, +0.04%
SClause: 352 -> 344 (-2.27%)
SALU: 3972 -> 3992 (+0.50%)
SMEM: 554 -> 528 (-4.69%)

fossil-db (navi21):
Totals from 6 (0.01% of 79825) affected shaders:
Instrs: 2192 -> 2186 (-0.27%)
CodeSize: 12188 -> 12140 (-0.39%)
Latency: 10037 -> 10033 (-0.04%); split: -0.12%, +0.08%
SMEM: 124 -> 118 (-4.84%)

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Fixes: fbf0399517 ("amd/lower_mem_access_bit_sizes: lower all SMEM instructions to supported sizes")
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
(cherry picked from commit 8829fc3bd6)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38010>
2025-10-22 09:03:32 -07:00
Rhys Perry
e967da84a8 amd/lower_mem_access_bit_sizes: don't create subdword UBO loads with LLVM
These are unsupported.

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/14127
Fixes: fbf0399517 ("amd/lower_mem_access_bit_sizes: lower all SMEM instructions to supported sizes")
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
(cherry picked from commit 79b2fa785d)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38010>
2025-10-22 09:03:31 -07:00
Dylan Baker
2a8f2ff397 .pick_status.json: Update to e38491eb18
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38010>
2025-10-22 09:03:27 -07:00
Mel Henning
7a30a71c45 nvk: VK_DEPENDENCY_ASYMMETRIC_EVENT_BIT_KHR
This was missed in the original maintenance9 MR.

Fixes the flakes in test
dEQP-VK.synchronization2.op.single_queue.event.write_ssbo_compute_read_ssbo_compute.buffer_16384_maintenance9

Fixes: 7692d3c0 ("nvk: Advertise VK_KHR_maintenance9")
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
(cherry picked from commit 28fbc6addb)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38010>
2025-10-21 14:42:55 -07:00
Karol Herbst
9c57c0a194 nak: fix MMA latencies on Ampere
Acked-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Fixes: 7a01953a39 ("nak: Add Ampere and Ada latency information")
(cherry picked from commit e7dca5a6ca)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38010>
2025-10-21 14:42:54 -07:00
Karol Herbst
425c49ebf2 nak: ensure deref has a ptr_stride in cmat load/store lowering
With untyped pointer we might get a deref_cast with a 0 ptr_stride. But we
were supposed to ignore the stride information on the pointer anyway, so
let's do that properly now.

Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Fixes: 05dca16143 ("nak: extract nir_intrinsic_cmat_load lowering into a function")
(cherry picked from commit 3bbf3f7826)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38010>
2025-10-21 14:42:54 -07:00
Karol Herbst
7b7cb63a14 nak: extract cmat load/store element offset calculation
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Fixes: 05dca16143 ("nak: extract nir_intrinsic_cmat_load lowering into a function")
(cherry picked from commit f632bfc715)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38010>
2025-10-21 14:42:53 -07:00
Faith Ekstrand
1941ada4a6 panvk: Fix integer dot product properties
We already set has_[su]dot_4x8[_sat] in nir_shader_compiler_options so
we're already getting the opcodes.  We just need to advertise the
features properly.  If bifrost_compile.h is to be believed, those are
all available starting at gen 9.

Closes: https://gitlab.freedesktop.org/panfrost/mesa/-/issues/218
Closes: https://gitlab.freedesktop.org/panfrost/mesa/-/issues/219
Fixes: f7f9b3d170 ("panvk: Move to vk_properties")
Reviewed-by: Mary Guillemard <mary.guillemard@collabora.com>
Reviewed-by: Lars-Ivar Hesselberg Simonsen <lars-ivar.simonsen@arm.com>
(cherry picked from commit 38950083ae)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38010>
2025-10-21 14:42:52 -07:00
Lionel Landwerlin
e982234bb6 nir/divergence: fix handling of intel uniform block load
Those are normally uniform always, but for the purpose of fused
threads handling, we need to check their sources.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: ca1533cd03 ("nir/divergence: add a new mode to cover fused threads on Intel HW")
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
(cherry picked from commit 255d1e883d)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38010>
2025-10-21 14:42:52 -07:00
Lionel Landwerlin
dbbadebe13 brw: fix ballot() type operations in shaders with HALT instructions
Fixes dEQP-VK.reconvergence.terminate_invocation.bit_count

LNL fossildb stats:

 Totals from 16489 (3.36% of 490184) affected shaders:
 Instrs: 3710499 -> 3710500 (+0.00%)
 Cycle count: 91601018 -> 90305642 (-1.41%); split: -1.81%, +0.40%
 Max dispatch width: 523936 -> 523952 (+0.00%); split: +0.02%, -0.01%

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Cc: mesa-stable
Reviewed-by: Francisco Jerez <currojerez@riseup.net>
(cherry picked from commit 757c042e39)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38010>
2025-10-21 14:42:51 -07:00
Lionel Landwerlin
0d100cc078 brw: only consider cross lane access on non scalar VGRFs
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: 1bff4f93ca ("brw: Basic infrastructure to store convergent values as scalars")
Reviewed-by: Francisco Jerez <currojerez@riseup.net>
(cherry picked from commit 70aa028f27)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38010>
2025-10-21 14:42:50 -07:00
Lionel Landwerlin
f656d062e3 brw: constant fold u2u16 conversion on MCS messages
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: bddfbe7fb1 ("brw/blorp: lower MCS fetching in NIR")
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
(cherry picked from commit f48c9c3a37)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38010>
2025-10-21 14:42:50 -07:00
Mel Henning
847ad886d6 nvk: Really fix maxVariableDescriptorCount w/ iub
I didn't test "nvk: Fix maxVariableDescriptorCount with iub" as
thoroughly as I should have and it regressed
dEQP-VK.api.maintenance3_check.descriptor_set because we were then
violating the requirement that maxPerSetDescriptors describes a limit
that's guaranteed to be supported (and reported as supported in
GetDescriptorSetLayoutSupport).

That commit was also based on a misreading of nvk_nir_lower_descriptors.c
where I thought that the end offset of an inline uniform block needed to
be less than the size of a UBO. That is not the case - on closer
inspection that code gracefully falls back to placing IUBs in globablmem
if necessary. So, we can afford to be less strict about our IUB sizing
and only require that IUBs follow the existing limit imposed by
maxInlineUniformBlockSize.

Fixes: ff7f785f09 ("nvk: Fix maxVariableDescriptorCount with iub")
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
(cherry picked from commit 77cd629b34)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38010>
2025-10-21 14:42:48 -07:00
Emma Anholt
5dcc65643c nir/shrink_stores: Don't shrink stores to an invalid num_components.
Avoids a regression in the CL CTS on the next commit.

Fixes: 2dba7e6056 ("nir: split nir_opt_shrink_stores from nir_opt_shrink_vectors")
(cherry picked from commit 537cc4e0ff)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38010>
2025-10-21 14:42:47 -07:00
Yiwei Zhang
ab7bda0a1b panvk: fix to advance vs res_table properly
Fix a regression from an unfortunate typo.

Fixes: 48e8d6d207 ("panfrost, panvk: The size of resource tables needs to be a multiple of 4.")
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Christoph Pillmayer <christoph.pillmayer@arm.com>
(cherry picked from commit 387f75f43d)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38010>
2025-10-21 14:42:29 -07:00
Yiwei Zhang
a02d8d5767 panvk: fix to advance vs driver_set properly
Should only set once outside the multidraw loop so that per draw can
patch its own own desc attribs when needed.

Fixes: a5a0dd3ccc ("panvk: Implement multiDrawIndirect for v10+")
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Acked-by: Christoph Pillmayer <christoph.pillmayer@arm.com>
(cherry picked from commit 800c4d3430)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38010>
2025-10-21 14:42:29 -07:00
Timur Kristóf
13fa1460dd ac/nir/ngg_mesh: Lower num_subgroups to constant
Mesh shader workgroups always have the same amount of subgroups.

When the API workgroup size is the same as the real workgroup
size, this is a small optimization (using a constant instead of
a shader arg).

When the API workgroup size is smaller than the real workgroup
size (eg. when the number of output vertices or primitves is
greater than the API workgroup size on RDNA 2), this fixes a
potential bug because num_subgroups would return the "real"
workgroup size instead of the API one.

Cc: mesa-stable
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Qiang Yu <yuq825@gmail.com>
(cherry picked from commit d20049b430)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38010>
2025-10-21 14:42:29 -07:00
Patrick Lerda
14544ef278 r600: update nplanes support
This change fixes "piglit/bin/ext_image_dma_buf_import-export -auto".

Fixes: 02aaf360ae ("r600: Implement resource_get_param")
Signed-off-by: Patrick Lerda <patrick9876@free.fr>
(cherry picked from commit 84dc9af3d4)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38010>
2025-10-21 14:42:28 -07:00
Patrick Lerda
602b4a2924 r600: fix r600_draw_rectangle refcnt imbalance
The object buf is referenced at the beginning of the
r600_draw_rectangle() function and should be freed
at the end. This issue was introduced with cbb6e0277f.

Fixes: cbb6e0277f ("r600: stop using util_set_vertex_buffers")
Signed-off-by: Patrick Lerda <patrick9876@free.fr>
(cherry picked from commit 3b1e3a40a8)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38010>
2025-10-21 14:42:28 -07:00
Jose Maria Casanova Crespo
717e8a8caf v3d: mark FRAG_RESULT_COLOR as output_written on SAND blits FS
With the introduction of "v3d: Add support for 16bit normalised
formats" https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35820
nir_lower_fragcolor is always called if shaders outputs_written shows
that FRAG_RESULT_COLOR is used.

But on SAND8/30 blit fragment shaders although the FRAG_RESULT_COLOR
is used, it was not marked as output_written so the lowering was not
applied.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/14141
Fixes: ee48e81b26 ("v3d: Always lower frag color")
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
(cherry picked from commit a131530dd1)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38010>
2025-10-21 14:42:27 -07:00
Emma Anholt
40ff53c5b8 wsi: Fix the flagging of dma_buf_sync_file for the amdgpu workaround.
In my regression fix, I covered one of the two paths that had stopped
setting the implicit_sync flag and thus triggered the amdgpu behavior we
don't want, but probably the less common one.

Fixes: f7cbc7b1c5 ("radv: Allocate BOs as implicit sync even if the WSI is doing implicit sync.")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/13942
(cherry picked from commit aa96444149)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38010>
2025-10-21 14:42:27 -07:00
Marek Olšák
bf9e1f2e37 winsys/radeon: fix completely broken tessellation for gfx6-7
The info was moved to radeon_info, but it was only set for the amdgpu
kernel driver. It was uninitialized for radeon.

Fixes: d82eda72a1 - ac/gpu_info: move HS info into radeon_info

Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
(cherry picked from commit f5b648f6d3)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38010>
2025-10-21 14:42:26 -07:00
Benjamin Cheng
c3cf272a04 radv/video: Fill maxCodedExtent caps first
Later code (i.e. max qp map extent filling) depends on this.

Fixes: ae6ea69c85 ("radv: Implement VK_KHR_video_encode_quantization_map")
Reviewed-by: David Rosca <david.rosca@amd.com>
(cherry picked from commit b1370e1935)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38010>
2025-10-21 14:42:25 -07:00
Dylan Baker
30ba8880b4 .pick_status.json: Update to 28fbc6addb
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38010>
2025-10-21 14:42:24 -07:00
Job Noorman
42ab1c6f3c nir: mark fneg distribution through fadd/ffma as nsz
df1876f615 ("nir: Mark negative re-distribution on fadd as imprecise")
fixed the fadd case by marking it as imprecise. This commit fixes the
ffma case for the same reason.

However, "imprecise" isn't necessary and nowadays we have "nsz" which is
more accurate here. Use that for both fadd and ffma.

Signed-off-by: Job Noorman <jnoorman@igalia.com>
Fixes: 62795475e8 ("nir/algebraic: Distribute source modifiers into instructions")
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
(cherry picked from commit ad421cdf2e)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38010>
2025-10-17 07:41:30 -07:00
Josh Simmons
674e2a702a radv: Fix crash in sqtt due to uninitalized value
Fixes: 772b9ce411 ("radv: Remove qf from radv_spm/sqtt/perfcounter where applicable")
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
(cherry picked from commit b10c1a1952)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38010>
2025-10-17 07:41:29 -07:00
Mike Blumenkrantz
756618ee3b zink: consistently set/unset msrtss in begin_rendering
this has to always be set or unset, never persistent from previous renderpass

Fixes: 5080f2b6f5 ("zink: disable msrtss handling when blitting")
(cherry picked from commit f74cf45078)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38010>
2025-10-17 07:41:28 -07:00
Marek Olšák
ca7d2daf5f r300: fix DXTC blits
Fixes: 9d359c6d10 - gallium: delete pipe_surface::width and pipe_surface::height
(cherry picked from commit 733ba77bfe)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38010>
2025-10-17 07:41:27 -07:00
Xaver Hugl
45aafef631 vulkan/wsi: require extended target volume support for scRGB
It's hardly going to be useful without that

Signed-off-by: Xaver Hugl <xaver.hugl@kde.org>
Fixes: 4b663d56 ("vulkan/wsi: implement support for VK_EXT_hdr_metadata on Wayland")
(cherry picked from commit 892cf427a0)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38010>
2025-10-17 07:41:25 -07:00
Dylan Baker
8711394383 .pick_status.json: Mark c20e2733bf as denominated
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38010>
2025-10-17 07:41:23 -07:00
Dylan Baker
289c768e88 .pick_status.json: Update to ad421cdf2e
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38010>
2025-10-17 07:40:05 -07:00
Lionel Landwerlin
84655b4b5d anv: fix image-to-image copies of TileW images
The intermediate buffer between the 2 images is linear, its stride
should be a function of the tile's logical width.

Normally this should map to the values reported by ISL except for
TileW where for some reason it was decided to report 128 for TileW
instead of the actual 64 size (see isl_tiling_get_info() ISL_TILING_W
case)

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Cc: mesa-stable
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
(cherry picked from commit 77fb8fb062)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38010>
2025-10-16 11:37:38 -07:00
Valentine Burley
fd6b9c70b6 docs: Update LAVA caching setup
After a recent change, `piglit-traces.sh` automatically sets the caching
proxy, so update the docs to reflect this.

Also update the name of the variable from `FDO_HTTP_CACHE_URI` to
`LAVA_HTTP_CACHE_URI`.

Fixes: fa74e939bf ("ci/piglit: automatically use LAVA proxy")

Signed-off-by: Valentine Burley <valentine.burley@collabora.com>
(cherry picked from commit 28e73a6239)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38010>
2025-10-16 11:37:37 -07:00
Lionel Landwerlin
9bb7bf9c66 Revert "wsi: Implements scaling controls for DRI3 presentation."
This reverts commit a219308867.

It's failing most of the tests on Anv :

$ ./deqp-vk -n dEQP-VK.wsi.xlib.maintenance1.scaling.*

Test run totals:
  Passed:        88/2422 (3.6%)
  Failed:        576/2422 (23.8%)
  Not supported: 1758/2422 (72.6%)
  Warnings:      0/2422 (0.0%)
  Waived:        0/2422 (0.0%)

The only passing tests seem to be with this pattern :

 dEQP-VK.wsi.xlib.maintenance1.scaling.*.same_size_and_aspect

(cherry picked from commit 2baa3b8c06)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38010>
2025-10-16 11:37:36 -07:00
Dylan Baker
f510e6a1bd .pick_status.json: Update to 3b2f7ed918
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38010>
2025-10-16 11:37:29 -07:00
Dylan Baker
40f7bef16c VERSION: bump for 25.3.0-rc1
Signed-off-by: Dylan Baker <dylan.c.baker@intel.com>
2025-10-15 20:56:25 -07:00
5816 changed files with 392690 additions and 521916 deletions

View file

@ -1,4 +1,2 @@
# Vendored code # Vendored code
src/amd/vulkan/radix_sort/* src/amd/vulkan/radix_sort/*
src/gallium/drivers/ethosu/mlw_codec/**/*
src/gallium/drivers/ethosu/ethosu_encode_support.h

View file

@ -8,7 +8,7 @@ charset = utf-8
insert_final_newline = true insert_final_newline = true
tab_width = 8 tab_width = 8
[*.{c,h,cpp,hpp,cc,hh,y,yy,cl,glsl}] [*.{c,h,cpp,hpp,cc,hh,y,yy,cl}]
indent_style = space indent_style = space
indent_size = 3 indent_size = 3
max_line_length = 78 max_line_length = 78

View file

@ -77,6 +77,3 @@ c7bf3b69ebc8f2252dbf724a4de638e6bb2ac402
# freedreno/a6xx: The great register renaming # freedreno/a6xx: The great register renaming
7fd99c88b9cd5c0c8c1cb3e92383acac5cb8220b 7fd99c88b9cd5c0c8c1cb3e92383acac5cb8220b
# radv: re-format using clang-format
1492de1bc3610539b93d8ad17892e7139cd4b05d

View file

@ -184,7 +184,6 @@ stages:
- freedreno-nightly - freedreno-nightly
- etnaviv - etnaviv
- etnaviv-nightly - etnaviv-nightly
- imagination-nightly
- software-renderer - software-renderer
- software-renderer-nightly - software-renderer-nightly
- layered-backends - layered-backends
@ -234,14 +233,13 @@ include:
rules: rules:
- !reference [.common-rules, rules] - !reference [.common-rules, rules]
# Run when re-enabling a disabled farm, but not when disabling it # Run when re-enabling a disabled farm, but not when disabling it
- !reference [.disable-farm-rules, rules] - !reference [.disable-farm-mr-rules, rules]
# Never run immediately after merging, as we just ran everything # Never run immediately after merging, as we just ran everything
- !reference [.never-post-merge-rules, rules] - !reference [.never-post-merge-rules, rules]
# Only rebuild containers in merge pipelines if any tags have been # Only rebuild containers in merge pipelines if any tags have been
# changed, else we'll just use the already-built containers # changed, else we'll just use the already-built containers
- if: *is-merge-attempt - if: *is-merge-attempt
changes: &image_tags_path changes: &image_tags_path
- .gitlab-ci.yml
- .gitlab-ci/image-tags.yml - .gitlab-ci/image-tags.yml
when: on_success when: on_success
# Skip everything for pre-merge and merge pipelines which don't change # Skip everything for pre-merge and merge pipelines which don't change
@ -285,7 +283,7 @@ include:
rules: rules:
- !reference [.common-rules, rules] - !reference [.common-rules, rules]
# Run when re-enabling a disabled farm, but not when disabling it # Run when re-enabling a disabled farm, but not when disabling it
- !reference [.disable-farm-rules, rules] - !reference [.disable-farm-mr-rules, rules]
# Never run immediately after merging, as we just ran everything # Never run immediately after merging, as we just ran everything
- !reference [.never-post-merge-rules, rules] - !reference [.never-post-merge-rules, rules]
# Build everything in merge pipelines, if any files affecting the pipeline # Build everything in merge pipelines, if any files affecting the pipeline
@ -344,7 +342,7 @@ include:
rules: rules:
- !reference [.common-rules, rules] - !reference [.common-rules, rules]
# Run when re-enabling a disabled farm, but not when disabling it # Run when re-enabling a disabled farm, but not when disabling it
- !reference [.disable-farm-rules, rules] - !reference [.disable-farm-mr-rules, rules]
# Never run immediately after merging, as we just ran everything # Never run immediately after merging, as we just ran everything
- !reference [.never-post-merge-rules, rules] - !reference [.never-post-merge-rules, rules]
# Build everything in merge pipelines, if any files affecting the pipeline # Build everything in merge pipelines, if any files affecting the pipeline

View file

@ -1,5 +0,0 @@
# wsi_common_display.c doesn't properly hand off the oldSwapchain to the new one,
# and you can end up trying to atomic commit before the last present has flipped,
# and the kernel throws an error.
dEQP-VK.wsi.direct.present_timing.basic.retired_swapchain
dEQP-VK.wsi.direct_drm.present_timing.basic.retired_swapchain

View file

@ -1,39 +0,0 @@
# These tests require DRM master priveleges (sole access to the device),
# otherwise they return Skip.
dEQP-VK.wsi.direct.*
dEQP-VK.wsi.acquire_drm.*
# These tests try to allocate up to half of the device memory, which doesn't go
# well when other tests are running in parallel.
dEQP-VK.memory.mapping.*.full.variable.implicit_unmap
dEQP-VK.memory.mapping.*.full.variable.implicit_unmap_map2
# These allocate 600+MB of just the string for the spirv assembly in addition to
# normal deqp-vk memory overhead, which loves to thrash swap with other tests.
dEQP-VK.spirv_assembly.instruction.*.spirv_ids_abuse.lots_ids.*
# 2GB GPU memory for zink-tu
spec@!opengl 1.2@tex3d-maxsize
# 1GB GPU memory for a 16kx16k-sized driver.
spec@ext_framebuffer_object@fbo-maxsize
# 6GB GPU memory for zink-tu
spec@!opengl 1.1@max-texture-size
# 2GB GPU memory on tu
vkd3d-test_committed_non_zeroed_behavior_stress
# 600MB GPU memory on tu
vkd3d-test_fence_ping_pong_deadlock_stress_plain
# 2GB GPU memory on tu
vkd3d-test_heap_non_zeroed_behavior_stress
# 500MB GPU memory on tu
vkd3d-test_fence_wait_robustness
# Allocates a 2GB texel buffer
vkd3d-test_large_texel_buffer_view
# 550MB GPU memory on tu
vkd3d-test_placed_image_alignment
# Allocates until heap OOM.
vkd3d-test_stress_fallback_render_target_allocation_device
# 3GB GPU memory on tu
vkd3d-test_stress_suballocation_multithread
# 2GB GPU memory on tu
vkd3d-test_stress_suballocation_rebar

View file

@ -26,6 +26,20 @@ glx@glx_arb_sync_control@timing.*
# This test is not built with waffle, while we do build tests with waffle # This test is not built with waffle, while we do build tests with waffle
spec@!opengl 1.1@windowoverlap spec@!opengl 1.1@windowoverlap
# These tests all read from the front buffer after a swap. Given that we
# run piglit tests in parallel in Mesa CI, and don't have a compositor
# running, the frontbuffer reads may end up with undefined results from
# windows overlapping us.
#
# Piglit does mark these tests as not to be run in parallel, but deqp-runner
# doesn't respect that. We need to extend deqp-runner to allow some tests to be
# marked as single-threaded and run after the rayon loop if we want to support
# them.
#
# Note that "glx-" tests don't appear in x11-skips.txt because they can be
# run even if PIGLIT_PLATFORM=gbm (for example)
glx@glx-copy-sub-buffer.*
# These test the loader more than the implementation and are broken because the # These test the loader more than the implementation and are broken because the
# Vulkan loader in Debian is too old # Vulkan loader in Debian is too old
dEQP-VK.api.get_device_proc_addr.non_enabled dEQP-VK.api.get_device_proc_addr.non_enabled
@ -35,12 +49,27 @@ dEQP-VK.api.version_check.unavailable_entry_points
spec@arb_program_interface_query@arb_program_interface_query-getprogramresourceindex spec@arb_program_interface_query@arb_program_interface_query-getprogramresourceindex
spec@arb_program_interface_query@arb_program_interface_query-getprogramresourceindex@'vs_input2[1][0]' on GL_PROGRAM_INPUT spec@arb_program_interface_query@arb_program_interface_query-getprogramresourceindex@'vs_input2[1][0]' on GL_PROGRAM_INPUT
# gbm does not support reading the front buffer after a swapbuffers, and # These tests attempt to read from the front buffer after a swap. They are skipped
# on both X11 and gbm, but for different reasons:
#
# On X11: Given that we run piglit tests in parallel in Mesa CI, and don't have a
# compositor running, the frontbuffer reads may end up with undefined results from
# windows overlapping us.
# Piglit does mark these tests as not to be run in parallel, but deqp-runner
# doesn't respect that. We need to extend deqp-runner to allow some tests to be
# marked as single-threaded and run after the rayon loop if we want to support
# them.
# Other front-buffer access tests like fbo-sys-blit, fbo-sys-sub-blit, or
# fcc-front-buffer-distraction don't appear here, because the DRI3 fake-front
# handling should be holding the pixels drawn by the test even if we happen to fail
# GL's window system pixel occlusion test.
# Note that glx skips don't appear here, they're in all-skips.txt (in case someone
# sets PIGLIT_PLATFORM=gbm to mostly use gbm, but still has an X server running).
#
# On gbm: gbm does not support reading the front buffer after a swapbuffers, and
# that's intentional. Don't bother running these tests when PIGLIT_PLATFORM=gbm. # that's intentional. Don't bother running these tests when PIGLIT_PLATFORM=gbm.
# Note that this doesn't include tests like fbo-sys-blit, which draw/read front # Note that this doesn't include tests like fbo-sys-blit, which draw/read front
# but don't swap. # but don't swap.
#
# piglit should probably be fixed to throw skip on this platform
spec@!opengl 1.0@gl-1.0-swapbuffers-behavior spec@!opengl 1.0@gl-1.0-swapbuffers-behavior
spec@!opengl 1.1@read-front spec@!opengl 1.1@read-front
@ -50,7 +79,3 @@ spec@!opengl 1.1@read-front
# Also, individually, it was disabled in most of the tests as it is # Also, individually, it was disabled in most of the tests as it is
# either too slow or results in an OOM # either too slow or results in an OOM
spec@!opengl 1.1@streaming-texture-leak spec@!opengl 1.1@streaming-texture-leak
# Fails everywhere, invalid test: https://gitlab.khronos.org/Tracker/vk-gl-cts/-/issues/6317
dEQP-VK.spirv_assembly.instruction.*.float_controls2.*.input_args.mat_det_testedWithout_NotNaN_arg1_nan_arg2_one_res_nan*
dEQP-VK.spirv_assembly.instruction.*.float_controls2.*.input_args.cross_testedWithout_NotNaN_arg1_nan_arg2_one_res_nan*

View file

@ -1,6 +0,0 @@
# These are variants of
# dEQP-VK.memory.mapping.suballocation.full.variable.implicit_unmap* that
# are very slow (often 30s on DUTs) due to allocating, mapping, filling,
# and reading back 32GB of memory, while not providing interesting pre-merge
# coverage for us.
dEQP-VK.memory.mapping.dedicated_alloc.*.implicit_unmap.*

View file

@ -8,18 +8,8 @@ set -uex
: "${ADB:=adb}" : "${ADB:=adb}"
$ADB wait-for-device $ADB wait-for-device root
for i in $(seq 1 5); do sleep 1
if $ADB root; then
break
fi
if [ "$i" -eq 5 ]; then
echo "Failed to get adb root after 5 attempts"
exit 1
fi
sleep 2
done
$ADB wait-for-device
# overlay # overlay
@ -81,10 +71,17 @@ $ADB push "$INSTALL/lib/libEGL.so" /vendor/lib64/egl/libEGL_mesa.so
$ADB push "$INSTALL/lib/libGLESv1_CM.so" /vendor/lib64/egl/libGLESv1_CM_mesa.so $ADB push "$INSTALL/lib/libGLESv1_CM.so" /vendor/lib64/egl/libGLESv1_CM_mesa.so
$ADB push "$INSTALL/lib/libGLESv2.so" /vendor/lib64/egl/libGLESv2_mesa.so $ADB push "$INSTALL/lib/libGLESv2.so" /vendor/lib64/egl/libGLESv2_mesa.so
# Remove and replace Vulkan drivers # Remove and replace Vulkan drivers:
if [ "${CUTTLEFISH_GPU_MODE:-}" = "venus" ] || [ "${CUTTLEFISH_GPU_MODE:-}" = "venus_guest_angle" ]; then # - For Cuttlefish virtual machines, replace lavapipe or venus
# - For Android hardware, replace the Vulkan driver specified by VK_DRIVER
if [ -n "${CUTTLEFISH_GPU_MODE:-}" ]; then
if [ "$CUTTLEFISH_GPU_MODE" = "mesa_swrast" ] || [ "$CUTTLEFISH_GPU_MODE" = "mesa_swrast_guest_angle" ]; then
$ADB shell rm -f /vendor/lib64/hw/vulkan.lvp.so*
$ADB push "$INSTALL/lib/libvulkan_lvp.so" /vendor/lib64/hw/vulkan.lvp.so
else
$ADB shell rm -f /vendor/lib64/hw/vulkan.virtio.so* $ADB shell rm -f /vendor/lib64/hw/vulkan.virtio.so*
$ADB push "$INSTALL/lib/libvulkan_virtio.so" /vendor/lib64/hw/vulkan.virtio.so $ADB push "$INSTALL/lib/libvulkan_virtio.so" /vendor/lib64/hw/vulkan.virtio.so
fi
else else
$ADB shell rm -f /vendor/lib64/hw/vulkan.${VK_DRIVER}.so* $ADB shell rm -f /vendor/lib64/hw/vulkan.${VK_DRIVER}.so*
$ADB push "$INSTALL/lib/libvulkan_${VK_DRIVER}.so" /vendor/lib64/hw/vulkan.${VK_DRIVER}.so $ADB push "$INSTALL/lib/libvulkan_${VK_DRIVER}.so" /vendor/lib64/hw/vulkan.${VK_DRIVER}.so
@ -132,6 +129,7 @@ if ! printf "%s" "$VK_RUNTIME_VERSION" | grep -Fq -- "${MESA_BUILD_VERSION}"; th
fi fi
get_surfaceflinger_pid() { get_surfaceflinger_pid() {
while [ "$($ADB shell dumpsys -l | grep 'SurfaceFlinger$')" = "" ] ; do sleep 1; done
$ADB shell ps -A | grep -i surfaceflinger | tr -s ' ' | cut -d ' ' -f 2 $ADB shell ps -A | grep -i surfaceflinger | tr -s ' ' | cut -d ' ' -f 2
} }

View file

@ -1,4 +1,11 @@
# Skip these tests when running fractional dEQP batches, as the AHB and WSI tests are # Skip these tests when running fractional dEQP batches, as the AHB tests are expected
# expected to be handled separately in non-fractional runs within the deqp-runner suite. # to be handled separately in a non-fractional run within the deqp-runner suite.
dEQP-VK.api.external.memory.android_hardware_buffer.* dEQP-VK.api.external.memory.android_hardware_buffer.*
# Skip all WSI tests: the DEQP_ANDROID_EXE build used can't create native windows, as
# only APKs support window creation on Android.
dEQP-VK.image.swapchain_mutable.*
dEQP-VK.wsi.* dEQP-VK.wsi.*
# These tests cause hangs and need to be skipped for now.
dEQP-VK.synchronization*

View file

@ -5,3 +5,12 @@ dEQP-GLES3.functional.transform_feedback.random.*
dEQP-GLES31.functional.program_interface_query.transform_feedback_varying.*_array_element dEQP-GLES31.functional.program_interface_query.transform_feedback_varying.*_array_element
dEQP-GLES31.functional.program_interface_query.transform_feedback_varying.type.*.array.* dEQP-GLES31.functional.program_interface_query.transform_feedback_varying.type.*.array.*
KHR-GLES31.core.program_interface_query.transform-feedback-types KHR-GLES31.core.program_interface_query.transform-feedback-types
# CTS bug - https://gerrit.khronos.org/c/vk-gl-cts/+/17901
# https://issues.angleproject.org/issues/436377594#comment6
dEQP-GLES31.functional.debug.negative_coverage.log.advanced_blend.attachment_advanced_equation
dEQP-GLES31.functional.debug.negative_coverage.log.advanced_blend.blend_qualifier_mismatch
dEQP-GLES31.functional.debug.negative_coverage.log.compute.invalid_program_query
dEQP-GLES31.functional.debug.negative_coverage.log.shader.link_program
dEQP-GLES31.functional.debug.negative_coverage.log.shader.use_program
dEQP-GLES31.functional.debug.negative_coverage.log.tessellation.single_tessellation_stage

View file

@ -31,6 +31,7 @@
optional: true optional: true
- job: debian-arm32 - job: debian-arm32
artifacts: false artifacts: false
- !reference [.required-for-hardware-jobs, needs]
# ARM64 testing of bare-metal boards attached to an x86 gitlab-runner system # ARM64 testing of bare-metal boards attached to an x86 gitlab-runner system
.baremetal-test-arm64-gl: .baremetal-test-arm64-gl:
@ -45,6 +46,7 @@
optional: true optional: true
- job: debian-arm64 - job: debian-arm64
artifacts: false artifacts: false
- !reference [.required-for-hardware-jobs, needs]
# ARM64 testing of bare-metal boards attached to an x86 gitlab-runner system # ARM64 testing of bare-metal boards attached to an x86 gitlab-runner system
.baremetal-test-arm64-vk: .baremetal-test-arm64-vk:
@ -59,6 +61,7 @@
optional: true optional: true
- job: debian-arm64 - job: debian-arm64
artifacts: false artifacts: false
- !reference [.required-for-hardware-jobs, needs]
# ARM32/64 testing of bare-metal boards attached to an x86 gitlab-runner system, using an asan mesa build # ARM32/64 testing of bare-metal boards attached to an x86 gitlab-runner system, using an asan mesa build
.baremetal-arm32-asan-test-gl: .baremetal-arm32-asan-test-gl:
@ -70,6 +73,7 @@
optional: true optional: true
- job: debian-arm32-asan - job: debian-arm32-asan
artifacts: false artifacts: false
- !reference [.required-for-hardware-jobs, needs]
.baremetal-arm64-asan-test-gl: .baremetal-arm64-asan-test-gl:
variables: variables:
@ -80,6 +84,7 @@
optional: true optional: true
- job: debian-arm64-asan - job: debian-arm64-asan
artifacts: false artifacts: false
- !reference [.required-for-hardware-jobs, needs]
.baremetal-arm64-asan-test-vk: .baremetal-arm64-asan-test-vk:
variables: variables:
@ -90,6 +95,7 @@
optional: true optional: true
- job: debian-arm64-asan - job: debian-arm64-asan
artifacts: false artifacts: false
- !reference [.required-for-hardware-jobs, needs]
.baremetal-arm64-ubsan-test-gl: .baremetal-arm64-ubsan-test-gl:
extends: extends:
@ -102,6 +108,7 @@
optional: true optional: true
- job: debian-arm64-ubsan - job: debian-arm64-ubsan
artifacts: false artifacts: false
- !reference [.required-for-hardware-jobs, needs]
.baremetal-arm64-ubsan-test-vk: .baremetal-arm64-ubsan-test-vk:
extends: extends:
@ -114,6 +121,7 @@
optional: true optional: true
- job: debian-arm64-ubsan - job: debian-arm64-ubsan
artifacts: false artifacts: false
- !reference [.required-for-hardware-jobs, needs]
.baremetal-deqp-test: .baremetal-deqp-test:
variables: variables:

View file

@ -75,6 +75,8 @@ section_start prepare_rootfs "Preparing rootfs components"
set -ex set -ex
date +'%F %T'
# Clear out any previous run's artifacts. # Clear out any previous run's artifacts.
rm -rf results/ rm -rf results/
mkdir -p results mkdir -p results
@ -83,6 +85,8 @@ mkdir -p results
# state, since it's volume-mounted on the host. # state, since it's volume-mounted on the host.
rsync -a --delete $BM_ROOTFS/ /nfs/ rsync -a --delete $BM_ROOTFS/ /nfs/
date +'%F %T'
# If BM_BOOTFS is an URL, download it # If BM_BOOTFS is an URL, download it
if echo $BM_BOOTFS | grep -q http; then if echo $BM_BOOTFS | grep -q http; then
curl -L --retry 4 -f --retry-all-errors --retry-delay 60 \ curl -L --retry 4 -f --retry-all-errors --retry-delay 60 \
@ -90,6 +94,8 @@ if echo $BM_BOOTFS | grep -q http; then
BM_BOOTFS=/tmp/bootfs.tar BM_BOOTFS=/tmp/bootfs.tar
fi fi
date +'%F %T'
# If BM_BOOTFS is a file, assume it is a tarball and uncompress it # If BM_BOOTFS is a file, assume it is a tarball and uncompress it
if [ -f "${BM_BOOTFS}" ]; then if [ -f "${BM_BOOTFS}" ]; then
mkdir -p /tmp/bootfs mkdir -p /tmp/bootfs
@ -97,6 +103,8 @@ if [ -f "${BM_BOOTFS}" ]; then
BM_BOOTFS=/tmp/bootfs BM_BOOTFS=/tmp/bootfs
fi fi
date +'%F %T'
# Install kernel modules (it could be either in /lib/modules or # Install kernel modules (it could be either in /lib/modules or
# /usr/lib/modules, but we want to install in the latter) # /usr/lib/modules, but we want to install in the latter)
if [ -n "${BM_BOOTFS}" ]; then if [ -n "${BM_BOOTFS}" ]; then
@ -107,6 +115,8 @@ else
fi fi
date +'%F %T'
# Install kernel image + bootloader files # Install kernel image + bootloader files
if [ -z "$BM_BOOTFS" ]; then if [ -z "$BM_BOOTFS" ]; then
mv "${BM_KERNEL}" "${BM_DTB}.dtb" /tftp/ mv "${BM_KERNEL}" "${BM_DTB}.dtb" /tftp/
@ -114,9 +124,13 @@ else # BM_BOOTFS
rsync -aL --delete $BM_BOOTFS/boot/ /tftp/ rsync -aL --delete $BM_BOOTFS/boot/ /tftp/
fi fi
date +'%F %T'
# Create the rootfs in the NFS directory # Create the rootfs in the NFS directory
. $BM/rootfs-setup.sh /nfs . $BM/rootfs-setup.sh /nfs
date +'%F %T'
echo "$BM_CMDLINE" > /tftp/cmdline.txt echo "$BM_CMDLINE" > /tftp/cmdline.txt
# Add some options in config.txt, if defined # Add some options in config.txt, if defined
@ -166,10 +180,13 @@ python3 $CI_INSTALL/custom_logger.py ${STRUCTURED_LOG_FILE} --close-dut-job
python3 $CI_INSTALL/custom_logger.py ${STRUCTURED_LOG_FILE} --close python3 $CI_INSTALL/custom_logger.py ${STRUCTURED_LOG_FILE} --close
set -e set -e
date +'%F %T'
# Bring artifacts back from the NFS dir to the build dir where gitlab-runner # Bring artifacts back from the NFS dir to the build dir where gitlab-runner
# will look for them. # will look for them.
cp -Rp /nfs/results/. results/ cp -Rp /nfs/results/. results/
date +'%F %T'
section_end dut_cleanup section_end dut_cleanup
exit $ret exit $ret

View file

@ -25,16 +25,17 @@ import argparse
import os import os
import re import re
import sys import sys
import threading
from custom_logger import CustomLogger from custom_logger import CustomLogger
from serial_buffer import SerialBuffer from serial_buffer import SerialBuffer
class PoERun: class PoERun:
def __init__(self, args, boot_timeout, test_timeout, logger): def __init__(self, args, boot_timeout, test_timeout, logger):
self.powerup = args.powerup self.powerup = args.powerup
self.powerdown = args.powerdown self.powerdown = args.powerdown
self.ser = SerialBuffer(args.dev, "results/serial-output.txt") self.ser = SerialBuffer(
args.dev, "results/serial-output.txt", ": ")
self.boot_timeout = boot_timeout self.boot_timeout = boot_timeout
self.test_timeout = test_timeout self.test_timeout = test_timeout
self.logger = logger self.logger = logger

View file

@ -9,10 +9,14 @@ mkdir -p $rootfs_dst/results
cp $BM/bm-init.sh $rootfs_dst/init cp $BM/bm-init.sh $rootfs_dst/init
cp $CI_COMMON/init*.sh $rootfs_dst/ cp $CI_COMMON/init*.sh $rootfs_dst/
date +'%F %T'
# Make JWT token available as file in the bare-metal storage to enable access # Make JWT token available as file in the bare-metal storage to enable access
# to MinIO # to MinIO
cp "${S3_JWT_FILE}" "${rootfs_dst}${S3_JWT_FILE}" cp "${S3_JWT_FILE}" "${rootfs_dst}${S3_JWT_FILE}"
date +'%F %T'
cp "$SCRIPTS_DIR/setup-test-env.sh" "$rootfs_dst/" cp "$SCRIPTS_DIR/setup-test-env.sh" "$rootfs_dst/"
set +x set +x
@ -26,3 +30,5 @@ set -x
# Add the Mesa drivers we built, and make a consistent symlink to them. # Add the Mesa drivers we built, and make a consistent symlink to them.
mkdir -p $rootfs_dst/$CI_PROJECT_DIR mkdir -p $rootfs_dst/$CI_PROJECT_DIR
rsync -aH --delete $CI_PROJECT_DIR/install/ $rootfs_dst/$CI_PROJECT_DIR/install/ rsync -aH --delete $CI_PROJECT_DIR/install/ $rootfs_dst/$CI_PROJECT_DIR/install/
date +'%F %T'

View file

@ -22,6 +22,7 @@
# IN THE SOFTWARE. # IN THE SOFTWARE.
import argparse import argparse
from datetime import datetime, UTC
import queue import queue
import serial import serial
import threading import threading
@ -29,7 +30,7 @@ import time
class SerialBuffer: class SerialBuffer:
def __init__(self, dev, filename, timeout=None, line_queue=None): def __init__(self, dev, filename, prefix, timeout=None, line_queue=None):
self.filename = filename self.filename = filename
self.dev = dev self.dev = dev
@ -48,6 +49,7 @@ class SerialBuffer:
self.line_queue = line_queue self.line_queue = line_queue
else: else:
self.line_queue = queue.Queue() self.line_queue = queue.Queue()
self.prefix = prefix
self.timeout = timeout self.timeout = timeout
self.sentinel = object() self.sentinel = object()
self.closing = False self.closing = False
@ -86,7 +88,7 @@ class SerialBuffer:
break break
self.byte_queue.put(b) self.byte_queue.put(b)
except Exception as err: except Exception as err:
print(str(err)) print(self.prefix + str(err))
break break
self.byte_queue.put(self.sentinel) self.byte_queue.put(self.sentinel)
@ -128,7 +130,10 @@ class SerialBuffer:
if b == b'\n'[0]: if b == b'\n'[0]:
line = line.decode(errors="replace") line = line.decode(errors="replace")
print("{endc}{line}".format(line=line, endc='\033[0m'), flush=True, end='') ts = datetime.now(tz=UTC)
ts_str = f"{ts.hour:02}:{ts.minute:02}:{ts.second:02}.{int(ts.microsecond / 1000):03}"
print("{endc}{time}{prefix}{line}".format(
time=ts_str, prefix=self.prefix, line=line, endc='\033[0m'), flush=True, end='')
self.line_queue.put(line) self.line_queue.put(line)
line = bytearray() line = bytearray()
@ -165,10 +170,12 @@ def main():
parser.add_argument('--dev', type=str, help='Serial device') parser.add_argument('--dev', type=str, help='Serial device')
parser.add_argument('--file', type=str, parser.add_argument('--file', type=str,
help='Filename for serial output', required=True) help='Filename for serial output', required=True)
parser.add_argument('--prefix', type=str,
help='Prefix for logging serial to stdout', nargs='?')
args = parser.parse_args() args = parser.parse_args()
ser = SerialBuffer(args.dev, args.file) ser = SerialBuffer(args.dev, args.file, args.prefix or "")
for line in ser.lines(): for line in ser.lines():
# We're just using this as a logger, so eat the produced lines and drop # We're just using this as a logger, so eat the produced lines and drop
# them # them

View file

@ -13,7 +13,7 @@ make-git-archive:
# Compactify the .git directory # Compactify the .git directory
- git gc --aggressive - git gc --aggressive
# Download & cache the perfetto subproject as well. # Download & cache the perfetto subproject as well.
- rm -rf subprojects/perfetto ; mkdir -p subprojects/perfetto && curl --fail --location https://github.com/google/perfetto/archive/$(grep 'revision =' subprojects/perfetto.wrap | cut -d ' ' -f3).tar.gz | tar zxf - --strip-components=1 -C subprojects/perfetto - rm -rf subprojects/perfetto ; mkdir -p subprojects/perfetto && curl --fail https://android.googlesource.com/platform/external/perfetto/+archive/$(grep 'revision =' subprojects/perfetto.wrap | cut -d ' ' -f3).tar.gz | tar zxf - -C subprojects/perfetto
# compress the current folder # compress the current folder
- tar -cvzf ../$CI_PROJECT_NAME.tar.gz . - tar -cvzf ../$CI_PROJECT_NAME.tar.gz .
@ -44,7 +44,6 @@ debian-x86_64:
-D spirv-to-dxil=true -D spirv-to-dxil=true
-D tools=drm-shim -D tools=drm-shim
-D valgrind=disabled -D valgrind=disabled
-D perfetto=true
S3_ARTIFACT_NAME: mesa-x86_64-default-${BUILDTYPE} S3_ARTIFACT_NAME: mesa-x86_64-default-${BUILDTYPE}
RUN_MESON_TESTS: "false" # debian-build-x86_64 already runs these RUN_MESON_TESTS: "false" # debian-build-x86_64 already runs these
artifacts: artifacts:
@ -58,7 +57,10 @@ debian-x86_64-asan:
- .build-run-long - .build-run-long
variables: variables:
VULKAN_DRIVERS: "swrast,amd,intel" VULKAN_DRIVERS: "swrast,amd,intel"
GALLIUM_DRIVERS: "llvmpipe,softpipe,zink,r300" GALLIUM_DRIVERS: "llvmpipe,softpipe,zink"
C_ARGS: >
-Wno-error=stringop-truncation
-Wno-error=deprecated-declarations
EXTRA_OPTION: > EXTRA_OPTION: >
-D intel-elk=false -D intel-elk=false
-D intel-rt=false -D intel-rt=false
@ -119,6 +121,7 @@ debian-x86_64-msan:
-Wno-error=overloaded-virtual -Wno-error=overloaded-virtual
-Wno-error=tautological-constant-out-of-range-compare -Wno-error=tautological-constant-out-of-range-compare
-Wno-error=unused-private-field -Wno-error=unused-private-field
-Wno-error=vla-cxx-extension
-Wno-error=deprecated-declarations -Wno-error=deprecated-declarations
RUN_MESON_TESTS: "false" # just too slow RUN_MESON_TESTS: "false" # just too slow
# Do a host build for mesa-clc and precomp-compiler (msan complains about uninitialized # Do a host build for mesa-clc and precomp-compiler (msan complains about uninitialized
@ -143,6 +146,12 @@ debian-x86_64-ubsan:
- .meson-build-for-tests - .meson-build-for-tests
- .build-run-long - .build-run-long
variables: variables:
C_ARGS: >
-Wno-error=stringop-overflow
-Wno-error=stringop-truncation
-Wno-error=deprecated-declarations
CPP_ARGS: >
-Wno-error=array-bounds
GALLIUM_DRIVERS: "llvmpipe,softpipe" GALLIUM_DRIVERS: "llvmpipe,softpipe"
VULKAN_DRIVERS: "swrast" VULKAN_DRIVERS: "swrast"
EXTRA_OPTION: > EXTRA_OPTION: >
@ -184,9 +193,9 @@ debian-build-x86_64:
GALLIUM_ST: > GALLIUM_ST: >
-D gallium-extra-hud=true -D gallium-extra-hud=true
-D gallium-va=enabled -D gallium-va=enabled
-D gallium-rusticl=true -D gallium-rusticl=false
-D legacy-wayland=bind-wayland-display -D legacy-wayland=bind-wayland-display
GALLIUM_DRIVERS: "i915,iris,nouveau,r300,r600,freedreno,llvmpipe,softpipe,svga,v3d,vc4,virgl,etnaviv,panfrost,lima,zink,d3d12,asahi,crocus,radeonsi" GALLIUM_DRIVERS: "i915,iris,nouveau,r300,r600,freedreno,llvmpipe,softpipe,svga,v3d,vc4,virgl,etnaviv,panfrost,lima,zink,d3d12,asahi,crocus"
VULKAN_DRIVERS: "intel_hasvk,imagination,microsoft-experimental,nouveau,swrast" VULKAN_DRIVERS: "intel_hasvk,imagination,microsoft-experimental,nouveau,swrast"
BUILDTYPE: "debugoptimized" BUILDTYPE: "debugoptimized"
EXTRA_OPTION: > EXTRA_OPTION: >
@ -203,6 +212,7 @@ debian-release:
variables: variables:
UNWIND: "enabled" UNWIND: "enabled"
C_ARGS: > C_ARGS: >
-Wno-error=stringop-overread
-Wno-error=deprecated-declarations -Wno-error=deprecated-declarations
CPP_ARGS: > CPP_ARGS: >
-Wno-error=deprecated-declarations -Wno-error=deprecated-declarations
@ -241,6 +251,8 @@ alpine-build-testing:
C_ARGS: > C_ARGS: >
-Wno-error=cpp -Wno-error=cpp
-Wno-error=array-bounds -Wno-error=array-bounds
-Wno-error=stringop-overflow
-Wno-error=stringop-overread
-Wno-error=deprecated-declarations -Wno-error=deprecated-declarations
DRI_LOADERS: > DRI_LOADERS: >
-D glx=disabled -D glx=disabled
@ -276,10 +288,14 @@ fedora-release:
# maybe-uninitialized is misfiring in nir_lower_gs_intrinsics.c, and # maybe-uninitialized is misfiring in nir_lower_gs_intrinsics.c, and
# a "maybe" warning should never be an error anyway. # a "maybe" warning should never be an error anyway.
C_ARGS: > C_ARGS: >
-Wno-error=stringop-overflow
-Wno-error=stringop-overread
-Wno-error=array-bounds -Wno-error=array-bounds
-Wno-error=maybe-uninitialized -Wno-error=maybe-uninitialized
-Wno-error=deprecated-declarations -Wno-error=deprecated-declarations
CPP_ARGS: > CPP_ARGS: >
-Wno-error=dangling-reference
-Wno-error=overloaded-virtual
-Wno-error=deprecated-declarations -Wno-error=deprecated-declarations
DRI_LOADERS: > DRI_LOADERS: >
-D glx=dri -D glx=dri
@ -322,8 +338,13 @@ debian-android:
-Wno-error=enum-conversion -Wno-error=enum-conversion
-Wno-error=initializer-overrides -Wno-error=initializer-overrides
-Wno-error=sometimes-uninitialized -Wno-error=sometimes-uninitialized
-Wno-error=deprecated-declarations
CPP_ARGS: > CPP_ARGS: >
-Wno-error=c99-designator -Wno-error=c99-designator
-Wno-error=unused-variable
-Wno-error=unused-but-set-variable
-Wno-error=self-assign
-Wno-error=deprecated-declarations
DRI_LOADERS: > DRI_LOADERS: >
-D glx=disabled -D glx=disabled
-D gbm=disabled -D gbm=disabled
@ -340,8 +361,6 @@ debian-android:
-D android-libbacktrace=disabled -D android-libbacktrace=disabled
-D mesa-clc=system -D mesa-clc=system
-D precomp-compiler=system -D precomp-compiler=system
-D perfetto=true
-D freedreno-kmds=msm,virtio
GALLIUM_ST: > GALLIUM_ST: >
-D gallium-va=disabled -D gallium-va=disabled
-D gallium-rusticl=false -D gallium-rusticl=false
@ -371,7 +390,7 @@ debian-android:
- git clean -dxf . - git clean -dxf .
# aarch64 build: # aarch64 build:
- export CROSS=aarch64-linux-android - export CROSS=aarch64-linux-android
- export GALLIUM_DRIVERS=etnaviv,freedreno,lima,panfrost,vc4,v3d,zink - export GALLIUM_DRIVERS=etnaviv,freedreno,lima,panfrost,vc4,v3d
- export VULKAN_DRIVERS=freedreno,broadcom,panfrost,virtio - export VULKAN_DRIVERS=freedreno,broadcom,panfrost,virtio
- export S3_ARTIFACT_NAME=mesa-arm64-android-${BUILDTYPE} - export S3_ARTIFACT_NAME=mesa-arm64-android-${BUILDTYPE}
- !reference [.meson-build-for-tests, script] - !reference [.meson-build-for-tests, script]
@ -461,8 +480,12 @@ debian-arm64:
- .ci-deqp-artifacts - .ci-deqp-artifacts
- .meson-build-for-tests - .meson-build-for-tests
variables: variables:
C_ARGS: >
-Wno-error=array-bounds
-Wno-error=stringop-truncation
-Wno-error=deprecated-declarations
GALLIUM_DRIVERS: "etnaviv,freedreno,lima,panfrost,v3d,vc4,zink" GALLIUM_DRIVERS: "etnaviv,freedreno,lima,panfrost,v3d,vc4,zink"
VULKAN_DRIVERS: "broadcom,freedreno,imagination,panfrost" VULKAN_DRIVERS: "broadcom,freedreno,panfrost"
DRI_LOADERS: DRI_LOADERS:
-D glvnd=disabled -D glvnd=disabled
EXTRA_OPTION: > EXTRA_OPTION: >
@ -470,10 +493,8 @@ debian-arm64:
-D imagination-srv=true -D imagination-srv=true
-D freedreno-kmds=msm,virtio -D freedreno-kmds=msm,virtio
-D teflon=true -D teflon=true
-D perfetto=true
GALLIUM_ST: GALLIUM_ST:
-D gallium-rusticl=true -D gallium-rusticl=true
-D legacy-wayland=bind-wayland-display
RUN_MESON_TESTS: "false" # run by debian-arm64-build-testing RUN_MESON_TESTS: "false" # run by debian-arm64-build-testing
S3_ARTIFACT_NAME: mesa-arm64-default-${BUILDTYPE} S3_ARTIFACT_NAME: mesa-arm64-default-${BUILDTYPE}
@ -483,8 +504,10 @@ debian-arm64-asan:
- .meson-build-for-tests - .meson-build-for-tests
- .build-run-long - .build-run-long
variables: variables:
VULKAN_DRIVERS: "broadcom,freedreno,panfrost" VULKAN_DRIVERS: "broadcom,freedreno"
GALLIUM_DRIVERS: "freedreno,vc4,v3d,panfrost" GALLIUM_DRIVERS: "freedreno,vc4,v3d"
C_ARGS: >
-Wno-error=deprecated-declarations
DRI_LOADERS: DRI_LOADERS:
-D glvnd=disabled -D glvnd=disabled
EXTRA_OPTION: > EXTRA_OPTION: >
@ -506,6 +529,12 @@ debian-arm64-ubsan:
GALLIUM_DRIVERS: "v3d,vc4" GALLIUM_DRIVERS: "v3d,vc4"
C_ARGS: > C_ARGS: >
-Wno-error=array-bounds -Wno-error=array-bounds
-Wno-error=stringop-overflow
-Wno-error=stringop-truncation
-Wno-error=deprecated-declarations
CPP_ARGS: >
-Wno-error=array-bounds
-fno-var-tracking-assignments
DRI_LOADERS: DRI_LOADERS:
-D glvnd=disabled -D glvnd=disabled
EXTRA_OPTION: > EXTRA_OPTION: >
@ -535,6 +564,10 @@ debian-arm64-release:
variables: variables:
BUILDTYPE: release BUILDTYPE: release
S3_ARTIFACT_NAME: mesa-arm64-default-${BUILDTYPE} S3_ARTIFACT_NAME: mesa-arm64-default-${BUILDTYPE}
C_ARGS: >
-Wno-error=array-bounds
-Wno-error=stringop-overread
-Wno-error=deprecated-declarations
script: script:
- !reference [.meson-build-only, script] - !reference [.meson-build-only, script]
- 'if [ -n "$MESA_CI_PERFORMANCE_ENABLED" ]; then .gitlab-ci/prepare-artifacts.sh; fi' - 'if [ -n "$MESA_CI_PERFORMANCE_ENABLED" ]; then .gitlab-ci/prepare-artifacts.sh; fi'
@ -547,13 +580,15 @@ debian-no-libdrm:
VULKAN_DRIVERS: freedreno VULKAN_DRIVERS: freedreno
GALLIUM_DRIVERS: "zink,llvmpipe" GALLIUM_DRIVERS: "zink,llvmpipe"
BUILDTYPE: release BUILDTYPE: release
C_ARGS: >
-Wno-error=stringop-overread
-Wno-error=deprecated-declarations
EXTRA_OPTION: > EXTRA_OPTION: >
-D freedreno-kmds=kgsl -D freedreno-kmds=kgsl
-D glx=dri -D glx=disabled
-D gbm=disabled -D gbm=disabled
-D egl=enabled -D egl=disabled
-D perfetto=true -D perfetto=true
-D platforms=x11,wayland
debian-clang: debian-clang:
extends: extends:
@ -675,10 +710,9 @@ debian-vulkan:
-D c_args=-fno-sanitize-recover=all -D c_args=-fno-sanitize-recover=all
-D cpp_args=-fno-sanitize-recover=all -D cpp_args=-fno-sanitize-recover=all
UBSAN_OPTIONS: "print_stacktrace=1" UBSAN_OPTIONS: "print_stacktrace=1"
VULKAN_DRIVERS: amd,asahi,broadcom,freedreno,intel,intel_hasvk,panfrost,virtio,imagination,microsoft-experimental,nouveau,kosmickrisp VULKAN_DRIVERS: amd,asahi,broadcom,freedreno,intel,intel_hasvk,panfrost,virtio,imagination,microsoft-experimental,nouveau
EXTRA_OPTION: > EXTRA_OPTION: >
-D vulkan-layers=device-select,overlay -D vulkan-layers=device-select,overlay
-D tools=drm-shim
-D build-radv-tests=true -D build-radv-tests=true
-D build-aco-tests=true -D build-aco-tests=true
-D intel-rt=disabled -D intel-rt=disabled
@ -717,26 +751,10 @@ debian-x86_32:
-D mesa-clc=enabled -D mesa-clc=enabled
-D install-mesa-clc=true -D install-mesa-clc=true
# In case of issues with this job, contact @frankbinns
debian-riscv64:
extends:
- .meson-cross
- .use-debian/riscv64_build
- .meson-build-only
tags:
- $FDO_RUNNER_JOB_PRIORITY_TAG_X86_64_KVM
variables:
BUILDTYPE: debug
CROSS: riscv64
GALLIUM_DRIVERS: "llvmpipe,zink"
VULKAN_DRIVERS: "swrast"
# See https://gitlab.freedesktop.org/mesa/mesa/-/issues/14123
MESON_TEST_ARGS: "--no-suite mesa:llvmpipe"
# While s390 is dead, s390x is very much alive, and one of the last major # While s390 is dead, s390x is very much alive, and one of the last major
# big-endian platforms, so it provides useful coverage. # big-endian platforms, so it provides useful coverage.
# In case of issues with this job, contact @ajax # In case of issues with this job, contact @ajax
.debian-s390x: debian-s390x:
extends: extends:
- .meson-cross - .meson-cross
- .use-debian/s390x_build - .use-debian/s390x_build
@ -751,7 +769,7 @@ debian-riscv64:
DRI_LOADERS: DRI_LOADERS:
-D glvnd=disabled -D glvnd=disabled
.debian-ppc64el: debian-ppc64el:
extends: extends:
- .meson-cross - .meson-cross
- .use-debian/ppc64el_build - .use-debian/ppc64el_build

View file

@ -36,6 +36,8 @@
# Keep the job script in the artifacts # Keep the job script in the artifacts
CI_TRON_JOB_SCRIPT_PATH: results/job_script.sh CI_TRON_JOB_SCRIPT_PATH: results/job_script.sh
needs:
- !reference [.required-for-hardware-jobs, needs]
tags: tags:
- farm:$RUNNER_FARM_LOCATION - farm:$RUNNER_FARM_LOCATION
- ci-tron:priority:$CI_TRON_JOB_PRIORITY - ci-tron:priority:$CI_TRON_JOB_PRIORITY
@ -95,6 +97,7 @@
optional: true optional: true
- job: debian-x86_64 - job: debian-x86_64
artifacts: false artifacts: false
- !reference [.ci-tron-test, needs]
.ci-tron-x86_64-test-vk-manual: .ci-tron-x86_64-test-vk-manual:
extends: extends:
@ -108,17 +111,7 @@
optional: true optional: true
- job: debian-build-x86_64 - job: debian-build-x86_64
artifacts: false artifacts: false
- !reference [.ci-tron-test, needs]
.ci-tron-x86_64-test-video:
extends:
- .use-debian/x86_64_test-video
- .ci-tron-x86_64-test
needs:
- job: debian/x86_64_test-video
artifacts: false
optional: true
- job: debian-x86_64
artifacts: false
.ci-tron-x86_64-test-gl: .ci-tron-x86_64-test-gl:
extends: extends:
@ -130,6 +123,7 @@
optional: true optional: true
- job: debian-x86_64 - job: debian-x86_64
artifacts: false artifacts: false
- !reference [.ci-tron-test, needs]
.ci-tron-x86_64-test-gl-manual: .ci-tron-x86_64-test-gl-manual:
extends: extends:
@ -143,20 +137,7 @@
optional: true optional: true
- job: debian-build-x86_64 - job: debian-build-x86_64
artifacts: false artifacts: false
- !reference [.ci-tron-test, needs]
.ci-tron-x86_64-test-gl-asan-manual:
extends:
- .use-debian/x86_64_test-gl
- .ci-tron-x86_64-test
variables:
S3_ARTIFACT_NAME: "mesa-x86_64-asan-debugoptimized"
DEQP_FORCE_ASAN: 1
needs:
- job: debian/x86_64_test-gl
artifacts: false
optional: true
- job: debian-x86_64-asan
artifacts: false
.ci-tron-arm64-test: .ci-tron-arm64-test:
extends: extends:
@ -176,6 +157,7 @@
optional: true optional: true
- job: debian-arm64 - job: debian-arm64
artifacts: false artifacts: false
- !reference [.ci-tron-test, needs]
.ci-tron-arm64-test-asan-vk: .ci-tron-arm64-test-asan-vk:
extends: extends:
@ -190,6 +172,7 @@
optional: true optional: true
- job: debian-arm64-asan - job: debian-arm64-asan
artifacts: false artifacts: false
- !reference [.ci-tron-test, needs]
.ci-tron-arm64-test-ubsan-vk: .ci-tron-arm64-test-ubsan-vk:
extends: extends:
@ -203,6 +186,7 @@
optional: true optional: true
- job: debian-arm64-ubsan - job: debian-arm64-ubsan
artifacts: false artifacts: false
- !reference [.ci-tron-test, needs]
.ci-tron-arm64-test-gl: .ci-tron-arm64-test-gl:
extends: extends:
@ -214,6 +198,7 @@
optional: true optional: true
- job: debian-arm64 - job: debian-arm64
artifacts: false artifacts: false
- !reference [.ci-tron-test, needs]
.ci-tron-arm64-test-asan-gl: .ci-tron-arm64-test-asan-gl:
extends: extends:
@ -228,6 +213,7 @@
optional: true optional: true
- job: debian-arm64-asan - job: debian-arm64-asan
artifacts: false artifacts: false
- !reference [.ci-tron-test, needs]
.ci-tron-arm64-test-ubsan-gl: .ci-tron-arm64-test-ubsan-gl:
extends: extends:
@ -241,6 +227,7 @@
optional: true optional: true
- job: debian-arm64-ubsan - job: debian-arm64-ubsan
artifacts: false artifacts: false
- !reference [.ci-tron-test, needs]
.ci-tron-arm32-test: .ci-tron-arm32-test:
extends: extends:
@ -260,6 +247,7 @@
optional: true optional: true
- job: debian-arm32 - job: debian-arm32
artifacts: false artifacts: false
- !reference [.ci-tron-test, needs]
.ci-tron-arm32-test-gl: .ci-tron-arm32-test-gl:
extends: extends:
@ -271,6 +259,7 @@
optional: true optional: true
- job: debian-arm32 - job: debian-arm32
artifacts: false artifacts: false
- !reference [.ci-tron-test, needs]
.ci-tron-arm32-test-asan-gl: .ci-tron-arm32-test-asan-gl:
extends: extends:
@ -285,3 +274,4 @@
optional: true optional: true
- job: debian-arm32-asan - job: debian-arm32-asan
artifacts: false artifacts: false
- !reference [.ci-tron-test, needs]

View file

@ -41,11 +41,6 @@ trap cleanup INT TERM EXIT
# background by this script # background by this script
BACKGROUND_PIDS= BACKGROUND_PIDS=
# Until we uniformize the install dir to /install, we need to make it
# available to both possible CI_PROJECT_DIR paths.
if [ "$GIT_STRATEGY" = empty ]; then
ln -s "$CI_PROJECT_DIR" "${CI_PROJECT_DIR%-empty}"
fi
for path in '/dut-env-vars.sh' '/set-job-env-vars.sh' './set-job-env-vars.sh'; do for path in '/dut-env-vars.sh' '/set-job-env-vars.sh' './set-job-env-vars.sh'; do
[ -f "$path" ] && source "$path" [ -f "$path" ] && source "$path"
@ -59,12 +54,6 @@ echo
section_switch init_stage2 "Pre-testing hardware setup" section_switch init_stage2 "Pre-testing hardware setup"
job_time=$(get_job_seconds)
uptime=$(cut -d ' ' -f1 /proc/uptime)
echo "$(get_current_minsec) after job start == $uptime sec after kernel boot time"
printf -v uptime_rounded "%.0f" "$uptime"
echo "Kernel boot occurred $((job_time-uptime_rounded)) seconds after job start"
set -ex set -ex
# Set up any devices required by the jobs # Set up any devices required by the jobs
@ -102,11 +91,6 @@ if [ -n "$HWCI_ENABLE_X86_KVM" ]; then
modprobe ${KVM_KERNEL_MODULE} modprobe ${KVM_KERNEL_MODULE}
fi fi
if ! [ -e /install/ ] && ! [ -e $CI_PROJECT_DIR/install/ ]; then
echo "Missing install/ dir"
exit 1
fi
# Fix prefix confusion: the build installs to $CI_PROJECT_DIR, but we expect # Fix prefix confusion: the build installs to $CI_PROJECT_DIR, but we expect
# it in /install # it in /install
ln -sf $CI_PROJECT_DIR/install /install ln -sf $CI_PROJECT_DIR/install /install

View file

@ -6,7 +6,7 @@ mkdir -p /tmp/.X11-unix
export DISPLAY=:0 export DISPLAY=:0
WAYLAND_DISPLAY=wayland-0 WAYLAND_DISPLAY=wayland-0
weston --config="$CI_COMMON_DIR/weston.ini" --socket="$WAYLAND_DISPLAY" --log "$RESULTS_DIR/weston.log" --logger-scopes=log,xwm-wm-x11 "$@" & weston --config="$CI_COMMON_DIR/weston.ini" --socket="$WAYLAND_DISPLAY" "$@" &
export WAYLAND_DISPLAY export WAYLAND_DISPLAY
while [ ! -S /tmp/.X11-unix/X0 ]; do sleep 1; done while [ ! -S /tmp/.X11-unix/X0 ]; do sleep 1; done

View file

@ -1,8 +1,7 @@
variables: variables:
CONDITIONAL_BUILD_ANDROID_CTS_TAG: 363c33efa7f381a9be0d4c6af2dfaa1d CONDITIONAL_BUILD_ANDROID_CTS_TAG: b018634d732f438027ec58c0383615e7
CONDITIONAL_BUILD_ANGLE_TAG: e40de41a79653aa19fac70dc6289d8e9 CONDITIONAL_BUILD_ANGLE_TAG: ccde6a2b0d3509c2a8fc459cbd936ac4
CONDITIONAL_BUILD_CROSVM_TAG: 7edabf28bbd50e00558e3b0bb2d94255 CONDITIONAL_BUILD_CROSVM_TAG: 4079babd375b09761d59eacb25a0598a
CONDITIONAL_BUILD_FLUSTER_TAG: e13f8521875ebd70e207ec0f6f3d3e5b CONDITIONAL_BUILD_FLUSTER_TAG: e13f8521875ebd70e207ec0f6f3d3e5b
CONDITIONAL_BUILD_PIGLIT_TAG: 7c554632e450496da9382764f449abae CONDITIONAL_BUILD_PIGLIT_TAG: e31960eaf7d80a9e8cdd7869fbcef7f7
CONDITIONAL_BUILD_VKD3D_PROTON_TAG: f9a108eea5cca9a5c79b058963e161a8 CONDITIONAL_BUILD_VKD3D_PROTON_TAG: 167feb963fb512795aeddc9d1588bc7c
CONDITIONAL_BUILD_WINE_TAG: c97d0ebc9d033b3ad8a50c5832955d9c

View file

@ -34,6 +34,7 @@ DEPS=(
glslang glslang
graphviz graphviz
libclc-dev libclc-dev
libdrm-dev
libpciaccess-dev libpciaccess-dev
libva-dev libva-dev
linux-headers linux-headers
@ -71,8 +72,6 @@ pip3 install --break-system-packages sphinx===8.2.3 hawkmoth===0.19.0
. .gitlab-ci/container/build-rust.sh build . .gitlab-ci/container/build-rust.sh build
. .gitlab-ci/container/build-libdrm.sh
EXTRA_MESON_ARGS='--prefix=/usr' \ EXTRA_MESON_ARGS='--prefix=/usr' \
. .gitlab-ci/container/build-wayland.sh . .gitlab-ci/container/build-wayland.sh

View file

@ -26,12 +26,13 @@ ci_tag_build_time_check "ANDROID_CTS_TAG"
# This should be the union of all modules required by our CI jobs # This should be the union of all modules required by our CI jobs
# Specific modules to run are selected via the ${GPU_VERSION}-android-cts-include.txt files # Specific modules to run are selected via the ${GPU_VERSION}-android-cts-include.txt files
ANDROID_CTS_MODULES=( ANDROID_CTS_MODULES=(
"CtsDeqpTestCases"
"CtsGraphicsTestCases" "CtsGraphicsTestCases"
"CtsNativeHardwareTestCases" "CtsNativeHardwareTestCases"
"CtsSkQPTestCases" "CtsSkQPTestCases"
) )
ANDROID_CTS_VERSION="${ANDROID_VERSION}_r3" ANDROID_CTS_VERSION="${ANDROID_VERSION}_r1"
ANDROID_CTS_DEVICE_ARCH="x86" ANDROID_CTS_DEVICE_ARCH="x86"
# Download the stripped CTS from S3, because the CTS download from Google can take 20 minutes # Download the stripped CTS from S3, because the CTS download from Google can take 20 minutes

View file

@ -13,7 +13,7 @@ section_start angle "Building ANGLE"
# setting up the environment variables locally # setting up the environment variables locally
ci_tag_build_time_check "ANGLE_TAG" ci_tag_build_time_check "ANGLE_TAG"
ANGLE_REV="5e591d03650dd427001e355f4884b857cadab113" ANGLE_REV="8ed16003f27125f27cbb87578368e447043420d3"
DEPOT_REV="5982a1aeb33dc36382ed8c62eddf52a6135e7dd3" DEPOT_REV="5982a1aeb33dc36382ed8c62eddf52a6135e7dd3"
# Set ANGLE_ARCH based on DEBIAN_ARCH if it hasn't been explicitly defined # Set ANGLE_ARCH based on DEBIAN_ARCH if it hasn't been explicitly defined
@ -129,25 +129,8 @@ if [[ "$DEBIAN_ARCH" = "arm64" ]]; then
# 'arm64' toolchain you get from Google infrastructure is a cross-compiler # 'arm64' toolchain you get from Google infrastructure is a cross-compiler
# from x86-64 # from x86-64
build/linux/sysroot_scripts/install-sysroot.py --arch=arm64 build/linux/sysroot_scripts/install-sysroot.py --arch=arm64
# The Bullseye sysroot is too old for Chromium's default PAC/BTI setup.
# Chromium forces -z force-bti on arm64, but our sysroot objects lack BTI
# notes, which breaks linking. Disable branch protection to keep the build
# sane. See:
# https://chromium.googlesource.com/chromium/src/build/+/7c4a6063/config/linux/BUILD.gn#87
# https://chromium.googlesource.com/chromium/src/build/+/7c4a6063/config/arm.gni#77
cat >> out/Release/args.gn <<EOF
arm_control_flow_integrity="none"
EOF
fi fi
# The Chromium build system hardcodes these flags, and they're not compatible
# with our clang19 'unbundled' toolchain. See:
# https://chromium.googlesource.com/chromium/src/build/+/39d42026/config/compiler/BUILD.gn#619
# https://chromium.googlesource.com/chromium/src/build/+/42209031/config/sanitizers/sanitizers.gni#548
sed -i '/-fno-lifetime-dse/d' build/config/compiler/BUILD.gn
sed -i '/-fsanitize-ignore-for-ubsan-feature=/d' build/config/sanitizers/sanitizers.gni
( (
# The 'unbundled' toolchain configuration requires clang, and it also needs to # The 'unbundled' toolchain configuration requires clang, and it also needs to
# be configured via environment variables. # be configured via environment variables.

View file

@ -7,9 +7,9 @@
set -uex set -uex
section_start apitrace "Building apitrace" uncollapsed_section_start apitrace "Building apitrace"
APITRACE_VERSION="18cfd388ac47a9e00978b34d6c20341f3e2cdb56" APITRACE_VERSION="45a005875d348b055d5b88dca285c109dee90457"
git clone https://github.com/apitrace/apitrace.git --single-branch --no-checkout /apitrace git clone https://github.com/apitrace/apitrace.git --single-branch --no-checkout /apitrace
pushd /apitrace pushd /apitrace

View file

@ -6,7 +6,7 @@
# DEBIAN_BUILD_TAG # DEBIAN_BUILD_TAG
# FEDORA_X86_64_BUILD_TAG # FEDORA_X86_64_BUILD_TAG
section_start bindgen "Building bindgen" uncollapsed_section_start bindgen "Building bindgen"
BINDGEN_VER=0.71.1 BINDGEN_VER=0.71.1
CBINDGEN_VER=0.26.0 CBINDGEN_VER=0.26.0

View file

@ -16,18 +16,18 @@ section_start crosvm "Building crosvm"
git config --global user.email "mesa@example.com" git config --global user.email "mesa@example.com"
git config --global user.name "Mesa CI" git config --global user.name "Mesa CI"
CROSVM_VERSION=f58c8e685f3f21d733861a080a0857acafd0da56 CROSVM_VERSION=4a6b4316155742fbfa1be7087c2ee578cfee884d
git clone --single-branch -b main --no-checkout https://chromium.googlesource.com/crosvm/crosvm /platform/crosvm git clone --single-branch -b main --no-checkout https://chromium.googlesource.com/crosvm/crosvm /platform/crosvm
pushd /platform/crosvm pushd /platform/crosvm
git checkout "$CROSVM_VERSION" git checkout "$CROSVM_VERSION"
git submodule update --init git submodule update --init
VIRGLRENDERER_VERSION=37168812546aba59e79eb032d65e150c38ad3996 VIRGLRENDERER_VERSION=06d43ce974b664f9dc521b706a0ad7f91dbf2866
rm -rf third_party/virglrenderer rm -rf third_party/virglrenderer
git clone --single-branch -b main --no-checkout https://gitlab.freedesktop.org/virgl/virglrenderer.git third_party/virglrenderer git clone --single-branch -b main --no-checkout https://gitlab.freedesktop.org/virgl/virglrenderer.git third_party/virglrenderer
pushd third_party/virglrenderer pushd third_party/virglrenderer
git checkout "$VIRGLRENDERER_VERSION" git checkout "$VIRGLRENDERER_VERSION"
meson setup build/ -D libdir=lib -D venus=true ${EXTRA_MESON_ARGS:-} meson setup build/ -D libdir=lib -D render-server-worker=process -D venus=true ${EXTRA_MESON_ARGS:-}
meson install -C build meson install -C build
popd popd

View file

@ -3,13 +3,14 @@
# When changing this file, you need to bump the following # When changing this file, you need to bump the following
# .gitlab-ci/image-tags.yml tags: # .gitlab-ci/image-tags.yml tags:
# DEBIAN_TEST_ANDROID_TAG
# DEBIAN_TEST_BASE_TAG # DEBIAN_TEST_BASE_TAG
set -uex set -uex
section_start deqp-runner "Building deqp-runner" section_start deqp-runner "Building deqp-runner"
DEQP_RUNNER_VERSION=0.23.2 DEQP_RUNNER_VERSION=0.20.3
commits_to_backport=( commits_to_backport=(
) )

View file

@ -23,10 +23,10 @@ set -x
# - the GL release produces `glcts`, and # - the GL release produces `glcts`, and
# - the GLES release produces `deqp-gles*` and `deqp-egl` # - the GLES release produces `deqp-gles*` and `deqp-egl`
DEQP_MAIN_COMMIT=634a3fc62d82c34de68c3b1add25e6b7f5777524 DEQP_MAIN_COMMIT=db48c34bebaf3359453e44ab151a2ff9f9c58eb2
DEQP_VK_VERSION=1.4.4.2 DEQP_VK_VERSION=1.4.3.3
DEQP_GL_VERSION=4.6.8.0 DEQP_GL_VERSION=4.6.6.0
DEQP_GLES_VERSION=3.2.14.0 DEQP_GLES_VERSION=3.2.12.0
# Patches to VulkanCTS may come from commits in their repo (listed in # Patches to VulkanCTS may come from commits in their repo (listed in
# cts_commits_to_backport) or patch files stored in our repo (in the patch # cts_commits_to_backport) or patch files stored in our repo (in the patch
@ -46,39 +46,37 @@ main_cts_patch_files=(
# shellcheck disable=SC2034 # shellcheck disable=SC2034
vk_cts_commits_to_backport=( vk_cts_commits_to_backport=(
# Add an option to print to logcat in Android executable builds
fc51668efdfd0dffa30b3eddee34aa26172969fb
) )
# shellcheck disable=SC2034 # shellcheck disable=SC2034
vk_cts_patch_files=( vk_cts_patch_files=(
build-deqp-android-Implement-headless-WSI-fallback-using-AImageR.patch
build-deqp-vk_Wait-for-sparse-memory-binds-to-finish-in-host-image.patch
) )
# shellcheck disable=SC2034 # shellcheck disable=SC2034
gl_cts_commits_to_backport=( gl_cts_commits_to_backport=(
# Add testing for GL_PRIMITIVES_SUBMITTED_ARB query.
e075ce73ddc5973aa46a5236c715bb281c9501fa
) )
# shellcheck disable=SC2034 # shellcheck disable=SC2034
gl_cts_patch_files=( gl_cts_patch_files=(
build-deqp-android-Implement-headless-WSI-fallback-using-AImageR.patch # We're only applying this avoid conflicts in the second patch
build-deqp-gl_Build-Don-t-build-Vulkan-utilities-for-GL-builds.patch build-deqp-gl_Build-Don-t-build-Vulkan-utilities-for-GL-builds.patch
build-deqp-gl_Revert-Add-missing-context-deletion.patch
build-deqp-gl_Revert-Fix-issues-with-GLX-reset-notification-strate.patch
build-deqp-gl_Revert-Fix-spurious-failures-when-using-a-config-wit.patch
) )
# shellcheck disable=SC2034 # shellcheck disable=SC2034
# GLES builds also EGL # GLES builds also EGL
gles_cts_commits_to_backport=( gles_cts_commits_to_backport=(
# Fix EGL render tests for rgba16 and rgb16 unorm fixed point
b5ed8718f19492781f8e9be3eb9d3346e961efa9
# Fix glGetnUniform* error codes when bufSize < 0
34259553e0cc77061465ae0c4bcd4c4658a0fb4a
) )
# shellcheck disable=SC2034 # shellcheck disable=SC2034
gles_cts_patch_files=( gles_cts_patch_files=(
build-deqp-android-Implement-headless-WSI-fallback-using-AImageR.patch
build-deqp-gl_Build-Don-t-build-Vulkan-utilities-for-GL-builds.patch build-deqp-gl_Build-Don-t-build-Vulkan-utilities-for-GL-builds.patch
build-deqp-gl_Revert-Add-missing-context-deletion.patch
build-deqp-gl_Revert-Fix-issues-with-GLX-reset-notification-strate.patch
build-deqp-gl_Revert-Fix-spurious-failures-when-using-a-config-wit.patch
) )
@ -109,18 +107,7 @@ git checkout FETCH_HEAD
DEQP_COMMIT=$(git rev-parse FETCH_HEAD) DEQP_COMMIT=$(git rev-parse FETCH_HEAD)
if [ "$DEQP_VERSION" = "$DEQP_MAIN_COMMIT" ]; then if [ "$DEQP_VERSION" = "$DEQP_MAIN_COMMIT" ]; then
for i in {5..1}; do merge_base="$(curl-with-retry -s https://api.github.com/repos/KhronosGroup/VK-GL-CTS/compare/main...$DEQP_MAIN_COMMIT | jq -r .merge_base_commit.sha)"
if merge_base=$(curl-with-retry -s https://api.github.com/repos/KhronosGroup/VK-GL-CTS/compare/main...$DEQP_MAIN_COMMIT | jq -e -r .merge_base_commit.sha); then
break
fi
if [ "$i" -eq 1 ]; then
echo "Final attempt to fetch merge base from GitHub failed. VK-GL-CTS GitHub API might be down or rate-limited."
exit 1
fi
sleep 10
done
if [[ "$merge_base" != "$DEQP_MAIN_COMMIT" ]]; then if [[ "$merge_base" != "$DEQP_MAIN_COMMIT" ]]; then
echo "VK-GL-CTS commit $DEQP_MAIN_COMMIT is not a commit from the main branch." echo "VK-GL-CTS commit $DEQP_MAIN_COMMIT is not a commit from the main branch."
exit 1 exit 1

View file

@ -7,9 +7,9 @@
set -uex set -uex
section_start directx-headers "Building directx-headers" uncollapsed_section_start directx-headers "Building directx-headers"
git clone https://github.com/microsoft/DirectX-Headers -b v1.619.1 --depth 1 git clone https://github.com/microsoft/DirectX-Headers -b v1.618.1 --depth 1
pushd DirectX-Headers pushd DirectX-Headers
meson setup build --backend=ninja --buildtype=release -Dbuild-test=false ${EXTRA_MESON_ARGS:-} meson setup build --backend=ninja --buildtype=release -Dbuild-test=false ${EXTRA_MESON_ARGS:-}
meson install -C build meson install -C build

View file

@ -6,7 +6,7 @@
set -ex set -ex
section_start fossilize "Building fossilize" uncollapsed_section_start fossilize "Building fossilize"
git clone https://github.com/ValveSoftware/Fossilize.git git clone https://github.com/ValveSoftware/Fossilize.git
cd Fossilize cd Fossilize

View file

@ -19,7 +19,7 @@ pushd /gfxreconstruct
git checkout "$GFXRECONSTRUCT_VERSION" git checkout "$GFXRECONSTRUCT_VERSION"
git submodule update --init git submodule update --init
git submodule update git submodule update
cmake -S . -B _build -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX:PATH=/gfxreconstruct/build -DBUILD_WERROR=OFF -DGFXRECON_ENABLE_OPENXR=OFF cmake -S . -B _build -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX:PATH=/gfxreconstruct/build -DBUILD_WERROR=OFF
cmake --build _build --parallel --target tools/{replay,info}/install/strip cmake --build _build --parallel --target tools/{replay,info}/install/strip
find . -not -path './build' -not -path './build/*' -delete find . -not -path './build' -not -path './build/*' -delete
popd popd

View file

@ -1,91 +0,0 @@
#!/usr/bin/env bash
# shellcheck disable=SC2086 # we want word splitting
# When changing this file, you need to bump the following
# .gitlab-ci/image-tags.yml tags:
# DEBIAN_TEST_BASE_TAG
set -uex
section_start gpu-trace-perf "Building gpu-trace-perf"
GPU_TRACE_PERF_VERSION=1.8.2
commits_to_backport=(
)
patch_files=(
)
GPU_TRACE_PERF_GIT_URL="${GPU_TRACE_PERF_GIT_URL:-https://gitlab.freedesktop.org/anholt/gpu-trace-perf.git}"
if [ -n "${GPU_TRACE_PERF_GIT_TAG:-}" ]; then
GPU_TRACE_PERF_GIT_CHECKOUT="$GPU_TRACE_PERF_GIT_TAG"
elif [ -n "${GPU_TRACE_PERF_GIT_REV:-}" ]; then
GPU_TRACE_PERF_GIT_CHECKOUT="$GPU_TRACE_PERF_GIT_REV"
else
GPU_TRACE_PERF_GIT_CHECKOUT="v$GPU_TRACE_PERF_VERSION"
fi
BASE_PWD=$PWD
mkdir -p /gpu-trace-perf
pushd /gpu-trace-perf
mkdir gpu-trace-perf-git
pushd gpu-trace-perf-git
git init
git remote add origin "$GPU_TRACE_PERF_GIT_URL"
git fetch --depth 1 origin "$GPU_TRACE_PERF_GIT_CHECKOUT"
git checkout FETCH_HEAD
for commit in "${commits_to_backport[@]}"
do
PATCH_URL="https://gitlab.freedesktop.org/anholt/gpu-trace-perf/-/commit/$commit.patch"
echo "Backport gpu-trace-perf commit $commit from $PATCH_URL"
curl -L --retry 4 -f --retry-all-errors --retry-delay 60 $PATCH_URL | git am
done
for patch in "${patch_files[@]}"
do
echo "Apply patch to gpu-trace-perf from $patch"
git am "$BASE_PWD/.gitlab-ci/container/patches/$patch"
done
if [ -z "${RUST_TARGET:-}" ]; then
RUST_TARGET=""
fi
if [[ "$RUST_TARGET" != *-android ]]; then
# When CC (/usr/lib/ccache/gcc) variable is set, the rust compiler uses
# this variable when cross-compiling arm32 and build fails for zsys-sys.
# So unset the CC variable when cross-compiling for arm32.
SAVEDCC=${CC:-}
if [ "$RUST_TARGET" = "armv7-unknown-linux-gnueabihf" ]; then
unset CC
fi
cargo install --locked \
-j ${FDO_CI_CONCURRENT:-4} \
--root /usr/local \
${EXTRA_CARGO_ARGS:-} \
--path .
CC=$SAVEDCC
else
cargo install --locked \
-j ${FDO_CI_CONCURRENT:-4} \
--root /usr/local --version 2.10.0 \
cargo-ndk
rustup target add $RUST_TARGET
RUSTFLAGS='-C target-feature=+crt-static' cargo ndk --target $RUST_TARGET build --release
mv target/$RUST_TARGET/release/gpu-trace-perf /gpu-trace-perf
cargo uninstall --locked \
--root /usr/local \
cargo-ndk
fi
popd
rm -rf gpu-trace-perf-git
popd
section_end gpu-trace-perf

View file

@ -3,7 +3,7 @@
set -ex set -ex
section_start kdl "Building kdl" uncollapsed_section_start kdl "Building kdl"
KDL_REVISION="42218ba7297a28d64ddd1d4b5f200a60b3659d42" KDL_REVISION="42218ba7297a28d64ddd1d4b5f200a60b3659d42"
KDL_CHECKOUT_DIR="/tmp/ci-kdl.git" KDL_CHECKOUT_DIR="/tmp/ci-kdl.git"

View file

@ -2,7 +2,7 @@
set -uex set -uex
section_start libclc "Building libclc" uncollapsed_section_start libclc "Building libclc"
export LLVM_CONFIG="llvm-config-${LLVM_VERSION:?"llvm unset!"}" export LLVM_CONFIG="llvm-config-${LLVM_VERSION:?"llvm unset!"}"
LLVM_TAG="llvmorg-15.0.7" LLVM_TAG="llvmorg-15.0.7"

View file

@ -5,9 +5,9 @@
set -uex set -uex
section_start libdrm "Building libdrm" uncollapsed_section_start libdrm "Building libdrm"
export LIBDRM_VERSION=libdrm-2.4.133 export LIBDRM_VERSION=libdrm-2.4.122
curl -L -O --retry 4 -f --retry-all-errors --retry-delay 60 \ curl -L -O --retry 4 -f --retry-all-errors --retry-delay 60 \
https://dri.freedesktop.org/libdrm/"$LIBDRM_VERSION".tar.xz https://dri.freedesktop.org/libdrm/"$LIBDRM_VERSION".tar.xz

View file

@ -2,7 +2,7 @@
set -ex set -ex
section_start llvm-spirv "Building LLVM-SPIRV-Translator" uncollapsed_section_start llvm-spirv "Building LLVM-SPIRV-Translator"
if [ "${LLVM_VERSION:?llvm version not set}" -ge 18 ]; then if [ "${LLVM_VERSION:?llvm version not set}" -ge 18 ]; then
VER="${LLVM_VERSION}.1.0" VER="${LLVM_VERSION}.1.0"

View file

@ -1,77 +0,0 @@
#!/usr/bin/env bash
set -uex
section_start perfetto "Building perfetto"
BASE_PWD=$PWD
PERFETTO_REVISION=$(grep 'revision =' subprojects/perfetto.wrap | cut -d ' ' -f3)
patch_files=(
"build-perfetto-Fix-C-standard-library-build-errors-with-Debian-13.patch"
)
# Set PERFETTO_ARCH based on DEBIAN_ARCH
if [[ -z "${PERFETTO_ARCH:-}" ]]; then
case "$DEBIAN_ARCH" in
amd64) PERFETTO_ARCH=x64;;
arm64) PERFETTO_ARCH=arm64;;
esac
fi
git clone --branch "$PERFETTO_REVISION" --depth 1 https://github.com/google/perfetto /perfetto
pushd /perfetto
for patch in "${patch_files[@]}"; do
echo "Applying patch: $patch"
git am "$BASE_PWD/.gitlab-ci/container/patches/$patch"
done
# Base GN args
mkdir -p _build
cat >_build/args.gn <<EOF
is_debug=false
target_cpu="${PERFETTO_ARCH}"
target_os="${PERFETTO_TARGET}"
EOF
case "$PERFETTO_TARGET" in
linux)
# Override Perfettos default toolchain selection here, as the bundled
# arm64 toolchain is an x86-64 -> arm64 cross-compiler.
cat >>_build/args.gn <<EOF
is_system_compiler = true
is_hermetic_clang = false
ar = "ar"
cc = "clang-${LLVM_VERSION}"
cxx = "clang++-${LLVM_VERSION}"
extra_ldflags = "-fuse-ld=lld-${LLVM_VERSION} -lpthread -ldl"
EOF
./tools/install-build-deps
;;
android)
# No additional args needed when cross-building for Android
./tools/install-build-deps --android
;;
*)
echo "Unexpected PERFETTO_TARGET value: $PERFETTO_TARGET"
exit 1
;;
esac
./tools/gn gen _build/
./tools/ninja -C _build/ tracebox
mkdir -p build
cp _build/tracebox build/
"${STRIP_CMD:-strip}" build/tracebox || true
# Cleanup everything except build/
find . -mindepth 1 -maxdepth 1 ! -name build -exec rm -rf {} +
popd
section_end perfetto

View file

@ -13,7 +13,7 @@ section_start piglit "Building piglit"
# setting up the environment variables locally # setting up the environment variables locally
ci_tag_build_time_check "PIGLIT_TAG" ci_tag_build_time_check "PIGLIT_TAG"
REV="11ce9eb56edb00e6a7702d13168cc827ce5e0cbd" REV="4147e9d7aeb8ba26ffc25a90fc237588bcb3bb11"
git clone https://gitlab.freedesktop.org/mesa/piglit.git --single-branch --no-checkout /piglit git clone https://gitlab.freedesktop.org/mesa/piglit.git --single-branch --no-checkout /piglit
pushd /piglit pushd /piglit

View file

@ -12,7 +12,11 @@ section_start rust "Building Rust toolchain"
# DEBIAN_BUILD_BASE_TAG # DEBIAN_BUILD_BASE_TAG
# DEBIAN_TEST_BASE_TAG # DEBIAN_TEST_BASE_TAG
MINIMUM_SUPPORTED_RUST_VERSION=$(python3 -c 'import tomllib; print(tomllib.load(open("clippy.toml", "rb"))["msrv"])') # This version number should match what we require in meson.build so we catch
# build issues from patches relying on new features in newer Rust versions.
# Keep this is sync with the `rustc.version()` check in meson.build, and with
# the `rustup default` line in .gitlab-ci/meson/build.sh
MINIMUM_SUPPORTED_RUST_VERSION=1.82.0
# This version number can be bumped freely, to benefit from the latest # This version number can be bumped freely, to benefit from the latest
# diagnostics in CI `build-only` jobs, and for building external CI # diagnostics in CI `build-only` jobs, and for building external CI
@ -35,7 +39,7 @@ curl -L --retry 4 -f --retry-all-errors --retry-delay 60 \
if [ "$1" = "build" ] if [ "$1" = "build" ]
then then
rustup toolchain install --profile minimal --component clippy,rustfmt "$MINIMUM_SUPPORTED_RUST_VERSION" rustup toolchain install --profile minimal --component clippy,rustfmt $MINIMUM_SUPPORTED_RUST_VERSION
fi fi
find "$HOME"/.rustup/toolchains/*/lib -type f -name "*.so" -exec strip {} \; find "$HOME"/.rustup/toolchains/*/lib -type f -name "*.so" -exec strip {} \;

View file

@ -6,7 +6,7 @@
set -ex set -ex
section_start shader-db "Building shader-db" uncollapsed_section_start shader-db "Building shader-db"
pushd /usr/local pushd /usr/local
git clone https://gitlab.freedesktop.org/mesa/shader-db.git --depth 1 git clone https://gitlab.freedesktop.org/mesa/shader-db.git --depth 1

View file

@ -10,7 +10,7 @@
set -uex set -uex
section_start skqp "Building SkQP" uncollapsed_section_start skqp "Building SkQP"
SKQP_BRANCH=android-cts-12.1_r5 SKQP_BRANCH=android-cts-12.1_r5

View file

@ -11,35 +11,43 @@ section_start vkd3d-proton "Building vkd3d-proton"
# setting up the environment variables locally # setting up the environment variables locally
ci_tag_build_time_check "VKD3D_PROTON_TAG" ci_tag_build_time_check "VKD3D_PROTON_TAG"
VKD3D_PROTON_COMMIT="9f89a765ba3f10c715395c087b664a81947bb816" VKD3D_PROTON_COMMIT="0845d1b69c6b474debe39d25f0137bf108a42b92"
VKD3D_PROTON_DST_DIR="/vkd3d-proton-tests" VKD3D_PROTON_DST_DIR="/vkd3d-proton-tests"
VKD3D_PROTON_SRC_DIR="/vkd3d-proton-src" VKD3D_PROTON_SRC_DIR="/vkd3d-proton-src"
VKD3D_PROTON_BUILD_DIR="/vkd3d-proton-build"
VKD3D_PROTON_WINE_DIR="/vkd3d-proton-wine64"
VKD3D_PROTON_S3_ARTIFACT="vkd3d-proton.tar.zst" VKD3D_PROTON_S3_ARTIFACT="vkd3d-proton.tar.zst"
mkdir -p "$VKD3D_PROTON_SRC_DIR" if [ ! -d "$VKD3D_PROTON_WINE_DIR" ]; then
echo "Fatal: Directory '$VKD3D_PROTON_WINE_DIR' does not exist. Aborting."
exit 1
fi
git clone https://github.com/HansKristian-Work/vkd3d-proton.git --single-branch -b master --no-checkout "$VKD3D_PROTON_SRC_DIR"
pushd "$VKD3D_PROTON_SRC_DIR" pushd "$VKD3D_PROTON_SRC_DIR"
git init git checkout "$VKD3D_PROTON_COMMIT"
git remote add origin https://github.com/HansKristian-Work/vkd3d-proton.git
git fetch --depth 1 origin "$VKD3D_PROTON_COMMIT"
git checkout FETCH_HEAD
git submodule update --init --recursive git submodule update --init --recursive
git submodule update --recursive
meson setup build --buildtype release -D enable_tests=true \ meson setup \
-D c_args=-Wno-error=incompatible-pointer-types -D c_args=-Wno-error=incompatible-pointer-types \
# Build and install specifically the bits we want; gets rid of 24MB of -D enable_tests=true \
# unwanted files, keeping only 7.6MB of the three useful files. --buildtype release \
for file in \ --prefix "$VKD3D_PROTON_DST_DIR" \
libs/d3d12/libvkd3d-proton-d3d12.so \ --strip \
libs/d3d12core/libvkd3d-proton-d3d12core.so \ --libdir "lib" \
tests/d3d12 \ "$VKD3D_PROTON_BUILD_DIR/build"
; do
ninja -C build "$file"
strip build/"$file"
install -Dm755 -t "${VKD3D_PROTON_DST_DIR}/$(dirname "$file")" build/"$file"
done
install -m755 -t "${VKD3D_PROTON_DST_DIR}/tests" tests/test-runner.sh ninja -C "$VKD3D_PROTON_BUILD_DIR/build" install
install -m755 -t "${VKD3D_PROTON_DST_DIR}/" "$VKD3D_PROTON_BUILD_DIR/build/tests/d3d12"
mkdir "$VKD3D_PROTON_DST_DIR/tests"
cp \
"tests/test-runner.sh" \
"tests/d3d12_tests.h" \
"$VKD3D_PROTON_DST_DIR/tests/"
popd popd
# Archive and upload vkd3d-proton for use as a LAVA overlay, if the archive doesn't exist yet # Archive and upload vkd3d-proton for use as a LAVA overlay, if the archive doesn't exist yet
@ -48,12 +56,13 @@ if FOUND_ARTIFACT_URL="$(find_s3_project_artifact "${ARTIFACT_PATH}")"; then
echo "Found vkd3d-proton at: ${FOUND_ARTIFACT_URL}, skipping upload" echo "Found vkd3d-proton at: ${FOUND_ARTIFACT_URL}, skipping upload"
else else
echo "Uploaded vkd3d-proton not found, reuploading..." echo "Uploaded vkd3d-proton not found, reuploading..."
tar --zstd -cf "$VKD3D_PROTON_S3_ARTIFACT" -C / "${VKD3D_PROTON_DST_DIR#/}" tar --zstd -cf "$VKD3D_PROTON_S3_ARTIFACT" -C / "${VKD3D_PROTON_DST_DIR#/}" "${VKD3D_PROTON_WINE_DIR#/}"
ci-fairy s3cp --token-file "${S3_JWT_FILE}" "$VKD3D_PROTON_S3_ARTIFACT" \ ci-fairy s3cp --token-file "${S3_JWT_FILE}" "$VKD3D_PROTON_S3_ARTIFACT" \
"https://${S3_BASE_PATH}/${CI_PROJECT_PATH}/${ARTIFACT_PATH}" "https://${S3_BASE_PATH}/${CI_PROJECT_PATH}/${ARTIFACT_PATH}"
rm "$VKD3D_PROTON_S3_ARTIFACT" rm "$VKD3D_PROTON_S3_ARTIFACT"
fi fi
rm -rf "$VKD3D_PROTON_BUILD_DIR"
rm -rf "$VKD3D_PROTON_SRC_DIR" rm -rf "$VKD3D_PROTON_SRC_DIR"
section_end vkd3d-proton section_end vkd3d-proton

View file

@ -6,9 +6,9 @@
set -uex set -uex
section_start vulkan-validation "Building Vulkan validation layers" uncollapsed_section_start vulkan-validation "Building Vulkan validation layers"
VALIDATION_TAG="8474616c3095756c52c1b810b21bd1366b3fc909" VALIDATION_TAG="f7a6d134b827a17a1c75a5e04fbf04e97d5d9388"
mkdir Vulkan-ValidationLayers mkdir Vulkan-ValidationLayers
pushd Vulkan-ValidationLayers pushd Vulkan-ValidationLayers

View file

@ -3,11 +3,13 @@
set -uex set -uex
section_start wayland "Building Wayland" uncollapsed_section_start wayland "Building Wayland"
# When changing this file, you need to bump the following # When changing this file, you need to bump the following
# .gitlab-ci/image-tags.yml tags: # .gitlab-ci/image-tags.yml tags:
# ALPINE_X86_64_BUILD_TAG # ALPINE_X86_64_BUILD_TAG
# DEBIAN_BUILD_TAG
# DEBIAN_TEST_BASE_TAG
# FEDORA_X86_64_BUILD_TAG # FEDORA_X86_64_BUILD_TAG
export LIBWAYLAND_VERSION="1.24.0" export LIBWAYLAND_VERSION="1.24.0"

View file

@ -1,141 +0,0 @@
#!/bin/bash
# When changing this file, you need to bump the following
# .gitlab-ci/image-tags.yml tags:
# DEBIAN_TEST_VK_TAG
set -eux
# This script sets up the wine components and the wine prefix that will be used
# when running wine. All of this gets bundled up into a tarball that's
# conditionally overlaid on LAVA runners when we need wine (container-based jobs
# will have the wine contents in them). Everything that's included in the
# WINE_S3_ARTIFACT (other than the debian wine packages) must go in this script,
# because that determines the cached hash it's uploaded under for LAVA runners.
section_start wine "Setting up Wine"
# Do a very early check to make sure the tag is correct without the need of
# setting up the environment variables locally
ci_tag_build_time_check "WINE_TAG"
export WINEPREFIX="/wineprefix"
export WINEDEBUG="-all"
# We don't want crash dialogs
cat >crashdialog.reg <<EOF
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Wine\WineDbg]
"ShowCrashDialog"=dword:00000000
EOF
# Set the wine prefix and disable the crash dialog
wine regedit crashdialog.reg
rm crashdialog.reg
# An immediate wine command may fail with: "${WINEPREFIX}: Not a
# valid wine prefix." and that is just spit because of checking
# the existance of the system.reg file, which fails. Just giving
# it a bit more of time for it to be created solves the problem
# ...
while ! test -f "${WINEPREFIX}/system.reg"; do sleep 1; done
section_end wine
section_start wine-apitrace "Setting up Apitrace for Wine"
APITRACE_VERSION="14.0"
APITRACE_VERSION_DATE=""
APITRACE_ARCH=""
if [ "$DEBIAN_ARCH" == "arm64" ]; then
APITRACE_ARCH="-arm"
fi
curl -L -O --retry 4 -f --retry-all-errors --retry-delay 60 \
"https://github.com/apitrace/apitrace/releases/download/${APITRACE_VERSION}/apitrace-${APITRACE_VERSION}${APITRACE_VERSION_DATE}-win64${APITRACE_ARCH}.7z"
7zr x "apitrace-${APITRACE_VERSION}${APITRACE_VERSION_DATE}-win64${APITRACE_ARCH}.7z" \
"apitrace-${APITRACE_VERSION}${APITRACE_VERSION_DATE}-win64${APITRACE_ARCH}/bin/apitrace.exe" \
"apitrace-${APITRACE_VERSION}${APITRACE_VERSION_DATE}-win64${APITRACE_ARCH}/bin/d3dretrace.exe"
mv "apitrace-${APITRACE_VERSION}${APITRACE_VERSION_DATE}-win64${APITRACE_ARCH}" /apitrace-msvc-win64
rm "apitrace-${APITRACE_VERSION}${APITRACE_VERSION_DATE}-win64${APITRACE_ARCH}.7z"
section_end wine-apitrace
section_start DXVK "Installing DXVK"
set -uex
overrideDll() {
if ! wine reg add 'HKEY_CURRENT_USER\Software\Wine\DllOverrides' /v "$1" /d native /f; then
echo -e "Failed to add override for $1"
exit 1
fi
}
dxvk_install_release() {
local DXVK_VERSION=${1:?}
curl -L --retry 4 -f --retry-all-errors --retry-delay 60 \
-O "https://github.com/doitsujin/dxvk/releases/download/v${DXVK_VERSION}/dxvk-${DXVK_VERSION}.tar.gz"
tar xzpf dxvk-"${DXVK_VERSION}".tar.gz
cp "dxvk-${DXVK_VERSION}"/x64/*.dll "$WINEPREFIX/drive_c/windows/system32/"
rm -rf "dxvk-${DXVK_VERSION}"
rm dxvk-"${DXVK_VERSION}".tar.gz
}
# DXVK upstream only builds for x64/x32, so we snag arm64 binaries out of
# another project that packages it as arm64 and arm64ec.
dxvk_install_hangover() {
local DXVK_VERSION=${1:?}
local HANGOVER_VERSION=${2:?}
curl -L --retry 4 -f --retry-all-errors --retry-delay 60 \
-o hangover_dlls.tar \
-O "https://github.com/AndreRH/hangover/releases/download/hangover-${HANGOVER_VERSION}/hangover_${HANGOVER_VERSION}_dlls.tar"
tar xpf hangover_dlls.tar
rm hangover_dlls.tar
tar xpf "dxvk-v${DXVK_VERSION}.tar.gz"
rm "dxvk-v${DXVK_VERSION}.tar.gz"
cp "dxvk-v${DXVK_VERSION}"/aarch64/*.dll "$WINEPREFIX/drive_c/windows/system32/"
rm -rf "dxvk-v${DXVK_VERSION}"
}
if [ "$DEBIAN_ARCH" != arm64 ]; then
# x32 and x64 binaries
dxvk_install_release "2.7.1"
else
# Use another packager's tarball for ARM binaries, since upstream DXVK doesn't
# generate them.
dxvk_install_hangover "2.7.1" "11.4"
fi
overrideDll d3d8
overrideDll d3d9
overrideDll d3d10core
overrideDll d3d11
overrideDll dxgi
# make sure the registry keys are flushed.
wineserver -k
section_end DXVK
# Archive and upload wine for use as a LAVA overlay, if the archive doesn't exist yet
WINE_S3_ARTIFACT="wine.tar.zst"
ARTIFACT_PATH="${DATA_STORAGE_PATH}/wine/${DEBIAN_TEST_VK_TAG}-${WINE_TAG}/${CI_JOB_NAME}/${WINE_S3_ARTIFACT}"
if FOUND_ARTIFACT_URL="$(find_s3_project_artifact "${ARTIFACT_PATH}")"; then
echo "Found wine at: ${FOUND_ARTIFACT_URL}, skipping upload"
else
echo "Uploaded wine not found, reuploading..."
tar --zstd -cf "$WINE_S3_ARTIFACT" -C / \
"${WINEPREFIX#/}" \
/apitrace-msvc-win64 \
/usr/lib/*/wine
ci-fairy s3cp --token-file "${S3_JWT_FILE}" "$WINE_S3_ARTIFACT" \
"https://${S3_BASE_PATH}/${CI_PROJECT_PATH}/${ARTIFACT_PATH}"
rm "$WINE_S3_ARTIFACT"
fi

View file

@ -3,7 +3,7 @@
set -uex set -uex
section_start xwayland "Building XWayland" uncollapsed_section_start xwayland "Building XWayland"
# When changing this file, you need to bump the following # When changing this file, you need to bump the following
# .gitlab-ci/image-tags.yml tags: # .gitlab-ci/image-tags.yml tags:

View file

@ -22,8 +22,6 @@ elif [[ "$arch" = "i386" ]]; then
rust_target=i686-unknown-linux-gnu rust_target=i686-unknown-linux-gnu
elif [[ "$arch" = "ppc64el" ]]; then elif [[ "$arch" = "ppc64el" ]]; then
rust_target=powerpc64le-unknown-linux-gnu rust_target=powerpc64le-unknown-linux-gnu
elif [[ "$arch" = "riscv64" ]]; then
rust_target=riscv64gc-unknown-linux-gnu
elif [[ "$arch" = "s390x" ]]; then elif [[ "$arch" = "s390x" ]]; then
rust_target=s390x-unknown-linux-gnu rust_target=s390x-unknown-linux-gnu
else else

View file

@ -25,12 +25,6 @@ DEPS=(
"libpciaccess-dev:$arch" "libpciaccess-dev:$arch"
"libstdc++6:$arch" "libstdc++6:$arch"
"libvulkan-dev:$arch" "libvulkan-dev:$arch"
"libwayland-client0:$arch"
"libwayland-cursor0:$arch"
"libwayland-dev:$arch"
"libwayland-egl1:$arch"
"libwayland-egl-backend-dev:$arch"
"libwayland-server0:$arch"
"libx11-dev:$arch" "libx11-dev:$arch"
"libx11-xcb-dev:$arch" "libx11-xcb-dev:$arch"
"libxcb-dri2-0-dev:$arch" "libxcb-dri2-0-dev:$arch"
@ -45,7 +39,6 @@ DEPS=(
"libxrandr-dev:$arch" "libxrandr-dev:$arch"
"libxshmfence-dev:$arch" "libxshmfence-dev:$arch"
"libxxf86vm-dev:$arch" "libxxf86vm-dev:$arch"
"wayland-protocols:$arch"
) )
dpkg --add-architecture $arch dpkg --add-architecture $arch
@ -85,6 +78,8 @@ fi
# dependencies where we want a specific version # dependencies where we want a specific version
MULTIARCH_PATH=$(dpkg-architecture -A $arch -qDEB_TARGET_MULTIARCH) MULTIARCH_PATH=$(dpkg-architecture -A $arch -qDEB_TARGET_MULTIARCH)
export EXTRA_MESON_ARGS="--cross-file=/cross_file-${arch}.txt -D libdir=lib/${MULTIARCH_PATH}" export EXTRA_MESON_ARGS="--cross-file=/cross_file-${arch}.txt -D libdir=lib/${MULTIARCH_PATH}"
. .gitlab-ci/container/build-wayland.sh
. .gitlab-ci/container/build-directx-headers.sh . .gitlab-ci/container/build-directx-headers.sh
apt-get purge -y "${EPHEMERAL[@]}" apt-get purge -y "${EPHEMERAL[@]}"

View file

@ -69,7 +69,6 @@ DEPS=(
libxshmfence-dev libxshmfence-dev
libxtensor-dev libxtensor-dev
libxxf86vm-dev libxxf86vm-dev
libwayland-bin
libwayland-dev libwayland-dev
libwayland-egl-backend-dev libwayland-egl-backend-dev
"llvm-${LLVM_VERSION}-dev" "llvm-${LLVM_VERSION}-dev"
@ -85,7 +84,6 @@ DEPS=(
python3-venv python3-venv
shellcheck shellcheck
u-boot-tools u-boot-tools
wayland-protocols
xz-utils xz-utils
yamllint yamllint
zlib1g-dev zlib1g-dev
@ -111,6 +109,8 @@ arch=armhf
. .gitlab-ci/container/build-mold.sh . .gitlab-ci/container/build-mold.sh
. .gitlab-ci/container/build-wayland.sh
. .gitlab-ci/container/build-llvm-spirv.sh . .gitlab-ci/container/build-llvm-spirv.sh
. .gitlab-ci/container/build-libclc.sh . .gitlab-ci/container/build-libclc.sh

View file

@ -1,7 +0,0 @@
#!/usr/bin/env bash
ANDROID_ARCH=arm64 \
BUILD_CONTAINER=true \
TEST_CONTAINER=false \
DEBIAN_ARCH=amd64 \
. .gitlab-ci/container/debian/test-android.sh

View file

@ -1,7 +0,0 @@
#!/usr/bin/env bash
ANDROID_ARCH=arm64 \
BUILD_CONTAINER=false \
TEST_CONTAINER=true \
DEBIAN_ARCH=arm64 \
. .gitlab-ci/container/debian/test-android.sh

View file

@ -121,30 +121,6 @@ debian/ppc64el_build:
- job: debian/ppc64el_build - job: debian/ppc64el_build
optional: true optional: true
# Debian based RISC-V 64 cross-build image
debian/riscv64_build:
extends:
- .use-debian/x86_64_build-base
variables:
MESA_IMAGE_TAG: &debian-riscv64_build ${DEBIAN_BUILD_TAG}
LLVM_VERSION: &debian-riscv64-llvm 19
.use-debian/riscv64_build:
tags:
- $FDO_RUNNER_JOB_PRIORITY_TAG_X86_64
extends:
- .set-image-base-tag
variables:
MESA_BASE_TAG: *debian-x86_64_build-base
MESA_IMAGE_PATH: "debian/riscv64_build"
MESA_IMAGE_TAG: *debian-riscv64_build
LLVM_VERSION: *debian-riscv64-llvm
needs:
- job: sanity
optional: true
- job: debian/riscv64_build
optional: true
# Debian based s390x cross-build image # Debian based s390x cross-build image
debian/s390x_build: debian/s390x_build:
extends: extends:
@ -169,25 +145,25 @@ debian/s390x_build:
- job: debian/s390x_build - job: debian/s390x_build
optional: true optional: true
# Common Android variables # Android NDK cross-build image
.android-variables: .android-variables:
variables: variables:
ANDROID_VERSION: 16 ANDROID_VERSION: 14
# Bump both DEBIAN_BUILD_TAG and DEBIAN_TEST_ANDROID_TAG when updating ANDROID_NDK_VERSION: "r27c"
# NDK and SDK versions. ANDROID_SDK_VERSION: 34
ANDROID_NDK_VERSION: "r29"
ANDROID_SDK_VERSION: 35 # Android 16 would be 36, but NDK only supports up to 35
ANDROID_LLVM_VERSION: llvmorg-19.1.7 ANDROID_LLVM_VERSION: llvmorg-19.1.7
ANDROID_LLVM_ARTIFACT_NAME: android-x86_64-llvm-20250822 ANDROID_LLVM_ARTIFACT_NAME: android-x86_64-llvm-20250822
# This can be confusing: LLVM_VERSION refers to the host LLVM toolchain # This can be confusing: LLVM_VERSION refers to the host LLVM toolchain
# used (LLVM 19 in our Debian system), but ANDROID_LLVM_VERSION refers to # used (LLVM 19 in our Debian system), but ANDROID_LLVM_VERSION refers to
# the cross-compiling LLVM toolchain used to build for the Android system. # the cross-compiling LLVM toolchain used to build for the Android system.
LLVM_VERSION: &debian-android-llvm 19 LLVM_VERSION: &debian-android-llvm 19
CUTTLEFISH_PROJECT_PATH: gfx-ci/android/aosp-manifest CUTTLEFISH_PROJECT_PATH: ao2/aosp-manifest
CUTTLEFISH_BUILD_VERSION_TAGS: mesa-venus CUTTLEFISH_BUILD_VERSION_TAGS: mesa-venus
CUTTLEFISH_BUILD_NUMBER: 20260427.001 CUTTLEFISH_BUILD_NUMBER: 20250701.001
AOSP_KERNEL_PROJECT_PATH: ao2/aosp-kernel-manifest
AOSP_KERNEL_BUILD_VERSION_TAGS: common-android14-6.1-venus
AOSP_KERNEL_BUILD_NUMBER: 20241107.001
# Android NDK cross-build image
debian/android_build: debian/android_build:
extends: extends:
- .android-variables - .android-variables
@ -527,51 +503,6 @@ debian/arm64_test-vk:
- job: debian/arm64_test-vk - job: debian/arm64_test-vk
optional: true optional: true
# Debian-based x86_64 builder for Android test tools.
# ANGLE, dEQP, and deqp-runner are built here since Google does not provide
# an arm64 NDK. Artifacts are then copied into the arm64 test image.
debian/arm64_test-android-tools:
extends:
- .android-variables
- .use-debian/x86_64_test-base # NOT a mistake!
- .container-builds-android
variables:
MESA_IMAGE_TAG: &debian-arm64_test-android ${DEBIAN_TEST_ANDROID_TAG}
# Debian based arm64 test image for Android
debian/arm64_test-android:
tags:
- $FDO_RUNNER_JOB_PRIORITY_TAG_AARCH64
extends:
- .android-variables
- .use-debian/arm64_test-base
- .container-builds-android
- .export-container
variables:
MESA_IMAGE_TAG: *debian-arm64_test-android
needs:
- !reference [.use-debian/arm64_test-base, needs]
- job: debian/arm64_test-android-tools
optional: true
.use-debian/arm64_test-android:
tags:
- $FDO_RUNNER_JOB_PRIORITY_TAG_AARCH64
extends:
- .android-variables
- .set-image-base-tag
variables:
MESA_BASE_TAG: *debian-arm64_test-base
MESA_IMAGE_PATH: "debian/arm64_test-android"
MESA_IMAGE_TAG: *debian-arm64_test-android
needs:
- job: sanity
optional: true
- job: debian/arm64_test-android
optional: true
- job: debian/arm64_test-android-tools
optional: true
# x86_64 image with ARM64 & ARM32 kernel & rootfs for baremetal testing # x86_64 image with ARM64 & ARM32 kernel & rootfs for baremetal testing
.debian/baremetal_arm_test: .debian/baremetal_arm_test:
extends: extends:

View file

@ -1,20 +0,0 @@
#!/usr/bin/env bash
set -e
. .gitlab-ci/setup-test-env.sh
arch=riscv64
# Ephemeral packages (installed for this script and removed again at the end)
EPHEMERAL=(
libssl-dev
)
apt-get -y install "${EPHEMERAL[@]}"
. .gitlab-ci/container/build-mold.sh
apt-get purge -y "${EPHEMERAL[@]}"
. .gitlab-ci/container/cross_build.sh

View file

@ -1,250 +0,0 @@
#!/usr/bin/env bash
# The relative paths in this file only become valid at runtime.
# shellcheck disable=SC1091
#
# When changing this file, you need to bump the following
# .gitlab-ci/image-tags.yml tags:
# DEBIAN_TEST_ANDROID_TAG
set -e
. .gitlab-ci/setup-test-env.sh
set -o xtrace
section_start debian_setup "Base Debian system setup"
export DEBIAN_FRONTEND=noninteractive
# Google provides Android NDK for x86_64 hosts only; there is no arm64-native NDK for Linux.
# Thus, we must cross-compile arm64 test tools on x86_64 runners.
# Container Variants Overview:
# - x86_64_test-android: Comprehensive environment for x86_64 testing.
# - arm64_test-android-tools: Used to cross-compile arm64 binaries (dEQP, ANGLE, etc)
# on x86_64 runners because the Android NDK only provides x86_64 host binaries.
# - arm64_test-android: Fetches components built by the 'tools' container to run
# tests on arm64 devices where full builds are unsupported.
#
# | Component | x86_64_test-android | arm64_test-android-tools | arm64_test-android |
# | :------------------: | :-----------------: | :----------------------: | :----------------: |
# | Runner arch | x86_64 | x86_64 | arm64 |
# | Android NDK | ✔ | ✔ | |
# | ANGLE / dEQP | ✔ (Built) | ✔ (Built) | ✔ (Downloaded) |
# | eglinfo / vulkaninfo | ✔ | | ✔ |
# | Cuttlefish / CTS | ✔ (Included) | | (LAVA overlay) |
# | Runtime Deps (AAPT) | ✔ | | ✔ |
#
# | Logic Variable | x86_64_test-android | arm64_test-android-tools | arm64_test-android |
# | :------------------: | :-----------------: | :----------------------: | :----------------: |
# | BUILD_CONTAINER | ✔ | ✔ | |
# | TEST_CONTAINER | ✔ | | ✔ |
if "${BUILD_CONTAINER}"; then
# Ephemeral packages (installed for this script and removed again at the end)
EPHEMERAL=(
binutils-aarch64-linux-gnu
build-essential:native
ccache
cmake
config-package-dev
debhelper-compat
dpkg-dev
ninja-build
unzip
)
else
# We only need the build tools in build containers
EPHEMERAL=()
fi
if "${TEST_CONTAINER}"; then
# We only need the Cuttlefish runtime dependencies in test containers
DEPS=(
aapt
cuttlefish-base
cuttlefish-user
iproute2
)
else
DEPS=()
fi
apt-get install -y --no-remove --no-install-recommends \
"${DEPS[@]}" "${EPHEMERAL[@]}"
############### Building ...
. .gitlab-ci/container/container_pre_build.sh
section_end debian_setup
if [ "${ANDROID_ARCH}" = "x86_64" ]; then
export RUST_TARGET=x86_64-linux-android
export ANDROID_ABI=x86_64
export ANGLE_ARCH=x64
fi
if [ "${ANDROID_ARCH}" = "arm64" ]; then
export RUST_TARGET=aarch64-linux-android
export ANDROID_ABI=arm64-v8a
export ANGLE_ARCH=arm64
export STRIP_CMD=aarch64-linux-gnu-strip
fi
############### Downloading Android tools
section_start android-tools "Downloading Android tools"
# Download pre-built Android utility binaries (eglinfo, vulkaninfo) for test environments
if "${TEST_CONTAINER}"; then
mkdir /android-tools
pushd /android-tools
curl -L --retry 4 -f --retry-all-errors --retry-delay 60 \
-o eglinfo "https://${S3_HOST}/${S3_ANDROID_BUCKET}/mesa/mesa/${DATA_STORAGE_PATH}/eglinfo-android-${ANDROID_ARCH}"
chmod +x eglinfo
curl -L --retry 4 -f --retry-all-errors --retry-delay 60 \
-o vulkaninfo "https://${S3_HOST}/${S3_ANDROID_BUCKET}/mesa/mesa/${DATA_STORAGE_PATH}/vulkaninfo-android-${ANDROID_ARCH}"
chmod +x vulkaninfo
popd
fi
# Fetch cross-compiled test tools (ANGLE, dEQP) for the arm64 runtime.
# These were built in the 'tools' container due to NDK host limitations.
if ! "${BUILD_CONTAINER}"; then
curl-with-retry -O "https://${S3_BASE_PATH}/${CI_PROJECT_PATH}/${DEBIAN_TEST_ANDROID_TAG}/android-tools-arm64.tar.zst"
tar --zstd -xf android-tools-arm64.tar.zst -C /
rm android-tools-arm64.tar.zst
fi
section_end android-tools
############### Downloading NDK for native builds for the guest ...
# Skip NDK setup and builds for test-only runtimes
if "${BUILD_CONTAINER}"; then
section_start android-ndk "Downloading Android NDK"
# Fetch the NDK and extract just the toolchain we want.
ndk="android-ndk-${ANDROID_NDK_VERSION}"
curl -L --retry 4 -f --retry-all-errors --retry-delay 60 \
-o "$ndk.zip" "https://dl.google.com/android/repository/$ndk-linux.zip"
unzip -q -d / "$ndk.zip"
rm "$ndk.zip"
section_end android-ndk
############### Build ANGLE
ANGLE_TARGET=android \
. .gitlab-ci/container/build-angle.sh
############### Build dEQP runner
export ANDROID_NDK_HOME=/$ndk
. .gitlab-ci/container/build-rust.sh test
. .gitlab-ci/container/build-deqp-runner.sh
# Properly uninstall rustup including cargo and init scripts on shells
rustup self uninstall -y
############### Build dEQP
DEQP_API=tools \
DEQP_TARGET="android" \
EXTRA_CMAKE_ARGS="-DDEQP_ANDROID_EXE=ON -DDEQP_TARGET_TOOLCHAIN=ndk-modern -DANDROID_NDK_PATH=/$ndk -DANDROID_ABI=${ANDROID_ABI} -DDE_ANDROID_API=$ANDROID_SDK_VERSION" \
. .gitlab-ci/container/build-deqp.sh
DEQP_API=GLES \
DEQP_TARGET="android" \
EXTRA_CMAKE_ARGS="-DDEQP_ANDROID_EXE=ON -DDEQP_ANDROID_EXE_LOGCAT=ON -DDEQP_TARGET_TOOLCHAIN=ndk-modern -DANDROID_NDK_PATH=/$ndk -DANDROID_ABI=${ANDROID_ABI} -DDE_ANDROID_API=$ANDROID_SDK_VERSION" \
. .gitlab-ci/container/build-deqp.sh
DEQP_API=VK \
DEQP_TARGET="android" \
EXTRA_CMAKE_ARGS="-DDEQP_ANDROID_EXE=ON -DDEQP_ANDROID_EXE_LOGCAT=ON -DDEQP_TARGET_TOOLCHAIN=ndk-modern -DANDROID_NDK_PATH=/$ndk -DANDROID_ABI=${ANDROID_ABI} -DDE_ANDROID_API=$ANDROID_SDK_VERSION" \
. .gitlab-ci/container/build-deqp.sh
rm -rf /VK-GL-CTS
fi
############### Downloading Cuttlefish resources ...
# We only need to download the Cuttlefish image and host tools for the shared runners on x86_64, otherwise they are deployed as LAVA overlays
if [ "${ANDROID_ARCH}" = "x86_64" ]; then
section_start cuttlefish "Downloading and setting up Cuttlefish"
mkdir /cuttlefish
pushd /cuttlefish
curl -L --retry 4 -f --retry-all-errors --retry-delay 60 \
-O "https://${S3_HOST}/${S3_ANDROID_BUCKET}/${CUTTLEFISH_PROJECT_PATH}/aosp-${CUTTLEFISH_BUILD_VERSION_TAGS}.${CUTTLEFISH_BUILD_NUMBER}/aosp_cf_${ANDROID_ARCH}_only_phone-img-${CUTTLEFISH_BUILD_NUMBER}.tar.zst"
tar --zstd -xvf "aosp_cf_${ANDROID_ARCH}_only_phone-img-${CUTTLEFISH_BUILD_NUMBER}.tar.zst"
rm "aosp_cf_${ANDROID_ARCH}_only_phone-img-${CUTTLEFISH_BUILD_NUMBER}.tar.zst"
curl -L --retry 4 -f --retry-all-errors --retry-delay 60 \
-O "https://${S3_HOST}/${S3_ANDROID_BUCKET}/${CUTTLEFISH_PROJECT_PATH}/aosp-${CUTTLEFISH_BUILD_VERSION_TAGS}.${CUTTLEFISH_BUILD_NUMBER}/cvd-host_package-${ANDROID_ARCH}.tar.zst"
tar --zst -xvf "cvd-host_package-${ANDROID_ARCH}.tar.zst"
rm "cvd-host_package-${ANDROID_ARCH}.tar.zst"
popd
section_end cuttlefish
fi
if "${TEST_CONTAINER}"; then
addgroup --system kvm
usermod -a -G kvm,cvdnetwork root
fi
############### Downloading Android CTS
# We currently only have x86_64 CTS jobs
if [ "${ANDROID_ARCH}" = "x86_64" ]; then
. .gitlab-ci/container/build-android-cts.sh
fi
############### Packaging arm64 tools for S3 upload
# Upload cross-compiled arm64 binaries to S3 for consumption by the test runtime container
if ! "${TEST_CONTAINER}"; then
section_start android-tools-arm64 "Uploading Android tools"
TOOL_DIRS=(
/angle
/deqp-gles
/deqp-runner
/deqp-tools
/deqp-vk
/mesa-ci-build-tag
)
tar --zstd -cf android-tools-arm64.tar.zst "${TOOL_DIRS[@]}"
ci-fairy s3cp --token-file "${S3_JWT_FILE}" "android-tools-arm64.tar.zst" \
"https://${S3_BASE_PATH}/${CI_PROJECT_PATH}/${DEBIAN_TEST_ANDROID_TAG}/android-tools-arm64.tar.zst"
section_end android-tools-arm64
fi
############### Uninstall the build software
section_switch debian_cleanup "Cleaning up base Debian system"
if "${BUILD_CONTAINER}"; then
rm -rf "/${ndk:?}"
fi
apt-get purge -y "${EPHEMERAL[@]}"
. .gitlab-ci/container/container_post_build.sh
section_end debian_cleanup
############### Remove unused packages
. .gitlab-ci/container/strip-rootfs.sh

View file

@ -11,7 +11,7 @@ set -e
set -o xtrace set -o xtrace
section_start debian_setup "Base Debian system setup" uncollapsed_section_start debian_setup "Base Debian system setup"
export DEBIAN_FRONTEND=noninteractive export DEBIAN_FRONTEND=noninteractive
@ -89,6 +89,7 @@ EPHEMERAL=(
python3-setuptools python3-setuptools
python3-venv python3-venv
python3-wheel python3-wheel
wayland-protocols
xz-utils xz-utils
) )
@ -123,11 +124,7 @@ DEPS=(
libtirpc3t64 libtirpc3t64
libubsan1 libubsan1
libvulkan1 libvulkan1
libwayland-bin
libwayland-client0 libwayland-client0
libwayland-cursor0
libwayland-dev
libwayland-egl1
libwayland-server0 libwayland-server0
libxcb-composite0 libxcb-composite0
libxcb-dri2-0 libxcb-dri2-0
@ -160,7 +157,6 @@ DEPS=(
sysvinit-core sysvinit-core
vulkan-tools vulkan-tools
waffle-utils waffle-utils
wayland-protocols
xinit xinit
xserver-common xserver-common
xserver-xorg-video-amdgpu xserver-xorg-video-amdgpu
@ -213,6 +209,10 @@ section_end debian_setup
. .gitlab-ci/container/build-libclc.sh . .gitlab-ci/container/build-libclc.sh
############### Build Wayland
. .gitlab-ci/container/build-wayland.sh
############### Build Weston ############### Build Weston
. .gitlab-ci/container/build-weston.sh . .gitlab-ci/container/build-weston.sh
@ -232,21 +232,17 @@ if [ "$DEBIAN_ARCH" != "armhf" ]; then
. .gitlab-ci/container/build-crosvm.sh . .gitlab-ci/container/build-crosvm.sh
fi fi
############### Build dEQP runner and gpu-trace-perf ############### Build dEQP runner
. .gitlab-ci/container/build-deqp-runner.sh . .gitlab-ci/container/build-deqp-runner.sh
############### Build gpu-trace-perf
. .gitlab-ci/container/build-gpu-trace-perf.sh
############### Build apitrace ############### Build apitrace
. .gitlab-ci/container/build-apitrace.sh . .gitlab-ci/container/build-apitrace.sh
############### Uninstall the build software ############### Uninstall the build software
section_switch debian_cleanup "Cleaning up base Debian system" uncollapsed_section_switch debian_cleanup "Cleaning up base Debian system"
apt-get purge -y "${EPHEMERAL[@]}" apt-get purge -y "${EPHEMERAL[@]}"

View file

@ -7,7 +7,7 @@ set -e
set -o xtrace set -o xtrace
section_start debian_setup "Base Debian system setup" uncollapsed_section_start debian_setup "Base Debian system setup"
export DEBIAN_FRONTEND=noninteractive export DEBIAN_FRONTEND=noninteractive
: "${LLVM_VERSION:?llvm version not set!}" : "${LLVM_VERSION:?llvm version not set!}"
@ -123,7 +123,7 @@ fi
############### Uninstall the build software ############### Uninstall the build software
section_switch debian_cleanup "Cleaning up base Debian system" uncollapsed_section_switch debian_cleanup "Cleaning up base Debian system"
apt-get purge -y "${EPHEMERAL[@]}" apt-get purge -y "${EPHEMERAL[@]}"

View file

@ -9,7 +9,7 @@ set -e
set -o xtrace set -o xtrace
section_start debian_setup "Base Debian system setup" uncollapsed_section_start debian_setup "Base Debian system setup"
export DEBIAN_FRONTEND=noninteractive export DEBIAN_FRONTEND=noninteractive
@ -77,6 +77,28 @@ apt-get install -y --no-remove --no-install-recommends \
section_end debian_setup section_end debian_setup
############### Build piglit replayer
if [ "$DEBIAN_ARCH" != "armhf" ]; then
# We don't run any _piglit_ Vulkan tests in the containers.
PIGLIT_OPTS="-DPIGLIT_USE_WAFFLE=ON
-DPIGLIT_USE_GBM=OFF
-DPIGLIT_USE_WAYLAND=OFF
-DPIGLIT_USE_X11=OFF
-DPIGLIT_BUILD_GLX_TESTS=OFF
-DPIGLIT_BUILD_EGL_TESTS=OFF
-DPIGLIT_BUILD_WGL_TESTS=OFF
-DPIGLIT_BUILD_GL_TESTS=OFF
-DPIGLIT_BUILD_GLES1_TESTS=OFF
-DPIGLIT_BUILD_GLES2_TESTS=OFF
-DPIGLIT_BUILD_GLES3_TESTS=OFF
-DPIGLIT_BUILD_CL_TESTS=OFF
-DPIGLIT_BUILD_VK_TESTS=OFF
-DPIGLIT_BUILD_DMA_BUF_TESTS=OFF" \
PIGLIT_BUILD_TARGETS="piglit_replayer" \
. .gitlab-ci/container/build-piglit.sh
fi
############### Build dEQP VK ############### Build dEQP VK
DEQP_API=tools \ DEQP_API=tools \
@ -108,23 +130,18 @@ if [ "$DEBIAN_ARCH" != "armhf" ]; then
. .gitlab-ci/container/build-gfxreconstruct.sh . .gitlab-ci/container/build-gfxreconstruct.sh
fi fi
############### Build Wine
# Wine isn't available on 32-bit ARM
if [ "$DEBIAN_ARCH" != "armhf" ]; then
. .gitlab-ci/container/build-wine.sh
fi
############### Build VKD3D-Proton ############### Build VKD3D-Proton
# Wine isn't available on 32-bit ARM # Wine isn't available on 32-bit ARM
if [ "$DEBIAN_ARCH" != "armhf" ]; then if [ "$DEBIAN_ARCH" != "armhf" ]; then
uncollapsed_section_switch proton "Installing Proton (Wine/D3DVK emulation)"
. .gitlab-ci/container/setup-wine.sh "/vkd3d-proton-wine64"
. .gitlab-ci/container/build-vkd3d-proton.sh . .gitlab-ci/container/build-vkd3d-proton.sh
fi fi
############### Uninstall the build software ############### Uninstall the build software
section_switch debian_cleanup "Cleaning up base Debian system" uncollapsed_section_switch debian_cleanup "Cleaning up base Debian system"
apt-get purge -y "${EPHEMERAL[@]}" apt-get purge -y "${EPHEMERAL[@]}"

View file

@ -50,7 +50,7 @@ DEPS=(
libepoxy-dev libepoxy-dev
libexpat1-dev libexpat1-dev
libflatbuffers-dev libflatbuffers-dev
libglfw3-dev libgtk-3-dev
"libllvm${LLVM_VERSION}" "libllvm${LLVM_VERSION}"
libpciaccess-dev libpciaccess-dev
libunwind-dev libunwind-dev

View file

@ -45,9 +45,6 @@ DEPS=(
libxcb-xfixes0-dev libxcb-xfixes0-dev
libxcb1-dev libxcb1-dev
libxml2-dev libxml2-dev
libwayland-bin
libwayland-dev
libwayland-egl-backend-dev
"llvm-${LLVM_VERSION}-dev" "llvm-${LLVM_VERSION}-dev"
ocl-icd-opencl-dev ocl-icd-opencl-dev
python3-pip python3-pip
@ -55,7 +52,6 @@ DEPS=(
spirv-tools spirv-tools
strace strace
time time
wayland-protocols
zstd zstd
) )
@ -80,6 +76,8 @@ tar -xvf $XORGMACROS_VERSION.tar.bz2 && rm $XORGMACROS_VERSION.tar.bz2
cd $XORGMACROS_VERSION; ./configure; make install; cd .. cd $XORGMACROS_VERSION; ./configure; make install; cd ..
rm -rf $XORGMACROS_VERSION rm -rf $XORGMACROS_VERSION
. .gitlab-ci/container/build-wayland.sh
. .gitlab-ci/container/build-shader-db.sh . .gitlab-ci/container/build-shader-db.sh
. .gitlab-ci/container/build-directx-headers.sh . .gitlab-ci/container/build-directx-headers.sh

View file

@ -1,7 +1,164 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# The relative paths in this file only become valid at runtime.
# shellcheck disable=SC1091
#
# When changing this file, you need to bump the following
# .gitlab-ci/image-tags.yml tags:
# DEBIAN_TEST_ANDROID_TAG
ANDROID_ARCH=x86_64 \ set -e
BUILD_CONTAINER=true \
TEST_CONTAINER=true \ . .gitlab-ci/setup-test-env.sh
set -o xtrace
section_start debian_setup "Base Debian system setup"
export DEBIAN_FRONTEND=noninteractive
# Ephemeral packages (installed for this script and removed again at the end)
EPHEMERAL=(
build-essential:native
ccache
cmake
config-package-dev
debhelper-compat
dpkg-dev
ninja-build
sudo
unzip
)
DEPS=(
aapt
cuttlefish-base
cuttlefish-user
iproute2
)
apt-get install -y --no-remove --no-install-recommends \
"${DEPS[@]}" "${EPHEMERAL[@]}"
############### Building ...
. .gitlab-ci/container/container_pre_build.sh
section_end debian_setup
############### Downloading Android tools
section_start android-tools "Downloading Android tools"
mkdir /android-tools
pushd /android-tools
curl -L --retry 4 -f --retry-all-errors --retry-delay 60 \
-o eglinfo "https://${S3_HOST}/${S3_ANDROID_BUCKET}/mesa/mesa/${DATA_STORAGE_PATH}/eglinfo-android-x86_64"
chmod +x eglinfo
curl -L --retry 4 -f --retry-all-errors --retry-delay 60 \
-o vulkaninfo "https://${S3_HOST}/${S3_ANDROID_BUCKET}/mesa/mesa/${DATA_STORAGE_PATH}/vulkaninfo-android-x86_64"
chmod +x vulkaninfo
popd
section_end android-tools
############### Downloading NDK for native builds for the guest ...
section_start android-ndk "Downloading Android NDK"
# Fetch the NDK and extract just the toolchain we want.
ndk="android-ndk-${ANDROID_NDK_VERSION}"
curl -L --retry 4 -f --retry-all-errors --retry-delay 60 \
-o "$ndk.zip" "https://dl.google.com/android/repository/$ndk-linux.zip"
unzip -q -d / "$ndk.zip"
rm "$ndk.zip"
section_end android-ndk
############### Build ANGLE
ANGLE_TARGET=android \
DEBIAN_ARCH=amd64 \ DEBIAN_ARCH=amd64 \
. .gitlab-ci/container/debian/test-android.sh . .gitlab-ci/container/build-angle.sh
############### Build dEQP runner
export ANDROID_NDK_HOME=/$ndk
export RUST_TARGET=x86_64-linux-android
. .gitlab-ci/container/build-rust.sh test
. .gitlab-ci/container/build-deqp-runner.sh
# Properly uninstall rustup including cargo and init scripts on shells
rustup self uninstall -y
############### Build dEQP
DEQP_API=tools \
DEQP_TARGET="android" \
EXTRA_CMAKE_ARGS="-DDEQP_ANDROID_EXE=ON -DDEQP_TARGET_TOOLCHAIN=ndk-modern -DANDROID_NDK_PATH=/$ndk -DANDROID_ABI=x86_64 -DDE_ANDROID_API=$ANDROID_SDK_VERSION" \
. .gitlab-ci/container/build-deqp.sh
DEQP_API=GLES \
DEQP_TARGET="android" \
EXTRA_CMAKE_ARGS="-DDEQP_ANDROID_EXE=ON -DDEQP_TARGET_TOOLCHAIN=ndk-modern -DANDROID_NDK_PATH=/$ndk -DANDROID_ABI=x86_64 -DDE_ANDROID_API=$ANDROID_SDK_VERSION" \
. .gitlab-ci/container/build-deqp.sh
DEQP_API=VK \
DEQP_TARGET="android" \
EXTRA_CMAKE_ARGS="-DDEQP_ANDROID_EXE=ON -DDEQP_TARGET_TOOLCHAIN=ndk-modern -DANDROID_NDK_PATH=/$ndk -DANDROID_ABI=x86_64 -DDE_ANDROID_API=$ANDROID_SDK_VERSION" \
. .gitlab-ci/container/build-deqp.sh
rm -rf /VK-GL-CTS
############### Downloading Cuttlefish resources ...
section_start cuttlefish "Downloading and setting up Cuttlefish"
mkdir /cuttlefish
pushd /cuttlefish
curl -L --retry 4 -f --retry-all-errors --retry-delay 60 \
-O "https://${S3_HOST}/${S3_ANDROID_BUCKET}/${CUTTLEFISH_PROJECT_PATH}/aosp-${CUTTLEFISH_BUILD_VERSION_TAGS}.${CUTTLEFISH_BUILD_NUMBER}/aosp_cf_x86_64_only_phone-img-${CUTTLEFISH_BUILD_NUMBER}.tar.zst"
tar --zstd -xvf aosp_cf_x86_64_only_phone-img-"$CUTTLEFISH_BUILD_NUMBER".tar.zst
rm aosp_cf_x86_64_only_phone-img-"$CUTTLEFISH_BUILD_NUMBER".tar.zst
ls -lhS ./*
curl -L --retry 4 -f --retry-all-errors --retry-delay 60 \
-O "https://${S3_HOST}/${S3_ANDROID_BUCKET}/${CUTTLEFISH_PROJECT_PATH}/aosp-${CUTTLEFISH_BUILD_VERSION_TAGS}.${CUTTLEFISH_BUILD_NUMBER}/cvd-host_package-x86_64.tar.zst"
tar --zst -xvf cvd-host_package-x86_64.tar.zst
rm cvd-host_package-x86_64.tar.zst
curl -L --retry 4 -f --retry-all-errors --retry-delay 60 \
-O "https://${S3_HOST}/${S3_ANDROID_BUCKET}/${AOSP_KERNEL_PROJECT_PATH}/aosp-kernel-common-${AOSP_KERNEL_BUILD_VERSION_TAGS}.${AOSP_KERNEL_BUILD_NUMBER}/bzImage"
curl -L --retry 4 -f --retry-all-errors --retry-delay 60 \
-O "https://${S3_HOST}/${S3_ANDROID_BUCKET}/${AOSP_KERNEL_PROJECT_PATH}/aosp-kernel-common-${AOSP_KERNEL_BUILD_VERSION_TAGS}.${AOSP_KERNEL_BUILD_NUMBER}/initramfs.img"
popd
addgroup --system kvm
usermod -a -G kvm,cvdnetwork root
section_end cuttlefish
############### Downloading Android CTS
. .gitlab-ci/container/build-android-cts.sh
############### Uninstall the build software
section_switch debian_cleanup "Cleaning up base Debian system"
rm -rf "/${ndk:?}"
export SUDO_FORCE_REMOVE=yes
apt-get purge -y "${EPHEMERAL[@]}"
. .gitlab-ci/container/container_post_build.sh
section_end debian_cleanup
############### Remove unused packages
. .gitlab-ci/container/strip-rootfs.sh

View file

@ -48,12 +48,10 @@ buildah_export() {
# These components will be provided via LAVA overlays, # These components will be provided via LAVA overlays,
# so remove them from the core rootfs # so remove them from the core rootfs
rm -rf "${mountpoint}/android-cts" rm -rf "${mountpoint}/android-cts"
rm -rf "${mountpoint}/apitrace-msvc-win64"
rm -rf "${mountpoint}/cuttlefish" rm -rf "${mountpoint}/cuttlefish"
rm -rf "${mountpoint}/fluster/resources" rm -rf "${mountpoint}/fluster/resources"
rm -rf "${mountpoint}/usr/lib/*/wine"
rm -rf "${mountpoint}/vkd3d-proton-tests" rm -rf "${mountpoint}/vkd3d-proton-tests"
rm -rf "${mountpoint}/wineprefix" rm -rf "${mountpoint}/vkd3d-proton-wine64"
# Compress to zstd # Compress to zstd
ZSTD_CLEVEL=10 tar -C "$mountpoint" -I zstd -cf "$2" . ZSTD_CLEVEL=10 tar -C "$mountpoint" -I zstd -cf "$2" .

View file

@ -38,7 +38,6 @@ DEPS=(
gettext gettext
glslang glslang
kernel-headers kernel-headers
libstdc++-static
llvm-devel llvm-devel
ninja-build ninja-build
"pkgconfig(LLVMSPIRVLib)" "pkgconfig(LLVMSPIRVLib)"

View file

@ -20,6 +20,8 @@
extends: extends:
- .set-image - .set-image
- .incorporate-base-tag+templates-commit - .incorporate-base-tag+templates-commit
variables:
MESA_IMAGE: "$CI_REGISTRY_IMAGE/${MESA_IMAGE_PATH}:${FDO_DISTRIBUTION_TAG}"
.container: .container:
stage: container stage: container
@ -40,7 +42,7 @@
FDO_DISTRIBUTION_EXEC: 'bash .gitlab-ci/container/container_job_trampoline.sh "${CI_JOB_NAME}"' FDO_DISTRIBUTION_EXEC: 'bash .gitlab-ci/container/container_job_trampoline.sh "${CI_JOB_NAME}"'
# no need to pull the whole repo to build the container image # no need to pull the whole repo to build the container image
GIT_STRATEGY: none GIT_STRATEGY: none
CI_BUILD_COMPONENTS: "$CI_BUILD_COMPONENTS_ANDROID_CTS $CI_BUILD_COMPONENTS_ANGLE $CI_BUILD_COMPONENTS_CROSVM $CI_BUILD_COMPONENTS_FLUSTER $CI_BUILD_COMPONENTS_PIGLIT $CI_BUILD_COMPONENTS_VKD3D_PROTON $CI_BUILD_COMPONENTS_WINE" CI_BUILD_COMPONENTS: "$CI_BUILD_COMPONENTS_ANDROID_CTS $CI_BUILD_COMPONENTS_ANGLE $CI_BUILD_COMPONENTS_CROSVM $CI_BUILD_COMPONENTS_FLUSTER $CI_BUILD_COMPONENTS_PIGLIT $CI_BUILD_COMPONENTS_VKD3D_PROTON"
.container-builds-angle: .container-builds-angle:
variables: variables:
@ -67,11 +69,6 @@
VKD3D_PROTON_TAG: "${CONDITIONAL_BUILD_VKD3D_PROTON_TAG}" VKD3D_PROTON_TAG: "${CONDITIONAL_BUILD_VKD3D_PROTON_TAG}"
CI_BUILD_COMPONENTS_VKD3D_PROTON: vkd3d-proton CI_BUILD_COMPONENTS_VKD3D_PROTON: vkd3d-proton
.container-builds-wine:
variables:
WINE_TAG: "${CONDITIONAL_BUILD_WINE_TAG}"
CI_BUILD_COMPONENTS_WINE: wine
.container-builds-android-cts: .container-builds-android-cts:
variables: variables:
ANDROID_CTS_TAG: "${CONDITIONAL_BUILD_ANDROID_CTS_TAG}" ANDROID_CTS_TAG: "${CONDITIONAL_BUILD_ANDROID_CTS_TAG}"
@ -103,7 +100,6 @@
extends: extends:
- .container-builds-piglit - .container-builds-piglit
- .container-builds-vkd3d-proton - .container-builds-vkd3d-proton
- .container-builds-wine
# Export the container rootfs and upload it to S3 # Export the container rootfs and upload it to S3
.export-container: .export-container:

View file

@ -0,0 +1,16 @@
#!/bin/bash
set -ue
APITRACE_VERSION="11.1"
APITRACE_VERSION_DATE=""
curl -L -O --retry 4 -f --retry-all-errors --retry-delay 60 \
"https://github.com/apitrace/apitrace/releases/download/${APITRACE_VERSION}/apitrace-${APITRACE_VERSION}${APITRACE_VERSION_DATE}-win64.7z"
7zr x "apitrace-${APITRACE_VERSION}${APITRACE_VERSION_DATE}-win64.7z" \
"apitrace-${APITRACE_VERSION}${APITRACE_VERSION_DATE}-win64/bin/apitrace.exe" \
"apitrace-${APITRACE_VERSION}${APITRACE_VERSION_DATE}-win64/bin/d3dretrace.exe"
mv "apitrace-${APITRACE_VERSION}${APITRACE_VERSION_DATE}-win64" /apitrace-msvc-win64
rm "apitrace-${APITRACE_VERSION}${APITRACE_VERSION_DATE}-win64.7z"

View file

@ -0,0 +1,27 @@
#!/usr/bin/env bash
set -ue
overrideDll() {
if ! wine reg add 'HKEY_CURRENT_USER\Software\Wine\DllOverrides' /v "$1" /d native /f; then
echo -e "Failed to add override for $1"
exit 1
fi
}
dxvk_install_release() {
local DXVK_VERSION=${1:?}
curl -L --retry 4 -f --retry-all-errors --retry-delay 60 \
-O "https://github.com/doitsujin/dxvk/releases/download/v${DXVK_VERSION}/dxvk-${DXVK_VERSION}.tar.gz"
tar xzpf dxvk-"${DXVK_VERSION}".tar.gz
cp "dxvk-${DXVK_VERSION}"/x64/*.dll "$WINEPREFIX/drive_c/windows/system32/"
overrideDll d3d9
overrideDll d3d10core
overrideDll d3d11
overrideDll dxgi
rm -rf "dxvk-${DXVK_VERSION}"
rm dxvk-"${DXVK_VERSION}".tar.gz
}
dxvk_install_release "2.1"

View file

@ -1,277 +0,0 @@
From 0ce7ca82289ec3351ccec4b37540d8fdbc8dd095 Mon Sep 17 00:00:00 2001
From: Valentine Burley <valentine.burley@collabora.com>
Date: Thu, 23 Apr 2026 11:03:14 +0200
Subject: [PATCH] android: Implement headless WSI fallback using AImageReader
When running dEQP as a native executable (DEQP_ANDROID_EXE) on Android,
a system-provided NativeActivity window is typically unavailable. This
prevents Vulkan and EGL WSI tests from running as they require a valid
ANativeWindow.
This patch:
- Implements a headless fallback using the AImageReader NDK API to
create an off-screen ANativeWindow in tcuAndroidPlatform.cpp.
- Adds ImageReaderNativeWindow (EGL) and ImageReaderVulkanWindow (Vulkan)
to manage the AImageReader lifecycle within the framework.
- Extracts the AImageReader creation logic into a shared helper
acquireImageReaderWindow().
- Links against mediandk in android.cmake to provide AImageReader
support for Android API levels >= 24.
- On Android API levels < 24 (where AImageReader is unavailable), window
acquisition failure now consistently throws ResourceError instead of
NotSupportedError. This aligns the EGL path with the existing Vulkan
behavior and reverts EGL to the previous CTS behavior.
This allows surface and swapchain tests to function correctly in headless
environments for both EGL and Vulkan.
Components: Android, EGL, Framework, Vulkan
VK-GL-CTS issue: 6468
Affects:
dEQP-EGL.*
dEQP-VK.wsi.android.*
Change-Id: I462e617ae60e4dc3d9f0aeec11fd1628d0c6ff12
Signed-off-by: Valentine Burley <valentine.burley@collabora.com>
---
external/openglcts/README.md | 7 +-
.../platform/android/tcuAndroidPlatform.cpp | 159 +++++++++++++++++-
targets/android/android.cmake | 5 +
3 files changed, 164 insertions(+), 7 deletions(-)
diff --git a/external/openglcts/README.md b/external/openglcts/README.md
index 69eb8a5c1e..f464291858 100644
--- a/external/openglcts/README.md
+++ b/external/openglcts/README.md
@@ -323,9 +323,10 @@ This is identical to the builds on other platforms and is better for iterative
runs of headless tests as CTS can be invoked and the output can be checked from
a single interactive terminal.
-This build doesn't support WSI tests and shouldn't be used for conformance
-submissions, it also isn't recommended for longer running tests since Android
-will terminate this process as soon as the `adb shell` session ends which may
+This build supports WSI tests via a headless AImageReader fallback for both EGL
+and Vulkan (Android API 24+). However, it shouldn't be used for conformance
+submissions. It also isn't recommended for longer running tests since Android
+will terminate this process as soon as the `adb shell` session ends, which may
happen due to an unintentional device disconnection.
cmake <path to openglcts> -GNinja -DCMAKE_BUILD_TYPE=Debug \
diff --git a/framework/platform/android/tcuAndroidPlatform.cpp b/framework/platform/android/tcuAndroidPlatform.cpp
index af56dabb83..86984202fb 100644
--- a/framework/platform/android/tcuAndroidPlatform.cpp
+++ b/framework/platform/android/tcuAndroidPlatform.cpp
@@ -35,6 +35,12 @@
// Assume no call translation is needed
#include <android/native_window.h>
+#if DE_ANDROID_API >= 24
+#include <media/NdkImageReader.h>
+#endif
+#if DE_ANDROID_API >= 26
+#include <android/hardware_buffer.h>
+#endif
struct egl_native_pixmap_t;
DE_STATIC_ASSERT(sizeof(eglw::EGLNativeDisplayType) == sizeof(void *));
DE_STATIC_ASSERT(sizeof(eglw::EGLNativePixmapType) == sizeof(struct egl_native_pixmap_t *));
@@ -136,6 +142,81 @@ private:
WindowRegistry &m_windowRegistry;
};
+#if DE_ANDROID_API >= 24
+static ANativeWindow *acquireImageReaderWindow(int width, int height, int32_t format, AImageReader **outReader)
+{
+ AImageReader *reader = nullptr;
+#if DE_ANDROID_API >= 26
+ uint64_t usage = AHARDWAREBUFFER_USAGE_GPU_SAMPLED_IMAGE | AHARDWAREBUFFER_USAGE_COMPOSER_OVERLAY;
+ media_status_t status = AImageReader_newWithUsage(width, height, format, usage, 2, &reader);
+#else
+ media_status_t status = AImageReader_new(width, height, format, 2, &reader);
+#endif
+ if (status != AMEDIA_OK || !reader)
+ throw ResourceError("Failed to create AImageReader", nullptr, __FILE__, __LINE__);
+
+ ANativeWindow *nativeWindow = nullptr;
+ status = AImageReader_getWindow(reader, &nativeWindow);
+ if (status != AMEDIA_OK || !nativeWindow)
+ {
+ AImageReader_delete(reader);
+ throw ResourceError("Failed to get window from AImageReader", nullptr, __FILE__, __LINE__);
+ }
+
+ *outReader = reader;
+ return nativeWindow;
+}
+
+class ImageReaderNativeWindow : public eglu::NativeWindow
+{
+public:
+ ImageReaderNativeWindow(AImageReader *reader, ANativeWindow *window, int width, int height)
+ : eglu::NativeWindow(WINDOW_CAPABILITIES)
+ , m_reader(reader)
+ , m_window(window)
+ , m_size(width, height)
+ {
+ }
+
+ virtual ~ImageReaderNativeWindow(void)
+ {
+ if (m_reader)
+ AImageReader_delete(m_reader);
+ }
+
+ virtual eglw::EGLNativeWindowType getLegacyNative(void)
+ {
+ return m_window;
+ }
+ virtual void *getPlatformExtension(void)
+ {
+ return m_window;
+ }
+ virtual void *getPlatformNative(void)
+ {
+ return m_window;
+ }
+ tcu::IVec2 getScreenSize(void) const
+ {
+ return m_size;
+ }
+ void setSurfaceSize(tcu::IVec2 size)
+ {
+ int32_t format = 0; // 0 means keep the existing format
+ ANativeWindow_setBuffersGeometry(m_window, size.x(), size.y(), format);
+ m_size = size;
+ }
+ virtual void processEvents(void)
+ {
+ }
+
+private:
+ AImageReader *m_reader;
+ ANativeWindow *m_window;
+ tcu::IVec2 m_size;
+};
+#endif
+
// NativeWindow
NativeWindow::NativeWindow(Window *window, int width, int height, int32_t format)
@@ -197,10 +278,29 @@ eglu::NativeWindow *NativeWindowFactory::createWindow(const eglu::WindowParams &
{
Window *window = m_windowRegistry.tryAcquireWindow();
- if (!window)
- throw NotSupportedError("Native window is not available", nullptr, __FILE__, __LINE__);
-
- return new NativeWindow(window, params.width, params.height, format);
+ if (window)
+ {
+ return new NativeWindow(window, params.width, params.height, format);
+ }
+ else
+ {
+#if DE_ANDROID_API >= 24
+ int width = params.width != eglu::WindowParams::SIZE_DONT_CARE ? params.width : 256;
+ int height = params.height != eglu::WindowParams::SIZE_DONT_CARE ? params.height : 256;
+ width = width > 0 ? width : 256;
+ height = height > 0 ? height : 256;
+
+ AImageReader *reader = nullptr;
+ // Always use AIMAGE_FORMAT_RGBA_8888: the AImageReader is only used as a
+ // surface handle provider, and AIMAGE_FORMAT_* constants are not
+ // interchangeable with ANativeWindow_LegacyFormat values.
+ ANativeWindow *nativeWindow = acquireImageReaderWindow(width, height, AIMAGE_FORMAT_RGBA_8888, &reader);
+
+ return new ImageReaderNativeWindow(reader, nativeWindow, width, height);
+#else
+ throw ResourceError("Native window is not available", nullptr, __FILE__, __LINE__);
+#endif
+ }
}
// NativeDisplayFactory
@@ -279,6 +379,43 @@ private:
tcu::Android::Window &m_window;
};
+#if DE_ANDROID_API >= 24
+class ImageReaderVulkanWindow : public vk::wsi::AndroidWindowInterface
+{
+public:
+ ImageReaderVulkanWindow(AImageReader *reader, ANativeWindow *window)
+ : vk::wsi::AndroidWindowInterface(vk::pt::AndroidNativeWindowPtr(window))
+ , m_reader(reader)
+ {
+ }
+
+ void setVisible(bool visible)
+ {
+ DE_UNREF(visible);
+ }
+
+ void resize(const UVec2 &newSize)
+ {
+ DE_UNREF(newSize);
+ }
+
+ void setMinimized(bool minimized)
+ {
+ DE_UNREF(minimized);
+ TCU_THROW(NotSupportedError, "Minimized on Android is not implemented");
+ }
+
+ ~ImageReaderVulkanWindow(void)
+ {
+ if (m_reader)
+ AImageReader_delete(m_reader);
+ }
+
+private:
+ AImageReader *m_reader;
+};
+#endif
+
class VulkanDisplay : public vk::wsi::Display
{
public:
@@ -306,7 +443,21 @@ public:
}
}
else
+ {
+#if DE_ANDROID_API >= 24
+ uint32_t width = initialSize ? initialSize->x() : 256;
+ uint32_t height = initialSize ? initialSize->y() : 256;
+ width = width > 0 ? width : 256;
+ height = height > 0 ? height : 256;
+
+ AImageReader *reader = nullptr;
+ ANativeWindow *nativeWindow = acquireImageReaderWindow(width, height, AIMAGE_FORMAT_RGBA_8888, &reader);
+
+ return new ImageReaderVulkanWindow(reader, nativeWindow);
+#else
TCU_THROW(ResourceError, "Native window is not available");
+#endif
+ }
}
private:
diff --git a/targets/android/android.cmake b/targets/android/android.cmake
index 33843fcc09..6da33d3c17 100644
--- a/targets/android/android.cmake
+++ b/targets/android/android.cmake
@@ -64,6 +64,11 @@ if (DE_ANDROID_API GREATER 8)
set(DEQP_PLATFORM_LIBRARIES ${DEQP_PLATFORM_LIBRARIES} ${ANDROID_LIBRARY})
endif ()
+if (DE_ANDROID_API GREATER 23)
+ find_library(MEDIANDK_LIBRARY NAMES mediandk PATHS /usr/lib)
+ set(DEQP_PLATFORM_LIBRARIES ${DEQP_PLATFORM_LIBRARIES} ${MEDIANDK_LIBRARY})
+endif ()
+
# Android uses customized execserver
include_directories(execserver)
set(DEQP_PLATFORM_LIBRARIES xscore ${DEQP_PLATFORM_LIBRARIES})
--
2.51.0

View file

@ -1,4 +1,4 @@
From 8a9b46a0fd740679ff576ae70e5ac4bae12ac8b0 Mon Sep 17 00:00:00 2001 From ccdc2b9341c703507cba6017d2a494595335ffdc Mon Sep 17 00:00:00 2001
From: Daniel Stone <daniels@collabora.com> From: Daniel Stone <daniels@collabora.com>
Date: Wed, 29 Jan 2025 12:50:33 +0000 Date: Wed, 29 Jan 2025 12:50:33 +0000
Subject: [PATCH] Build: Don't build Vulkan utilities for GL builds Subject: [PATCH] Build: Don't build Vulkan utilities for GL builds
@ -6,15 +6,15 @@ Subject: [PATCH] Build: Don't build Vulkan utilities for GL builds
Change-Id: Ie412f914bb6264ffbd502deea57d80cc11a9948e Change-Id: Ie412f914bb6264ffbd502deea57d80cc11a9948e
Signed-off-by: Daniel Stone <daniels@collabora.com> Signed-off-by: Daniel Stone <daniels@collabora.com>
--- ---
framework/platform/CMakeLists.txt | 9 - framework/platform/CMakeLists.txt | 9 --
.../platform/android/tcuAndroidPlatform.cpp | 177 +----------------- .../platform/android/tcuAndroidPlatform.cpp | 126 +-----------------
.../platform/android/tcuAndroidPlatform.hpp | 14 +- .../platform/android/tcuAndroidPlatform.hpp | 14 +-
framework/platform/lnx/tcuLnxPlatform.cpp | 9 +- framework/platform/lnx/tcuLnxPlatform.cpp | 9 +-
.../surfaceless/tcuSurfacelessPlatform.cpp | 54 ------ .../surfaceless/tcuSurfacelessPlatform.cpp | 54 --------
5 files changed, 3 insertions(+), 260 deletions(-) 5 files changed, 3 insertions(+), 209 deletions(-)
diff --git a/framework/platform/CMakeLists.txt b/framework/platform/CMakeLists.txt diff --git a/framework/platform/CMakeLists.txt b/framework/platform/CMakeLists.txt
index 64d248b30f..833df5a08a 100644 index ec1deb5c2..49fe412a7 100644
--- a/framework/platform/CMakeLists.txt --- a/framework/platform/CMakeLists.txt
+++ b/framework/platform/CMakeLists.txt +++ b/framework/platform/CMakeLists.txt
@@ -15,8 +15,6 @@ if (NOT DEFINED TCUTIL_PLATFORM_SRCS) @@ -15,8 +15,6 @@ if (NOT DEFINED TCUTIL_PLATFORM_SRCS)
@ -35,7 +35,7 @@ index 64d248b30f..833df5a08a 100644
) )
include_directories(lnx) include_directories(lnx)
@@ -168,8 +164,6 @@ if (NOT DEFINED TCUTIL_PLATFORM_SRCS) @@ -164,8 +160,6 @@ if (NOT DEFINED TCUTIL_PLATFORM_SRCS)
set(TCUTIL_PLATFORM_SRCS set(TCUTIL_PLATFORM_SRCS
osx/tcuOSXPlatform.cpp osx/tcuOSXPlatform.cpp
osx/tcuOSXPlatform.hpp osx/tcuOSXPlatform.hpp
@ -44,7 +44,7 @@ index 64d248b30f..833df5a08a 100644
osx/tcuOSXMetalView.mm osx/tcuOSXMetalView.mm
osx/tcuOSXMetalView.hpp osx/tcuOSXMetalView.hpp
) )
@@ -195,9 +189,6 @@ if (DEQP_USE_WAYLAND) @@ -191,9 +185,6 @@ if (DEQP_USE_WAYLAND)
add_dependencies(tcutil-platform deqp-xdg-shell) add_dependencies(tcutil-platform deqp-xdg-shell)
endif() endif()
@ -55,7 +55,7 @@ index 64d248b30f..833df5a08a 100644
# Always link to glutil as some platforms such as Win32 always support GL # Always link to glutil as some platforms such as Win32 always support GL
diff --git a/framework/platform/android/tcuAndroidPlatform.cpp b/framework/platform/android/tcuAndroidPlatform.cpp diff --git a/framework/platform/android/tcuAndroidPlatform.cpp b/framework/platform/android/tcuAndroidPlatform.cpp
index 9b117f50c6..b007c783cf 100644 index af56dabb8..6b0de6dba 100644
--- a/framework/platform/android/tcuAndroidPlatform.cpp --- a/framework/platform/android/tcuAndroidPlatform.cpp
+++ b/framework/platform/android/tcuAndroidPlatform.cpp +++ b/framework/platform/android/tcuAndroidPlatform.cpp
@@ -31,7 +31,6 @@ @@ -31,7 +31,6 @@
@ -66,7 +66,7 @@ index 9b117f50c6..b007c783cf 100644
// Assume no call translation is needed // Assume no call translation is needed
#include <android/native_window.h> #include <android/native_window.h>
@@ -309,153 +308,6 @@ eglu::NativeDisplay *NativeDisplayFactory::createDisplay(const EGLAttrib *attrib @@ -217,102 +216,6 @@ eglu::NativeDisplay *NativeDisplayFactory::createDisplay(const EGLAttrib *attrib
return new NativeDisplay(); return new NativeDisplay();
} }
@ -132,43 +132,6 @@ index 9b117f50c6..b007c783cf 100644
- tcu::Android::Window &m_window; - tcu::Android::Window &m_window;
-}; -};
- -
-#if DE_ANDROID_API >= 24
-class ImageReaderVulkanWindow : public vk::wsi::AndroidWindowInterface
-{
-public:
- ImageReaderVulkanWindow(AImageReader *reader, ANativeWindow *window)
- : vk::wsi::AndroidWindowInterface(vk::pt::AndroidNativeWindowPtr(window))
- , m_reader(reader)
- {
- }
-
- void setVisible(bool visible)
- {
- DE_UNREF(visible);
- }
-
- void resize(const UVec2 &newSize)
- {
- DE_UNREF(newSize);
- }
-
- void setMinimized(bool minimized)
- {
- DE_UNREF(minimized);
- TCU_THROW(NotSupportedError, "Minimized on Android is not implemented");
- }
-
- ~ImageReaderVulkanWindow(void)
- {
- if (m_reader)
- AImageReader_delete(m_reader);
- }
-
-private:
- AImageReader *m_reader;
-};
-#endif
-
-class VulkanDisplay : public vk::wsi::Display -class VulkanDisplay : public vk::wsi::Display
-{ -{
-public: -public:
@ -196,21 +159,7 @@ index 9b117f50c6..b007c783cf 100644
- } - }
- } - }
- else - else
- {
-#if DE_ANDROID_API >= 24
- uint32_t width = initialSize ? initialSize->x() : 256;
- uint32_t height = initialSize ? initialSize->y() : 256;
- width = width > 0 ? width : 256;
- height = height > 0 ? height : 256;
-
- AImageReader *reader = nullptr;
- ANativeWindow *nativeWindow = acquireImageReaderWindow(width, height, AIMAGE_FORMAT_RGBA_8888, &reader);
-
- return new ImageReaderVulkanWindow(reader, nativeWindow);
-#else
- TCU_THROW(ResourceError, "Native window is not available"); - TCU_THROW(ResourceError, "Native window is not available");
-#endif
- }
- } - }
- -
-private: -private:
@ -220,7 +169,7 @@ index 9b117f50c6..b007c783cf 100644
static size_t getTotalSystemMemory(ANativeActivity *activity) static size_t getTotalSystemMemory(ANativeActivity *activity)
{ {
const size_t MiB = (size_t)(1 << 20); const size_t MiB = (size_t)(1 << 20);
@@ -484,8 +336,7 @@ static size_t getTotalSystemMemory(ANativeActivity *activity) @@ -341,8 +244,7 @@ static size_t getTotalSystemMemory(ANativeActivity *activity)
// Platform // Platform
Platform::Platform(NativeActivity &activity) Platform::Platform(NativeActivity &activity)
@ -230,7 +179,7 @@ index 9b117f50c6..b007c783cf 100644
{ {
m_nativeDisplayFactoryRegistry.registerFactory(new NativeDisplayFactory(m_windowRegistry)); m_nativeDisplayFactoryRegistry.registerFactory(new NativeDisplayFactory(m_windowRegistry));
m_contextFactoryRegistry.registerFactory(new eglu::GLContextFactory(m_nativeDisplayFactoryRegistry)); m_contextFactoryRegistry.registerFactory(new eglu::GLContextFactory(m_nativeDisplayFactoryRegistry));
@@ -501,16 +352,6 @@ bool Platform::processEvents(void) @@ -358,16 +260,6 @@ bool Platform::processEvents(void)
return true; return true;
} }
@ -247,7 +196,7 @@ index 9b117f50c6..b007c783cf 100644
void Platform::getMemoryLimits(tcu::PlatformMemoryLimits &limits) const void Platform::getMemoryLimits(tcu::PlatformMemoryLimits &limits) const
{ {
// Worst-case estimates // Worst-case estimates
@@ -544,22 +385,6 @@ void Platform::getMemoryLimits(tcu::PlatformMemoryLimits &limits) const @@ -401,22 +293,6 @@ void Platform::getMemoryLimits(tcu::PlatformMemoryLimits &limits) const
limits.devicePageTableHierarchyLevels = 3; limits.devicePageTableHierarchyLevels = 3;
} }
@ -271,7 +220,7 @@ index 9b117f50c6..b007c783cf 100644
} // namespace tcu } // namespace tcu
diff --git a/framework/platform/android/tcuAndroidPlatform.hpp b/framework/platform/android/tcuAndroidPlatform.hpp diff --git a/framework/platform/android/tcuAndroidPlatform.hpp b/framework/platform/android/tcuAndroidPlatform.hpp
index 32cc9068c4..3c3f02d98d 100644 index 32cc9068c..3c3f02d98 100644
--- a/framework/platform/android/tcuAndroidPlatform.hpp --- a/framework/platform/android/tcuAndroidPlatform.hpp
+++ b/framework/platform/android/tcuAndroidPlatform.hpp +++ b/framework/platform/android/tcuAndroidPlatform.hpp
@@ -27,7 +27,6 @@ @@ -27,7 +27,6 @@
@ -318,7 +267,7 @@ index 32cc9068c4..3c3f02d98d 100644
const size_t m_totalSystemMemory; const size_t m_totalSystemMemory;
}; };
diff --git a/framework/platform/lnx/tcuLnxPlatform.cpp b/framework/platform/lnx/tcuLnxPlatform.cpp diff --git a/framework/platform/lnx/tcuLnxPlatform.cpp b/framework/platform/lnx/tcuLnxPlatform.cpp
index 8c0a3ef06e..6b1a4985a1 100644 index 8c0a3ef06..6b1a4985a 100644
--- a/framework/platform/lnx/tcuLnxPlatform.cpp --- a/framework/platform/lnx/tcuLnxPlatform.cpp
+++ b/framework/platform/lnx/tcuLnxPlatform.cpp +++ b/framework/platform/lnx/tcuLnxPlatform.cpp
@@ -23,12 +23,10 @@ @@ -23,12 +23,10 @@
@ -360,7 +309,7 @@ index 8c0a3ef06e..6b1a4985a1 100644
#if defined(DEQP_SUPPORT_GLX) #if defined(DEQP_SUPPORT_GLX)
m_glPlatform.registerFactory(x11::glx::createContextFactory(m_eventState)); m_glPlatform.registerFactory(x11::glx::createContextFactory(m_eventState));
diff --git a/framework/platform/surfaceless/tcuSurfacelessPlatform.cpp b/framework/platform/surfaceless/tcuSurfacelessPlatform.cpp diff --git a/framework/platform/surfaceless/tcuSurfacelessPlatform.cpp b/framework/platform/surfaceless/tcuSurfacelessPlatform.cpp
index 2224f4164e..c9f044b130 100644 index 585bfbbae..9f386b3ca 100644
--- a/framework/platform/surfaceless/tcuSurfacelessPlatform.cpp --- a/framework/platform/surfaceless/tcuSurfacelessPlatform.cpp
+++ b/framework/platform/surfaceless/tcuSurfacelessPlatform.cpp +++ b/framework/platform/surfaceless/tcuSurfacelessPlatform.cpp
@@ -43,7 +43,6 @@ @@ -43,7 +43,6 @@
@ -439,5 +388,5 @@ index 2224f4164e..c9f044b130 100644
class ContextFactory : public glu::ContextFactory class ContextFactory : public glu::ContextFactory
-- --
2.51.0 2.45.2

View file

@ -0,0 +1,42 @@
From 067676253ad11846f420087d30021629f3c43382 Mon Sep 17 00:00:00 2001
From: Valentine Burley <valentine.burley@collabora.com>
Date: Fri, 11 Apr 2025 16:51:08 +0200
Subject: Revert "Add missing context deletion"
This reverts commit 195ee2c99d3174e738506cc86828766805c0ede9.
---
.../modules/gles31/es31cComputeShaderTests.cpp | 11 -----------
1 file changed, 11 deletions(-)
diff --git a/external/openglcts/modules/gles31/es31cComputeShaderTests.cpp b/external/openglcts/modules/gles31/es31cComputeShaderTests.cpp
index 4c7349e59..ece33929d 100644
--- a/external/openglcts/modules/gles31/es31cComputeShaderTests.cpp
+++ b/external/openglcts/modules/gles31/es31cComputeShaderTests.cpp
@@ -721,11 +721,6 @@ class LongRunningComputeFenceTest : public ComputeShaderBase
glDeleteProgram(m_program2);
glDeleteBuffers(2, &m_buffer);
- // Delete shared context and keep default context set
- delete m_sharedContext;
- m_sharedContext = NULL;
- m_context.getRenderContext().makeCurrent();
-
return NO_ERROR;
}
};
@@ -910,12 +905,6 @@ class LongRunningPersistentSSBOComputeTest : public ComputeShaderBase
{
glDeleteBuffers(2, &m_buffer);
m_dataLoadStore = NULL;
-
- // Delete shared context and keep default context set
- delete m_sharedContext;
- m_sharedContext = NULL;
- m_context.getRenderContext().makeCurrent();
-
return NO_ERROR;
}
};
--
2.45.2

View file

@ -0,0 +1,81 @@
From 6cd7a951f6a50d0f74c798035ac7ce201f2aa6f0 Mon Sep 17 00:00:00 2001
From: Valentine Burley <valentine.burley@collabora.com>
Date: Fri, 11 Apr 2025 16:51:03 +0200
Subject: Revert "Fix issues with GLX reset notification strategy"
This reverts commit 3e6b3fb43eb9682641d8c880429255569a4472c0.
---
.../platform/lnx/X11/tcuLnxX11GlxPlatform.cpp | 23 ++++---------------
1 file changed, 4 insertions(+), 19 deletions(-)
diff --git a/framework/platform/lnx/X11/tcuLnxX11GlxPlatform.cpp b/framework/platform/lnx/X11/tcuLnxX11GlxPlatform.cpp
index b21e6bcbd..e1d33823c 100644
--- a/framework/platform/lnx/X11/tcuLnxX11GlxPlatform.cpp
+++ b/framework/platform/lnx/X11/tcuLnxX11GlxPlatform.cpp
@@ -147,7 +147,6 @@ private:
GlxDisplay &m_display;
::Visual *m_visual;
const GLXFBConfig m_fbConfig;
- glu::ResetNotificationStrategy resetStrategy;
};
class GlxDrawable
@@ -220,7 +219,6 @@ public:
virtual const tcu::RenderTarget &getRenderTarget(void) const;
virtual glw::GenericFuncType getProcAddress(const char *name) const;
const GLXContext &getGLXContext(void) const;
- const GlxVisual &getGLXVisual(void) const;
private:
GlxDisplay m_glxDisplay;
@@ -412,31 +410,23 @@ GLXContext GlxVisual::createContext(const GlxContextFactory &factory, const Cont
}
}
- const GlxRenderContext *sharedGlxRenderContext = dynamic_cast<const GlxRenderContext *>(sharedContext);
-
- /* If there is a shared context, use same reset notification strategy. */
- glu::ResetNotificationStrategy usedResetNotificationStrategy =
- sharedGlxRenderContext ? sharedGlxRenderContext->getGLXVisual().resetStrategy : resetNotificationStrategy;
-
- if (usedResetNotificationStrategy != glu::RESET_NOTIFICATION_STRATEGY_NOT_SPECIFIED)
+ if (resetNotificationStrategy != glu::RESET_NOTIFICATION_STRATEGY_NOT_SPECIFIED)
{
checkGlxExtension(m_display, "GLX_ARB_create_context_robustness");
attribs.push_back(GLX_CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB);
- if (usedResetNotificationStrategy == glu::RESET_NOTIFICATION_STRATEGY_NO_RESET_NOTIFICATION)
+ if (resetNotificationStrategy == glu::RESET_NOTIFICATION_STRATEGY_NO_RESET_NOTIFICATION)
attribs.push_back(GLX_NO_RESET_NOTIFICATION_ARB);
- else if (usedResetNotificationStrategy == glu::RESET_NOTIFICATION_STRATEGY_LOSE_CONTEXT_ON_RESET)
+ else if (resetNotificationStrategy == glu::RESET_NOTIFICATION_STRATEGY_LOSE_CONTEXT_ON_RESET)
attribs.push_back(GLX_LOSE_CONTEXT_ON_RESET_ARB);
else
TCU_THROW(InternalError, "Unknown reset notification strategy");
}
- // Reset notification strategy used with this visual.
- resetStrategy = resetNotificationStrategy;
-
// Terminate attrib list
attribs.push_back(None);
+ const GlxRenderContext *sharedGlxRenderContext = dynamic_cast<const GlxRenderContext *>(sharedContext);
const GLXContext &sharedGLXContext = sharedGlxRenderContext ? sharedGlxRenderContext->getGLXContext() : nullptr;
return TCU_CHECK_GLX(
@@ -815,11 +805,6 @@ const GLXContext &GlxRenderContext::getGLXContext(void) const
return m_GLXContext;
}
-const GlxVisual &GlxRenderContext::getGLXVisual(void) const
-{
- return m_glxVisual;
-}
-
MovePtr<ContextFactory> createContextFactory(EventState &eventState)
{
return MovePtr<ContextFactory>(new GlxContextFactory(eventState));
--
2.45.2

View file

@ -0,0 +1,56 @@
From b512e6d5a0c79b194293936bd06656646913704e Mon Sep 17 00:00:00 2001
From: Valentine Burley <valentine.burley@collabora.com>
Date: Fri, 11 Apr 2025 16:50:57 +0200
Subject: Revert "Fix spurious failures when using a config without
pbuffer support"
This reverts commit 415a0ba8ecde404ef37ce96ece55b46854b44888.
---
external/openglcts/modules/common/glcTestSubcase.cpp | 10 ----------
framework/egl/egluGLContextFactory.cpp | 2 --
2 files changed, 12 deletions(-)
diff --git a/external/openglcts/modules/common/glcTestSubcase.cpp b/external/openglcts/modules/common/glcTestSubcase.cpp
index 93e58c18a..cd43cc068 100644
--- a/external/openglcts/modules/common/glcTestSubcase.cpp
+++ b/external/openglcts/modules/common/glcTestSubcase.cpp
@@ -233,11 +233,6 @@ TestSubcase::IterateResult TestSubcase::iterate(void)
if (subError == ERROR)
log.writeMessage("Test Setup() failed");
}
- catch (const tcu::NotSupportedError &ex)
- {
- log.writeMessage(ex.what());
- subError = NOT_SUPPORTED;
- }
catch (const runtime_error &ex)
{
log.writeMessage(ex.what());
@@ -258,11 +253,6 @@ TestSubcase::IterateResult TestSubcase::iterate(void)
if (subError == ERROR)
log.writeMessage("Test Run() failed");
}
- catch (const tcu::NotSupportedError &ex)
- {
- log.writeMessage(ex.what());
- subError = NOT_SUPPORTED;
- }
catch (const runtime_error &ex)
{
log.writeMessage(ex.what());
diff --git a/framework/egl/egluGLContextFactory.cpp b/framework/egl/egluGLContextFactory.cpp
index 66783ad8b..f347b40ad 100644
--- a/framework/egl/egluGLContextFactory.cpp
+++ b/framework/egl/egluGLContextFactory.cpp
@@ -539,8 +539,6 @@ void RenderContext::postIterate(void)
if (m_window)
{
- EGLU_CHECK_CALL(egl, makeCurrent(m_eglDisplay, m_eglSurface, m_eglSurface, m_eglContext));
-
EGLBoolean swapOk = egl.swapBuffers(m_eglDisplay, m_eglSurface);
EGLint error = egl.getError();
const bool badWindow = error == EGL_BAD_SURFACE || error == EGL_BAD_NATIVE_WINDOW;
--
2.45.2

View file

@ -1,174 +0,0 @@
From faff9262e1d75a7484ff454c7fffb2b9daf04d0e Mon Sep 17 00:00:00 2001
From: Ricardo Garcia <rgarcia@igalia.com>
Date: Wed, 6 May 2026 11:48:13 +0200
Subject: [PATCH] Wait for sparse memory binds to finish in host image copy
tests
We add an optional fence to the SparseImage class and use it to wait for
memory binds to finish before changing image layouts on the host.
Affects:
dEQP-VK.image.host_image_copy.*
Components: Vulkan
VK-GL-CTS issue: 6503
Change-Id: I9a4183c464a4cdfc5735a8478d6cd241b8519746
---
.../vulkancts/framework/vulkan/vkImageUtil.cpp | 4 ++--
.../vulkancts/framework/vulkan/vkImageUtil.hpp | 2 +-
.../vulkan/image/vktImageHostImageCopyTests.cpp | 15 ++++++++++++---
.../modules/vulkan/image/vktImageTestsUtil.cpp | 8 ++++++--
.../modules/vulkan/image/vktImageTestsUtil.hpp | 17 +++++++++++++++--
5 files changed, 36 insertions(+), 10 deletions(-)
diff --git a/external/vulkancts/framework/vulkan/vkImageUtil.cpp b/external/vulkancts/framework/vulkan/vkImageUtil.cpp
index f29f62bc30..d52e09cb6f 100644
--- a/external/vulkancts/framework/vulkan/vkImageUtil.cpp
+++ b/external/vulkancts/framework/vulkan/vkImageUtil.cpp
@@ -5456,7 +5456,7 @@ void allocateAndBindSparseImage(const DeviceInterface &vk, VkDevice device, cons
const InstanceInterface &instance, const VkImageCreateInfo &imageCreateInfo,
const VkSemaphore &signalSemaphore, VkQueue queue, Allocator &allocator,
std::vector<de::SharedPtr<Allocation>> &allocations, tcu::TextureFormat format,
- VkImage destImage)
+ VkImage destImage, VkFence fence)
{
const VkImageAspectFlags imageAspectFlags = getImageAspectFlags(format);
const VkPhysicalDeviceProperties deviceProperties = getPhysicalDeviceProperties(instance, physicalDevice);
@@ -5693,7 +5693,7 @@ void allocateAndBindSparseImage(const DeviceInterface &vk, VkDevice device, cons
bindSparseInfo.pImageOpaqueBinds = &imageMipTailBindInfo;
}
- VK_CHECK(vk.queueBindSparse(queue, 1u, &bindSparseInfo, VK_NULL_HANDLE));
+ VK_CHECK(vk.queueBindSparse(queue, 1u, &bindSparseInfo, fence));
}
bool checkSparseImageFormatSupport(const VkPhysicalDevice physicalDevice, const InstanceInterface &instance,
diff --git a/external/vulkancts/framework/vulkan/vkImageUtil.hpp b/external/vulkancts/framework/vulkan/vkImageUtil.hpp
index 1fb9eafcee..94425d222a 100644
--- a/external/vulkancts/framework/vulkan/vkImageUtil.hpp
+++ b/external/vulkancts/framework/vulkan/vkImageUtil.hpp
@@ -372,7 +372,7 @@ void allocateAndBindSparseImage(const vk::DeviceInterface &vk, vk::VkDevice devi
const vk::VkImageCreateInfo &imageCreateInfo, const vk::VkSemaphore &signalSemaphore,
vk::VkQueue queue, vk::Allocator &allocator,
std::vector<de::SharedPtr<vk::Allocation>> &allocations, tcu::TextureFormat format,
- vk::VkImage destImage);
+ vk::VkImage destImage, vk::VkFence fence = VK_NULL_HANDLE);
#endif // CTS_USES_VULKANSC
} // namespace vk
diff --git a/external/vulkancts/modules/vulkan/image/vktImageHostImageCopyTests.cpp b/external/vulkancts/modules/vulkan/image/vktImageHostImageCopyTests.cpp
index a63adbc2c3..75f610e258 100644
--- a/external/vulkancts/modules/vulkan/image/vktImageHostImageCopyTests.cpp
+++ b/external/vulkancts/modules/vulkan/image/vktImageHostImageCopyTests.cpp
@@ -493,16 +493,19 @@ tcu::TestStatus HostImageCopyTestInstance::iterate(void)
{
createInfo.flags |= (vk::VK_IMAGE_CREATE_SPARSE_BINDING_BIT | vk::VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT);
// VUID-VkImageCreateInfo-tiling-04121
- createInfo.tiling = vk::VK_IMAGE_TILING_OPTIMAL;
+ createInfo.tiling = vk::VK_IMAGE_TILING_OPTIMAL;
+ const auto waitType =
+ ((m_parameters.action == MEMORY_TO_IMAGE) ? SparseImage::WaitType::SEMAPHORE_AND_FENCE :
+ SparseImage::WaitType::SEMAPHORE);
sparseSampledImage = de::MovePtr<SparseImage>(new SparseImage(vk, device, physicalDevice, vki, createInfo,
m_context.getSparseQueue(), alloc,
- mapVkFormat(createInfo.format)));
+ mapVkFormat(createInfo.format), waitType));
sampledImage = **sparseSampledImage;
if (m_parameters.action == MEMCPY)
{
sparseSampledImageCopy = de::MovePtr<SparseImage>(
new SparseImage(vk, device, physicalDevice, vki, createInfo, m_context.getSparseQueue(), alloc,
- mapVkFormat(createInfo.format)));
+ mapVkFormat(createInfo.format), SparseImage::WaitType::SEMAPHORE_AND_FENCE));
sampledImageCopy = **sparseSampledImageCopy;
}
}
@@ -757,6 +760,9 @@ tcu::TestStatus HostImageCopyTestInstance::iterate(void)
// Load sampled image
if (m_parameters.action == MEMORY_TO_IMAGE)
{
+ if (sparseSampledImage && sparseSampledImage->getFence() != VK_NULL_HANDLE)
+ waitForFence(vk, device, sparseSampledImage->getFence());
+
transitionImageLayout(&cmdBuffer, sampledImage, sampledImageUsage, vk::VK_IMAGE_LAYOUT_UNDEFINED,
m_parameters.dstLayout, sampledSubresourceRange);
commandsLog << "vkTransitionImageLayoutEXT() image " << sampledImage << " to layout "
@@ -905,6 +911,9 @@ tcu::TestStatus HostImageCopyTestInstance::iterate(void)
<< "), yOffset (" << region.imageOffset.y << "), width (" << mipImageSize.width << "), height ("
<< mipImageSize.height << ")\n";
+ if (sparseSampledImageCopy && sparseSampledImageCopy->getFence() != VK_NULL_HANDLE)
+ waitForFence(vk, device, sparseSampledImageCopy->getFence());
+
transitionImageLayout(&cmdBuffer, sampledImageCopy, sampledImageUsage, vk::VK_IMAGE_LAYOUT_UNDEFINED,
m_parameters.dstLayout, sampledSubresourceRange);
diff --git a/external/vulkancts/modules/vulkan/image/vktImageTestsUtil.cpp b/external/vulkancts/modules/vulkan/image/vktImageTestsUtil.cpp
index 962dc5f7c0..043047e807 100644
--- a/external/vulkancts/modules/vulkan/image/vktImageTestsUtil.cpp
+++ b/external/vulkancts/modules/vulkan/image/vktImageTestsUtil.cpp
@@ -52,14 +52,18 @@ Image::Image(void) : m_allocations(), m_image()
#ifndef CTS_USES_VULKANSC
SparseImage::SparseImage(const vk::DeviceInterface &vkd, vk::VkDevice device, vk::VkPhysicalDevice physicalDevice,
const vk::InstanceInterface &vki, const vk::VkImageCreateInfo &createInfo,
- const vk::VkQueue sparseQueue, vk::Allocator &allocator, const tcu::TextureFormat &format)
+ const vk::VkQueue sparseQueue, vk::Allocator &allocator, const tcu::TextureFormat &format,
+ WaitType waitType)
: Image()
, m_semaphore()
+ , m_fence()
{
m_image = createImage(vkd, device, &createInfo);
m_semaphore = createSemaphore(vkd, device);
+ if (waitType == WaitType::SEMAPHORE_AND_FENCE)
+ m_fence = createFence(vkd, device);
allocateAndBindSparseImage(vkd, device, physicalDevice, vki, createInfo, m_semaphore.get(), sparseQueue, allocator,
- m_allocations, format, m_image.get());
+ m_allocations, format, m_image.get(), *m_fence);
}
#endif // CTS_USES_VULKANSC
diff --git a/external/vulkancts/modules/vulkan/image/vktImageTestsUtil.hpp b/external/vulkancts/modules/vulkan/image/vktImageTestsUtil.hpp
index 20b0a5a08d..5e2b00eaae 100644
--- a/external/vulkancts/modules/vulkan/image/vktImageTestsUtil.hpp
+++ b/external/vulkancts/modules/vulkan/image/vktImageTestsUtil.hpp
@@ -106,20 +106,33 @@ protected:
class SparseImage : public Image
{
public:
+ enum class WaitType
+ {
+ SEMAPHORE = 0,
+ SEMAPHORE_AND_FENCE
+ };
+
SparseImage(const vk::DeviceInterface &vkd, vk::VkDevice device, vk::VkPhysicalDevice physicalDevice,
const vk::InstanceInterface &vki, const vk::VkImageCreateInfo &createInfo,
- const vk::VkQueue sparseQueue, vk::Allocator &allocator, const tcu::TextureFormat &format);
+ const vk::VkQueue sparseQueue, vk::Allocator &allocator, const tcu::TextureFormat &format,
+ WaitType waitType = WaitType::SEMAPHORE);
- virtual vk::VkSemaphore getSemaphore(void) const
+ vk::VkSemaphore getSemaphore(void) const override
{
return m_semaphore.get();
}
+ vk::VkFence getFence(void) const
+ {
+ return m_fence.get();
+ }
+
SparseImage(const SparseImage &) = delete;
SparseImage &operator=(const SparseImage &) = delete;
protected:
vk::Move<vk::VkSemaphore> m_semaphore;
+ vk::Move<vk::VkFence> m_fence;
};
#endif // CTS_USES_VULKANSC
--
2.51.0

View file

@ -1,49 +0,0 @@
From 7a5a9e5be4306637cd3a0ef0f770832f4b4cf4b4 Mon Sep 17 00:00:00 2001
From: Laura Nao <laura.nao@collabora.com>
Date: Wed, 12 Nov 2025 14:45:32 +0100
Subject: [PATCH] Fix C++ standard library build errors with Debian 13
Address missing <algorithm> and <optional> includes that caused build
failures ("no member named 'find' in namespace 'std'" and
"error: no template named 'optional' in namespace 'std'") when building
with the native toolchain on Debian 13.
This was fixed upstream in v48[1] and v49[2] respectively, so this patch
can be dropped once Perfetto is updated to v48+.
[1] https://github.com/google/perfetto/commit/d005c0123b2f929b918359a53ffe61d7ca2212a0
[2] https://github.com/google/perfetto/commit/acc24608c84d2d2d8d684f40a110d0a6f4eddc51
Signed-off-by: Laura Nao <laura.nao@collabora.com>
---
src/profiling/common/producer_support.cc | 1 +
src/traced/probes/sys_stats/sys_stats_data_source.h | 1 +
2 files changed, 2 insertions(+)
diff --git a/src/profiling/common/producer_support.cc b/src/profiling/common/producer_support.cc
index 5303658..e9e193d 100644
--- a/src/profiling/common/producer_support.cc
+++ b/src/profiling/common/producer_support.cc
@@ -16,6 +16,7 @@
#include "src/profiling/common/producer_support.h"
+#include <algorithm>
#include <optional>
#include "perfetto/ext/base/android_utils.h"
diff --git a/src/traced/probes/sys_stats/sys_stats_data_source.h b/src/traced/probes/sys_stats/sys_stats_data_source.h
index e09cd8a..7e4749b 100644
--- a/src/traced/probes/sys_stats/sys_stats_data_source.h
+++ b/src/traced/probes/sys_stats/sys_stats_data_source.h
@@ -21,6 +21,7 @@
#include <map>
#include <memory>
+#include <optional>
#include <string>
#include "perfetto/ext/base/paged_memory.h"
--
2.39.5

View file

@ -0,0 +1,30 @@
#!/usr/bin/env bash
set -u
uncollapsed_section_start wine "Setting up Wine"
export WINEPREFIX="$1"
export WINEDEBUG="-all"
# We don't want crash dialogs
cat >crashdialog.reg <<EOF
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Wine\WineDbg]
"ShowCrashDialog"=dword:00000000
EOF
# Set the wine prefix and disable the crash dialog
wine regedit crashdialog.reg
rm crashdialog.reg
# An immediate wine command may fail with: "${WINEPREFIX}: Not a
# valid wine prefix." and that is just spit because of checking
# the existance of the system.reg file, which fails. Just giving
# it a bit more of time for it to be created solves the problem
# ...
while ! test -f "${WINEPREFIX}/system.reg"; do sleep 1; done
section_end wine

View file

@ -47,7 +47,6 @@ UNNEEDED_PACKAGES=(
libgl1-mesa-dri mesa-vulkan-drivers mesa-va-drivers mesa-vdpau-drivers i965-va-driver libgl1-mesa-dri mesa-vulkan-drivers mesa-va-drivers mesa-vdpau-drivers i965-va-driver
intel-media-va-driver intel-media-va-driver
gnupg2 gnupg2
qemu-user
) )
# Removing unneeded packages # Removing unneeded packages
@ -113,6 +112,7 @@ directories=(
/usr/lib/*/libdb-5.3.so # libdb-5.3.so that is only used by this pam module ^ /usr/lib/*/libdb-5.3.so # libdb-5.3.so that is only used by this pam module ^
/usr/lib/*/libnss_hesiod* # remove NSS support for nis, nisplus and hesiod /usr/lib/*/libnss_hesiod* # remove NSS support for nis, nisplus and hesiod
/usr/lib/*/libnss_nis* /usr/lib/*/libnss_nis*
/usr/lib/*/wine # don't need Wine's implementation, using Proton instead
/usr/local/bin/mold /usr/local/bin/mold
/usr/local/bin/bindgen /usr/local/bin/bindgen
/usr/local/bin/cargo* /usr/local/bin/cargo*

View file

@ -150,17 +150,15 @@ crosvm --no-syslog run \
section_start crosvm_results "Processing crosvm results" section_start crosvm_results "Processing crosvm results"
CROSVM_RET=$? CROSVM_RET=$?
[ "${CROSVM_RET}" -eq 0 ] && { [ ${CROSVM_RET} -eq 0 ] && {
# The actual return code is the crosvm guest script's exit code # The actual return code is the crosvm guest script's exit code
CROSVM_RET=$(cat ${VM_TEMP_DIR}/exit_code 2>/dev/null) CROSVM_RET=$(cat ${VM_TEMP_DIR}/exit_code 2>/dev/null)
# Sanitize it to a single integer
CROSVM_RET=$(echo "$CROSVM_RET" | grep -o '^[0-9]\+' | head -n 1)
# Force error when the guest script's exit code is not available # Force error when the guest script's exit code is not available
CROSVM_RET=${CROSVM_RET:-1} CROSVM_RET=${CROSVM_RET:-1}
} }
# Show crosvm output on error to help with debugging # Show crosvm output on error to help with debugging
[ "${CROSVM_RET}" -eq 0 ] || { [ ${CROSVM_RET} -eq 0 ] || {
{ set +x; } 2>/dev/null { set +x; } 2>/dev/null
echo "Dumping crosvm output.." >&2 echo "Dumping crosvm output.." >&2
cat ${VM_TEMP_DIR}/crosvm >&2 cat ${VM_TEMP_DIR}/crosvm >&2

View file

@ -58,21 +58,31 @@ ulimit -n 32768
VSOCK_BASE=10000 # greater than all the default vsock ports VSOCK_BASE=10000 # greater than all the default vsock ports
VSOCK_CID=$((VSOCK_BASE + (CI_JOB_ID & 0xfff))) VSOCK_CID=$((VSOCK_BASE + (CI_JOB_ID & 0xfff)))
HOME=/cuttlefish timeout 5m launch_cvd \ # Venus requires a custom kernel for now
CUSTOM_KERNEL_ARGS=""
if [ "$CUTTLEFISH_GPU_MODE" = "venus" ] || [ "$CUTTLEFISH_GPU_MODE" = "venus_guest_angle" ]; then
CUSTOM_KERNEL_ARGS="
-kernel_path=/cuttlefish/bzImage
-initramfs_path=/cuttlefish/initramfs.img
"
fi
HOME=/cuttlefish launch_cvd \
-daemon \ -daemon \
-verbosity=INFO \ -verbosity=VERBOSE \
-file_verbosity=VERBOSE \ -file_verbosity=VERBOSE \
-use_overlay=false \
-vsock_guest_cid=$VSOCK_CID \ -vsock_guest_cid=$VSOCK_CID \
-enable_audio=false \ -enable_audio=false \
-enable_bootanimation=false \ -enable_bootanimation=false \
-enable_minimal_mode=true \ -enable_minimal_mode=true \
-enable_modem_simulator=false \ -enable_modem_simulator=false \
-enable_wifi=false \
-guest_enforce_security=false \ -guest_enforce_security=false \
-report_anonymous_usage_stats=no \ -report_anonymous_usage_stats=no \
-gpu_mode="$CUTTLEFISH_GPU_MODE" \ -gpu_mode="$CUTTLEFISH_GPU_MODE" \
-cpus=${FDO_CI_CONCURRENT:-4} \ -cpus=${FDO_CI_CONCURRENT:-4} \
-memory_mb ${CUTTLEFISH_MEMORY:-4096} -memory_mb ${CUTTLEFISH_MEMORY:-4096} \
$CUSTOM_KERNEL_ARGS
sleep 1 sleep 1
@ -81,7 +91,7 @@ popd
# download Android Mesa from S3 # download Android Mesa from S3
curl-with-retry -O "${FDO_HTTP_CACHE_URI:-}https://${PIPELINE_ARTIFACTS_BASE}/${S3_ANDROID_ARTIFACT_NAME}.tar.zst" curl-with-retry -O "${FDO_HTTP_CACHE_URI:-}https://${PIPELINE_ARTIFACTS_BASE}/${S3_ANDROID_ARTIFACT_NAME}.tar.zst"
mkdir /mesa-android mkdir /mesa-android
tar -C /mesa-android -xf ${S3_ANDROID_ARTIFACT_NAME}.tar.zst tar -C /mesa-android -xvf ${S3_ANDROID_ARTIFACT_NAME}.tar.zst
# shellcheck disable=SC2034 # used externally # shellcheck disable=SC2034 # used externally
INSTALL="/mesa-android/install" INSTALL="/mesa-android/install"

View file

@ -39,7 +39,7 @@ if [ -n "${FLUSTER_TAG:-}" ]; then
export LIBVA_MESSAGING_LEVEL=1 export LIBVA_MESSAGING_LEVEL=1
fi fi
if [ -n "${PIGLIT_TAG:-}" ]; then if [ -n "$PIGLIT_TAG" ]; then
# Are we using the right Piglit version? # Are we using the right Piglit version?
ci_tag_test_time_check "PIGLIT_TAG" ci_tag_test_time_check "PIGLIT_TAG"
elif [ -d "/piglit" ]; then elif [ -d "/piglit" ]; then
@ -49,12 +49,6 @@ elif [ -d "/piglit" ]; then
rm -r /piglit rm -r /piglit
fi fi
if [ -n "$VKD3D_PROTON_TAG" ]; then
# Are we using the right vkd3d-proton version?
ci_tag_test_time_check "VKD3D_PROTON_TAG"
fi
# Ensure Mesa Shader Cache resides on tmpfs. # Ensure Mesa Shader Cache resides on tmpfs.
SHADER_CACHE_HOME=${XDG_CACHE_HOME:-${HOME}/.cache} SHADER_CACHE_HOME=${XDG_CACHE_HOME:-${HOME}/.cache}
SHADER_CACHE_DIR=${MESA_SHADER_CACHE_DIR:-${SHADER_CACHE_HOME}/mesa_shader_cache} SHADER_CACHE_DIR=${MESA_SHADER_CACHE_DIR:-${SHADER_CACHE_HOME}/mesa_shader_cache}
@ -64,13 +58,11 @@ findmnt -n tmpfs ${SHADER_CACHE_HOME} || findmnt -n tmpfs ${SHADER_CACHE_DIR} ||
mount -t tmpfs -o nosuid,nodev,size=2G,mode=1755 tmpfs ${SHADER_CACHE_DIR} mount -t tmpfs -o nosuid,nodev,size=2G,mode=1755 tmpfs ${SHADER_CACHE_DIR}
} }
FILE_ARGS=""
touch /fails.txt touch /fails.txt
touch /flakes.txt
cat $INSTALL/all-skips.txt > /skips.txt
# There must be a single baseline expected fails list, this lets us cat together add_if_exists() {
# xfails from multiple possible sources. Do we actually use this, though?
cat_if_exists() {
prefix=$1 prefix=$1
kind=$2 kind=$2
if [ -e "$INSTALL/$prefix-$kind.txt" ]; then if [ -e "$INSTALL/$prefix-$kind.txt" ]; then
@ -78,31 +70,22 @@ cat_if_exists() {
fi fi
} }
add_if_exists() {
if [ -e "$INSTALL/$2" ]; then
FILE_ARGS="$FILE_ARGS $1 $INSTALL/$2"
fi
}
# remove duplicate values to avoid reading the same file multiple times # remove duplicate values to avoid reading the same file multiple times
for prefix in $({ {
echo "all"
echo "$DRIVER_NAME" echo "$DRIVER_NAME"
echo "$GPU_VERSION" echo "$GPU_VERSION"
} | sort -u); do } | sort -u | while read -r prefix; do
cat_if_exists "$prefix" fails add_if_exists "$prefix" fails
add_if_exists "--flakes" "$prefix-flakes.txt" add_if_exists "$prefix" flakes
add_if_exists "--skips" "$prefix-skips.txt" add_if_exists "$prefix" skips
add_if_exists "--single-thread" "$prefix-single-thread.txt"
done done
if [[ $CI_JOB_NAME != *full* ]]; then if [ -e "$INSTALL/$GPU_VERSION-slow-skips.txt" ] && [[ $CI_JOB_NAME != *full* ]]; then
FILE_ARGS="$FILE_ARGS --skips $INSTALL/all-slow-skips.txt" cat "$INSTALL/$GPU_VERSION-slow-skips.txt" >> /skips.txt
add_if_exists "--skips" "$GPU_VERSION-slow-skips.txt"
fi fi
if [ -n "${ANGLE_TAG:-}" ]; then if [ -n "${ANGLE_TAG:-}" ]; then
FILE_ARGS="$FILE_ARGS --skips $INSTALL/angle-skips.txt" cat "$INSTALL/angle-skips.txt" >> /skips.txt
fi fi
# Set the path to VK validation layer settings (in case it ends up getting loaded) # Set the path to VK validation layer settings (in case it ends up getting loaded)
@ -154,14 +137,15 @@ deqp-runner \
--suite $INSTALL/deqp-$DEQP_SUITE.toml \ --suite $INSTALL/deqp-$DEQP_SUITE.toml \
--output $RESULTS_DIR \ --output $RESULTS_DIR \
--baseline /fails.txt \ --baseline /fails.txt \
$FILE_ARGS \ --skips /skips.txt \
--flakes /flakes.txt \
--testlog-to-xml /deqp-tools/testlog-to-xml \ --testlog-to-xml /deqp-tools/testlog-to-xml \
--fraction-start ${CI_NODE_INDEX:-1} \ --fraction-start ${CI_NODE_INDEX:-1} \
--fraction $((CI_NODE_TOTAL * ${DEQP_FRACTION:-1})) \ --fraction $((CI_NODE_TOTAL * ${DEQP_FRACTION:-1})) \
--jobs ${FDO_CI_CONCURRENT:-4} \ --jobs ${FDO_CI_CONCURRENT:-4} \
${DEQP_RUNNER_MAX_FAILS:+--max-fails "$DEQP_RUNNER_MAX_FAILS"} \ ${DEQP_RUNNER_MAX_FAILS:+--max-fails "$DEQP_RUNNER_MAX_FAILS"} \
${DEQP_RUNNER_SHADER_CACHE_DIR:+--shader-cache-dir "$DEQP_RUNNER_SHADER_CACHE_DIR"} \ ${DEQP_RUNNER_SHADER_CACHE_DIR:+--shader-cache-dir "$DEQP_RUNNER_SHADER_CACHE_DIR"} \
${DEQP_FORCE_ASAN:+--env LD_PRELOAD=libasan.so.8:/install/lib/libdlclose-skip.so --env ASAN_OPTIONS=malloc_fill_byte=1}; DEQP_EXITCODE=$? ${DEQP_FORCE_ASAN:+--env LD_PRELOAD=libasan.so.8:/install/lib/libdlclose-skip.so}; DEQP_EXITCODE=$?
{ set +x; } 2>/dev/null { set +x; } 2>/dev/null
@ -172,23 +156,12 @@ set -x
report_load report_load
# Remove all but the first 50 individual XML, test log and caselist # Remove all but the first 50 individual XML files uploaded as artifacts, to
# files uploaded as artifacts, to save fd.o space and avoid job log spam # save fd.o space when you break everything.
# when you break everything.
# Note that each of these pattern gets to keep 50 files, but there is nothing
# making sure the remaining 50 files of each correspond to the same tests.
find $RESULTS_DIR -name \*.xml | \ find $RESULTS_DIR -name \*.xml | \
sort -n | sort -n |
sed -n '1,+49!p' | \ sed -n '1,+49!p' | \
xargs rm -f xargs rm -f
find $RESULTS_DIR -name 'c*.r*.caselist.txt' | \
sort -n |
sed -n '1,+49!p' | \
xargs rm -f
find $RESULTS_DIR -name 'c*.r*.log' | \
sort -n |
sed -n '1,+49!p' | \
xargs rm -f
# If any QPA XMLs are there, then include the XSL/CSS in our artifacts. # If any QPA XMLs are there, then include the XSL/CSS in our artifacts.
find $RESULTS_DIR -name \*.xml \ find $RESULTS_DIR -name \*.xml \

View file

@ -35,15 +35,13 @@
# austriancoder | ci-tron | @austriancoder # austriancoder | ci-tron | @austriancoder
# collabora | lava | @daniels, @sergi # collabora | lava | @daniels, @sergi
# igalia | baremetal/poe-powered, ci-tron | @jasuarez, @chema # igalia | baremetal/poe-powered, ci-tron | @jasuarez, @chema
# imagination | ci-tron | @MTCoster
# lima | lava | @enunes # lima | lava | @enunes
# lumag | ci-tron | @lumag
# microsoft | custom | @jenatali, @alatiera # microsoft | custom | @jenatali, @alatiera
# ondracka | ci-tron | @ondracka # ondracka | ci-tron | @ondracka
# pengutronix | lava | @hnez, @lynxeye # pengutronix | lava | @hnez, @lynxeye
# valve-kws | ci-tron | @mupuf, @eric # valve-kws | ci-tron | @mupuf, @eric
# valve-mupuf | ci-tron | @mupuf, @eric # valve-mupuf | ci-tron | @mupuf, @eric
# vmware | lava | @mombasa, @bhenden # vmware | lava | @blu
.microsoft-farm-rules: .microsoft-farm-rules:
rules: rules:
@ -294,108 +292,61 @@
- !reference [.pengutronix-farm-rules, rules] - !reference [.pengutronix-farm-rules, rules]
.lumag-farm-rules:
rules:
- exists: [ .ci-farms-disabled/lumag ]
when: never
- changes: [ .ci-farms-disabled/lumag ]
if: '$CI_PIPELINE_SOURCE != "schedule"'
when: on_success
- changes: [ .ci-farms-disabled/* ]
if: '$CI_PIPELINE_SOURCE != "schedule"'
when: never
.lumag-farm-manual-rules:
rules:
- exists: [ .ci-farms-disabled/lumag ]
when: never
- changes: [ .ci-farms-disabled/lumag ]
if: '$CI_PIPELINE_SOURCE != "schedule"'
when: never
- !reference [.lumag-farm-rules, rules]
.imagination-farm-rules:
rules:
- exists: [ .ci-farms-disabled/imagination ]
when: never
- changes: [ .ci-farms-disabled/imagination ]
if: '$CI_PIPELINE_SOURCE != "schedule"'
when: on_success
- changes: [ .ci-farms-disabled/* ]
if: '$CI_PIPELINE_SOURCE != "schedule"'
when: never
.imagination-farm-manual-rules:
rules:
- exists: [ .ci-farms-disabled/imagination ]
when: never
- changes: [ .ci-farms-disabled/imagination ]
if: '$CI_PIPELINE_SOURCE != "schedule"'
when: never
- !reference [.imagination-farm-rules, rules]
# Skip container & build jobs when disabling any farm, and run them if any # Skip container & build jobs when disabling any farm, and run them if any
# farm gets re-enabled. # farm gets re-enabled.
# Just like above, don't apply these rules in scheduled pipelines (see comment # Only apply these rules in MR context, because otherwise we get a false
# on line 23). # positive on files being 'created' when pushing to a new branch, and break
.disable-farm-rules: # our pipeline
.disable-farm-mr-rules:
rules: rules:
# changes(disabled) + exists(disabled) = disabling the farm # changes(disabled) + exists(disabled) = disabling the farm
# Note: this cannot be simplified into a single `.ci-farms-disabled/*` rule # Note: this cannot be simplified into a single `.ci-farms-disabled/*` rule
# because if there are more than one disabled farm and we only re-enable # because if there are more than one disabled farm and we only re-enable
# one, the exits(.ci-farms-disabled/*) would match and what should be # one, the exits(.ci-farms-disabled/*) would match and what should be
# a farm re-enable pipeline will be detected as a farm disable pipeline. # a farm re-enable pipeline will be detected as a farm disable pipeline.
- changes: [ .ci-farms-disabled/microsoft ] - if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
changes: [ .ci-farms-disabled/microsoft ]
exists: [ .ci-farms-disabled/microsoft ] exists: [ .ci-farms-disabled/microsoft ]
if: '$CI_PIPELINE_SOURCE != "schedule"'
when: never when: never
- changes: [ .ci-farms-disabled/collabora ] - if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
changes: [ .ci-farms-disabled/collabora ]
exists: [ .ci-farms-disabled/collabora ] exists: [ .ci-farms-disabled/collabora ]
if: '$CI_PIPELINE_SOURCE != "schedule"'
when: never when: never
- changes: [ .ci-farms-disabled/igalia ] - if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
changes: [ .ci-farms-disabled/igalia ]
exists: [ .ci-farms-disabled/igalia ] exists: [ .ci-farms-disabled/igalia ]
if: '$CI_PIPELINE_SOURCE != "schedule"'
when: never when: never
- changes: [ .ci-farms-disabled/lima ] - if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
changes: [ .ci-farms-disabled/lima ]
exists: [ .ci-farms-disabled/lima ] exists: [ .ci-farms-disabled/lima ]
if: '$CI_PIPELINE_SOURCE != "schedule"'
when: never when: never
- changes: [ .ci-farms-disabled/anholt ] - if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
changes: [ .ci-farms-disabled/anholt ]
exists: [ .ci-farms-disabled/anholt ] exists: [ .ci-farms-disabled/anholt ]
if: '$CI_PIPELINE_SOURCE != "schedule"'
when: never when: never
- changes: [ .ci-farms-disabled/valve-mupuf ] - if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
changes: [ .ci-farms-disabled/valve-mupuf ]
exists: [ .ci-farms-disabled/valve-mupuf ] exists: [ .ci-farms-disabled/valve-mupuf ]
if: '$CI_PIPELINE_SOURCE != "schedule"'
when: never when: never
- changes: [ .ci-farms-disabled/valve-kws ] - if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
changes: [ .ci-farms-disabled/valve-kws ]
exists: [ .ci-farms-disabled/valve-kws ] exists: [ .ci-farms-disabled/valve-kws ]
if: '$CI_PIPELINE_SOURCE != "schedule"'
when: never when: never
- changes: [ .ci-farms-disabled/austriancoder ] - if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
changes: [ .ci-farms-disabled/austriancoder ]
exists: [ .ci-farms-disabled/austriancoder ] exists: [ .ci-farms-disabled/austriancoder ]
if: '$CI_PIPELINE_SOURCE != "schedule"'
when: never when: never
- changes: [ .ci-farms-disabled/ondracka ] - if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
changes: [ .ci-farms-disabled/ondracka ]
exists: [ .ci-farms-disabled/ondracka ] exists: [ .ci-farms-disabled/ondracka ]
if: '$CI_PIPELINE_SOURCE != "schedule"'
when: never when: never
- changes: [ .ci-farms-disabled/vmware ] - if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
changes: [ .ci-farms-disabled/vmware ]
exists: [ .ci-farms-disabled/vmware ] exists: [ .ci-farms-disabled/vmware ]
if: '$CI_PIPELINE_SOURCE != "schedule"'
when: never when: never
- changes: [ .ci-farms-disabled/pengutronix ] - if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
changes: [ .ci-farms-disabled/pengutronix ]
exists: [ .ci-farms-disabled/pengutronix ] exists: [ .ci-farms-disabled/pengutronix ]
if: '$CI_PIPELINE_SOURCE != "schedule"'
when: never
- changes: [ .ci-farms-disabled/lumag ]
exists: [ .ci-farms-disabled/lumag ]
if: '$CI_PIPELINE_SOURCE != "schedule"'
when: never
- changes: [ .ci-farms-disabled/imagination ]
exists: [ .ci-farms-disabled/imagination ]
if: '$CI_PIPELINE_SOURCE != "schedule"'
when: never when: never
# Any other change to ci-farms/* means some farm is getting re-enabled. # Any other change to ci-farms/* means some farm is getting re-enabled.
# Run jobs in Marge pipelines (and let it fallback to manual otherwise) # Run jobs in Marge pipelines (and let it fallback to manual otherwise)

View file

@ -1,151 +0,0 @@
#!/usr/bin/env bash
# shellcheck disable=SC2086 # we want word splitting
# shellcheck disable=SC1091 # paths only become valid at runtime
. "${SCRIPTS_DIR}/setup-test-env.sh"
section_start traces_prepare "traces: preparing test setup"
set -ex
# Our rootfs may not have "less", which apitrace uses during apitrace dump
export PAGER=cat # FIXME: export everywhere
INSTALL=$(realpath -s "$PWD"/install)
if [ -n "${LAVA_HTTP_CACHE_URI:-}" ]; then
export EXTRA_ARGS="${EXTRA_ARGS} --download-caching-proxy=${LAVA_HTTP_CACHE_URI}"
elif [ -n "${CI_TRON_JOB_HTTP_SERVER:-}" ]; then
# The caching proxy doesn't appear to be working.
# export EXTRA_ARGS="${EXTRA_ARGS} --download-caching-proxy=${CI_TRON_JOB_HTTP_SERVER}/caching_proxy/"
true
elif [ -n "${FDO_HTTP_CACHE_URI:-}" ]; then
# FIXME: remove when there is no baremetal traces job anymore.
export EXTRA_ARGS="${EXTRA_ARGS} --download-caching-proxy=${FDO_HTTP_CACHE_URI}"
fi
if [ $GITLAB_USER_LOGIN == "marge-bot" ]; then
# When merging the MR, uploading to the permanent storage for .pngs must
# succeed.
export EXTRA_ARGS="${EXTRA_ARGS} --snapshot-url-must-work"
fi
# Set up the environment.
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$INSTALL/lib/"
if [ -n "${VK_DRIVER}" ]; then
ARCH=$(uname -m)
export VK_DRIVER_FILES="$INSTALL/share/vulkan/icd.d/${VK_DRIVER}_icd.$ARCH.json"
fi
MESA_VERSION=$(head -1 "$INSTALL/VERSION" | sed 's/\./\\./g')
# Set environment for replay tool executables.
export PATH="/apitrace/build:/gfxreconstruct/build/bin:$PATH"
echo "Version:"
apitrace version 2>/dev/null || echo "apitrace not found (Linux)"
if [ "$GALLIUM_DRIVER" = "virpipe" ]; then
# replay is to use virpipe, and virgl_test_server llvmpipe
export GALLIUM_DRIVER="$GALLIUM_DRIVER"
GALLIUM_DRIVER=llvmpipe \
VTEST_USE_EGL_SURFACELESS=1 \
VTEST_USE_GLES=1 \
virgl_test_server >"$RESULTS_DIR"/vtest-log.txt 2>&1 &
sleep 1
fi
cd $RESULTS_DIR && rm -rf ..?* .[!.]* ./*
if [ -n "$WINE_TAG" ]; then
# Are we using the right wine version?
ci_tag_test_time_check "WINE_TAG"
# Set environment for Wine.
export WINEDEBUG="-all"
export WINEPREFIX="/wineprefix"
export WINEESYNC=1
export WINEPATH="/apitrace-msvc-win64/bin"
# This may be useful if you're debugging DXVK loading.
#export WINEDEBUG="+loaddll,+module"
fi
# Disable using fast-linked GPL shaders in DXVK. Otherwise, we may end up with
# (subtly, hopefully) flaky rendering when the optimized pipeline gets swapped
# in.
export DXVK_CONFIG="dxvk.enableGraphicsPipelineLibrary=False"
# ANGLE: download compiled ANGLE runtime and the compiled restricted traces
# (all-in-one package).
if [ -n "$ANGLE_TRACE_FILES_TAG" ]; then
ANGLE_DIR="${INSTALL}/traces-db/angle"
mkdir -p "${ANGLE_DIR}"
if [ "$(uname -m)" = "aarch64" ]; then
ANGLE_ARCH=arm64
else
ANGLE_ARCH=x64
fi
FILE="angle-bin-${ANGLE_ARCH}-${ANGLE_TRACE_FILES_TAG}.tar.zst"
curl --location --fail --retry-all-errors --retry 4 --retry-delay 60 \
--header "Authorization: Bearer $(cat "${S3_JWT_FILE}")" \
"https://s3.freedesktop.org/mesa-tracie-private/${FILE}" --output "${FILE}"
tar --zstd -xf ${FILE} -C "${ANGLE_DIR}"
rm ${FILE}
EXTRA_ARGS="${EXTRA_ARGS} --traces-db ${INSTALL}/traces-db"
fi
# Sanity check to ensure that our environment is sufficient to make our tests
# run against the Mesa built by CI, rather than any installed distro version.
if [ -z "${VK_DRIVER}" ]; then
wflinfo -a gles2 -p wayland | tee /tmp/version.txt | grep "Mesa $MESA_VERSION\(\s\|$\)"
else
vulkaninfo | grep driverInfo | tee /tmp/version.txt | grep "Mesa $MESA_VERSION\(\s\|$\)"
fi
uncollapsed_section_switch traces "traces: run traces"
# This gets lost in uncollapsed_section_switch.
set -x
# wrapper to supress +x to avoid spamming the log
quiet() {
set +x
"$@"
set -x
}
report_failure() {
echo "Review the image changes and get a checksums patch at: ${ARTIFACTS_BASE_URL}/results/index.html"
echo "If the new traces look correct to you, you can update the checksums"
echo "locally by running:"
echo " ./bin/ci/update_traces_checksum.sh"
echo "and resubmit this merge request."
exit 1
}
report_success() {
echo "All image checksums matched. Results can be viewed at ${ARTIFACTS_BASE_URL}/results/index.html"
}
if gpu-trace-perf replay \
-j ${FDO_CI_CONCURRENT:-4} \
--fraction-start ${CI_NODE_INDEX:-1} \
--fraction ${CI_NODE_TOTAL} \
--output $RESULTS_DIR \
--cache-dir $CACHE_DIR \
--config $INSTALL/$REPLAY_CONFIG \
--device $GPU_VERSION \
--jwt "${S3_JWT_FILE}" \
--snapshots-url "https://$PIGLIT_REPLAY_REFERENCE_IMAGES_BASE/" \
--job-url "https://$JOB_ARTIFACTS_BASE/" \
$EXTRA_ARGS \
; then
quiet report_success
else
quiet report_failure
fi

77
.gitlab-ci/gtest-runner.sh Executable file
View file

@ -0,0 +1,77 @@
#!/usr/bin/env bash
# shellcheck disable=SC2086 # we want word splitting
# shellcheck disable=SC1091 # paths only become valid at runtime
. "${SCRIPTS_DIR}/setup-test-env.sh"
set -ex
INSTALL=$PWD/install
export PATH=/va/bin:$PATH
# Set up the driver environment.
export LD_LIBRARY_PATH=$INSTALL/lib/
export LIBVA_DRIVERS_PATH=$INSTALL/lib/dri/
# libva spams driver open info by default, and that happens per testcase.
export LIBVA_MESSAGING_LEVEL=1
if [ -e "$INSTALL/$GPU_VERSION-fails.txt" ]; then
GTEST_RUNNER_OPTIONS="$GTEST_RUNNER_OPTIONS --baseline $INSTALL/$GPU_VERSION-fails.txt"
fi
# Default to an empty known flakes file if it doesn't exist.
touch "$INSTALL/$GPU_VERSION-flakes.txt"
if [ -n "$GALLIUM_DRIVER" ] && [ -e "$INSTALL/$GALLIUM_DRIVER-skips.txt" ]; then
GTEST_SKIPS="$GTEST_SKIPS --skips $INSTALL/$GALLIUM_DRIVER-skips.txt"
fi
if [ -n "$DRIVER_NAME" ] && [ -e "$INSTALL/$DRIVER_NAME-skips.txt" ]; then
GTEST_SKIPS="$GTEST_SKIPS --skips $INSTALL/$DRIVER_NAME-skips.txt"
fi
if [ -e "$INSTALL/$GPU_VERSION-skips.txt" ]; then
GTEST_SKIPS="$GTEST_SKIPS --skips $INSTALL/$GPU_VERSION-skips.txt"
fi
set +e
gtest-runner \
run \
--gtest $GTEST \
--output ${RESULTS_DIR} \
--jobs ${FDO_CI_CONCURRENT:-4} \
$GTEST_SKIPS \
--flakes $INSTALL/$GPU_VERSION-flakes.txt \
--fraction-start ${CI_NODE_INDEX:-1} \
--fraction $((${CI_NODE_TOTAL:-1} * ${GTEST_FRACTION:-1})) \
--env "LD_PRELOAD=$TEST_LD_PRELOAD" \
$GTEST_RUNNER_OPTIONS
GTEST_EXITCODE=$?
deqp-runner junit \
--testsuite gtest \
--results $RESULTS_DIR/failures.csv \
--output $RESULTS_DIR/junit.xml \
--limit 50 \
--template "See $ARTIFACTS_BASE_URL/results/{{testcase}}.xml"
# Report the flakes to the IRC channel for monitoring (if configured):
if [ -n "$FLAKES_CHANNEL" ]; then
python3 $INSTALL/report-flakes.py \
--host irc.oftc.net \
--port 6667 \
--results $RESULTS_DIR/results.csv \
--known-flakes $INSTALL/$GPU_VERSION-flakes.txt \
--channel "$FLAKES_CHANNEL" \
--runner "$CI_RUNNER_DESCRIPTION" \
--job "$CI_JOB_ID" \
--url "$CI_JOB_URL" \
--branch "${CI_MERGE_REQUEST_SOURCE_BRANCH_NAME:-$CI_COMMIT_BRANCH}" \
--branch-title "${CI_MERGE_REQUEST_TITLE:-$CI_COMMIT_TITLE}" || true
fi
exit $GTEST_EXITCODE

View file

@ -19,27 +19,27 @@ include:
- .gitlab-ci/conditional-build-image-tags.yml - .gitlab-ci/conditional-build-image-tags.yml
variables: variables:
DEBIAN_BUILD_BASE_TAG: "20250430-imgui.2" DEBIAN_BUILD_BASE_TAG: "20251014-testfix"
DEBIAN_BUILD_TAG: "20260430-imgui.2" DEBIAN_BUILD_TAG: "20250926-D3D618"
DEBIAN_TEST_BASE_TAG: "20260502-virgl" DEBIAN_TEST_BASE_TAG: "20250926-gitlab"
DEBIAN_TEST_ANDROID_TAG: "20260507-vkcts" DEBIAN_TEST_ANDROID_TAG: "20251014-vkcts"
DEBIAN_TEST_GL_TAG: "20260506-vvl-84" DEBIAN_TEST_GL_TAG: "20251014-vkcts"
DEBIAN_TEST_VIDEO_TAG: "20260430-imgui.2" DEBIAN_TEST_VIDEO_TAG: "20250813-vector"
DEBIAN_TEST_VK_TAG: "20260507-vkcts" DEBIAN_TEST_VK_TAG: "20251014-vkcts"
ALPINE_X86_64_BUILD_TAG: "20260429-libdrm" ALPINE_X86_64_BUILD_TAG: "20251001-realninja"
FEDORA_X86_64_BUILD_TAG: "20260429-staticcpp" FEDORA_X86_64_BUILD_TAG: "20250917-rust"
KERNEL_TAG: "v6.19-mesa-8a6f" KERNEL_TAG: "v6.16-mesa-9d85"
KERNEL_REPO: "gfx-ci/linux" KERNEL_REPO: "gfx-ci/linux"
PKG_REPO_REV: "e930a803" PKG_REPO_REV: "0d2527f6"
FIRMWARE_TAG: "8fc31b97" FIRMWARE_TAG: "36f9bbfa"
FIRMWARE_REPO: "gfx-ci/firmware" FIRMWARE_REPO: "gfx-ci/firmware"
WINDOWS_X64_MSVC_TAG: "20251120-bison" WINDOWS_X64_MSVC_TAG: "20250906-d3d10umd"
WINDOWS_X64_BUILD_TAG: "20260309-D3D619" WINDOWS_X64_BUILD_TAG: "20251001-D3D618"
WINDOWS_X64_TEST_TAG: "20260309-D3D619" WINDOWS_X64_TEST_TAG: "20250926-D3D618"

View file

@ -13,7 +13,7 @@ variables:
# 4. lava/health-check-docker - the slim container used for fastboot # 4. lava/health-check-docker - the slim container used for fastboot
# Set image: directly instead of extending .set-image to avoid conflicts # Set image: directly instead of extending .set-image to avoid conflicts
# with MESA_IMAGE_PATH and FDO_DISTRIBUTION_TAG between the containers. # with MESA_IMAGE_PATH and FDO_DISTRIBUTION_TAG between the containers.
image: registry.freedesktop.org/gfx-ci/lava-job-submitter/alpine/x86_64_lava-trigger:20260302.0 image: registry.freedesktop.org/gfx-ci/lava-job-submitter/alpine/x86_64_lava-trigger:20251009-fastboot
# Cancel job if a newer commit is pushed to the same branch # Cancel job if a newer commit is pushed to the same branch
interruptible: true interruptible: true
# The jobs themselves shouldn't actually run for an hour, of course. # The jobs themselves shouldn't actually run for an hour, of course.
@ -66,6 +66,8 @@ variables:
- $RUNNER_TAG - $RUNNER_TAG
after_script: after_script:
- curl -L --retry 4 -f --retry-connrefused --retry-delay 30 -s "https://${JOB_RESULTS_PATH}" | tar --warning=no-timestamp --zstd -x - curl -L --retry 4 -f --retry-connrefused --retry-delay 30 -s "https://${JOB_RESULTS_PATH}" | tar --warning=no-timestamp --zstd -x
needs:
- !reference [.required-for-hardware-jobs, needs]
.lava-x86_64-test: .lava-x86_64-test:
extends: extends:
@ -87,6 +89,7 @@ variables:
HWCI_TEST_SCRIPT: install/cuttlefish-runner.sh HWCI_TEST_SCRIPT: install/cuttlefish-runner.sh
S3_ANDROID_ARTIFACT_NAME: mesa-x86_64-android-debug S3_ANDROID_ARTIFACT_NAME: mesa-x86_64-android-debug
needs: needs:
- !reference [.lava-test, needs]
- job: debian/x86_64_test-android - job: debian/x86_64_test-android
artifacts: false artifacts: false
optional: true optional: true
@ -100,6 +103,7 @@ variables:
- .use-debian/x86_64_test-gl - .use-debian/x86_64_test-gl
- .lava-x86_64-test - .lava-x86_64-test
needs: needs:
- !reference [.lava-test, needs]
- job: debian/x86_64_test-gl - job: debian/x86_64_test-gl
artifacts: false artifacts: false
optional: true optional: true
@ -114,6 +118,7 @@ variables:
DEQP_FORCE_ASAN: 1 DEQP_FORCE_ASAN: 1
S3_ARTIFACT_NAME: mesa-x86_64-asan-debugoptimized S3_ARTIFACT_NAME: mesa-x86_64-asan-debugoptimized
needs: needs:
- !reference [.lava-test, needs]
- job: debian/x86_64_test-gl - job: debian/x86_64_test-gl
artifacts: false artifacts: false
optional: true optional: true
@ -125,6 +130,7 @@ variables:
- .use-debian/x86_64_test-video - .use-debian/x86_64_test-video
- .lava-x86_64-test - .lava-x86_64-test
needs: needs:
- !reference [.lava-test, needs]
- job: debian/x86_64_test-video - job: debian/x86_64_test-video
artifacts: false artifacts: false
optional: true optional: true
@ -136,6 +142,7 @@ variables:
- .use-debian/x86_64_test-vk - .use-debian/x86_64_test-vk
- .lava-x86_64-test - .lava-x86_64-test
needs: needs:
- !reference [.lava-test, needs]
- job: debian/x86_64_test-vk - job: debian/x86_64_test-vk
artifacts: false artifacts: false
optional: true optional: true
@ -150,6 +157,7 @@ variables:
DEQP_FORCE_ASAN: 1 DEQP_FORCE_ASAN: 1
S3_ARTIFACT_NAME: mesa-x86_64-asan-debugoptimized S3_ARTIFACT_NAME: mesa-x86_64-asan-debugoptimized
needs: needs:
- !reference [.lava-test, needs]
- job: debian/x86_64_test-vk - job: debian/x86_64_test-vk
artifacts: false artifacts: false
optional: true optional: true
@ -171,6 +179,7 @@ variables:
- .use-debian/arm32_test-gl - .use-debian/arm32_test-gl
- .lava-arm32-test - .lava-arm32-test
needs: needs:
- !reference [.lava-test, needs]
- job: debian/arm32_test-gl - job: debian/arm32_test-gl
artifacts: false artifacts: false
optional: true optional: true
@ -187,29 +196,12 @@ variables:
KERNEL_IMAGE_TYPE: "image" KERNEL_IMAGE_TYPE: "image"
BOOT_METHOD: u-boot BOOT_METHOD: u-boot
.lava-arm64-test-android:
extends:
- .use-debian/arm64_test-android
- .lava-arm64-test
- .android-variables
variables:
HWCI_KERNEL_MODULES: vhost_vsock
HWCI_TEST_SCRIPT: install/cuttlefish-runner.sh
S3_ANDROID_ARTIFACT_NAME: mesa-arm64-android-debug
needs:
- job: debian/arm64_test-android
artifacts: false
optional: true
- job: debian-arm64 # The generic Linux build for the host will be downloaded later
artifacts: false
- job: debian-android # The Android build for the guest will be downloaded later and installed via adb
artifacts: false
.lava-arm64-test-gl: .lava-arm64-test-gl:
extends: extends:
- .use-debian/arm64_test-gl - .use-debian/arm64_test-gl
- .lava-arm64-test - .lava-arm64-test
needs: needs:
- !reference [.lava-test, needs]
- job: debian/arm64_test-gl - job: debian/arm64_test-gl
artifacts: false artifacts: false
optional: true optional: true
@ -224,6 +216,7 @@ variables:
DEQP_FORCE_ASAN: 1 DEQP_FORCE_ASAN: 1
S3_ARTIFACT_NAME: mesa-arm64-asan-debugoptimized S3_ARTIFACT_NAME: mesa-arm64-asan-debugoptimized
needs: needs:
- !reference [.lava-test, needs]
- job: debian/arm64_test-gl - job: debian/arm64_test-gl
artifacts: false artifacts: false
optional: true optional: true
@ -235,6 +228,7 @@ variables:
- .use-debian/arm64_test-vk - .use-debian/arm64_test-vk
- .lava-arm64-test - .lava-arm64-test
needs: needs:
- !reference [.lava-test, needs]
- job: debian/arm64_test-vk - job: debian/arm64_test-vk
artifacts: false artifacts: false
optional: true optional: true
@ -249,6 +243,7 @@ variables:
DEQP_FORCE_ASAN: 1 DEQP_FORCE_ASAN: 1
S3_ARTIFACT_NAME: mesa-arm64-asan-debugoptimized S3_ARTIFACT_NAME: mesa-arm64-asan-debugoptimized
needs: needs:
- !reference [.lava-test, needs]
- job: debian/arm64_test-vk - job: debian/arm64_test-vk
artifacts: false artifacts: false
optional: true optional: true

View file

@ -41,14 +41,6 @@ fdo_log_section_end variables
fdo_log_section_start_collapsed lava_submit "Submitting job for scheduling" fdo_log_section_start_collapsed lava_submit "Submitting job for scheduling"
# GitLab jobs use a default 1-hour timeout, which can allow jobs to run longer than intended.
# CI_JOB_TIMEOUT (GitLab timeout in seconds) is used here to set the LAVA job timeout.
# For Marge, we override this to 25 minutes (with 5 minutes subtracted below for lava-job-submitter),
# giving a still conservative, but safer timeout to avoid jobs running for too long.
if [ $GITLAB_USER_LOGIN == "marge-bot" ]; then
export CI_JOB_TIMEOUT=1500
fi
touch results/lava.log touch results/lava.log
tail -f results/lava.log & tail -f results/lava.log &
# Ensure that we are printing the commands that are being executed, # Ensure that we are printing the commands that are being executed,
@ -56,8 +48,6 @@ tail -f results/lava.log &
set -x set -x
# List of optional overlays # List of optional overlays
# NOTE: If you encounter "Attempted path traversal in tar file at /dev/ttyS1",
# that is an indication that one of your rootfs and overlays contain a duplicate file.
LAVA_EXTRA_OVERLAYS=() LAVA_EXTRA_OVERLAYS=()
if [ -n "${LAVA_FIRMWARE:-}" ]; then if [ -n "${LAVA_FIRMWARE:-}" ]; then
for fw in $LAVA_FIRMWARE; do for fw in $LAVA_FIRMWARE; do
@ -92,7 +82,7 @@ fi
if [ -n "${FLUSTER_TAG:-}" ]; then if [ -n "${FLUSTER_TAG:-}" ]; then
LAVA_EXTRA_OVERLAYS+=( LAVA_EXTRA_OVERLAYS+=(
- append-overlay - append-overlay
--name=fluster --name=vkd3d-proton
--url="$(fdo_find_s3_path "${DATA_STORAGE_PATH}/fluster/${FLUSTER_TAG}/vectors.tar.zst")" --url="$(fdo_find_s3_path "${DATA_STORAGE_PATH}/fluster/${FLUSTER_TAG}/vectors.tar.zst")"
--path="/" --path="/"
--format=tar --format=tar
@ -109,16 +99,6 @@ if [ -n "${VKD3D_PROTON_TAG:-}" ]; then
--compression=zstd --compression=zstd
) )
fi fi
if [ -n "${WINE_TAG:-}" ]; then
LAVA_EXTRA_OVERLAYS+=(
- append-overlay
--name=wine
--url="$(fdo_find_s3_path "${DATA_STORAGE_PATH}/wine/${DEBIAN_TEST_VK_TAG}-${WINE_TAG}/${MESA_IMAGE_PATH}/wine.tar.zst")"
--path="/"
--format=tar
--compression=zstd
)
fi
if [ -n "${S3_ANDROID_ARTIFACT_NAME:-}" ]; then if [ -n "${S3_ANDROID_ARTIFACT_NAME:-}" ]; then
LAVA_EXTRA_OVERLAYS+=( LAVA_EXTRA_OVERLAYS+=(
- append-overlay - append-overlay
@ -133,6 +113,16 @@ if [ -n "${S3_ANDROID_ARTIFACT_NAME:-}" ]; then
--path="/cuttlefish" --path="/cuttlefish"
--format=tar --format=tar
--compression=zstd --compression=zstd
- append-overlay
--name=android-kernel
--url="https://${S3_BASE_PATH}/${AOSP_KERNEL_PROJECT_PATH}/aosp-kernel-common-${AOSP_KERNEL_BUILD_VERSION_TAGS}.${AOSP_KERNEL_BUILD_NUMBER}/bzImage"
--path="/cuttlefish"
--format=file
- append-overlay
--name=android-initramfs
--url="https://${S3_BASE_PATH}/${AOSP_KERNEL_PROJECT_PATH}/aosp-kernel-common-${AOSP_KERNEL_BUILD_VERSION_TAGS}.${AOSP_KERNEL_BUILD_NUMBER}/initramfs.img"
--path="/cuttlefish"
--format=file
) )
fi fi

View file

@ -43,7 +43,9 @@ fi
# Android manages the rust toolchain differently, ignore that case # Android manages the rust toolchain differently, ignore that case
if [ "$CI_JOB_STAGE" = "build-for-tests" ] && [[ "$CI_JOB_NAME" != *android* ]]; then if [ "$CI_JOB_STAGE" = "build-for-tests" ] && [[ "$CI_JOB_NAME" != *android* ]]; then
rustup default "$(python3 -c 'import tomllib; print(tomllib.load(open("'"$CI_PROJECT_DIR"'/clippy.toml", "rb"))["msrv"])')" # Keep this in sync with the `rustc.version()` check in meson.build, and
# MINIMUM_SUPPORTED_RUST_VERSION in .gitlab-ci/container/build-rust.sh
rustup default 1.82.0
fi fi
# cross-xfail-$CROSS, if it exists, contains a list of tests that are expected # cross-xfail-$CROSS, if it exists, contains a list of tests that are expected

View file

@ -135,9 +135,7 @@ replay_s3_upload_images() {
SANITY_MESA_VERSION_CMD="$SANITY_MESA_VERSION_CMD | tee /tmp/version.txt | grep \"Mesa $MESA_VERSION\(\s\|$\)\"" SANITY_MESA_VERSION_CMD="$SANITY_MESA_VERSION_CMD | tee /tmp/version.txt | grep \"Mesa $MESA_VERSION\(\s\|$\)\""
if [ "${GIT_STRATEGY:-}" = none ]; then
cd $RESULTS_DIR && rm -rf ..?* .[!.]* * cd $RESULTS_DIR && rm -rf ..?* .[!.]* *
fi
cd /piglit cd /piglit
if [ -n "$USE_CASELIST" ]; then if [ -n "$USE_CASELIST" ]; then
@ -167,6 +165,16 @@ RUN_CMD="export LD_LIBRARY_PATH=$__LD_LIBRARY_PATH; $SANITY_MESA_VERSION_CMD &&
# run. # run.
rm -rf replayer-db rm -rf replayer-db
# ANGLE: download compiled ANGLE runtime and the compiled restricted traces (all-in-one package)
if [ -n "$PIGLIT_REPLAY_ANGLE_ARCH" ]; then
FILE="angle-bin-${PIGLIT_REPLAY_ANGLE_ARCH}-${ANGLE_TRACE_FILES_TAG}.tar.zst"
curl --location --fail --retry-all-errors --retry 4 --retry-delay 60 \
--header "Authorization: Bearer $(cat "${S3_JWT_FILE}")" \
"https://s3.freedesktop.org/mesa-tracie-private/${FILE}" --output "${FILE}"
mkdir -p replayer-db/angle
tar --zstd -xf ${FILE} -C replayer-db/angle/
fi
PIGLIT_RESULTS="${PIGLIT_RESULTS:-replay}" PIGLIT_RESULTS="${PIGLIT_RESULTS:-replay}"
RESULTSFILE="$RESULTS_DIR/$PIGLIT_RESULTS.txt" RESULTSFILE="$RESULTS_DIR/$PIGLIT_RESULTS.txt"
mkdir -p .gitlab-ci/piglit mkdir -p .gitlab-ci/piglit

View file

@ -11,17 +11,11 @@ set -o xtrace
CROSS_FILE=/cross_file-"$CROSS".txt CROSS_FILE=/cross_file-"$CROSS".txt
if [ -d install/bin ]; then # Delete unused bin and includes from artifacts to save space.
# Keep pps-producer binary for tests that need it. rm -rf install/bin install/include
# Remove all other binaries to save space.
find install/bin -type f -not -name 'pps-producer' -delete
fi
# Delete unused includes from artifacts to save space.
rm -rf install/include
rm -f install/lib/*.a rm -f install/lib/*.a
# Strip the drivers and binaries in the artifacts to cut 80% of the artifacts size. # Strip the drivers in the artifacts to cut 80% of the artifacts size.
if [ -n "$CROSS" ]; then if [ -n "$CROSS" ]; then
STRIP=$(sed -n -E "s/strip\s*=\s*\[?'(.*)'\]?/\1/p" "$CROSS_FILE") STRIP=$(sed -n -E "s/strip\s*=\s*\[?'(.*)'\]?/\1/p" "$CROSS_FILE")
if [ -z "$STRIP" ]; then if [ -z "$STRIP" ]; then
@ -32,7 +26,7 @@ else
STRIP="strip" STRIP="strip"
fi fi
if [ -z "$ARTIFACTS_DEBUG_SYMBOLS" ]; then if [ -z "$ARTIFACTS_DEBUG_SYMBOLS" ]; then
find install -type f -executable -exec $STRIP --strip-debug {} \; find install -name \*.so -exec $STRIP --strip-debug {} \;
fi fi
git_sha=$(git rev-parse --short=10 HEAD) git_sha=$(git rev-parse --short=10 HEAD)
@ -46,7 +40,6 @@ for f in \
.gitlab-ci/piglit \ .gitlab-ci/piglit \
.gitlab-ci/fossils.yml \ .gitlab-ci/fossils.yml \
.gitlab-ci/fossils \ .gitlab-ci/fossils \
.gitlab-ci/gpu-trace-replay.sh \
.gitlab-ci/crosvm-init.sh \ .gitlab-ci/crosvm-init.sh \
.gitlab-ci/*.txt \ .gitlab-ci/*.txt \
.gitlab-ci/report-flakes.py \ .gitlab-ci/report-flakes.py \

View file

@ -14,7 +14,7 @@ export LD_LIBRARY_PATH=$LIBDIR
cd /usr/local/shader-db cd /usr/local/shader-db
for driver in freedreno lima v3d vc4; do for driver in freedreno intel lima v3d vc4; do
section_start shader-db-${driver} "Running shader-db for $driver" section_start shader-db-${driver} "Running shader-db for $driver"
env LD_PRELOAD="$LIBDIR/lib${driver}_noop_drm_shim.so" \ env LD_PRELOAD="$LIBDIR/lib${driver}_noop_drm_shim.so" \
./run -j"${FDO_CI_CONCURRENT:-4}" ./shaders \ ./run -j"${FDO_CI_CONCURRENT:-4}" ./shaders \
@ -22,16 +22,6 @@ for driver in freedreno lima v3d vc4; do
section_end shader-db-${driver} section_end shader-db-${driver}
done done
# Run shader-db over a number of supported platforms for crocus/iris
for platform in hsw bdw skl mtl lnl ptl; do
section_start "shader-db-intel-${platform}" "Running shader-db for intel - ${platform}"
env LD_PRELOAD="$LIBDIR/libintel_noop_drm_shim.so" \
INTEL_STUB_GPU_PLATFORM="${platform}" \
./run -j"${FDO_CI_CONCURRENT:-4}" ./shaders \
> "$ARTIFACTSDIR/intel-${platform}-shader-db.txt"
section_end "shader-db-intel-${platform}"
done
# Run shader-db over a number of supported chipsets for nouveau # Run shader-db over a number of supported chipsets for nouveau
for chipset in 40 a3 c0 e4 f0 134 162; do for chipset in 40 a3 c0 e4 f0 134 162; do
section_start shader-db-nouveau-${chipset} "Running shader-db for nouveau - ${chipset}" section_start shader-db-nouveau-${chipset} "Running shader-db for nouveau - ${chipset}"
@ -51,13 +41,3 @@ for chipset in 0x5460 0x7140; do
> "$ARTIFACTSDIR/r300-${chipset}-shader-db.txt" > "$ARTIFACTSDIR/r300-${chipset}-shader-db.txt"
section_end shader-db-r300-${chipset} section_end shader-db-r300-${chipset}
done done
# Run shader-db for radeonsi
for device in pitcairn bonaire navi21 navi31 gfx1150 gfx1201; do
section_start shader-db-radeonsi-${device} "Running shader-db for radeonsi - ${device}"
env LD_PRELOAD="$LIBDIR/libamdgpu_noop_drm_shim.so" \
RADEON_GPU_ID=${device} \
./run -j"${FDO_CI_CONCURRENT:-4}" -o radeonsi ./shaders \
> "$ARTIFACTSDIR/radeonsi-${device}-shader-db.txt"
section_end shader-db-radeonsi-${device}
done

View file

@ -41,13 +41,9 @@ export JOB_START_S=$(
{ date -u +"%s" -D "%Y-%m-%dT%H:%M:%SZ" "$CI_JOB_STARTED_AT" 2>/dev/null || true; } { date -u +"%s" -D "%Y-%m-%dT%H:%M:%SZ" "$CI_JOB_STARTED_AT" 2>/dev/null || true; }
) )
function get_job_seconds {
DATE_S=$(date -u +"%s")
echo $((DATE_S-JOB_START_S))
}
function get_current_minsec { function get_current_minsec {
CURR_TIME=$(get_job_seconds) DATE_S=$(date -u +"%s")
CURR_TIME=$((DATE_S-JOB_START_S))
printf "%02d:%02d" $((CURR_TIME/60)) $((CURR_TIME%60)) printf "%02d:%02d" $((CURR_TIME/60)) $((CURR_TIME%60))
} }
@ -130,11 +126,11 @@ export -f _error_msg
if [ -z "${RESULTS_DIR:-}" ]; then if [ -z "${RESULTS_DIR:-}" ]; then
export RESULTS_DIR="${PWD%/}/results" export RESULTS_DIR="${PWD%/}/results"
if [ "${GIT_STRATEGY:-}" = none ]; then if [ -e "${RESULTS_DIR}" ]; then
rm -rf "${RESULTS_DIR}" rm -rf "${RESULTS_DIR}"
fi fi
fi
mkdir -p "${RESULTS_DIR}" mkdir -p "${RESULTS_DIR}"
fi
function error { function error {
# we force the following to be not in a section # we force the following to be not in a section

View file

@ -41,6 +41,7 @@
- job: debian/x86_64_test-gl - job: debian/x86_64_test-gl
optional: true optional: true
- job: debian-x86_64 - job: debian-x86_64
- !reference [.required-for-hardware-jobs, needs]
variables: variables:
DEBIAN_ARCH: amd64 DEBIAN_ARCH: amd64
S3_ARTIFACT_NAME: mesa-x86_64-default-debugoptimized S3_ARTIFACT_NAME: mesa-x86_64-default-debugoptimized
@ -53,6 +54,7 @@
- job: debian-x86_64 - job: debian-x86_64
- job: debian/x86_64_test-vk - job: debian/x86_64_test-vk
optional: true optional: true
- !reference [.required-for-hardware-jobs, needs]
variables: variables:
DEBIAN_ARCH: amd64 DEBIAN_ARCH: amd64
S3_ARTIFACT_NAME: mesa-x86_64-default-debugoptimized S3_ARTIFACT_NAME: mesa-x86_64-default-debugoptimized
@ -64,6 +66,7 @@
needs: needs:
- job: debian/x86_64_test-gl - job: debian/x86_64_test-gl
optional: true optional: true
- !reference [.required-for-hardware-jobs, needs]
variables: variables:
S3_ARTIFACT_NAME: mesa-x86_64-default-debugoptimized S3_ARTIFACT_NAME: mesa-x86_64-default-debugoptimized
@ -88,6 +91,7 @@
- job: debian/x86_64_test-android - job: debian/x86_64_test-android
artifacts: false artifacts: false
optional: true optional: true
- !reference [.required-for-hardware-jobs, needs]
timeout: 20m timeout: 20m
script: script:
- ./install/cuttlefish-runner.sh - ./install/cuttlefish-runner.sh
@ -120,31 +124,6 @@
VKD3D_PROTON_TAG: ${CONDITIONAL_BUILD_VKD3D_PROTON_TAG} VKD3D_PROTON_TAG: ${CONDITIONAL_BUILD_VKD3D_PROTON_TAG}
HWCI_TEST_SCRIPT: install/vkd3d-runner.sh HWCI_TEST_SCRIPT: install/vkd3d-runner.sh
.test-wine:
variables:
WINE_TAG: ${CONDITIONAL_BUILD_WINE_TAG}
.traces-test:
artifacts:
# We don't specify on:failure, because it's useful for devs to be able to go
# look at the actual rendering results of other drivers.
name: "${CI_PROJECT_NAME}_${CI_JOB_NAME_SLUG}"
paths:
- results/
variables:
CACHE_DIR: $CI_PROJECT_DIR/traces-db/
HWCI_TEST_SCRIPT: "install/gpu-trace-replay.sh"
# For downloading traces:
CI_TRON_HTTP_ARTIFACT__TRACIE_PUBLIC__PATH: /caching_proxy/https://s3.freedesktop.org/mesa-tracie-public/(.*)
CI_TRON_HTTP_ARTIFACT__TRACIE_PUBLIC__URL: https://s3.freedesktop.org/mesa-tracie-public/\1
CI_TRON_HTTP_ARTIFACT__TRACIE_PRIVATE__PATH: /caching_proxy/https://s3.freedesktop.org/mesa-tracie-private/(.*)
CI_TRON_HTTP_ARTIFACT__TRACIE_PRIVATE__URL: https://s3.freedesktop.org/mesa-tracie-private/\1
# For uploading renders:
# s3.fd.o redirects to hetzner, so we need that too
CI_TRON_PROXY__ALLOWED_ENDPOINTS_CATEGORY__S3__FDO: s3.freedesktop.org:443
CI_TRON_PROXY__ALLOWED_ENDPOINTS_CATEGORY__S3__BACKEND: fsn1.your-objectstorage.com:443
.piglit-traces-test: .piglit-traces-test:
artifacts: artifacts:
when: on_failure when: on_failure
@ -174,7 +153,7 @@
.deqp-test: .deqp-test:
script: script:
- if [ "${GIT_STRATEGY:-}" = none ]; then rm -rf results; fi # Clear out old results if the docker container was cached - rm -rf results # Clear out old results if the docker container was cached
- ./install/deqp-runner.sh - ./install/deqp-runner.sh
artifacts: artifacts:
exclude: exclude:
@ -200,6 +179,16 @@
# setup). # setup).
- section_start artifacts_download "Downloading artifacts from s3" - section_start artifacts_download "Downloading artifacts from s3"
# Note: Build dir (and thus install) may be dirty due to GIT_STRATEGY # Note: Build dir (and thus install) may be dirty due to GIT_STRATEGY
- if [ "${GIT_STRATEGY:-}" = none ]; then rm -rf install; fi - rm -rf install
- (set -x; curl -L --retry 4 -f --retry-all-errors --retry-delay 60 ${FDO_HTTP_CACHE_URI:-}https://${PIPELINE_ARTIFACTS_BASE}/${S3_ARTIFACT_NAME}.tar.zst | tar --zstd -x) - (set -x; curl -L --retry 4 -f --retry-all-errors --retry-delay 60 ${FDO_HTTP_CACHE_URI:-}https://${PIPELINE_ARTIFACTS_BASE}/${S3_ARTIFACT_NAME}.tar.zst | tar --zstd -x)
- section_end artifacts_download - section_end artifacts_download
# Jobs that need to pass before spending hardware resources on further testing
.required-for-hardware-jobs:
needs:
- job: rustfmt
optional: true
artifacts: false
- job: yaml-toml-shell-py-test
optional: true
artifacts: false

View file

@ -27,7 +27,7 @@ rustfmt:
- shopt -s globstar - shopt -s globstar
- source "$HOME/.cargo/env" - source "$HOME/.cargo/env"
- rustfmt --version - rustfmt --version
- rustfmt --verbose src/**/*.rs - rustfmt --verbose src/**/lib.rs
shader-db: shader-db:
stage: code-validation stage: code-validation
@ -44,7 +44,6 @@ shader-db:
- !reference [.vc4-rules, rules] - !reference [.vc4-rules, rules]
- !reference [.nouveau-rules, rules] - !reference [.nouveau-rules, rules]
- !reference [.r300-rules, rules] - !reference [.r300-rules, rules]
- !reference [.radeonsi-collabora-rules, rules]
# Also run if this job's own config or script changes # Also run if this job's own config or script changes
- changes: - changes:
- .gitlab-ci/build/gitlab-ci.yml - .gitlab-ci/build/gitlab-ci.yml
@ -61,6 +60,9 @@ shader-db:
paths: paths:
- shader-db - shader-db
timeout: 15m timeout: 15m
tags:
# FIXME: kvm is a hack, should not be needed
- $FDO_RUNNER_JOB_PRIORITY_TAG_X86_64_KVM
yaml-toml-shell-py-test: yaml-toml-shell-py-test:
extends: extends:
@ -78,6 +80,7 @@ yaml-toml-shell-py-test:
- section_end shellcheck - section_end shellcheck
- .gitlab-ci/run-pytest.sh - .gitlab-ci/run-pytest.sh
rules: rules:
- !reference [.disable-farm-mr-rules, rules]
- !reference [.never-post-merge-rules, rules] - !reference [.never-post-merge-rules, rules]
- !reference [.no_scheduled_pipelines-rules, rules] - !reference [.no_scheduled_pipelines-rules, rules]
# merge pipeline # merge pipeline

View file

@ -29,13 +29,18 @@ INSTALL=$(realpath -s "$PWD"/install)
# Modifiying here directly LD_LIBRARY_PATH may cause problems when # Modifiying here directly LD_LIBRARY_PATH may cause problems when
# using a command wrapper. Hence, we will just set it when running the # using a command wrapper. Hence, we will just set it when running the
# command. # command.
export LD_LIBRARY_PATH="${LD_LIBRARY_PATH:-}:$INSTALL/lib/" export LD_LIBRARY_PATH="${LD_LIBRARY_PATH:-}:$INSTALL/lib/:/vkd3d-proton-tests/lib/"
# Set the Vulkan driver to use. # Set the Vulkan driver to use.
ARCH=$(uname -m) ARCH=$(uname -m)
export VK_DRIVER_FILES="$INSTALL/share/vulkan/icd.d/${VK_DRIVER}_icd.$ARCH.json" export VK_DRIVER_FILES="$INSTALL/share/vulkan/icd.d/${VK_DRIVER}_icd.$ARCH.json"
# Set environment for Wine.
export WINEDEBUG="-all"
export WINEPREFIX="/vkd3d-proton-wine64"
export WINEESYNC=1
if [ -f "$INSTALL/$GPU_VERSION-vkd3d-skips.txt" ]; then if [ -f "$INSTALL/$GPU_VERSION-vkd3d-skips.txt" ]; then
mapfile -t skips < <(grep -vE '^#|^$' "$INSTALL/$GPU_VERSION-vkd3d-skips.txt") mapfile -t skips < <(grep -vE '^#|^$' "$INSTALL/$GPU_VERSION-vkd3d-skips.txt")
VKD3D_TEST_EXCLUDE=$(comma_separated "${skips[@]}") VKD3D_TEST_EXCLUDE=$(comma_separated "${skips[@]}")
@ -97,7 +102,7 @@ printf "%s\n" "Running vkd3d-proton testsuite..."
LOGFILE="$RESULTS_DIR/vkd3d-proton-log.txt" LOGFILE="$RESULTS_DIR/vkd3d-proton-log.txt"
TEST_LOGS="/test-logs" TEST_LOGS="/test-logs"
pushd /vkd3d-proton-tests pushd /vkd3d-proton-tests
tests/test-runner.sh tests/d3d12 --jobs "${FDO_CI_CONCURRENT:-4}" --output-dir "$TEST_LOGS" | tee "$LOGFILE" || true tests/test-runner.sh ./d3d12 --jobs "${FDO_CI_CONCURRENT:-4}" --output-dir "$TEST_LOGS" | tee "$LOGFILE" || true
popd popd
printf '\n\n' printf '\n\n'

View file

@ -12,7 +12,7 @@ $depsInstallPath="C:\mesa-deps"
Get-Date Get-Date
Write-Host "Cloning DirectX-Headers" Write-Host "Cloning DirectX-Headers"
git clone -b v1.619.1 --depth=1 https://github.com/microsoft/DirectX-Headers deps/DirectX-Headers git clone -b v1.618.1 --depth=1 https://github.com/microsoft/DirectX-Headers deps/DirectX-Headers
if (!$?) { if (!$?) {
Write-Host "Failed to clone DirectX-Headers repository" Write-Host "Failed to clone DirectX-Headers repository"
Exit 1 Exit 1

View file

@ -8,7 +8,7 @@ $depsInstallPath="C:\mesa-deps"
Write-Host "Downloading DirectX 12 Agility SDK at:" Write-Host "Downloading DirectX 12 Agility SDK at:"
Get-Date Get-Date
Invoke-WebRequest -Uri https://www.nuget.org/api/v2/package/Microsoft.Direct3D.D3D12/1.619.1 -OutFile 'agility.zip' Invoke-WebRequest -Uri https://www.nuget.org/api/v2/package/Microsoft.Direct3D.D3D12/1.618.1 -OutFile 'agility.zip'
Expand-Archive -Path 'agility.zip' -DestinationPath 'C:\agility' Expand-Archive -Path 'agility.zip' -DestinationPath 'C:\agility'
# Copy Agility SDK into mesa-deps\bin\D3D12 # Copy Agility SDK into mesa-deps\bin\D3D12
New-Item -ErrorAction SilentlyContinue -ItemType Directory -Path $depsInstallPath\bin -Name 'D3D12' New-Item -ErrorAction SilentlyContinue -ItemType Directory -Path $depsInstallPath\bin -Name 'D3D12'

View file

@ -27,6 +27,8 @@ Start-Process -NoNewWindow -Wait -FilePath C:\vs_buildtools.exe `
"--add", "Microsoft.VisualStudio.Component.VC.ATL", ` "--add", "Microsoft.VisualStudio.Component.VC.ATL", `
"--add", "Microsoft.VisualStudio.Component.VC.ATLMFC", ` "--add", "Microsoft.VisualStudio.Component.VC.ATLMFC", `
"--add", "Microsoft.VisualStudio.Component.VC.Tools.x86.x64", ` "--add", "Microsoft.VisualStudio.Component.VC.Tools.x86.x64", `
"--add", "Microsoft.VisualStudio.Component.VC.14.29.16.11.ATL", ` # MSVC 2019
"--add", "Microsoft.VisualStudio.Component.VC.14.29.16.11.MFC", `
"--add", "Microsoft.VisualStudio.ComponentGroup.VC.Tools.142.x86.x64", ` "--add", "Microsoft.VisualStudio.ComponentGroup.VC.Tools.142.x86.x64", `
"--add", "Microsoft.VisualStudio.Component.VC.Llvm.Clang", ` "--add", "Microsoft.VisualStudio.Component.VC.Llvm.Clang", `
"--add", "Microsoft.VisualStudio.Component.Graphics.Tools", ` "--add", "Microsoft.VisualStudio.Component.Graphics.Tools", `

View file

@ -72,4 +72,4 @@ Consider recording a [GFXReconstruct](https://github.com/LunarG/gfxreconstruct/b
Does the issue reproduce with the LLVM backend (`RADV_DEBUG=llvm`) or on the AMDGPU-PRO drivers? Does the issue reproduce with the LLVM backend (`RADV_DEBUG=llvm`) or on the AMDGPU-PRO drivers?
Does your environment set any of the variables `ACO_DEBUG`, `RADV_DEBUG`, `RADV_PERFTEST` and `RADV_EXPERIMENTAL`? Does your environment set any of the variables `ACO_DEBUG`, `RADV_DEBUG`, and `RADV_PERFTEST`?

View file

@ -41,11 +41,10 @@ Alex Deucher <alexdeucher@gmail.com> <alex@botch2.(none)>
Alex Deucher <alexdeucher@gmail.com> <alex@cube.(none)> Alex Deucher <alexdeucher@gmail.com> <alex@cube.(none)>
Alex Deucher <alexdeucher@gmail.com> <alex@samba.(none)> Alex Deucher <alexdeucher@gmail.com> <alex@samba.(none)>
Alyssa Rosenzweig <alyssa@rosenz.ca> <alyssa.rosenzweig@intel.com> Alyssa Rosenzweig <alyssa@rosenzweig.io> <alyssa.rosenzweig@intel.com>
Alyssa Rosenzweig <alyssa@rosenz.ca> <alyssa.rosenzweig@collabora.com> Alyssa Rosenzweig <alyssa@rosenzweig.io> <alyssa.rosenzweig@collabora.com>
Alyssa Rosenzweig <alyssa@rosenz.ca> <alyssa@rosenzweig.io> Alyssa Rosenzweig <alyssa@rosenzweig.io> <a@rosenzweig.io>
Alyssa Rosenzweig <alyssa@rosenz.ca> <a@rosenzweig.io> Alyssa Rosenzweig <alyssa@rosenzweig.io> <alyssa@collabora.com>
Alyssa Rosenzweig <alyssa@rosenz.ca> <alyssa@collabora.com>
Andreas Fänger <a.faenger@e-sign.com> <a.faenger@e-sign.com> Andreas Fänger <a.faenger@e-sign.com> <a.faenger@e-sign.com>
@ -291,9 +290,6 @@ Ian Romanick <ian.d.romanick@intel.com> <idr@us.ibm.com>
Icecream95 <ixn@disroot.org> <ixn@keemail.me> Icecream95 <ixn@disroot.org> <ixn@keemail.me>
Icenowy Zheng <uwu@icenowy.me> <zhengxingda@iscas.ac.cn>
Icenowy Zheng <uwu@icenowy.me> <icenowy@aosc.io>
Igor Gnatenko <i.gnatenko.brain@gmail.com> <ignatenko@redhat.com> Igor Gnatenko <i.gnatenko.brain@gmail.com> <ignatenko@redhat.com>
Illia Iorin <illia.iorin@globallogic.com> <illia.iorin@gmail.com> Illia Iorin <illia.iorin@globallogic.com> <illia.iorin@gmail.com>
@ -430,9 +426,6 @@ Lionel Landwerlin <lionel.g.landwerlin@intel.com> <llandwerlin@gmail.com>
Liviu Prodea <liviuprodea@yahoo.com> Liviu Prodea <liviuprodea@yahoo.com>
Lorenzo Rossi <lorenzo.rossi@collabora.com> <snowycoder@gmail.com>
Lorenzo Rossi <lorenzo.rossi@collabora.com> <git@rossilorenzo.dev>
Lucas Fryzek <lfryzek@igalia.com> <lucas.fryzek@gmail.com> Lucas Fryzek <lfryzek@igalia.com> <lucas.fryzek@gmail.com>
Lucas Stach <dev@lynxeye.de> <l.stach@pengutronix.de> Lucas Stach <dev@lynxeye.de> <l.stach@pengutronix.de>
@ -467,8 +460,6 @@ Martin Roukala (né Peres) <martin.roukala@mupuf.org> <martin.peres@mupuf.org>
Martin Roukala (né Peres) <martin.roukala@mupuf.org> <martin.peres@linux.intel.com> Martin Roukala (né Peres) <martin.roukala@mupuf.org> <martin.peres@linux.intel.com>
Martin Roukala (né Peres) <martin.roukala@mupuf.org> <martin.peres@labri.fr> Martin Roukala (né Peres) <martin.roukala@mupuf.org> <martin.peres@labri.fr>
Mary Guillemard <mary@mary.zone> <mary.guillemard@collabora.com>
Mathias Fröhlich <mathias.froehlich@gmx.net> Mathias Froehlich <Mathias.Froehlich@gmx.net> Mathias Fröhlich <mathias.froehlich@gmx.net> Mathias Froehlich <Mathias.Froehlich@gmx.net>
Mathias Fröhlich <mathias.froehlich@gmx.net> Mathias Froehlich <Mathias.Froehlich@web.de> Mathias Fröhlich <mathias.froehlich@gmx.net> Mathias Froehlich <Mathias.Froehlich@web.de>
Mathias Fröhlich <mathias.froehlich@gmx.net> Mathias Frohlich <M.Froehlich@science-computing.de> Mathias Fröhlich <mathias.froehlich@gmx.net> Mathias Frohlich <M.Froehlich@science-computing.de>
@ -623,8 +614,6 @@ Rune Petersen <rune@megahurts.dk> Rune Peterson <rune@megahurts.dk>
Ryan Houdek <sonicadvance1@gmail.com> <Sonicadvance1@gmail.com> Ryan Houdek <sonicadvance1@gmail.com> <Sonicadvance1@gmail.com>
Ryan Mckeever <ryan.mckeever@collabora.com> <rebecca.mckeever@collabora.com>
Sam Hocevar <sam@hocevar.net> Sam Hocevar <sam@zoy.org> Sam Hocevar <sam@hocevar.net> Sam Hocevar <sam@zoy.org>
Samuel Iglesias Gonsálvez <siglesias@igalia.com> Samuel Iglesias Gonsalvez <siglesias@igalia.com> Samuel Iglesias Gonsálvez <siglesias@igalia.com> Samuel Iglesias Gonsalvez <siglesias@igalia.com>

View file

@ -50,7 +50,7 @@ def get_problem_jobs(jobs: list[dict[str, Any]]):
for job in jobs: for job in jobs:
if any(ignore.lower() in job["stage"] for ignore in ignore_stage_list): if any(ignore.lower() in job["stage"] for ignore in ignore_stage_list):
continue continue
if job["status"] != "success": if job["status"] in {"failed", "canceled"}:
problem_jobs.append(job) problem_jobs.append(job)
return problem_jobs return problem_jobs
@ -277,12 +277,6 @@ async def process_single_job(session, project_id, job):
job_name = job.get("name", "Unnamed Job") job_name = job.get("name", "Unnamed Job")
message = f"[{job_name}]({job_url})" message = f"[{job_name}]({job_url})"
if job["status"] == "running":
return f"{message}: still running<br>"
if job["status"] == "manual":
return f"{message}: waiting for manual action<br>"
# if a job times out it's cancelled, so worth mentioning here # if a job times out it's cancelled, so worth mentioning here
if job["status"] == "canceled": if job["status"] == "canceled":
return f"{message}: canceled<br>" return f"{message}: canceled<br>"
@ -352,7 +346,7 @@ async def main(pipeline_id: str, project_id: str = "176") -> str:
session, project_id, pipeline_id session, project_id, pipeline_id
) )
logging.debug(f"Pipeline status: {pipeline_status}") logging.debug(f"Pipeline status: {pipeline_status}")
if pipeline_status == "success": if pipeline_status != "failed":
return message return message
jobs = await get_jobs_for_pipeline(session, project_id, pipeline_id) jobs = await get_jobs_for_pipeline(session, project_id, pipeline_id)

View file

@ -43,7 +43,6 @@ issues:
'intel/executor': 'intel-executor' 'intel/executor': 'intel-executor'
'iris': 'iris' 'iris': 'iris'
'isl': 'ISL' 'isl': 'ISL'
'kk': 'KosmicKrisp'
'lima': 'lima' 'lima': 'lima'
'lima/ppir': 'lima' 'lima/ppir': 'lima'
'llvmpipe': 'llvmpipe' 'llvmpipe': 'llvmpipe'
@ -63,7 +62,6 @@ issues:
'panfrost': 'panfrost' 'panfrost': 'panfrost'
'panvk': 'panvk' 'panvk': 'panvk'
'pan/midgard': 'panfrost' 'pan/midgard': 'panfrost'
'poly': 'poly'
'pvr': 'powervr' 'pvr': 'powervr'
'r100': 'r100' 'r100': 'r100'
'r200': 'r200' 'r200': 'r200'
@ -122,8 +120,6 @@ merge_requests:
paths: paths:
'^.gitlab/issue_templates/': ['docs'] '^.gitlab/issue_templates/': ['docs']
'^.gitlab-ci': ['CI'] '^.gitlab-ci': ['CI']
'^bin/ci/': ['CI']
'^.ci-farms(-disabled)?/collabora': ['CI', 'radeonsi', 'RADV', 'iris', 'ANV', 'panfrost', 'panvk', 'freedreno', 'turnip', 'venus', 'zink']
'^.*/gitlab-ci(-inc)?.yml': ['CI'] '^.*/gitlab-ci(-inc)?.yml': ['CI']
'^.*/ci/deqp-.*\.toml': ['CI'] '^.*/ci/deqp-.*\.toml': ['CI']
'^.*/ci/.*-(fails|flakes|skips)\.txt': ['CI-Expectations'] '^.*/ci/.*-(fails|flakes|skips)\.txt': ['CI-Expectations']
@ -163,6 +159,7 @@ merge_requests:
'^src/egl/': ['EGL'] '^src/egl/': ['EGL']
'^src/egl/drivers/wgl/': ['wgl'] '^src/egl/drivers/wgl/': ['wgl']
'^src/etnaviv/': ['etnaviv'] '^src/etnaviv/': ['etnaviv']
'^src/freedreno/afuc/': ['freedreno']
'^src/freedreno/common/': ['freedreno'] '^src/freedreno/common/': ['freedreno']
'^src/freedreno/computerator/': ['freedreno'] '^src/freedreno/computerator/': ['freedreno']
'^src/freedreno/decode/': ['freedreno'] '^src/freedreno/decode/': ['freedreno']
@ -174,7 +171,6 @@ merge_requests:
'^src/freedreno/ir3/': ['ir3'] '^src/freedreno/ir3/': ['ir3']
'^src/freedreno/isa/': ['freedreno'] '^src/freedreno/isa/': ['freedreno']
'^src/freedreno/perfcntrs/': ['freedreno'] '^src/freedreno/perfcntrs/': ['freedreno']
'^src/freedreno/qrisc/': ['freedreno']
'^src/freedreno/registers/': ['freedreno'] '^src/freedreno/registers/': ['freedreno']
'^src/freedreno/rnn/': ['freedreno'] '^src/freedreno/rnn/': ['freedreno']
'^src/freedreno/vulkan/': ['turnip'] '^src/freedreno/vulkan/': ['turnip']
@ -233,7 +229,7 @@ merge_requests:
'^src/gallium/targets/mediafoundation/': ['mediafoundation'] '^src/gallium/targets/mediafoundation/': ['mediafoundation']
'^src/gallium/tests/': ['gallium'] '^src/gallium/tests/': ['gallium']
'^src/gallium/tools/': ['gallium'] '^src/gallium/tools/': ['gallium']
'^src/gallium/winsys/amdgpu/': ['radeonsi'] # '^src/gallium/winsys/amdgpu/': ['']
'^src/gallium/winsys/crocus/': ['crocus'] '^src/gallium/winsys/crocus/': ['crocus']
'^src/gallium/winsys/d3d12/': ['d3d12'] '^src/gallium/winsys/d3d12/': ['d3d12']
'^src/gallium/winsys/etnaviv/': ['etnaviv'] '^src/gallium/winsys/etnaviv/': ['etnaviv']
@ -245,7 +241,7 @@ merge_requests:
'^src/gallium/winsys/lima/': ['lima'] '^src/gallium/winsys/lima/': ['lima']
'^src/gallium/winsys/nouveau/': ['nouveau'] '^src/gallium/winsys/nouveau/': ['nouveau']
'^src/gallium/winsys/panfrost/': ['panfrost'] '^src/gallium/winsys/panfrost/': ['panfrost']
'^src/gallium/winsys/radeon/': ['r300', 'r600', 'radeonsi'] # '^src/gallium/winsys/radeon/': ['radeon']
'^src/gallium/winsys/svga/': ['svga'] '^src/gallium/winsys/svga/': ['svga']
# '^src/gallium/winsys/sw/': [''] # '^src/gallium/winsys/sw/': ['']
'^src/gallium/winsys/sw/gdi/': ['wgl'] '^src/gallium/winsys/sw/gdi/': ['wgl']
@ -272,8 +268,8 @@ merge_requests:
'^src/intel/tools/': ['intel-tools'] '^src/intel/tools/': ['intel-tools']
'^src/intel/vulkan/': ['ANV'] '^src/intel/vulkan/': ['ANV']
'^src/intel/vulkan_hasvk/': ['hasvk'] '^src/intel/vulkan_hasvk/': ['hasvk']
'^src/kosmickrisp/': ['KosmicKrisp']
'^src/loader/': ['loader'] '^src/loader/': ['loader']
'^src/mapi/': ['mapi']
'^src/mesa/drivers/dri/i915/': ['i915'] '^src/mesa/drivers/dri/i915/': ['i915']
'^src/mesa/drivers/dri/i965/': ['i965'] '^src/mesa/drivers/dri/i965/': ['i965']
'^src/mesa/drivers/dri/nouveau/': ['vieux'] '^src/mesa/drivers/dri/nouveau/': ['vieux']
@ -288,7 +284,6 @@ merge_requests:
'^src/microsoft/compiler/': ['d3d12'] '^src/microsoft/compiler/': ['d3d12']
'^src/microsoft/spirv_to_dxil/': ['dozen'] '^src/microsoft/spirv_to_dxil/': ['dozen']
'^src/microsoft/vulkan/': ['dozen'] '^src/microsoft/vulkan/': ['dozen']
'^src/nouveau/ci/.*nvk.*': ['NVK']
'^src/nouveau/codegen/': ['nouveau'] '^src/nouveau/codegen/': ['nouveau']
'^src/nouveau/compiler/': ['NAK'] '^src/nouveau/compiler/': ['NAK']
'^src/nouveau/drm-shim/': ['nouveau'] '^src/nouveau/drm-shim/': ['nouveau']
@ -300,21 +295,14 @@ merge_requests:
'^src/nouveau/winsys/': ['NVK'] '^src/nouveau/winsys/': ['NVK']
'^src/panfrost/': ['panfrost'] '^src/panfrost/': ['panfrost']
'^src/panfrost/vulkan/': ['panvk'] '^src/panfrost/vulkan/': ['panvk']
'^src/poly/': ['poly']
'^src/virtio/vulkan/': ['venus'] '^src/virtio/vulkan/': ['venus']
'^src/virtio/venus-protocol/': ['venus'] '^src/virtio/venus-protocol/': ['venus']
'^src/virtio/ci/': ['venus'] '^src/virtio/ci/': ['venus']
'^src/virtio/virtgpu_kumquat/': ['gfxstream']
'^src/virtio/virtgpu_kumquat_ffi/': ['gfxstream']
'^src/virtio/protocols/.*kumquat.*': ['gfxstream']
'^src/util/': ['util'] '^src/util/': ['util']
'^src/util/00-mesa-defaults.conf': ['drirc'] '^src/util/00-mesa-defaults.conf': ['drirc']
'^src/vulkan/': ['vulkan'] '^src/vulkan/': ['vulkan']
'^src/vulkan/wsi/': ['wsi'] '^src/vulkan/wsi/': ['wsi']
'^src/vulkan/wsi/wsi_common_metal': ['macOS'] '^VERSION$': ['maintainer-scripts']
'^src/vulkan/wsi/wsi_common_wayland.c': ['wayland']
'^src/vulkan/wsi/wsi_common_x11.c': ['X11']
'^VERSION$': ['mesa-release']
'Android': ['android'] 'Android': ['android']
'EGL': ['EGL'] 'EGL': ['EGL']

25752
.pick_status.json Normal file

File diff suppressed because it is too large Load diff

Some files were not shown because too many files have changed in this diff Show more