Compare commits

..

549 Commits

Author SHA1 Message Date
Mel Henning
b9275b54a1 nak/sm70_encode: Remove unused has_mod parameter
Reviewed-by: Mary Guillemard <mary.guillemard@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34750>
2025-04-29 18:23:43 +00:00
Mel Henning
28d077838f nak/sm70_encode: Encode fneg/fabs for hfma2 src 2
and also stop legalizing away src 1 modifiers. Both of these are present,
they just move to a different place in the encoding.

Reviewed-by: Mary Guillemard <mary.guillemard@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34750>
2025-04-29 18:23:43 +00:00
Mel Henning
1ff7135691 nak: Remove hfma2 src 1 modifiers
This fixes a compilation issue in Marvel Rivals where the legalization
logic and the encoding logic don't line up, which results in an
assertion failure on this instruction:

    r17 = hfma2 r17.xx -r18.xx 0x3c003c00

The fix here is a little overly restrictive because it turns out we
actually do have modifiers for all 3 sources. Those modifiers will
be added in later commits.

Fixes: 567cae69c3 ("nak: Add 16-bits float operations")
Reviewed-by: Mary Guillemard <mary.guillemard@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34750>
2025-04-29 18:23:43 +00:00
Valentine Burley
d48b3a232c docs: Remove the docs for setting up bare-metal devices
Bare-metal support is being removed from Mesa, and adding new devices is
no longer supported.

Signed-off-by: Valentine Burley <valentine.burley@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34725>
2025-04-29 18:16:04 +00:00
Valentine Burley
a587a0a389 docs: Move the docs about caching downloads to LAVA from bare-metal
The bare-metal page is getting removed, and LAVA was missing this
section.

Signed-off-by: Valentine Burley <valentine.burley@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34725>
2025-04-29 18:16:04 +00:00
Rhys Perry
6338ed44c5 aco/gfx12: increase maximum vbuffer offset
fossil-db (gfx1201):
Totals from 301 (0.38% of 79377) affected shaders:
Instrs: 2734478 -> 2728816 (-0.21%); split: -0.21%, +0.00%
CodeSize: 14347476 -> 14306568 (-0.29%)
Latency: 15508055 -> 15502202 (-0.04%); split: -0.04%, +0.00%
InvThroughput: 2846419 -> 2842387 (-0.14%); split: -0.14%, +0.00%
VClause: 68286 -> 68101 (-0.27%); split: -0.30%, +0.03%
SClause: 49487 -> 49500 (+0.03%)
Copies: 207179 -> 206093 (-0.52%); split: -0.57%, +0.04%
Branches: 72941 -> 72942 (+0.00%); split: -0.00%, +0.00%
VALU: 1549156 -> 1544727 (-0.29%); split: -0.29%, +0.00%
SALU: 339620 -> 338989 (-0.19%); split: -0.19%, +0.00%

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34730>
2025-04-29 17:44:41 +00:00
Rhys Perry
d987d5e341 aco/gfx12: increase maximum global/scratch offset
fossil-db (gfx1201):
Totals from 29 (0.04% of 79377) affected shaders:
Instrs: 1439082 -> 1439070 (-0.00%)
CodeSize: 7641688 -> 7641608 (-0.00%)
Latency: 9836296 -> 9836280 (-0.00%)
VALU: 799504 -> 799496 (-0.00%)

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34730>
2025-04-29 17:44:41 +00:00
Rhys Perry
02d193f058 aco/gfx12: increase maximum smem offset
fossil-db (gfx1201):
Totals from 55 (0.07% of 79377) affected shaders:
Instrs: 3203775 -> 3200809 (-0.09%)
CodeSize: 16817140 -> 16813440 (-0.02%); split: -0.04%, +0.02%
Latency: 17838315 -> 17829658 (-0.05%)
InvThroughput: 3352905 -> 3351689 (-0.04%)
SClause: 57377 -> 57273 (-0.18%)
Copies: 231006 -> 230941 (-0.03%)
SALU: 436900 -> 435234 (-0.38%)

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34730>
2025-04-29 17:44:41 +00:00
Rhys Perry
c26851b80b aco: increase max_const_offset_plus_one for SMEM load_global
fossil-db (gfx1201):
Totals from 1115 (1.40% of 79377) affected shaders:
Instrs: 1473805 -> 1467571 (-0.42%); split: -0.43%, +0.01%
CodeSize: 7852972 -> 7819656 (-0.42%); split: -0.44%, +0.02%
SpillSGPRs: 1632 -> 1460 (-10.54%); split: -11.27%, +0.74%
Latency: 11975762 -> 11971915 (-0.03%); split: -0.05%, +0.02%
InvThroughput: 2496961 -> 2496448 (-0.02%); split: -0.03%, +0.01%
VClause: 25213 -> 25218 (+0.02%); split: -0.00%, +0.02%
SClause: 28822 -> 28565 (-0.89%); split: -1.41%, +0.52%
Copies: 106377 -> 105715 (-0.62%); split: -1.23%, +0.61%
Branches: 27497 -> 27473 (-0.09%)
PreSGPRs: 52071 -> 51310 (-1.46%)
VALU: 871051 -> 870694 (-0.04%); split: -0.04%, +0.00%
SALU: 186090 -> 181811 (-2.30%); split: -2.32%, +0.02%

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34730>
2025-04-29 17:44:41 +00:00
Rhys Perry
f390893a64 aco/gfx12: use s_sub_u64
fossil-db (gfx1201):
Totals from 2 (0.00% of 79377) affected shaders:
Instrs: 243999 -> 243993 (-0.00%)
CodeSize: 1288176 -> 1288152 (-0.00%)
Latency: 1894093 -> 1894091 (-0.00%)
InvThroughput: 378819 -> 378818 (-0.00%)
SALU: 33048 -> 33044 (-0.01%)

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34730>
2025-04-29 17:44:41 +00:00
Rhys Perry
5b4813c4f0 aco/gfx12: use s_add_u64
fossil-db (gfx1201):
Totals from 122 (0.15% of 79377) affected shaders:
Instrs: 3640138 -> 3637577 (-0.07%); split: -0.07%, +0.00%
CodeSize: 19133796 -> 19120080 (-0.07%); split: -0.08%, +0.01%
SpillSGPRs: 666 -> 650 (-2.40%)
SpillVGPRs: 2147 -> 2159 (+0.56%)
Scratch: 254208 -> 255232 (+0.40%)
Latency: 21529337 -> 21522317 (-0.03%); split: -0.04%, +0.00%
InvThroughput: 4048519 -> 4047233 (-0.03%); split: -0.03%, +0.00%
VClause: 90453 -> 90455 (+0.00%)
SClause: 67846 -> 67674 (-0.25%); split: -0.28%, +0.03%
Copies: 287449 -> 287476 (+0.01%); split: -0.04%, +0.05%
Branches: 104526 -> 104530 (+0.00%); split: -0.00%, +0.01%
PreSGPRs: 9795 -> 9723 (-0.74%); split: -0.78%, +0.04%
VALU: 2004219 -> 2003031 (-0.06%); split: -0.06%, +0.00%
SALU: 492651 -> 491737 (-0.19%); split: -0.19%, +0.00%
VMEM: 161317 -> 161341 (+0.01%)

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34730>
2025-04-29 17:44:41 +00:00
Sagar Ghuge
821c1bfa7e intel/compiler: Fix stackIDs on Xe2+
For Xe2+, from Bspec 64643, bit field "StackID": The maximum number of
StackIDs can be 2^12- 1.

Cc: mesa-stable
Signed-off-by: Sagar Ghuge <sagar.ghuge@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34709>
2025-04-29 17:03:35 +00:00
Rohan Garg
b9fe5aad37 anv: enable VK_KHR_shader_bfloat16
Signed-off-by: Rohan Garg <rohan.garg@intel.com>
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34105>
2025-04-29 16:29:37 +00:00
Caio Oliveira
07fa3b3785 intel: Add support for BFloat16 as cooperative matrix source
Re-organize the configuration lists to make easier to include BFloat16
only for the Gfx125+ that support it, while keeping MTL supporting the
"lowered" configurations from pre-Gfx125.

Reviewed-by: Rohan Garg <rohan.garg@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34105>
2025-04-29 16:29:37 +00:00
Rohan Garg
2bbe042e87 spirv: Enable bfloat16 capabilities
Signed-off-by: Rohan Garg <rohan.garg@intel.com>
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34105>
2025-04-29 16:29:37 +00:00
Caio Oliveira
e0b195cadb spirv: Use bfdot for SpvOpDot with BFloat16
Reviewed-by: Rohan Garg <rohan.garg@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34105>
2025-04-29 16:29:37 +00:00
Caio Oliveira
2807097690 spirv: Implement Conversions to/from bfloat16
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Rohan Garg <rohan.garg@intel.com>
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34105>
2025-04-29 16:29:37 +00:00
Caio Oliveira
90e1b12890 spirv: Add bfloat16 support to SpecConstantOp
Handle bfloat16 by converting sources to float, performing the
operation, and converting result back to bfloat16 if needed.  This is
done because not all ALU ops have a `bf` version in NIR.

Reviewed-by: Rohan Garg <rohan.garg@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34105>
2025-04-29 16:29:37 +00:00
Rohan Garg
dc8074683d spirv: construct a bfloat16 from the given SPIR-V bitsize and encoding
Signed-off-by: Rohan Garg <rohan.garg@intel.com>
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34105>
2025-04-29 16:29:37 +00:00
Caio Oliveira
fb6ae2eac1 spirv: Refactor to use glsl_type to pick ALU ops
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34105>
2025-04-29 16:29:37 +00:00
Caio Oliveira
bba607ac2b spirv: Move Convert opcodes handling to its own function
Take the opportunity to add a comment about why the bit_size
comes from the NIR def and not the original type.

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Rohan Garg <rohan.garg@intel.com>
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34105>
2025-04-29 16:29:37 +00:00
Caio Oliveira
d4381c0908 brw/cmat: Implement conversion from/to BFloat16
When converting BFloat16 from/to non-Float32 type, use
the Float32 conversion as an intermediate step.  Take the
opportunity to separate the unary_op/convert code-paths.

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34105>
2025-04-29 16:29:37 +00:00
Caio Oliveira
de88184ab6 brw/cmat: Support different src/dst packing factors in emit_packed_alu1
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34105>
2025-04-29 16:29:37 +00:00
Caio Oliveira
7fa7be970d brw/cmat: Extract emit_packed_alu1() function
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34105>
2025-04-29 16:29:37 +00:00
Caio Oliveira
4b4500ad35 brw/cmat: Store more information about cmat slices
Store the cmat_description and packing_factor so that various
functions don't need to extract and recalculate them.

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34105>
2025-04-29 16:29:37 +00:00
Caio Oliveira
a7ff177a88 brw: Consider bfloat16 in lower simd width pass
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34105>
2025-04-29 16:29:37 +00:00
Caio Oliveira
2c31516b3e brw: Consider bfloat16 in lower regioning pass
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34105>
2025-04-29 16:29:37 +00:00
Caio Oliveira
5936768ce0 brw: Consider bfloat16 in copy propagation
Reviewed-by: Rohan Garg <rohan.garg@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34105>
2025-04-29 16:29:37 +00:00
Caio Oliveira
129c074811 brw: Implement support for BFloat16 ALU opcodes
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34105>
2025-04-29 16:29:37 +00:00
Caio Oliveira
a38960e8f3 brw, nir: Use glsl_base_type instead of nir_alu_type for @dpas_intel
This will allow including types that don't have a nir_alu_type
equivalent, like bfloat16.

Reviewed-by: Rohan Garg <rohan.garg@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34105>
2025-04-29 16:29:37 +00:00
Caio Oliveira
cf4021f93c nir: Add opcodes for BFloat16
SPV_KHR_bfloat16 requires a small set of operations,
since it doesn't support all the arithmetic ops.

This patch adds conversions to/from Float32 and also
the necessary ops (bfdot, bffma, bfmul) to implement
SpvOpDot using the same lowering approach than the
Float32 counterpart.

Reviewed-by: Rohan Garg <rohan.garg@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34105>
2025-04-29 16:29:36 +00:00
Rohan Garg
9e5d7eb88d compiler/types: add a bfloat16 type
Signed-off-by: Rohan Garg <rohan.garg@intel.com>
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34105>
2025-04-29 16:29:36 +00:00
Caio Oliveira
ecd2d2cf46 util: Add functions to convert float to/from bfloat16
Reviewed-by: Rohan Garg <rohan.garg@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34105>
2025-04-29 16:29:36 +00:00
Caio Oliveira
3e0418ba02 intel/executor: Fix bfloat example for converting F to packed BF
In float pointing rules adding +0.0f preserves all values except
for -0.0f, so what we want here is to add -0.0f.  In the future
we should add proper support for float immediates in the assembler.

Fixes: fafdd24285 ("intel/executor: Update bfloat example")
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34105>
2025-04-29 16:29:36 +00:00
Mary Guillemard
6ab4ae1a19 pan/bi: Properly lower add/sub with saturation on v11+
We were wrongly lowering all add/sub operations with saturation on 8-bit
values on v11+.

This fixes CTS failures on
"dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.*" and
likely more apps.

Signed-off-by: Mary Guillemard <mary.guillemard@collabora.com>
Fixes: d79a31bf81 ("pan/bi: Lower removed instructions in algebraic on v11+")
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34743>
2025-04-29 16:07:19 +00:00
Rhys Perry
20279c28c8 aco/tests: add pseudo-scalar transcendental and fallback path RA tests
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34343>
2025-04-29 15:15:11 +00:00
Rhys Perry
96e49b7904 aco/ra: add ra_test_policy::use_compact_relocate
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34343>
2025-04-29 15:15:10 +00:00
Rhys Perry
3c1dbc1d9b aco/ra: cleanup compact_relocate_vars fallback path
We don't need to duplicate these loops.

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34343>
2025-04-29 15:15:10 +00:00
Rhys Perry
a780345e01 aco: fix compact_relocate_vars fallback with scc/exec/m0 precolored regs
This probably doesn't fix anything in practice. I don't think this path is
ever taken for SGPRs except for pseudo-scalar transcendental instructions,
and those don't have any precolored operands/definitions.

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34343>
2025-04-29 15:15:10 +00:00
Rhys Perry
f6581b41c4 aco/ra: don't require alignment for NPOT SGPR temporaries
Aligning these can create situations where register allocation is
impossible. Only pseudo-instructions can use these, and they don't require
any alignment.

I'm not sure if these temporaries actually happen in practice. This
probably only affects the get_reg()'s compact_relocate_vars fallback path,
which doesn't usually happen for SGPRs.

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34343>
2025-04-29 15:15:10 +00:00
Rhys Perry
623230a6ef aco/ra: change sorting in compact_relocate_vars
D16 MIMG or pseudo-scalar transcendental instructions might give lower
limits to the maximum register available for their definitions, so just
try to place them earlier.

This is also part of fixing compact_relocate_vars with aligned NPOT
def/killed-op space (the second part is the later commit which changes
get_stride()).

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34343>
2025-04-29 15:15:10 +00:00
Rob Clark
3f9b8edb1c ci: Re enable fd-farm
Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34748>
2025-04-29 14:41:35 +00:00
Erik Faye-Lund
87e143b053 docs/features: mark off missing panvk extensions
Seems we forgot to check these two off.

Fixes: 5ed79c2d2b ("panvk: Advertise support for VK_KHR_shader_terminate_invocation")
Fixes: d4998f7ff3 ("panvk: Advertise VK_EXT_shader_demote_to_helper_invocation support")
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34747>
2025-04-29 14:35:20 +00:00
Mary Guillemard
f23f8c2826 panvk: Advertise VK_EXT_depth_bias_control
This gives more details on the hardware depth bias implementation details.

Signed-off-by: Mary Guillemard <mary.guillemard@collabora.com>
Reviewed-by: Lars-Ivar Hesselberg Simonsen <lars-ivar.simonsen@arm.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34745>
2025-04-29 14:08:37 +00:00
Mary Guillemard
970bdecb50 panvk: Advertise VK_EXT_shader_replicated_composites
This is handled by common code.

Signed-off-by: Mary Guillemard <mary.guillemard@collabora.com>
Reviewed-by: Lars-Ivar Hesselberg Simonsen <lars-ivar.simonsen@arm.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34745>
2025-04-29 14:08:36 +00:00
Boris Brezillon
d4998f7ff3 panvk: Advertise VK_EXT_shader_demote_to_helper_invocation support
The necessary bits have been added to the bifrost/valhall backend,
so we can advertise support for VK_EXT_shader_demote_to_helper_invocation
now.

Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Lars-Ivar Hesselberg Simonsen <lars-ivar.simonsen@arm.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34676>
2025-04-29 13:31:47 +00:00
Boris Brezillon
83cbac00d3 pan/{bi,va}: Lower terminate to demote
Bifrost/Valhall implementation is actually close to the demote behavior,
where discarded threads will continue execution until explicitly
terminated.

Given we'll need to support the demote behavior for Vulkan, let's use
nir_lower_terminate_to_demote(), which solves the problem, and allows
for extra dead-code elimination when a termination point is guaranteed
to be taken by all threads.

Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Lars-Ivar Hesselberg Simonsen <lars-ivar.simonsen@arm.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34676>
2025-04-29 13:31:47 +00:00
Boris Brezillon
cd4400e27b pan/bi: Lower is_helper_invocation
Needed for VK_EXT_shader_demote_to_helper_invocation.

Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Lars-Ivar Hesselberg Simonsen <lars-ivar.simonsen@arm.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34676>
2025-04-29 13:31:47 +00:00
Boris Brezillon
59c307a3f3 pan/bi: Fix and improve the !abs && !coarse case in bi_emit_derivative()
The lane source passed to CLPER must be wrap-invariant, and we currently
violate this constraint in the !abs && !coarse case. So let's rework
the code to use a XOR modifier on the current lane instead, and adjust
the sign of the (righ - left) operation afterwards.

Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Lars-Ivar Hesselberg Simonsen <lars-ivar.simonsen@arm.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34676>
2025-04-29 13:31:47 +00:00
Boris Brezillon
5ed79c2d2b panvk: Advertise support for VK_KHR_shader_terminate_invocation
This is already supported, we just need to toggle the switch.

Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Lars-Ivar Hesselberg Simonsen <lars-ivar.simonsen@arm.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34676>
2025-04-29 13:31:47 +00:00
Alyssa Rosenzweig
5a55133ce7 hk: advertise VK_KHR_shader_quad_control
we already support this.

Closes: #13067
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34738>
2025-04-29 13:14:07 +00:00
Eric Engestrom
ef1792bea8 amd/ci: document regression in e612e840...e210b79c
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34740>
2025-04-29 11:09:35 +02:00
Eric Engestrom
80b1aea705 amd/ci: disable retry on nightly radeonsi-vangogh-glcts-full job
https://gitlab.freedesktop.org/mesa/mesa/-/jobs/75399939 should not have
been retried.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34740>
2025-04-29 09:01:47 +00:00
Ricardo Garcia
bc44d029df radv: Ignore image barrier queue families if equal
The src and dst queue family indices in an image memory barrier may
contain arbitrary values that can be ignored unless both are different.
This fixes a crash in upcoming CTS tests.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34691>
2025-04-29 08:15:28 +00:00
Samuel Pitoiset
1fccc09abe radv: fix re-emitting VRS state when rendering begins
This state also depends on whether a VRS attachment is used.

Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/11693
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34735>
2025-04-29 07:00:09 +00:00
Eric Engestrom
4227982326 ci: rename misleading *-postmerge stages to *-nightly
These stages are for the jobs that are skipped in merge pipelines,
automatically run in nightly pipelines, and are available to run
manually in other pipelines.

None of these ever run in post-merge pipelines.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34590>
2025-04-29 05:49:00 +00:00
Valentine Burley
26bc35c8f9 ci: Delete the kernel+rootfs jobs
LAVA and baremetal now use the test-* containers as the base for their
rootfs.

Signed-off-by: Valentine Burley <valentine.burley@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34451>
2025-04-28 20:08:32 +00:00
Valentine Burley
13db56320b ci/baremetal: Use container rootfs
Switch baremetal to use the new artifacts from the test-gl and test-vk
containers.

Signed-off-by: Valentine Burley <valentine.burley@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34451>
2025-04-28 20:08:32 +00:00
Valentine Burley
e16d422da5 ci/baremetal: Split baremetal_arm64_test to -gl and -vk
While all the arm32 jobs are testing GL, there are both GL and VK arm64
jobs. This is required to be able to use the rootfs from the test-*
containers.

Signed-off-by: Valentine Burley <valentine.burley@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34451>
2025-04-28 20:08:32 +00:00
Valentine Burley
a2150a0f56 ci/baremetal: Remove legacy support for unused devices
Clean up unused remnants for old devices that are no longer used.

Signed-off-by: Valentine Burley <valentine.burley@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34451>
2025-04-28 20:08:32 +00:00
Valentine Burley
8296c19817 ci: Add a workaround for finding deqp-runner on Broadcom
Broadcom devices require /usr/local/bin to be unconditionally added to
the PATH in order to locate the binaries installed there.

Signed-off-by: Valentine Burley <valentine.burley@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34451>
2025-04-28 20:08:32 +00:00
Valentine Burley
55e78ef678 ci/lava: Remove job definitions using kernel+rootfs jobs
These are all unused now and can be removed.

Signed-off-by: Valentine Burley <valentine.burley@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34451>
2025-04-28 20:08:32 +00:00
Valentine Burley
10ea0002a6 ci/intel: Convert to using the new container based rootfs
Signed-off-by: Valentine Burley <valentine.burley@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34451>
2025-04-28 20:08:32 +00:00
Valentine Burley
961498a098 ci/svga: Convert to using the new container based rootfs
Signed-off-by: Valentine Burley <valentine.burley@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34451>
2025-04-28 20:08:32 +00:00
Valentine Burley
be79a2d2d3 ci/lima: Convert to using the new container based rootfs
Signed-off-by: Valentine Burley <valentine.burley@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34451>
2025-04-28 20:08:32 +00:00
Valentine Burley
da27eea9e0 ci/etnaviv: Convert to using the new container based rootfs
Signed-off-by: Valentine Burley <valentine.burley@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34451>
2025-04-28 20:08:32 +00:00
Valentine Burley
4f7c40d5d4 ci/panfrost: Convert to using the new container based rootfs
Signed-off-by: Valentine Burley <valentine.burley@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34451>
2025-04-28 20:08:32 +00:00
Valentine Burley
4d2e5f577a ci/freedreno: Convert to using the new container based rootfs
Signed-off-by: Valentine Burley <valentine.burley@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34451>
2025-04-28 20:08:32 +00:00
Valentine Burley
f8e87fbf50 ci/amd: Convert to using the new container based rootfs
Signed-off-by: Valentine Burley <valentine.burley@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34451>
2025-04-28 20:08:32 +00:00
Valentine Burley
9870512787 ci/lava: Use the new test-video-based rootfs for VA-API jobs
Add new job definitions using the new debian/x86_64-test-video container,
and convert the radeonsi-raven-va and radeonsi-raven-vaapi-fluster jobs
to use the rootfs derived from this container.
Now that we are no longer downloading the Fluster vectors at runtime, the
parallelsim of the radeonsi-raven-vaapi-fluster job can be greatly
decreased.

Signed-off-by: Valentine Burley <valentine.burley@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34451>
2025-04-28 20:08:32 +00:00
Valentine Burley
a3fb667b1d ci: Include Fluster vectors in the rootfs
Downloading them at runtime proved too slow and unreliable.
Keep the logic to upload the vectors to S3 as it's faster, the build job
takes around 5-10 minutes when downloading from S3, but 30+ minutes to
using Fluster to download the vectors.
Move this to the build-fluster.sh script to allow re-using it in the
test-video container.

Signed-off-by: Valentine Burley <valentine.burley@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34451>
2025-04-28 20:08:32 +00:00
Valentine Burley
414e1a22c8 ci/container: Add new container for libva and fluster testing
The new debian/x86_64_test-video container includes va tools and Fluster.

Signed-off-by: Valentine Burley <valentine.burley@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34451>
2025-04-28 20:08:32 +00:00
Valentine Burley
751ff1a41e ci/va: Add /va/bin to PATH for test-video container
The test-video container requires /va/bin to be in the PATH to locate
necessary binaries.

Signed-off-by: Valentine Burley <valentine.burley@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34451>
2025-04-28 20:08:32 +00:00
Valentine Burley
82a25daf9d ci/va: Collapse build section for va-tools
Makes the build job easier to look at.

Signed-off-by: Valentine Burley <valentine.burley@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34451>
2025-04-28 20:08:32 +00:00
Valentine Burley
8448fbae8c ci/lava: Move rootfs handling for Fluster out of build script
Move the logic for installing Fluster into $ROOTFS from build-fluster.sh
into the main lava_build.sh script.
This allows building Fluster in contexts that don't use a rootfs, such as
test containers.
Also move the section inside the build script.

Signed-off-by: Valentine Burley <valentine.burley@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34451>
2025-04-28 20:08:32 +00:00
Valentine Burley
e80045d23e ci/lava: Use the new container based rootfs for piglit traces
Also change the name of the job defitions to match the other definitions.

Signed-off-by: Valentine Burley <valentine.burley@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34451>
2025-04-28 20:08:32 +00:00
Valentine Burley
2e8adb9e98 ci/lava: Use rootfs exported from test-* containers
Use the new S3_DISTRIBUTION_TAG variable to find the distribution tag of
the newly created lava-rootfs.tar.zst archive.

Signed-off-by: Valentine Burley <valentine.burley@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34451>
2025-04-28 20:08:32 +00:00
Valentine Burley
1009613aec ci/lava: Add job definitions using the test-* containers
These definitions use the test-gl and test-vk containers instead of the
kernel+rootfs jobs.

Signed-off-by: Valentine Burley <valentine.burley@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34451>
2025-04-28 20:08:32 +00:00
Valentine Burley
225ac7f2b2 ci/container: Include SkQP in the test-gl containers
Build SkQP in the arm64 and x86_64 test-gl containers.
One of the third party dependencies requires python-is-python3.

Signed-off-by: Valentine Burley <valentine.burley@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34451>
2025-04-28 20:08:32 +00:00
Valentine Burley
33d5204ec1 ci/container: Include ANGLE in the x86_64 test-gl container
Build ANGLE in the x86_64 test-gl container.

Signed-off-by: Valentine Burley <valentine.burley@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34451>
2025-04-28 20:08:32 +00:00
Valentine Burley
16db8b22cc ci: Export the rootfs from the test-* containers
Use the FDO_DISTRIBUTION_POST_EXEC mechanism to run the fdo_cntr_export.sh
script after building the test-* containers. This exports the container
rootfs, creates a lava-rootfs.tar.zst archive, and uploads it to S3.

Signed-off-by: Valentine Burley <valentine.burley@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34451>
2025-04-28 20:08:32 +00:00
Valentine Burley
53c7a04d12 ci/lava: Ensure firmware directory exists before downloading a660_zap.mbn
Signed-off-by: Valentine Burley <valentine.burley@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34451>
2025-04-28 20:08:32 +00:00
Guilherme Gallo
e9b98b0cc9 ci: Add rootfs export script
Implement new script for container->rootfs extraction.

v2 (Valentine)
 * Adapt script for direct execution in test-* containers through
   ci-templates

Signed-off-by: Guilherme Gallo <guilherme.gallo@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34451>
2025-04-28 20:08:32 +00:00
Guilherme Gallo
d4bf1fecb7 ci: Keep important packages for rootfs
Don't remove passwd, because the test-* containers run the
strip-rootfs.sh script before setting up the rootfs, where we need it.

Signed-off-by: Guilherme Gallo <guilherme.gallo@collabora.com>
Signed-off-by: Valentine Burley <valentine.burley@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34451>
2025-04-28 20:08:32 +00:00
Guilherme Gallo
816b0212a8 ci: Update setup-rootfs.sh for test-* containers
Update the script to make it useable for both container and rootfs jobs.
Move the rootfs-specific logic into the main lava_build.sh script, and
don't install ci-fairy, because that revision can't be used for s3cp
anymore after the migration.

v2 (Valentine)
 * Move the rootfs-specific logic instead of adding a new script

Signed-off-by: Guilherme Gallo <guilherme.gallo@collabora.com>
Signed-off-by: Valentine Burley <valentine.burley@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34451>
2025-04-28 20:08:32 +00:00
Daniel Stone
3609dbc061 ci: Add ci-kdl to test-base container
It's useful to monitor things on your devices.

Signed-off-by: Daniel Stone <daniels@collabora.com>
Signed-off-by: Valentine Burley <valentine.burley@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34451>
2025-04-28 20:08:32 +00:00
Daniel Stone
a5159ff108 ci: Add packages for hardware CI testing
We need these things in our rootfs.

Signed-off-by: Daniel Stone <daniels@collabora.com>
Signed-off-by: Guilherme Gallo <guilherme.gallo@collabora.com>
Signed-off-by: Valentine Burley <valentine.burley@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34451>
2025-04-28 20:08:32 +00:00
Daniel Stone
73993c2e74 ci: Add firmware to test-base container
We need firmware to run stuff.

Signed-off-by: Daniel Stone <daniels@collabora.com>
Signed-off-by: Guilherme Gallo <guilherme.gallo@collabora.com>
Signed-off-by: Valentine Burley <valentine.burley@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34451>
2025-04-28 20:08:32 +00:00
Eric Engestrom
580a151642 ci: use https:// to install ci-fairy
There's no reason to try to use http://, not that it would work as it's
301-redirected to https:// anyway.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34451>
2025-04-28 20:08:32 +00:00
Valentine Burley
7d5f0eebc6 ci: Uprev ci-templates to get FDO_DISTRIBUTION_POST_EXEC and S3 fixes
Signed-off-by: Valentine Burley <valentine.burley@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34451>
2025-04-28 20:08:32 +00:00
Valentine Burley
118a4c5872 ci/android: Remove redundant android-tools folder
Since we no longer download the Android build or platform tools,
there's no need for a separate android-tools subfolder. The CTS
archive is now extracted directly to /android-cts.

Signed-off-by: Valentine Burley <valentine.burley@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34451>
2025-04-28 20:08:32 +00:00
Valentine Burley
3eb61729e3 ci/deqp-runner: Collapse build section
Make the container build more readable and easier to follow in CI logs.

Signed-off-by: Valentine Burley <valentine.burley@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34451>
2025-04-28 20:08:32 +00:00
Valentine Burley
c1242c15af ci/rust: Collapse build section
Make the container build more readable and easier to follow in CI logs.

Signed-off-by: Valentine Burley <valentine.burley@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34451>
2025-04-28 20:08:32 +00:00
Valentine Burley
bfe6f50ab4 ci/deqp: Collapse build section
Make the container build more readable and easier to follow in CI logs.

Signed-off-by: Valentine Burley <valentine.burley@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34451>
2025-04-28 20:08:32 +00:00
Valentine Burley
7686edcb73 ci/angle: Collapse build section
Make the container build more readable and easier to follow in CI logs.

Signed-off-by: Valentine Burley <valentine.burley@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34451>
2025-04-28 20:08:32 +00:00
Valentine Burley
7d1e34204f ci/android: Collapse more build sections
Add two new build sections, and collapse the existing ones to make the
container build more readable and easier to follow in CI logs.

Also quieten unzipping the Android CTS and NDK, which print thousands of
lines and overflow the logs.

Signed-off-by: Valentine Burley <valentine.burley@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34451>
2025-04-28 20:08:32 +00:00
Valentine Burley
b3c07fe722 ci/android: Use aapt from Debian packages
Switch to using the aapt Debian package, which includes up-to-date
versions of both aapt and aapt2. This removes the need to manually
download and install the Android build-tools, eliminating one of the
blockers for a hypothetical arm64 test-android container.

Verified versions:
aapt: Android Asset Packaging Tool, v0.2-debian
aapt2: Android Asset Packaging Tool (aapt) 2.19-debian

Signed-off-by: Valentine Burley <valentine.burley@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34451>
2025-04-28 20:08:32 +00:00
Ian Romanick
c2ac7fa77b brw/cmod: Allow integer CMP to ADD propagation only for Z and NZ
No shader-db chnages on any Intel platform.

v2: Add a note about integer types in the saturate handling path.

fossil-db:

All Intel platforms had similar results. (Lunar Lake shown)
Totals:
Instrs: 210743769 -> 210743727 (-0.00%)
Cycle count: 30377699060 -> 30377700318 (+0.00%); split: -0.00%, +0.00%

Totals from 36 (0.01% of 706776) affected shaders:
Instrs: 17032 -> 16990 (-0.25%)
Cycle count: 291716 -> 292974 (+0.43%); split: -0.01%, +0.44%

Reviewed-by: Matt Turner <mattst88@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34509>
2025-04-28 19:44:23 +00:00
Ian Romanick
e26270249b brw/cmod: Don't propagate from CMP to possible Inf + (-Inf)
Most of the churn in this commit is changing unit tests that were
testing things that are now invalid.

shader-db:

All Intel platforms had similar results. (Lunar Lake shown)
total instructions in shared programs: 17122204 -> 17122669 (<.01%)
instructions in affected programs: 120669 -> 121134 (0.39%)
helped: 0 / HURT: 124

total cycles in shared programs: 895602370 -> 895613210 (<.01%)
cycles in affected programs: 17868974 -> 17879814 (0.06%)
helped: 35 / HURT: 85

fossil-db:

All Intel platforms had similar results. (Lunar Lake shown)
Totals:
Instrs: 210736518 -> 210743769 (+0.00%)
Cycle count: 30377733040 -> 30377699060 (-0.00%); split: -0.00%, +0.00%
Max live registers: 66056852 -> 66056966 (+0.00%)

Totals from 1505 (0.21% of 706776) affected shaders:
Instrs: 1890151 -> 1897402 (+0.38%)
Cycle count: 48397408 -> 48363428 (-0.07%); split: -0.11%, +0.04%
Max live registers: 256821 -> 256935 (+0.04%)

Reviewed-by: Matt Turner <mattst88@gmail.com>
Fixes: 020b0055e7 ("i965/fs: Propagate conditional modifiers from compares to adds")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34509>
2025-04-28 19:44:23 +00:00
Ian Romanick
0dab520a19 brw/cmod: Fix some errors when propagating from CMP to ADD.SAT
When I originally wrote that code, I didn't understand what a jerk NaN
can be.

v2: Remove the brw_type_is_uint stuff. This function is currently only
called for float types. In a later commit, integer types will be
supported but only for NZ and Z conditions. Noticed by Matt.

shader-db:

All Intel platforms had similar results. (Lunar Lake shown)
total instructions in shared programs: 17122197 -> 17122204 (<.01%)
instructions in affected programs: 1691 -> 1698 (0.41%)
helped: 0 / HURT: 4

total cycles in shared programs: 895602484 -> 895602370 (<.01%)
cycles in affected programs: 912964 -> 912850 (-0.01%)
helped: 2 / HURT: 2

fossil-db:

All Intel platforms had similar results. (Lunar Lake shown)
Totals:
Instrs: 210736388 -> 210736518 (+0.00%)
Cycle count: 30377728900 -> 30377733040 (+0.00%); split: -0.00%, +0.00%

Totals from 130 (0.02% of 706776) affected shaders:
Instrs: 169911 -> 170041 (+0.08%)
Cycle count: 18021210 -> 18025350 (+0.02%); split: -0.00%, +0.02%

Reviewed-by: Matt Turner <mattst88@gmail.com>
Fixes: 020b0055e7 ("i965/fs: Propagate conditional modifiers from compares to adds")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34509>
2025-04-28 19:44:23 +00:00
Ian Romanick
8f0fd0e66e brw/cmod: Remove special handling of NOT
The previous commit converts any NOT that might have been affected by
this path into a simple MOV. Those MOVs are handled by other paths.

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

v2: Fix a bad squash. Changes that were accidentally in this commit were
supposed to be in the previous commit. Noticed by Ivan.

Reviewed-by: Matt Turner <mattst88@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34509>
2025-04-28 19:44:23 +00:00
Ian Romanick
08fe7988d7 brw/algebraic: Convert some NOT to MOV
On Xe platforms, many fragment shaders have patterns like:

    asr(8)          g21<2>W         g1.2<0,1,0>W    15D
    ...
    mov(8)          g11<1>UW        g21<16,8,2>UW
    ...
    not.nz.f0.0(8)  null<1>D        g11<8,8,1>W

Converting the NOT.NZ to MOV.Z enables copy propagation to eliminate the
original MOV. Then cmod propagation is able to eliminate the
NOT-converted-to-MOV.

It might be possible to cover this case by adding more opcodes to the
list NOT can propagate to. The next commit will show that just
converting to MOV is a better approach anyway.

v2: Fix a bad squash. Changes that were supposed to be in this commit
were accidentally in the next commit. Noticed by Ivan.

shader-db:

Meteor Lake, DG2, and Tiger Lake had similar results. (Meteor Lake shown)
total instructions in shared programs: 20069804 -> 20065167 (-0.02%)
instructions in affected programs: 592450 -> 587813 (-0.78%)
helped: 2300 / HURT: 0

total cycles in shared programs: 884534032 -> 884496201 (<.01%)
cycles in affected programs: 13064194 -> 13026363 (-0.29%)
helped: 1285 / HURT: 790

LOST:   18
GAINED: 15

fossil-db:

Meteor Lake, DG2, and Tiger Lake had similar results. (Meteor Lake shown)
Totals:
Instrs: 234506495 -> 234468664 (-0.02%)
Cycle count: 24444825202 -> 24445710703 (+0.00%); split: -0.01%, +0.01%
Max live registers: 42349793 -> 42349789 (-0.00%)
Max dispatch width: 7131344 -> 7131744 (+0.01%); split: +0.05%, -0.04%

Totals from 16673 (2.07% of 805781) affected shaders:
Instrs: 6497669 -> 6459838 (-0.58%)
Cycle count: 435877770 -> 436763271 (+0.20%); split: -0.54%, +0.74%
Max live registers: 1122972 -> 1122968 (-0.00%)
Max dispatch width: 151528 -> 151928 (+0.26%); split: +2.19%, -1.92%

No shader-db or fossil-db on any other Intel platforms.

Reviewed-by: Matt Turner <mattst88@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34509>
2025-04-28 19:44:23 +00:00
Ian Romanick
9ce869aef5 brw/cmod: Delete some stale comment text
Stale like the mummified remains of Ötzi, The Iceman.

Reviewed-by: Matt Turner <mattst88@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34509>
2025-04-28 19:44:23 +00:00
Ian Romanick
12a022cf45 brw/algebraic: Greatly simplify brw_opt_constant_fold_instruction
brw_opt_constant_fold_instruction can either do nothing or replace the
instruction with a MOV of an immediate value. Previously each opcode
case would perform this replacement, and code at the bottom of the
function would verify the results.

It is much simpler if each opcode case calculates a result in a brw_reg,
and code at the bottom of the function performs the replacement. There
are two outlier cases that cannot use this pattern: MAD and
BROADCAST. These cases simply return directly from the switch-statement
after performing the replacement.

Reviewed-by: Matt Turner <mattst88@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34707>
2025-04-28 18:33:42 +00:00
Konstantin Seurer
9a946f8125 lavapipe: Fix ray tracing position fetch with multiple geometries
The previous code didn't take into account, that the primitive index is
set back to 0 for each geometry.

Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34496>
2025-04-28 18:41:22 +02:00
Danylo Piliaiev
dea4bb3757 ir3: VARYING_SLOT_LAYER output is used for binning
In multi-layered framebuffer LRZ also has several layers and binning
pass needs to write depth to a correct layer, so binning VS needs
VARYING_SLOT_LAYER.

Fixes: 9775b33d0f ("tu: Enable GMEM with layered rendering")

Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34728>
2025-04-28 15:19:10 +00:00
Christian Gmeiner
42aae5c3fa etnaviv: nir: Legalize txd derivatives src's
The hardware expects textureGrad (txd) derivatives to be specified as
offset coordinates from the base texture coordinate, rather than raw
gradients.

This change fixes the majority of the
dEQP-GLES3.functional.shaders.texture_functions.texturegrad.* tests on
GC7000. Remaining failures are due to shadow sampler handling, which
will be addressed separately.

Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34704>
2025-04-28 14:14:53 +00:00
Samuel Pitoiset
5841d44f91 radv: set radv_disable_dcc=true for WWE 2k23
This game is no longer available Steam, so it's more annoying to
reproduce the issue.

Let's disable DCC for that game to workaround rendering issues which
are likely game bugs.

Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10850
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34607>
2025-04-28 12:43:02 +00:00
Maíra Canal
1eb3a40615 ci: disable Igalia's farm
Spain is suffering a major power outage, which has affected Igalia's farm.
Disable Igalia's farm until the situation stabilizes.

Signed-off-by: Maíra Canal <mcanal@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34727>
2025-04-28 09:22:34 -03:00
Romaric Jodin
7112c606ef panvk: Advertise support for VK_KHR_shader_integer_dot_product
This is already supported, we just need to toggle the switch.

Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34695>
2025-04-28 13:17:31 +02:00
Ryan Mckeever
2a16422fab panvk: Advertise KHR_draw_indirect_count for v10+
Signed-off-by: Ryan Mckeever <ryan.mckeever@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34571>
2025-04-28 10:33:32 +00:00
Ryan Mckeever
cebd908bf3 panvk: Implement CmdDraw[Indexed]IndirectCount for v10+
Signed-off-by: Ryan Mckeever <ryan.mckeever@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34571>
2025-04-28 10:33:32 +00:00
Rhys Perry
de896234d8 aco: improve spilling of clobbered operands
We can ignore live_changes for these.

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34699>
2025-04-28 10:04:43 +00:00
Rhys Perry
7fe84024cb aco: fix get_temp_reg_changes with clobbered operands
The spiller might have tried to spill a live-through first or second
s_fmac_f32 operand, but this wouldn't have reduced the SGPRs if the third
operand wasn't killed

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/13038
Fixes: d6cb45dbb0 ("aco/spill: Allow spilling live-through operands")
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34699>
2025-04-28 10:04:43 +00:00
Job Noorman
656d7a0f88 ir3: don't use VS input regs for binning variant
This isn't necessary anymore since f6f7bc29 ("freedreno/a6xx: Program
VFD_DEST_CNTL from program stateobj").

Allowing the binning variant to allocate its own inputs ensures we don't
needlessly use high register numbers (and thus potentially have a larger
register footprint). Unfortunately, this doesn't have an impact on waves
on shaderdb/fossildb.

Totals from 14669 (8.91% of 164575) affected shaders:
Instrs: 3026564 -> 3024820 (-0.06%); split: -0.33%, +0.28%
CodeSize: 6499538 -> 6496888 (-0.04%); split: -0.19%, +0.15%
NOPs: 452142 -> 451590 (-0.12%); split: -1.76%, +1.64%
MOVs: 67614 -> 66477 (-1.68%); split: -4.92%, +3.24%
Full: 149240 -> 155922 (+4.48%); split: -0.76%, +5.24%
(ss): 56452 -> 56247 (-0.36%); split: -4.58%, +4.22%
(sy): 33366 -> 33535 (+0.51%); split: -2.82%, +3.33%
(ss)-stall: 213221 -> 213992 (+0.36%); split: -0.87%, +1.23%
(sy)-stall: 1391221 -> 1395187 (+0.29%); split: -4.05%, +4.34%
Preamble Instrs: 695820 -> 695661 (-0.02%); split: -0.04%, +0.02%
Cat0: 495109 -> 494450 (-0.13%); split: -1.65%, +1.52%
Cat1: 127072 -> 125925 (-0.90%); split: -2.61%, +1.71%
Cat7: 94725 -> 94787 (+0.07%); split: -0.08%, +0.15%

Signed-off-by: Job Noorman <jnoorman@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34651>
2025-04-28 09:10:32 +00:00
Ryan Mckeever
a5a0dd3ccc panvk: Implement multiDrawIndirect for v10+
Signed-off-by: Ryan Mckeever <ryan.mckeever@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Olivia Lee <benjamin.lee@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34617>
2025-04-28 06:38:09 +00:00
Ryan Mckeever
2bbfcaf01f panvk: Prepare cmd_prepare_shader_res_table() for multiDrawIndirect
This will be needed for indirect draws, where the VS driver desc table
needs to be updated per-draw, which also forces us to have one resource
table per draw.

Signed-off-by: Ryan Mckeever <ryan.mckeever@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Olivia Lee <benjamin.lee@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34617>
2025-04-28 06:38:09 +00:00
Ryan Mckeever
690675748b panvk: Prepare cmd_prepare_push_uniforms() for multiDrawIndirect
With indirect multi draw, we'll need to allocate N times the vertex
FAUs so we can patch each of them with the draw parameters.

Add a repeat_count argument to allow that.

Signed-off-by: Ryan Mckeever <ryan.mckeever@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Olivia Lee <benjamin.lee@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34617>
2025-04-28 06:38:09 +00:00
Tapani Pälli
ed9f135936 anv: put parenthesis to the set_sampler_size equation
This fixes errors seen with some renderdoc captures failing to allocate
descriptor sets.

Fixes: 76096d04bb ("anv: relax restriction on variable count descriptors")
Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Rohan Garg <rohan.garg@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34671>
2025-04-28 04:45:01 +00:00
Guilherme Gallo
3493500abb ci: Update build-apitrace.sh header with the right tag
The build-apitrace.sh moved from test-gl/vk to test-base script at
175b6d02.

Signed-off-by: Guilherme Gallo <guilherme.gallo@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34713>
2025-04-26 14:27:54 +00:00
Guilherme Gallo
b92dd9c573 ci: bump apitrace version
apitrace at commit b6102d10 has a bugfix regarding a recent regression
in GPU frame time calculation that made we miss weeks of performance
data.

Signed-off-by: Guilherme Gallo <guilherme.gallo@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34713>
2025-04-26 14:27:54 +00:00
Eric Engestrom
47db31b556 ci: take google-freedreno farm offline
All jobs are currently failing because the gateway ran out of disk space.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34719>
2025-04-26 16:16:40 +02:00
Erik Faye-Lund
d39e2869a8 panvk: re-enable KHR_shader_quad_control on v10+
Now that we support Vulkan 1.2, we can expose KHR_shader_quad_control
again.

Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34512>
2025-04-25 22:31:34 +00:00
Erik Faye-Lund
b3fd8ddf6a panvk: support vulkan 1.2 on v10+
While not yet officially conformant, we support all the required
features, and we pass the CTS. Let's mark off Vulkan 1.2, to make things
easier for applications.

Backport-to: 25.1
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34512>
2025-04-25 22:31:34 +00:00
Caleb Callaway
7f35879738 driconf: Jusant needs force_vk_vendor=-1 on Intel devices
A UE crash reporter is displayed without this wrap

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/12782
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34705>
2025-04-25 11:25:59 -07:00
Rhys Perry
3c021b79b4 aco/ra: use a correct stride for subdword get_reg_impl
fossil-db (gfx1201):
Totals from 3 (0.00% of 79377) affected shaders:
Instrs: 1312 -> 1308 (-0.30%)
CodeSize: 7112 -> 7096 (-0.22%)
Latency: 5381 -> 5382 (+0.02%)
InvThroughput: 753 -> 752 (-0.13%)
Copies: 69 -> 68 (-1.45%)
VALU: 836 -> 835 (-0.12%)

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34679>
2025-04-25 14:43:41 +00:00
Rhys Perry
ae6d4f1195 aco/ra: update_renames() before add_subdword_definition()
The register file tests here should be done after update_renames().

Normally, get_reg() wouldn't have to move anything to make space for a 1-3
byte definition. This was encountered with skip_optimistic_path=true and a
get_reg_impl() bug (fixed in a later commit) which caused suboptimal
register assignment.

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34679>
2025-04-25 14:43:41 +00:00
Eric Engestrom
9d0cd43a68 ci/build: drop install.tar from gitlab artifacts
Now that everyone uses the S3 url, let's avoid unnecessary uploads of
several GB per pipeline.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34710>
2025-04-25 12:16:28 +00:00
Eric Engestrom
630aef6653 ci/test: make generic fdo runner test jobs use the S3 artifacts too
These were the last users of the gitlab artifacts.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34710>
2025-04-25 12:16:28 +00:00
Eric Engestrom
1d7cce2700 ci/ci-tron: default HWCI_TEST_SCRIPT to deqp-runner, as it's almost always what's run
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34710>
2025-04-25 12:16:28 +00:00
Eric Engestrom
20631a07ca ci/test: rename .b2c-vkd3d-proton-test to .test-vkd3d-proton
It has nothing to do with ci-tron, it just happens that the first vkd3d
job was running on ci-tron.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34710>
2025-04-25 12:16:28 +00:00
Eric Engestrom
ce79b8a799 radv/ci: move radv-kabini-vkd3d out of gitlab-ci-inc.yml
It's currently disabled, which is probably why it was accidentally moved there.

While at it, fix its name to match the rest of the jobs.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34710>
2025-04-25 12:16:28 +00:00
Eric Engestrom
aecdf762ce amd/ci: ci yaml indentation
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34710>
2025-04-25 12:16:27 +00:00
Eric Engestrom
35816d6422 ci/test: fix annoying yamllint warning about 2 spaces before comments
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34710>
2025-04-25 12:16:27 +00:00
Eric Engestrom
aca1a332c2 ci/build: drop unnecessary shellcheck disables
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34710>
2025-04-25 12:16:27 +00:00
Eric Engestrom
ab0e505d7f ci/build: rename variable to avoid changing the meaning of existing variable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34710>
2025-04-25 12:16:27 +00:00
Eric Engestrom
8c28f77bd1 ci/build: split git commit sha command out of echo
This prevents errors from being masked, eg. when `git` is not installed.

While at it, use `--short=10` instead of piping through `cut`.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34710>
2025-04-25 12:16:27 +00:00
Eric Engestrom
621aebe046 ci/build: drop unused VERSION from python-artifacts
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34710>
2025-04-25 12:16:27 +00:00
Eric Engestrom
5be4799734 ci/build: drop lava scripts from builds artifacts
The ones used come from the "python-artifacts" job.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34710>
2025-04-25 12:16:27 +00:00
Eric Engestrom
1f08d75272 ci/build: drop expectation files from python-artifacts
The ones used come from the mesa build artifacts.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34710>
2025-04-25 12:16:27 +00:00
Eric Engestrom
d35c630483 ci/build: drop b2c files from the builds artifacts
They haven't been used in a long time.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34710>
2025-04-25 12:16:27 +00:00
Valentine Burley
cd8d8ca795 ci: Update kernel to fix GPU recovery issues on sm8350
This new revision contains one new commit, fixing GPU recovery failures
on sm8350.

dea4d930f2

Signed-off-by: Valentine Burley <valentine.burley@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34694>
2025-04-25 11:04:16 +00:00
Rhys Perry
b03e071583 aco/gfx11: create waitcnt for workgroup vmem barriers
It seems this is necessary on GFX11.

Similar to 576a2e798c

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Backport-to: 25.0
Backport-to: 25.1
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34634>
2025-04-25 10:41:52 +00:00
Boris Brezillon
d432fd9e32 panvk: Advertise support for VK_EXT_extended_dynamic_state[2]
We added CmdBindVertexBuffers2(), the rest is handled by the core.

Advertising this feature also works around a CTS bug that was
calling CmdSetPatchControlPointsEXT() without checking for this
extension.

Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Olivia Lee <benjamin.lee@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34696>
2025-04-25 09:04:55 +02:00
Boris Brezillon
e3cbb2c131 panvk: Implement CmdBindVertexBuffers2()
The vk runtime has a helper to help us with the strides, we just
need to use vi_binding_strides[] when emitting the attributes.

Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Olivia Lee <benjamin.lee@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34696>
2025-04-25 09:02:51 +02:00
Christian Gmeiner
1d11872828 etnaviv: nir: Use nir_shader_tex_pass(..)
Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com>
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34706>
2025-04-24 23:12:15 +02:00
Alyssa Rosenzweig
3eb7575679 asahi: do not use "Null" layout
This is the most serious bug we've had in a long time due to a fundamental
misunderstanding of the hardware (due to incomplete reverse-engineering). It
caught me off guard.

The texture descriptor has "mode" bits which configure two aspects of how the
address pointer is interpreted:

* whether it is indirected, pointing to a secondary page table for sparse
* whether it writes texture access counters (for Metal's idea of sparse).

...Neither of these is a "null texture" mode.

So why did I see Apple's blob using a non-normal mode for null textures, and why
did I copy those settings?

1. Because the hardware texture access counters provide a cheap way to detect
   null texture accesses after the fact, which I think their GPU debug tools
   use. I'm not sure why release builds of the driver do/did that, but whatever.

2. Because I assumed Cupertino knew best and I didn't bother looking too close.

We can't use them here (without doing extra memory allocations), since then
the GPU will increment access counters. And since our null texture address used
to just be a pointer in the command buffer, that mean the GPU will trash
whatever memory happened to be 0x400 bytes after the start of the null texture
descriptor. The symptom being random faults.

This bug was caught when trying to use the zero-page instead, which raised a
permission fault when the GPU tried to write counts. Then I remembered the
sparse mechanism and had a bit of a eureka moment. Immediately followed by an
"oh, f#$&" moment as I realized how many random bugs could potentially be root
caused to this.

The fix is two-fold:

1. Use normal layout instead.
2. Set the address to the zero-page (which is a fixed VA) and detect null
   textures by checking the address, instead of the mode.

The latter is a good idea anyway, but both parts needs to be done atomically to
maintain bisectability.

Backport-to: 25.1
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34703>
2025-04-24 19:05:07 +00:00
Christian Gmeiner
614b66529d etnaviv: nir: Add support for txf texture operation
The src[2] value 0x1100 is set based on observed behavior of the blob driver,
though its exact meaning remains to be documented.

Passes all dEQP-GLES3.functional.shaders.texture_functions.texelfetch.*
tests on GC7000.

Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34685>
2025-04-24 20:19:37 +02:00
Christian Gmeiner
eefe486533 etnaviv: nir: Legalize txf lod src
The LOD must be a float, unlike the GLSL function, which expects an integer.

Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com>
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34685>
2025-04-24 20:19:37 +02:00
Christian Gmeiner
da90fca609 etnaviv: isa: Add txf instruction
This instruction is used to implement texelfetch.

Blob generates such txf's for
dEQP-GLES3.functional.shaders.texture_functions.texelfetch.+

Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34685>
2025-04-24 20:19:37 +02:00
Brian Paul
6325868bbe svga: handle null target pointers in svga_set_stream_output_targets()
Fixes crash in Piglit arb_separate_shader_object-xfb-explicit-location-array
test.

Signed-off-by: Brian Paul <brian.paul@broadcom.com>
Reviewed-by: Roland Scheidegger <roland.scheidegger@broadcom.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34635>
2025-04-24 17:03:30 +00:00
Georg Lehmann
65411350ac aco/insert_exec: disable empty quads when leaving divergent control, even if not top level
We don't restore exec after uniform top level branches, so nothing disabled
empty quads after a demote in divergent control flow in a uniform branch.

Foz-DB Navi31:
Totals from 17 (0.02% of 79789) affected shaders:
Instrs: 34573 -> 34572 (-0.00%)
CodeSize: 186876 -> 186872 (-0.00%)
Latency: 324145 -> 324141 (-0.00%)
Copies: 1467 -> 1458 (-0.61%)
PreSGPRs: 802 -> 800 (-0.25%)
SALU: 2531 -> 2530 (-0.04%)

Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34670>
2025-04-24 15:43:09 +00:00
Timur Kristóf
3ad385b9cc radv: Clear dirty flag for clip rects state after emitting it.
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Tested-by: Marcus Seyfarth <m.seyfarth@gmail.com>
Fixes: 0ba3a8b3cc
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34686>
2025-04-24 15:13:44 +00:00
Timur Kristóf
3a05477ac6 radv: Clear dirty flag for MSAA state after emitting it.
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Tested-by: Marcus Seyfarth <m.seyfarth@gmail.com>
Fixes: 08918f0880
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/13022
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34686>
2025-04-24 15:13:44 +00:00
Lionel Landwerlin
e60416b4e4 anv: use companion batch for operations with HIZ/STC_CCS destination
We're currently crashing a couple of tests :
   dEQP-VK.pipeline.monolithic.depth.xfer_queue_layout.*

   deqp-vk: ../src/intel/blorp/blorp_blit.c:2935:
     blorp_copy: Assertion `blorp_copy_supports_blitter(batch->blorp, src_surf->surf, dst_surf->surf, src_surf->aux_usage, dst_surf->aux_usage)' failed.

Tested on:
  dEQP-VK.api.copy_and_blit.copy_commands2.image_to_image_transfer_queue.all_formats.depth_stencil.*
  dEQP-VK.api.copy_and_blit.multiplanar_xfer.*
  dEQP-VK.pipeline.monolithic.depth.xfer_queue_layout.*

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: 31eeb72e45 ("blorp: Add support for blorp_copy via XY_BLOCK_COPY_BLT")
Reviewed-by: Nanley Chery <nanley.g.chery@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34023>
2025-04-24 14:47:40 +00:00
Seán de Búrca
3aec638a8b rusticl: remove unnecessary check for device in kernel list
There is no need to verify that `kernel.prog.devs` contains a device
when that device ref was pulled from `kernel.prog.devs` immediately
beforehand.

Reviewed-by: Karol Herbst <kherbst@redhat.com>
Reviewed-by: @LingMan
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34167>
2025-04-24 14:23:05 +00:00
Seán de Búrca
4be2a49e02 rusticl: improve use of Rust idioms
Reduce unnecessary function calls, collect from iterators instead of
adding to mutable collections, and remove unnecessary trait bounds.

v2: split change to associated device check into new commit

Reviewed-by: Karol Herbst <kherbst@redhat.com>
Reviewed-by: @LingMan
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34167>
2025-04-24 14:23:05 +00:00
Seán de Búrca
2c202eb787 rusticl: verify validity of property names and values
v2: separate from using type aliases based on signature and reorder
v3: verify validity in two additional locations

Reviewed-by: Karol Herbst <kherbst@redhat.com>
Reviewed-by: @LingMan
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34167>
2025-04-24 14:23:05 +00:00
Seán de Búrca
62d8541f39 rusticl: improve internal typing
Shuffle some integer types to reduce the necessity of casting.

Additionally, clean up some unnecessary use of `Vec` to avoid
allocations.

v2: revert changes to `PipeContext` to avoid hiding truncation errors,
move change to fallible conversions to separate patch

Reviewed-by: Karol Herbst <kherbst@redhat.com>
Reviewed-by: @LingMan
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34167>
2025-04-24 14:23:05 +00:00
Seán de Búrca
ec314aa358 rusticl: align memory utilities with std
Rename `is_alligned()` util to match std naming and move it alongside
similar utilities which copy upstream functionality and annotate those
utilities with their first stable version where applicable.

Replace use of `mesa_rust_util::offset_of!()` in one case where nested
field support is not needed.

v2: revert removal of `offset_of!()` for nested field support

Reviewed-by: Karol Herbst <kherbst@redhat.com>
Reviewed-by: @LingMan
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34167>
2025-04-24 14:23:05 +00:00
Seán de Búrca
26867670b2 rusticl/device: set maximum work dimension to match implicit bounds
Much of the kernel code implicitly depends on a maximum work dimension
of 3, and in practice, gallium will never give a grid dimension of less
than 3, constraining the value to a constant.

v2: use a const for max dimension instead of a `min` call

Reviewed-by: Karol Herbst <kherbst@redhat.com>
Reviewed-by: @LingMan
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34167>
2025-04-24 14:23:05 +00:00
Mary Guillemard
845611bb43 panvk: Take resource index in valhall_lower_get_ssbo_size
Previously we were not extracting the resource index from the resource
handle.

This fixes failures with PanVK+ANGLE on "dEQP-GLES31.functional.ssbo.array_length.unsized_*".

Fixes: e4613f8b23 ("panvk: Lower get_ssbo_size() on Valhall")
Signed-off-by: Mary Guillemard <mary.guillemard@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34697>
2025-04-24 13:28:53 +00:00
Juan A. Suarez Romero
7ec937b81e v3d/vc4/ci: Add -gl suffix to the GL suite names
As we have a -vk suffix for the Vulkan-related suites, add a -gl one for
the OpenGL/ES related suites.

Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com>
Reviewed-by: Eric Engestrom <eric@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34680>
2025-04-24 12:40:38 +00:00
Juan A. Suarez Romero
9ab13e1ed0 v3d/vc4/ci: update fraction and parallel values
The aim is to increase the coverage as maximum as possible while using
the less possible DuTs, everything under a testing budget of 10 minutes.

Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com>
Reviewed-by: Eric Engestrom <eric@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34680>
2025-04-24 12:40:38 +00:00
John Anthony
8dd578e2a4 panvk: Enable VK_EXT_direct_mode_display
Panvk already enables VK_EXT_acquire_xlib_display, but not
VK_EXT_direct_mode_display which is a dependency. This causes a failure
in dEQP-VK.info.instance_extensions.

Fixes: 8c2bfa279d ("panvk: support x11 wsi")
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Acked-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34672>
2025-04-24 12:11:32 +00:00
Dmitry Baryshkov
419a9e9d42 mesa-clc: add an option to force inclusion of OpenCL headers
Currently mesa-clc bundles OpenCL headers from Clang only if the static
LLVM is used (which means Clang / LLVM are not present on the target
system). In some cases (e.g. when building in OpenEmbedded environemnt)
it is desirable to have shared LLVM library, but skip installing the
whole Clang runtime just to compile shaders. Add an option that forces
OpenCL headers to be bundled with the mesa-clc binary.

Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34551>
2025-04-24 11:40:15 +00:00
Valentine Burley
680752d97f ci: Use hyphens in make-git-archive job name
Spaces in job names make me uncomfortable.

Signed-off-by: Valentine Burley <valentine.burley@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34689>
2025-04-24 11:05:23 +00:00
Valentine Burley
b758e49085 ci: Update ci-fairy to use shared ref from ci-templates
The /templates/ci-fairy.yml include was pinned to an old revision of
ci-templates that wasn't able to upload to S3 with s3cp following the
infrastructure transition.

Signed-off-by: Valentine Burley <valentine.burley@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34689>
2025-04-24 11:05:23 +00:00
Eric Engestrom
bf4fa82af9 ci: use curl instead of wget in download-git-cache.sh
Note that this code is executed on the generic FDo gitlab runners, not
in our docker images. This change is merely to avoid the confusion that
lead to the code in the previous commit.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34684>
2025-04-24 10:36:00 +00:00
Eric Engestrom
74809ce0e3 ci: drop dead wgetrc as there are no uses of wget in our CI images
Note that if you grep, you'll find two instances of `wget`, but those are not
executed in our docker images, but on the generic FDo gitlab runners, so the
/etc/wgetrc file in our docker images cannot affect them.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34684>
2025-04-24 10:36:00 +00:00
Mary Guillemard
006f5c20bd panfrost: Allow max effective tile size of 64x64 on v12+
This is supported since v12 and we fixed the last remaining issues
related to it.

Signed-off-by: Mary Guillemard <mary.guillemard@collabora.com>
Acked-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34674>
2025-04-24 10:11:22 +00:00
Mary Guillemard
943a59c8f9 panvk: Emit sample count and tile size when emitting framebuffer/tiler descriptors
This move the logic around tile size budget to be able to handle
rasterization_samples properly in case no render target is defined.

We now select the tile size right before emitting the tiler and framebuffer
descriptors.

This fixes "dEQP-VK.pipeline.monolithic.multisample.mixed_count.*" on
v12 when 64x64 tile size is allowed.

Signed-off-by: Mary Guillemard <mary.guillemard@collabora.com>
Acked-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34674>
2025-04-24 10:11:21 +00:00
Mary Guillemard
c7f2bc6bed panvk: Take rasterization sample into account in indirect draw on v10+
This has been an oversight when implementing indirect draw.

Fixes: 1f3b8bb918 ("panvk: Add support for Draw[Indexed]Indirect")
Signed-off-by: Mary Guillemard <mary.guillemard@collabora.com>
Acked-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34674>
2025-04-24 10:11:21 +00:00
Tapani Pälli
765801fd9e intel/dev: add note about PAT entries and Wa_18038669374
Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34665>
2025-04-24 09:48:34 +00:00
Eric Engestrom
a0407a6ecf ci/vkd3d: fail shell pipeline when part of it fails
We use pipes in several places and don't want to ignore their failures.

A couple of exceptions are allowed with explicit `|| true`.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34639>
2025-04-24 09:00:37 +00:00
Eric Engestrom
104f21c27b ci/vkd3d: treat reading undefined variables as an error
This would've prevented the bug in the previous commit.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34639>
2025-04-24 09:00:37 +00:00
Eric Engestrom
89d4ddce0e ci/vkd3d: fix RESULTS_DIR variable name
The bug in the previous commit was hiding this bug...

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34639>
2025-04-24 09:00:37 +00:00
Eric Engestrom
3c0d414cbf ci/vkd3d: only keep logs of failed tests
This is what I meant to do from the start but messed up.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34639>
2025-04-24 09:00:36 +00:00
Eric Engestrom
7f0fe34758 ci/vkd3d: quieten the mesa version check
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34639>
2025-04-24 09:00:36 +00:00
Eric Engestrom
0f8fd5da7a ci/vkd3d: fix test failure list when no test failed
This becomes important once the bugfix in the next commit is applied.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34639>
2025-04-24 09:00:36 +00:00
Eric Engestrom
d21e300f33 ci/vkd3d: drop misguided "something failed" error message
Luckily the check was broken, but let's not fix it because this would
cause any failure to fail the job, regardless of expectations.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34639>
2025-04-24 09:00:36 +00:00
Olivia Lee
e93261f579 panfrost: allow promoting sysval UBO to push constants
We already had a path for sysvals in panfrost_emit_const_buf, but it was
unused because we only allowed pushing the default UBO 0. Improves
glmark2 score on G610 from 3051 to 3071, but mostly we need it as a
prerequisite for dynamic blend constants.

Signed-off-by: Olivia Lee <benjamin.lee@collabora.com>
Fixes: 59a3e12039 ("panfrost: do not push "true" UBOs")
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34664>
2025-04-24 08:20:41 +00:00
Georg Lehmann
6d2190300a radv/nir/lower_cmat: tightly pack 8bit gfx11 acc matrix
Invalid for now, but used by vkd3d-proton, where the use case is to convert
a result matrix to lower precision, followed by a store.

For 16bit accumulation matrices, GFX11 only uses 16bits per 32bit register.
RADV's coop matrix code pads the unused space with undefs and uses a vector
with twice as many elements as the matrix length. Extending that to 8bit by
leaving 24 bits unused is unnecessary as these matrices as there
is no hw unit that requires it. And in wave32, it would also result in
vectors larger than NIR's limit.
So tightly pack 8bit matrices without any undef padding.

Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34382>
2025-04-24 06:37:44 +00:00
Georg Lehmann
bbc9bc9d24 radv/nir/lower_cmat: use cmat_mul instead of duplicating hw details for type conversion
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34382>
2025-04-24 06:37:44 +00:00
Georg Lehmann
31a3430570 radv/nir/lower_cmat: use radv_nir_cmat_bits consistently
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34382>
2025-04-24 06:37:44 +00:00
Dmitry Osipenko
300b6f7371 util/disk_cache: Re-enable multi-file cache by default
Over past months a performance issue was found with the Mesa-DB cache
implementation that results in a too slow cache startup time when cache is
full. A better indexing strategy will need to be invented to mitigate the
issue. Until then, let's default back to the multi-file cache.

Suggested-by: Michel Dänzer <mdaenzer@redhat.com>
Acked-by: Timothy Arceri <tarceri@itsqueeze.com>
Signed-off-by: Dmitry Osipenko <dmitry.osipenko@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34199>
2025-04-24 02:43:51 +00:00
Yurii Kolesnykov
9822fa3ef3 Get rid of 5 remaining references to glapitable.h
Closes: #13003
Fixes: 0cebfb15 ("glapi: remove duplicated generated header glapitable.h")

Co-authored-by: Marek Olšák <maraeo@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Signed-off-by: Yurii Kolesnykov <root@yurikoles.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34682>
2025-04-23 20:18:25 +00:00
Eric Engestrom
6a58bc357b docs: update calendar for 25.1.0-rc2
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34683>
2025-04-23 19:46:07 +00:00
Mel Henning
60452e016e wsi/headless: Override finish_create
Since headless overrides create_mem, it needs to override finish_create
too. Fixes a segfault in nvk that was caused by us mixing
wsi_create_null_image_mem with wsi_finish_create_blit_context, which
would then call CmdCopyImageToBuffer with image->blit.buffer == NULL

Fixes a cts failure on nvk in:
dEQP-VK.image.swapchain_mutable.headless.2d.r8g8b8a8_unorm_b8g8r8a8_unorm_clear_copy_format_list
and several others

Fixes: 579578f10a ("vulkan/wsi/drm: Break create_prime_image in pieces")
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34646>
2025-04-23 19:11:59 +00:00
Lionel Landwerlin
1f6cca0800 intel: fixup a few debugging option checks
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: ad328bc58d ("intel: Switch uint64_t intel_debug to a bitset")
Reviewed-by: Michael Cheng <michael.cheng@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34667>
2025-04-23 18:47:42 +00:00
Rhys Perry
62e50de5d0 aco: use v_perm_b32 for byte swaps within a VGPR on gfx10
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34636>
2025-04-23 18:23:18 +00:00
Rhys Perry
a43783fd76 aco: use v_perm_b32 for do_pack_2x16 on gfx10+
fossil-db (gfx1201);
Totals from 93 (0.12% of 79377) affected shaders:
Instrs: 373212 -> 372761 (-0.12%)
CodeSize: 2062752 -> 2063704 (+0.05%); split: -0.00%, +0.05%
Latency: 4172059 -> 4171993 (-0.00%); split: -0.00%, +0.00%
InvThroughput: 1299144 -> 1299093 (-0.00%)
Copies: 51268 -> 50831 (-0.85%)
Branches: 10980 -> 10979 (-0.01%)
VALU: 220192 -> 219756 (-0.20%)
VOPD: 48 -> 47 (-2.08%)

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34636>
2025-04-23 18:23:18 +00:00
Marek Olšák
78a3b48db0 radeonsi: enable nir_io_compaction_groups_tes_inputs_into_pos_and_var_groups
It's only useful when TES culls.

shader-db with ACO:
    143 shaders have -1.44% average decrease in code size.
    There are fewer input loads and more of them are vec4 instead of vec1-3.

Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32262>
2025-04-23 17:47:37 +00:00
Marek Olšák
0836e9758b radeonsi: initialize use_ngg* sooner
si_init_screen_get_functions determines NIR options, so it should be before
setting caps.

Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32262>
2025-04-23 17:47:37 +00:00
Marek Olšák
55db7fc18c nir/opt_varyings: group TES inputs based on whether they are used by POS or VAR
If the optional flag is set, compaction groups TES inputs based on which
outputs they are used for:
- inputs generating only POS/CLIP outputs are first
- inputs generating both POS/CLIP and VAR outputs are next
- inputs generating only VAR outputs are last

shader-db with ACO:
    143 shaders have -1.44% average decrease in code size.
    There are fewer input loads and more of them are vec4 instead of vec1-3.

Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32262>
2025-04-23 17:47:37 +00:00
Marek Olšák
f15399af0f nir: add gathering passes that gather which inputs affect specific outputs
The first pass computes which shader instructions contribute to each
output. It can be used to query how data flows within shaders towards
outputs.

The second pass computes which shader input components and which types of
memory loads are used to compute shader outputs.

The third pass uses the second pass to gather which input components are
used to compute pos and clip dist outputs, which input components are used
to compute all other outputs, and which input components are used to
compute both. This will be used by compaction in nir_opt_varyings for
drivers that split TES into a separate position cull shader and varying
shader to make it less likely that the same vec4 inputs are needed in both.

Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32262>
2025-04-23 17:47:37 +00:00
Karol Herbst
33965bb21b nir_lower_mem_access_bit_sizes: fix negative chunk offsets
With a 64 bit pointer model, instead of doing -1 the pass ended up doing
+4294967295. The reason here was some implicit integer conversion going
horribly wrong, so just do the offset math in 64 bit to get a nice result.

Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/13023
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34669>
2025-04-23 16:59:56 +00:00
Alyssa Rosenzweig
4685d8e2d9 libagx: use common heap alloc for tessellator
this gets us bounds checking.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34661>
2025-04-23 16:20:59 +00:00
Alyssa Rosenzweig
d339bf7a98 libagx: rename agx_geometry_state to agx_heap
no other state persists. this cleans up a lot of naming.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34661>
2025-04-23 16:20:59 +00:00
Alyssa Rosenzweig
29cc2b6d42 libagx: do not include heap in geometry params
the only dynamic allocation left for geometry shaders is all done in the setup
indirect kernel. so just pass the heap to that kernel directly, so we don't
reserve a heap for direct draws with GS (including pure-VS XFB). this should
reduce our memory footprint a lot in certain apps.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Mary Guillemard <mary.guillemard@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34661>
2025-04-23 16:20:59 +00:00
Alyssa Rosenzweig
cb52aa58d6 agx/nir_lower_gs: bound static topologies
don't bloat up shader info.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Mary Guillemard <mary.guillemard@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34661>
2025-04-23 16:20:59 +00:00
Alyssa Rosenzweig
9b1d771747 agx/nir_lower_gs: compact static topologies
use 8-bit index buffer instead of 32-bit to significantly decrease the size of
serialized geometry shaders (agx_gs_info is not dynamic).

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Mary Guillemard <mary.guillemard@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34661>
2025-04-23 16:20:59 +00:00
Alyssa Rosenzweig
5640266eb3 agx/nir_lower_gs: rework gs rast shape handling
rather than a bunch of subtle booleans telling the driver how to invoke the GS
rast shader, collect everything into a common enum, and provide (CL safe)
helpers to do the appropriate calculations rather than duplicating across
GL/VK/indirects.

this fixes suboptimal handling of instancing with list topologies.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Mary Guillemard <mary.guillemard@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34661>
2025-04-23 16:20:59 +00:00
Alyssa Rosenzweig
2a0314250b agx/nir_lower_gs: don't use nir_def_rewrite_uses
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Mary Guillemard <mary.guillemard@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34661>
2025-04-23 16:20:59 +00:00
Alyssa Rosenzweig
3670f95e12 agx/nir_lower_gs: avoid redundant sr read's
saves 2 SR reads in a SW VS

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Mary Guillemard <mary.guillemard@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34661>
2025-04-23 16:20:59 +00:00
Alyssa Rosenzweig
8b0dca384f agx/nir_lower_gs: fix type confusion
Fixes: b9b6828fda ("agx/nir_lower_gs: optimize static topologies")
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Mary Guillemard <mary.guillemard@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34661>
2025-04-23 16:20:59 +00:00
Alyssa Rosenzweig
d548259b2f agx: plumb vertex_id_zero_base
to accelerate SW VS.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Mary Guillemard <mary.guillemard@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34661>
2025-04-23 16:20:59 +00:00
Alyssa Rosenzweig
fbb85a8d09 agx: use abi.h defines
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Mary Guillemard <mary.guillemard@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34661>
2025-04-23 16:20:59 +00:00
Alyssa Rosenzweig
6f265ab83f asahi: clang-format
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Mary Guillemard <mary.guillemard@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34661>
2025-04-23 16:20:59 +00:00
Alyssa Rosenzweig
d31ad329c2 util: optimize bitcount on OpenCL
Fixes: bfc18b6fb1 ("libagx: drop libagx_popcount")
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Mary Guillemard <mary.guillemard@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34661>
2025-04-23 16:20:59 +00:00
Yinjie Yao
eecfb02463 frontends/va: Handle properly when decoding more slices than limit
For h264/h265/av1/vp9, give warning when application is
sending more slices than allowed by limit, and stop copying
remaining slices to avoid unwanted behaviour.

Cc: mesa-stable
Signed-off-by: Yinjie Yao <yinjie.yao@amd.com>
Reviewed-by: Boyuan Zhang <Boyuan.Zhang@amd.com>
Reviewed-by: Ruijing Dong <ruijing.dong@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34633>
2025-04-23 15:37:04 +00:00
Faith Ekstrand
1a373edfc5 nak/sm20: Fix legalization of IAdd and IMul
They were both missing subtle cases.  While we're here, fix a bunch of
SrcTypes.  They shouldn't matter in practice since it's just used to
determine how many GPRs to allocate but we may as well get them right.

Fixes: 078ffb860b ("nak/sm20: Add initial SM20 encoding")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34675>
2025-04-23 14:06:27 +00:00
Faith Ekstrand
ca296bf0a9 nak/sm20: Call copy_alu_src_if_fabs() first
Since an FAbs or FNegAbs modifier is going to force the source out to a
register no matter what, we should do this first.  That way we avoid the
unnecessary source swaps or other evictions when we have to evict the
source anyway because it has a modifier.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34675>
2025-04-23 14:06:27 +00:00
Christoph Pillmayer
c26273109f panfrost/ci: Update spec@ext_transform_feedback@max-varyings result
After the previous changes to varyings, this test no longer crashes.
Update the expected result from Crash to Fail to reflect that.

Reviewed-by: Lars-Ivar Hesselberg Simonsen <lars-ivar.simonsen@arm.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34074>
2025-04-23 11:53:27 +00:00
Christoph Pillmayer
a36402afc8 panfrost: Use LD_VAR_BUF if possible on v9+
This logic to enable LD_VAR_BUF[_IMM] is on the conservative side.
For fixed varyings, we would need to know what the VS outputs to correctly
compute the indices the FS has to load from. For general varyings, the
locations are aligned either by the linker or by the application in case
of separable shaders.

Reviewed-by: Lars-Ivar Hesselberg Simonsen <lars-ivar.simonsen@arm.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34074>
2025-04-23 11:53:27 +00:00
Christoph Pillmayer
49a9c91540 panfrost: Remove fixed_varying_mask from uncompiled_shader
This is no longer used after the previous commit and should therefore
be removed.

Reviewed-by: Lars-Ivar Hesselberg Simonsen <lars-ivar.simonsen@arm.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34074>
2025-04-23 11:53:27 +00:00
Christoph Pillmayer
cd2ca0ac22 panfrost: Enable more than 16 varyings on v9+
This change removes the limit of 16 varyings caused by the 8-bit offset
value used in LD_VAR_BUF[_IMM]. LD_VAR[_IMM] is used instead and the
necessary ADs are emitted at draw time.

Reviewed-by: Lars-Ivar Hesselberg Simonsen <lars-ivar.simonsen@arm.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34074>
2025-04-23 11:53:27 +00:00
Boris Brezillon
85b6bd989e panvk: Advertise support for VK_KHR_maintenance5
This is already supported, all we have to do is advertise it.

Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Mary Guillemard <mary.guillemard@collabora.com>
Reviewed-by: Lars-Ivar Hesselberg Simonsen <lars-ivar.simonsen@arm.com>
Acked-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34648>
2025-04-23 11:31:40 +00:00
Boris Brezillon
9d1262e108 pan/format: Disable image storage on A8_UNORM
A8_UNORM on v9+ is using RGBA8_UNORM as a pixel format with the
A8_UNORM clump format to dealing with the diffences between
RGBA8 and the actual A8 in-memory layout.

The problem is, LEA_TEX only loads the InternalConversionDescriptor
which contains only the pixel format, and that's what ST_CVT uses
to do the conversion, so we'll actually store 4 components instead
of one.

This shows up with
dEQP-VK.image.load_store.without_any_format.buffer.a8_unorm* after
enabling maintenance5.

For now I've turned off the image storage capability for A8_UNORM
on all gens, but I'd be fine disabling it only on v9+ if you think
that's preferable.

Fixes: d95423686f ("pan/format: Add PAN_BIND_STORAGE_IMAGE flag")
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Lars-Ivar Hesselberg Simonsen <lars-ivar.simonsen@arm.com>
Acked-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34648>
2025-04-23 11:31:40 +00:00
Boris Brezillon
8d1e55a3b5 panvk: Implement GetImageSubresourceLayout2 and GetDeviceImageSubresourceLayoutKHR()
Needed for maintenance5.

Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Lars-Ivar Hesselberg Simonsen <lars-ivar.simonsen@arm.com>
Acked-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34648>
2025-04-23 11:31:40 +00:00
Boris Brezillon
7abe32a130 panvk: Call vk_image_finish() in GetDeviceImageMemoryRequirements()
It doesn't do much, but let's call it, just in case this changes at
some point.

Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Lars-Ivar Hesselberg Simonsen <lars-ivar.simonsen@arm.com>
Acked-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34648>
2025-04-23 11:31:40 +00:00
Boris Brezillon
1e3acb062a panvk: Don't pass a dev to panvk_image_init()
It's not used, and we could retrieve the device from
image->vk.base.device if we had to anyway.

Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Lars-Ivar Hesselberg Simonsen <lars-ivar.simonsen@arm.com>
Acked-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34648>
2025-04-23 11:31:40 +00:00
Boris Brezillon
1b22f6d679 panvk: Pass a const image to is_disjoint()
The image is not supposed to be modified there.

Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Lars-Ivar Hesselberg Simonsen <lars-ivar.simonsen@arm.com>
Acked-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34648>
2025-04-23 11:31:40 +00:00
Boris Brezillon
51e46ed57f panvk: Implement CmdBindIndexBuffer2()
This is needed for maintenance5.

While at it, move the buffer offseting opertaion to CmdBindVertexBuffers2()
instead of applying the offset at draw time.

Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Lars-Ivar Hesselberg Simonsen <lars-ivar.simonsen@arm.com>
Acked-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34648>
2025-04-23 11:31:40 +00:00
Boris Brezillon
b632ac7e3b panvk: Advertise support for VK_KHR_maintenance4
This is already supported, all we have to do is advertise it.

Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Mary Guillemard <mary.guillemard@collabora.com>
Reviewed-by: Lars-Ivar Hesselberg Simonsen <lars-ivar.simonsen@arm.com>
Acked-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34648>
2025-04-23 11:31:40 +00:00
Georg Lehmann
dd3e1190a2 aco/insert_exec: reset temporary when recreating wqm mask from exact mask
The old, now incorrect temporary was still used for invert blocks and loop masks.

Foz-DB Navi31:
Totals from 379 (0.48% of 79789) affected shaders:
Instrs: 399471 -> 399897 (+0.11%); split: -0.00%, +0.11%
CodeSize: 2197292 -> 2198908 (+0.07%); split: -0.00%, +0.08%
Latency: 2500636 -> 2500895 (+0.01%); split: -0.00%, +0.01%
SClause: 7912 -> 7918 (+0.08%); split: -0.04%, +0.11%
Copies: 25687 -> 26068 (+1.48%); split: -0.04%, +1.53%
PreSGPRs: 15648 -> 15562 (-0.55%)
SALU: 35125 -> 35517 (+1.12%)

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/12901
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/13019
Fixes: b872ff6ef2 ("aco/insert_exec_mask: if applicable, use s_wqm to restore exec after divergent CF")
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34659>
2025-04-23 09:37:50 +00:00
Georg Lehmann
13f6be262a aco/insert_exec: only restore wqm mask after control flow if necessary
The next commit will make this not free, so we should avoid it if possible.

Foz-DB Navi31:
Totals from 3933 (4.93% of 79789) affected shaders:
Instrs: 5726914 -> 5727295 (+0.01%); split: -0.00%, +0.01%
CodeSize: 31307100 -> 31308884 (+0.01%); split: -0.00%, +0.01%
SpillSGPRs: 1797 -> 1793 (-0.22%); split: -0.33%, +0.11%
Latency: 58973929 -> 58974343 (+0.00%); split: -0.00%, +0.00%
InvThroughput: 8591893 -> 8591911 (+0.00%); split: -0.00%, +0.00%
SClause: 209074 -> 209115 (+0.02%); split: -0.00%, +0.02%
Copies: 423965 -> 432420 (+1.99%)
Branches: 149976 -> 149979 (+0.00%); split: -0.00%, +0.00%
PreSGPRs: 200175 -> 200663 (+0.24%)
VALU: 3440165 -> 3440156 (-0.00%); split: -0.00%, +0.00%
SALU: 555727 -> 556143 (+0.07%); split: -0.00%, +0.08%

Fixes: b872ff6ef2 ("aco/insert_exec_mask: if applicable, use s_wqm to restore exec after divergent CF")
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34659>
2025-04-23 09:37:50 +00:00
Ella Stanforth
6802d66b50 v3d/ci: move depthstencil-default_fb-drawpixels-24_8 samples=4 to flakes
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33942>
2025-04-23 09:03:41 +00:00
Ella Stanforth
08c323951b v3dv: Implement dual source blending
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33942>
2025-04-23 09:03:41 +00:00
Ella Stanforth
a72be0f720 v3d: Implement dual source blending
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33942>
2025-04-23 09:03:41 +00:00
Ella Stanforth
42154029fc v3d/compiler: Implement software blend lowering
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33942>
2025-04-23 09:03:41 +00:00
Ella Stanforth
b38c4e8982 nir/alpha_to_coverage: Add an intrinsic for better dithering
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33942>
2025-04-23 09:03:41 +00:00
Ella Stanforth
a6f67d5b69 v3d/compiler: Only lower logic ops for color buffers that exist
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33942>
2025-04-23 09:03:41 +00:00
Ella Stanforth
1ec0cdb733 v3d/compiler: Fixup output types for all 8 outputs
Cc: mesa-stable
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33942>
2025-04-23 09:03:41 +00:00
Ella Stanforth
d3aedbfe9d asahi/lib: Move alpha_to_one and alpha_to_coverage lowering to common code.
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33942>
2025-04-23 09:03:41 +00:00
Pierre-Eric Pelloux-Prayer
091d52965f radeonsi: init use_aco properly when llvm is disabled
Otherwise shaders are compiled with ACO anyway and we hit the assert
added by 7f7d6deb18 ("radeonsi: add ACO-specific main shader parts").

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34574>
2025-04-23 07:59:10 +00:00
Pierre-Eric Pelloux-Prayer
2ab7ff51b9 radeonsi: skip blit incompatible scenarios
When has_image_opcodes is missing only a subset of tests can
be executed.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34574>
2025-04-23 07:59:10 +00:00
Pierre-Eric Pelloux-Prayer
992a340eab ac/nir: init blake3 for cs blit shader
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34574>
2025-04-23 07:59:10 +00:00
Pierre-Eric Pelloux-Prayer
2a381bbc3c radeonsi: fix potential use after free in si_set_debug_callback
si_destroy_context needs to call context->set_debug_callback(...) to
avoid the debug logs to access the destroyed context.

Adding this change introduced a different problem: when an aux context
is destroyed from si_destroy_screen, parts of the screen have been
freed already: the shader_compiler_queue_*.

c467a87e06 ("radeonsi: Destroy queues before the aux contexts") moved
the util_queue_destroy calls above the context destruction, but with
the 59a3f38ff6 change, it's not needed anymore: si_destroy_context
will finish the screen shader queues before proceeding with releasing,
so use-after-free isn't possible.

Fixes: 59a3f38ff6 ("radeonsi: clear the debug callback on ctx destroy")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/12035
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34574>
2025-04-23 07:59:10 +00:00
Sergi Blanch Torne
48bccb7d55 bin/ci: crnm: bug stress mode retry formula
The execution_times structure was filled the same way in all the cases of an
if. As a side effect, the retry evaluation doesn't include the last result and
can lead, as a race condition, into triggering one extra time than the
indication in the stress argument.

Signed-off-by: Sergi Blanch Torne <sergi.blanch.torne@collabora.com>
Reviewed-by: Guilherme Gallo <guilherme.gallo@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33750>
2025-04-23 07:42:37 +00:00
Sergi Blanch Torne
e6843c1705 bin/ci: crnm: bug while stressing a single job
When one launches a stress test on a single job, the script behaves like the
stress number is not set. After this wrong end, relaunch the command works
only if stress is bigger than 2. In case 2, it can confuse the number of
executions.

When in stress mode, don't exit the monitor_pipeline method as if there were
only one job run. One job run, prints in std the job trace, but in stress
mode, there are more than one job execution.

The stress_status_counter structure lost the information about job IDs, and
the bug happens when it counts twice the same job.

Reported-by: Martin Roukala (né Peres) <martin.roukala@mupuf.org>
Signed-off-by: Sergi Blanch Torne <sergi.blanch.torne@collabora.com>
Reviewed-by: Guilherme Gallo <guilherme.gallo@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33750>
2025-04-23 07:42:37 +00:00
Guilherme Gallo
ce200e6a4a bin/ci: crnm: Fix job duration calculation
The former version was problematic because:

- time.perf_counter() returns seconds relative to an arbitrary point in
  time (monotonic clock)
- time.mktime() converts to epoch time (seconds since 1970)

Signed-off-by: Guilherme Gallo <guilherme.gallo@collabora.com>
Reviewed-by: Sergi Blanch Torne <sergi.blanch.torne@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33750>
2025-04-23 07:42:37 +00:00
Guilherme Gallo
b3a9125014 bin/ci: crnm: Improve timer display formatting
Modify the pretty_wait function to use a two-digit width for seconds
display, ensuring consistent and aligned output when showing the
countdown timer.

Signed-off-by: Guilherme Gallo <guilherme.gallo@collabora.com>
Reviewed-by: Sergi Blanch Torne <sergi.blanch.torne@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33750>
2025-04-23 07:42:37 +00:00
Guilherme Gallo
769c9bf27c bin/ci: crnm: Improve job enabling robustness
Add error handling for job retry/play actions with proper exception
handling and improve status tracking. Introduce a maximum retry
limit with MAX_ENABLE_JOB_ATTEMPTS to prevent infinite loops when
jobs cannot be enabled.

Change enable_job to return a boolean status rather than job objects
to avoid race conditions with stale job state. Update callers to
properly handle the new return value and wait for fresh job data
in the next monitoring loop.
Address race conditions in the CI monitor script:

Reported-by: Timur Kristóf <timur.kristof@gmail.com>
Signed-off-by: Guilherme Gallo <guilherme.gallo@collabora.com>
Reviewed-by: Sergi Blanch Torne <sergi.blanch.torne@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33750>
2025-04-23 07:42:37 +00:00
Guilherme Gallo
6464083a6b ci: Extract target job handling in CI monitor script
Extract the target job processing logic from the monitor_pipeline
function into a dedicated run_target_job helper. This improves
readability and maintainability by reducing the complexity of the
monitor_pipeline function.

Also add type casting to ensure proper typing for the job objects and
import the necessary Callable type.

Signed-off-by: Guilherme Gallo <guilherme.gallo@collabora.com>
Reviewed-by: Sergi Blanch Torne <sergi.blanch.torne@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33750>
2025-04-23 07:42:37 +00:00
Boris Brezillon
098ee11c1c panvk: Set supportsNonZeroFirstInstance=true
We now support non-zero firstInstance when instance attributes have
a divisor != 1.

Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Olivia Lee <benjamin.lee@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34642>
2025-04-23 07:08:25 +00:00
Boris Brezillon
0a3f1da321 panvk: Advertise support for VK_EXT_vertex_attribute_divisor
This is already supported, nothing to do here.

Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Olivia Lee <benjamin.lee@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34642>
2025-04-23 07:08:25 +00:00
Boris Brezillon
b2a8e3838d panvk/csf: Fix instance attribute offseting
Letting the shader offset instanceID by baseInstance works only if
the divisor is one. If the divisor is greater than one, the firstInstance
parameter shouldn't be applied this divisor, but it currently is. Zero
divisors are also problematic, in that they will force use of the
instance zero attribute all the time.

The only way to fix that is to tweak the offsets of the per-instance
attributes instead, like is done in the JM backend.

Fixes: 1570f0172e ("panvk: Fix base_{instance,vertex} handling")
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Olivia Lee <benjamin.lee@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34642>
2025-04-23 07:08:25 +00:00
Boris Brezillon
b093855caa panvk/csf: Pass less arguments to emit_vs_attrib()
Most of the arguments we pass to emit_vs_attrib() can be extracted
from panvk_cmd_buffer, so let's pass a cmdbuf before we add more to
this function.

Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Olivia Lee <benjamin.lee@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34642>
2025-04-23 07:08:25 +00:00
Karol Herbst
93484bf38a rusticl: allow packagers to enable radeonsi by default
Radeonsi hasn't yet passed conformance, so it's not part of the auto set
at this point in time. But this will allow distribution to enable it if
they feel comfortable enough, or to disable it again, if it causes too
many problems.

Acked-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34621>
2025-04-23 01:56:22 +00:00
Karol Herbst
6f080ac532 rusticl/device: fix panic when disabling 3D image write support
Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/12985
Reviewed-by: @LingMan
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34649>
2025-04-23 01:35:21 +00:00
Karol Herbst
e3edc6029b ac/llvm: use mul24 intrinsics
With the current code in clpeak LLVM ended up generating v_mad_u64_u32
instructions, with this we get nice v_mad_u32_s24 ones instead and an 4x
performance increase in the int24 benchmark.

Suggested-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34630>
2025-04-23 01:11:48 +00:00
Michael Cheng
3c267535ae anv: Add new debug flag to show shader stage
Add debug option to show current shader type being
compiled within anv_shader_bin_create.

Signed-off-by: Michael Cheng <michael.cheng@intel.com>
Reviewed-by: Casey Bowman <casey.g.bowman@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34596>
2025-04-22 23:09:26 +00:00
Michael Cheng
ad328bc58d intel: Switch uint64_t intel_debug to a bitset
We are reaching our limit of adding flags to intel_debug
(apporaching 64 flags). Switch intel_debug to a bitset,
which gives us almost "unlimited" bits to use in the future.

v2(Michael Cheng): Fixed a few ci errors

Signed-off-by: Michael Cheng <michael.cheng@intel.com>
Reviewed-by: Casey Bowman <casey.g.bowman@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34596>
2025-04-22 23:09:26 +00:00
Michael Cheng
2a1aa129ed intel: Switch debug flags to enums to prep for bitset conversion
Refactored the existing debug flags to use an enum instead of
hardcoded 1ull << N macros. This is a prep step before the
eventual switch of intel_debug to a bitset.

Using enums gives us cleaner indexing and avoids annoying shift
overflow warnings. No functional changes yet.

Signed-off-by: Michael Cheng <michael.cheng@intel.com>
Reviewed-by: Casey Bowman <casey.g.bowman@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34596>
2025-04-22 23:09:26 +00:00
Faith Ekstrand
ff95e506d9 docs/nvk: Update conformance and hardware support information
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34658>
2025-04-22 22:53:32 +00:00
Collabora's Gfx CI Team
8514452cf7 Uprev Piglit to c50d9aa54f85e0af9d72fab86c73f89356d96399
0ecdebb0f5...c50d9aa54f

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34650>
2025-04-22 21:52:29 +00:00
Collabora's Gfx CI Team
3f49272944 Uprev ANGLE to f355e2b37ed43939e2753fc7dacccf75abb4c1a3
a3f2545f6b...f355e2b37e

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34650>
2025-04-22 21:52:29 +00:00
José Roberto de Souza
fcb6dfb29c intel: Fix the MOCS values in XY_BLOCK_COPY_BLT for Xe2+
One more instruction were the MOCS value was splited into two
registes.

Cc: mesa-stable
Reviewed-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34592>
2025-04-22 20:42:25 +00:00
José Roberto de Souza
161c412a82 intel: Fix the MOCS values in XY_FAST_COLOR_BLT for Xe2+
Xe2 changed the MOCS field in few instructions, those now have a field
for the MOCS index and other the encryption enable bit but ISL returns
the combination of both aka MEMORY_OBJECT_CONTROL_STATE.

To minimize changes I have added 2 macros to extract the values
from the value returned by isl.

From all the instructions changed Mesa only make use of two, so the
other instruction will be handled in the next patch.

Cc: mesa-stable
Reviewed-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34592>
2025-04-22 20:42:25 +00:00
Danylo Piliaiev
36f22cc951 tu,freedreno: Don't fallback to LINEAR with DRM_FORMAT_MOD_QCOM_COMPRESSED
DRM_FORMAT_MOD_QCOM_COMPRESSED forces the image to be UBWC regardless
of what's better for perf, we should respect that.

The regression is seen in GTK4 when it tries to create tiny swapchain
images.

Fixes: fc50fb35b0
("tu,freedreno: Enable linear mipmap tail for UBWC images")

Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34628>
2025-04-22 19:48:43 +00:00
Connor Abbott
ee10938bee tu: Fix flushing when using a staging buffer for copies
When doing the flushing, I forgot that because the staging buffer can be
used with different formats with different cpp, we need to make sure
that CCU is properly flushed and invalidated between each copy to the
staging buffer to prevent stale cache entries from creeping in, as the
CCU seems to rely on the cpp staying the same, even on a7xx which
dropped some of the other restrictions like using the same RT
index/layer. For "normal" user-visible copies this is done via
transitioning from UNDEFINED.

Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34611>
2025-04-22 19:23:53 +00:00
Eric Engestrom
0a41200f82 pick-ui: add missing dependency
Somehow I forgot to commit this line 🤦

Fixes: c37a468a8a ("pick-ui: make `Backport-to: 25.0` backport to 25.0 *and more recent release branches*")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34657>
2025-04-22 19:20:09 +00:00
Aleksi Sapon
501ed5be49 lp: fix gnu-empty-initializer warning
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34655>
2025-04-22 18:56:37 +00:00
Mary Guillemard
8d2e16cc11 panvk: reset dyn_bufs map count to 0 in create_copy_table
We were forgetting to reset the map count to 0 in case of dyn_bufs in
create_copy_table.

This was causing invalid copy entries to be added to the table causing
invalid copies in most situation with holes in the set definition while
still binding set 0 or at worst an assert to be triggered in
cmd_fill_dyn_bufs.

This fixes "dEQP-GLES3.functional.ubo.*" and
dEQP-GLES31.functional.ubo.*" on PanVK+ANGLE.

Signed-off-by: Mary Guillemard <mary.guillemard@collabora.com>
Fixes: e350c334b6 ("panvk: Extend the descriptor lowering pass to support Valhall")
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Eric R. Smith <eric.smith@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34652>
2025-04-22 17:33:02 +00:00
Caio Oliveira
6901f74fbf intel/executor: Reorganize -h and --help
Using -h will show a summarized view of the options, functions and
macros.  Using --help will open `man` with the longer contets,
which is more convenient to search and gives a little bit of
formatting.

This scheme is similar to what is done for git subcommands, e.g.
`git commit -h` and `git commit --help`.

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34268>
2025-04-22 17:14:22 +00:00
Faith Ekstrand
d383d78e8c nvk: Maxwell+ is now conformant
This advertises Vulkan 1.4 conformance for Maxwell+ GPUs as well as
enabling Vulkan on them by default.

Backport-to: 25.1
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34582>
2025-04-22 16:54:50 +00:00
Georg Lehmann
8f3489f351 aco/isel: create WMMA with constant C matrix if possible
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34396>
2025-04-22 16:08:57 +00:00
Georg Lehmann
4fa3fb87c7 aco/insert_NOPs: allow WMMA with constant C matrix
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34396>
2025-04-22 16:08:56 +00:00
Georg Lehmann
c3964e87f8 radv: apply fneg/fabs modifiers to wmma
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34396>
2025-04-22 16:08:55 +00:00
Georg Lehmann
6d7e67d986 nir,amd: add neg_lo/hi modifiers to cmat_matmul_amd
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34396>
2025-04-22 16:08:55 +00:00
Georg Lehmann
b0c8f31600 aco: set opsel_hi to 1 for WMMA
This is ignored by the hardware but LLVM requires it to disassemble GFX12 WMMA.

Cc: mesa-stable
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34396>
2025-04-22 16:08:54 +00:00
Mike Blumenkrantz
5f3a3740dc zink: use util_dynarray_resize_zero() for descriptor pool
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34654>
2025-04-22 15:29:34 +00:00
Mike Blumenkrantz
7b17dbd0c0 util/dynarray: add util_dynarray_resize_zero()
convenience function(s) to zero the new allocation and avoid bugs

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34654>
2025-04-22 15:29:34 +00:00
Tomeu Vizoso
a99e5be446 teflon: Release the arrays of tensors in operations
We were leaking the arrays themselves. Also reorder the dereferencing of
the tensors to get the lifecycle right.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34627>
2025-04-22 14:58:34 +00:00
Tomeu Vizoso
63251d43ae etnaviv: Release screen->dummy_desc_reloc.bo
We are currently trying to release twice the same dummy BO, while
leaking the other one.

Fixes: bca5ef70a4 ("etnaviv: split dummy RT backing store from reloc")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34627>
2025-04-22 14:58:34 +00:00
Tomeu Vizoso
113143a470 teflon/tests: Read model data with mmap, for speed
It was being a bit uncomfortable testing big models otherwise.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34627>
2025-04-22 14:58:34 +00:00
Tomeu Vizoso
baafa9172a etnaviv/ml: Rework tensor addition on V8
Though the V7 approach works most of the time on V8, there are some
situations in which we generate incorrect instructions but we don't know
why it doesn't work on V8.

This commit brings this driver's behavior more in line with the
proprietary driver's behavior and fixes those instances.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34627>
2025-04-22 14:58:34 +00:00
Tomeu Vizoso
104309ede3 etnaviv/ml: Support padding the channels dimension
Extend the TP job for padding.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34627>
2025-04-22 14:58:34 +00:00
Tomeu Vizoso
4a951a73e7 teflon: Support more Pad configurations
Add support for padding along the channels dimension.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34627>
2025-04-22 14:58:34 +00:00
Tomeu Vizoso
c31ce2d71f etnaviv/ml: Fix depthwise convolutions
Those with padding, stride and input smaller than the kernel size.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34627>
2025-04-22 14:58:34 +00:00
Georg Lehmann
3e26fc4498 nir/opt_algebraic: disable fsat(a + 1.0) opt if a can be NaN
Foz-DB Navi21:
Totals from 9 (0.01% of 79789) affected shaders:
Instrs: 6782 -> 6796 (+0.21%); split: -0.03%, +0.24%
CodeSize: 40020 -> 40108 (+0.22%); split: -0.04%, +0.26%
Latency: 23764 -> 23758 (-0.03%)
InvThroughput: 6424 -> 6431 (+0.11%); split: -0.08%, +0.19%
SClause: 273 -> 275 (+0.73%)
Copies: 338 -> 339 (+0.30%)
VALU: 5138 -> 5147 (+0.18%); split: -0.06%, +0.23%
SALU: 349 -> 350 (+0.29%)
SMEM: 498 -> 500 (+0.40%)

Fixes: a4a3487aae ("nir/opt_algebraic: optimize patterns from Skia")
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34125>
2025-04-22 14:23:05 +00:00
Georg Lehmann
a60d61cce8 nir: improve fadd is_a_number analysis by using the range
Foz-DB Navi21:
Totals from 145 (0.18% of 79789) affected shaders:
Instrs: 168553 -> 168391 (-0.10%); split: -0.10%, +0.00%
CodeSize: 926708 -> 926684 (-0.00%)
Latency: 2210456 -> 2210329 (-0.01%); split: -0.01%, +0.00%
InvThroughput: 545992 -> 545768 (-0.04%)
SClause: 3084 -> 3085 (+0.03%)
VALU: 129521 -> 129360 (-0.12%)
SALU: 13085 -> 13084 (-0.01%)

Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34125>
2025-04-22 14:23:05 +00:00
Georg Lehmann
a6fd9f488a nir: add is_a_number analysis for ffma
Foz-DB Navi21:
Totals from 508 (0.64% of 79789) affected shaders:
Instrs: 796183 -> 795838 (-0.04%)
CodeSize: 4303420 -> 4303384 (-0.00%); split: -0.00%, +0.00%
Latency: 7806095 -> 7805458 (-0.01%); split: -0.01%, +0.00%
InvThroughput: 1377028 -> 1376824 (-0.01%); split: -0.01%, +0.00%
Copies: 63297 -> 63299 (+0.00%); split: -0.00%, +0.00%
PreVGPRs: 29818 -> 29819 (+0.00%)
VALU: 562067 -> 561885 (-0.03%); split: -0.03%, +0.00%
SALU: 89896 -> 89733 (-0.18%)

Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34125>
2025-04-22 14:23:05 +00:00
Georg Lehmann
cb6d035925 nir: add range analysis for ffmaz
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34125>
2025-04-22 14:23:05 +00:00
Georg Lehmann
8ad695195e nir/opt_algebraic: turn exact fmin(1.0, a) into fsat if a is not NaN and not negative
Foz-DB Navi21:
Totals from 2456 (3.08% of 79789) affected shaders:
Instrs: 3415398 -> 3413352 (-0.06%); split: -0.06%, +0.00%
CodeSize: 18781096 -> 18776092 (-0.03%); split: -0.03%, +0.00%
VGPRs: 158512 -> 158528 (+0.01%)
Latency: 39528900 -> 39526687 (-0.01%); split: -0.01%, +0.00%
InvThroughput: 10612237 -> 10609296 (-0.03%); split: -0.03%, +0.00%
VClause: 71028 -> 71034 (+0.01%)
SClause: 93971 -> 93975 (+0.00%); split: -0.00%, +0.01%
Copies: 257525 -> 257521 (-0.00%); split: -0.01%, +0.01%
VALU: 2483374 -> 2481325 (-0.08%); split: -0.09%, +0.00%
SALU: 348207 -> 348211 (+0.00%)

Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34125>
2025-04-22 14:23:04 +00:00
Georg Lehmann
18a0de1834 nir/opt_algebraic: optimize fmax(ffma(a, b, c), 0.0) to fsat
Foz-DB Navi21:
Totals from 2621 (3.28% of 79789) affected shaders:
MaxWaves: 55744 -> 55736 (-0.01%)
Instrs: 2840180 -> 2832647 (-0.27%); split: -0.27%, +0.00%
CodeSize: 15497364 -> 15464692 (-0.21%); split: -0.21%, +0.00%
VGPRs: 138448 -> 138456 (+0.01%)
Latency: 22319512 -> 22307018 (-0.06%); split: -0.06%, +0.01%
InvThroughput: 5745108 -> 5729197 (-0.28%); split: -0.28%, +0.00%
Copies: 110279 -> 110268 (-0.01%); split: -0.04%, +0.03%
VALU: 2210578 -> 2203211 (-0.33%); split: -0.33%, +0.00%
SALU: 169014 -> 168841 (-0.10%)

Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34125>
2025-04-22 14:23:04 +00:00
Georg Lehmann
f71fc26393 nir/opt_algebraic: generalize fmax(fadd(a, b), 0.0) to fsat by not requiring fneg
Not a large effect, but it's positive and makes the pattern simpler.

Foz-DB Navi21:
Totals from 1 (0.00% of 79789) affected shaders:
Instrs: 145 -> 138 (-4.83%)
CodeSize: 784 -> 756 (-3.57%)
Latency: 1495 -> 1487 (-0.54%)
InvThroughput: 210 -> 196 (-6.67%)
VALU: 103 -> 96 (-6.80%)

Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34125>
2025-04-22 14:23:04 +00:00
Alyssa Rosenzweig
1050c69833 libagx: drop libagx_sub_sat
should optimize in nir if needed.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Mary Guillemard <mary.guillemard@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34638>
2025-04-22 12:47:54 +00:00
Alyssa Rosenzweig
bfc18b6fb1 libagx: drop libagx_popcount
use the common

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Mary Guillemard <mary.guillemard@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34638>
2025-04-22 12:47:54 +00:00
Alyssa Rosenzweig
9c4660d1a6 libagx: use #pragma once in geometry.h
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Mary Guillemard <mary.guillemard@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34638>
2025-04-22 12:47:54 +00:00
Alyssa Rosenzweig
63a2831967 agx/nir_lower_tess: drop dead todo
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Mary Guillemard <mary.guillemard@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34638>
2025-04-22 12:47:54 +00:00
Alyssa Rosenzweig
41960652e1 agx/nir_lower_tess: drop pointless helpers
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Mary Guillemard <mary.guillemard@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34638>
2025-04-22 12:47:54 +00:00
Alyssa Rosenzweig
2a065fc446 agx/nir_lower_gs: use common nir_verts_in_output_prim
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Mary Guillemard <mary.guillemard@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34638>
2025-04-22 12:47:54 +00:00
Alyssa Rosenzweig
ea209c98fc agx/nir_lower_gs: drop silly fwd decl
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Mary Guillemard <mary.guillemard@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34638>
2025-04-22 12:47:54 +00:00
Alyssa Rosenzweig
ba9f86df51 agx/nir_lower_gs: privatize lower_output_to_var_state
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Mary Guillemard <mary.guillemard@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34638>
2025-04-22 12:47:54 +00:00
Alyssa Rosenzweig
d42a92fd93 agx/nir_lower_gs: clean up more state->info
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Mary Guillemard <mary.guillemard@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34638>
2025-04-22 12:47:54 +00:00
Alyssa Rosenzweig
470f226ed8 agx/nir_lower_gs: remove silly comment
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Mary Guillemard <mary.guillemard@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34638>
2025-04-22 12:47:54 +00:00
Alyssa Rosenzweig
1017095c5a agx/nir_lower_gs: clean up state/info duplication
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Mary Guillemard <mary.guillemard@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34638>
2025-04-22 12:47:54 +00:00
Alyssa Rosenzweig
753e3ba55b asahi,hk: use indirect-local dispatches for GS
this gets us good workgroup sizes even for indirect draws with GS.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Mary Guillemard <mary.guillemard@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34638>
2025-04-22 12:47:54 +00:00
Alyssa Rosenzweig
70c805d863 hk: bump wg sizes for geometry shader
match GL driver, should help perf.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Mary Guillemard <mary.guillemard@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34638>
2025-04-22 12:47:54 +00:00
Alyssa Rosenzweig
164fc8a158 agx/nir_lower_gs: clean comment
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Mary Guillemard <mary.guillemard@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34638>
2025-04-22 12:47:54 +00:00
Alyssa Rosenzweig
b9b6828fda agx/nir_lower_gs: optimize static topologies
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Mary Guillemard <mary.guillemard@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34638>
2025-04-22 12:47:54 +00:00
Alyssa Rosenzweig
3da8939197 libagx: factor out _libagx_end_primitive
so we can use from the cpu.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Mary Guillemard <mary.guillemard@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34638>
2025-04-22 12:47:54 +00:00
Alyssa Rosenzweig
d2cc7f38d3 asahi: optimize out empty dispatches
this occurs with GS lowering.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Mary Guillemard <mary.guillemard@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34638>
2025-04-22 12:47:54 +00:00
Alyssa Rosenzweig
b916c38c76 hk: optimize out empty dispatches
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Mary Guillemard <mary.guillemard@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34638>
2025-04-22 12:47:54 +00:00
Alyssa Rosenzweig
f6ee36a437 agx: add agx_is_shader_empty helper
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Mary Guillemard <mary.guillemard@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34638>
2025-04-22 12:47:54 +00:00
Alyssa Rosenzweig
f1aeb46a34 nir: factor out nir_verts_in_output_prim helper
very useful for geometry shader lowering code.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Mary Guillemard <mary.guillemard@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34638>
2025-04-22 12:47:54 +00:00
Vignesh Raman
6c33b1e8c1 ci: replace s3_upload wrapper with ci-fairy s3cp
Now that ci-fairy s3cp works, replace the s3_upload curl wrapper with
ci-fairy s3cp command.

Signed-off-by: Vignesh Raman <vignesh.raman@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34550>
2025-04-22 11:17:16 +00:00
Vignesh Raman
4b3b3d4c70 ci: use MESA_TEMPLATES_COMMIT for ci-fairy install
Use MESA_TEMPLATES_COMMIT instead of hard-coding the commit hash in
pip install ci-fairy.

Signed-off-by: Vignesh Raman <vignesh.raman@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34550>
2025-04-22 11:17:16 +00:00
Vignesh Raman
c4aeef02e2 ci: bump ci-templates
This is required for ci-fairy s3cp to work.

Signed-off-by: Vignesh Raman <vignesh.raman@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34550>
2025-04-22 11:17:16 +00:00
Jayanth Vutukuri
ba64e92641 Add libzstd static library.
From AOSP 15, getting linking error as
"ld.lld: error: undefined symbol: ZSTD_*" during compilation.
libzstd will link as static library to libelf and this libelf
is being included in mesa3d.

https://android-review.googlesource.com/c/platform/external/elfutils/+/2826411
is the patch from AOSP which is causing build issue.

Signed-off-by: Jayanth Vutukuri <Jayanth.Vutukuri@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34522>
2025-04-22 11:08:10 +00:00
Boris Brezillon
de78a75f13 panvk: Set .pushDescriptor=true
We already claim support for VK_KHR_push_descriptor, so we de-facto
support pushDescriptor.

Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Olivia Lee <benjamin.lee@collabora.com>
Reviewed-by: Mary Guillemard <mary.guillemard@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34640>
2025-04-22 09:09:57 +02:00
Boris Brezillon
5b7e5db149 panvk: Advertise support for VK_EXT_vertex_input_dynamic_state
This is already supported, nothing to do here.

Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Olivia Lee <benjamin.lee@collabora.com>
Reviewed-by: Mary Guillemard <mary.guillemard@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34640>
2025-04-22 09:09:48 +02:00
Yinjie Yao
2b5ca87927 gallium/pipe: Increase hevc max slice to 600
According to the spec, increase max supported slices of hevc to 600.

Cc: mesa-stable
Signed-off-by: Yinjie Yao <yinjie.yao@amd.com>
Reviewed-by: Ruijing Dong <ruijing.dong@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34632>
2025-04-22 06:14:21 +00:00
Mel Henning
0f65c858ea nak: Add test for lea disasm.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34334>
2025-04-21 23:42:55 +00:00
Mel Henning
5f5cb088a9 nak: Disable cbuf textures on blackwell
There are bound texture forms on blackwell, but they don't correspond
directly to the cbuf textures we have on sm70. Switch to only bindless
for now.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34334>
2025-04-21 23:42:55 +00:00
Mel Henning
fd90b072f1 nak: sm100+ texture encodings
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34334>
2025-04-21 23:42:55 +00:00
Mel Henning
f70b7d10c2 nak: Fix sm90+ atomg/redg encoding
and add a test for ld, st, atom

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34334>
2025-04-21 23:42:55 +00:00
Mel Henning
869452aaf0 nak: Remove range parameter from set_atom_type
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34334>
2025-04-21 23:42:55 +00:00
Mel Henning
2b82184250 nak: Add nvdisasm_tests
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34334>
2025-04-21 23:42:55 +00:00
Mel Henning
d31172d092 nvk: Remove dead function nvk_meta_init_render
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34644>
2025-04-21 22:23:33 +00:00
Mel Henning
2fc4c98aaf nvk: Override render enable for blits and resolves
Fixes cts tests:

dEQP-VK.conditional_rendering.conditional_ignore.blit_image
dEQP-VK.conditional_rendering.conditional_ignore.blit_image_inverted
dEQP-VK.conditional_rendering.conditional_ignore.resolve_image
dEQP-VK.conditional_rendering.conditional_ignore.resolve_image_inverted

which were introduced in vk-gl-cts commit 4aa277c300

Fixes: 32f2317223 ("nvk: Use meta for doing blits with the 3D hardware")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34644>
2025-04-21 22:23:33 +00:00
Mel Henning
52085f2a0e nvk: SET_STATISTICS_COUNTER at start of meta_begin
Ideally, begin/end should be roughly symmetric - the initialization
order should be the reverse of the teardown order.

Fixes: 6f85e6b06b ("nvk: Disable statistics around meta ops")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34644>
2025-04-21 22:23:33 +00:00
Lina Versace
1bf8542490 anv: Enable VK_EXT_external_memory_acquire_unmodified
Reviewed-by: Nanley Chery <nanley.g.chery@intel.com>
Change-Id: If0480721f7f1fceec093e4ab7b5c9b712eb62ba1
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32295>
2025-04-21 13:55:32 -07:00
Lina Versace
3613b9c4f7 anv: Fix comment about external queue transitions
Not all images with DRM format modifiers use
ANV_IMAGE_MEMORY_BINDING_PRIVATE.

Reviewed-by: Nanley Chery <nanley.g.chery@intel.com>
Change-Id: Idc6bae70ec7080f96555a85dcdc0ead915b02935
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32295>
2025-04-21 13:55:27 -07:00
Lina Versace
e87a04c6c1 anv: Assert that only external images have private bindings
Reviewed-by: Nanley Chery <nanley.g.chery@intel.com>
Change-Id: If2f18d88d48f70a58e236080632e72afb94f5e0b
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32295>
2025-04-21 13:55:08 -07:00
Sagar Ghuge
0463e14b94 anv: Enable 64bit memory structure mode for RT
Signed-off-by: Sagar Ghuge <sagar.ghuge@intel.com>
Reviewed-by: Kevin Chuang <kaiwenjon23@gmail.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33047>
2025-04-21 20:10:45 +00:00
Kevin Chuang
703f29874b intel/bvh/debug: Adapt instance leaf dumping to support 64-bit RT
Adding a boolean "enable_64b_rt" in anv_accel_struct_header for the
interpret.py to properly decode anv_instance_leaf

Signed-off-by: Kevin Chuang <kaiwenjon23@gmail.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33047>
2025-04-21 20:10:45 +00:00
Kevin Chuang
cbc8af4555 intel/bvh: Compile and adapt bvh shaders separately into Xe1/2 and Xe3+
This change separate the encode, header, and copy shader into versions
for Xe1/2 and Xe3+, including adding compile options and handling 64bit
version of instance leaf for Xe3+.

Signed-off-by: Kevin Chuang <kaiwenjon23@gmail.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33047>
2025-04-21 20:10:45 +00:00
Sagar Ghuge
36433e932b intel/rt: Update BVH instance leaf load for Xe3+
Signed-off-by: Sagar Ghuge <sagar.ghuge@intel.com>
Reviewed-by: Kevin Chuang <kaiwenjon23@gmail.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33047>
2025-04-21 20:10:45 +00:00
Sagar Ghuge
5cd0f4ba2f intel/compiler: Update MemRay data structure to 64-bit
Rework: (Kevin)
- Fix miss_shader_index offset
- Handle hit group index

Signed-off-by: Sagar Ghuge <sagar.ghuge@intel.com>
Reviewed-by: Kevin Chuang <kaiwenjon23@gmail.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33047>
2025-04-21 20:10:45 +00:00
Kevin Chuang
7b526de18f intel/compiler/rt: Calculate barycentrics on demand
This commit moves the calculation of tri_bary out of
brw_nir_rt_load_mem_hit_from_addr(), and only do the calculation on
demand, since unorm_float_convert can be expensive. We do this for both
Xe1/2 and Xe3+ for consistency.

Signed-off-by: Kevin Chuang <kaiwenjon23@gmail.com>
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33047>
2025-04-21 20:10:45 +00:00
Sagar Ghuge
afc23dffa4 intel/compiler: Update MemHit data structure to 64-bit version
Rework (Kevin):
- Fix inst leaf ptr
- Handle 24bit unorm barycentric coord

Signed-off-by: Sagar Ghuge <sagar.ghuge@intel.com>
Reviewed-by: Kevin Chuang <kaiwenjon23@gmail.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33047>
2025-04-21 20:10:45 +00:00
Kevin Chuang
40fb95d51a intel/compiler: Use 24bits for hit_kind on Xe3+
For Xe3+, the upper 8 bits of the second dword of a potential hit is
used to store hitGroupIndex0, which is stuffed by the HW. This
hitGroupIndex0 will later be used by the HW again to reconstruct the
whole hitGroupIndex when driver issues a TRACE_RAY_COMMIT.

We were corrupting this hitGroupIndex0 at the driver by setting the
whole dword to hit_kind, which will cause the HW to read a wrong
hitGroupIndex and therefore invoke a wrong closest hit shader. The
behavior can be seen in
dEQP-VK.ray_tracing_pipeline.pipeline_no_null_shaders_flag.gpu.boxes.\*
and dEQP-VK.ray_tracing_pipeline.pipeline_library.configurations.\*

This commit changes the driver to only use lower 24bits to store the
hit_kind, and leave the upper 8bits as it.

Signed-off-by: Kevin Chuang <kaiwenjon23@gmail.com>
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33047>
2025-04-21 20:10:45 +00:00
Sagar Ghuge
64fd66407b intel/compiler: Pass around intel_device_info parameter in helper
This will help us to handle code path separately for Xe3+ for updated
64bit memory data structure for RT.

Signed-off-by: Sagar Ghuge <sagar.ghuge@intel.com>
Reviewed-by: Kevin Chuang <kaiwenjon23@gmail.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33047>
2025-04-21 20:10:45 +00:00
Sagar Ghuge
6deb1950a4 anv: Update RT dispatch globals to use 64bit data structure
Rework (Kevin)
- Fix Hit/Miss/Resume shader group table value

Signed-off-by: Sagar Ghuge <sagar.ghuge@intel.com>
Reviewed-by: Kevin Chuang <kaiwenjon23@gmail.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33047>
2025-04-21 20:10:45 +00:00
Sagar Ghuge
fcd5fe4a75 intel/genxml/xe3: Update 3STATE_BTD field
Signed-off-by: Sagar Ghuge <sagar.ghuge@intel.com>
Reviewed-by: Kevin Chuang <kaiwenjon23@gmail.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33047>
2025-04-21 20:10:45 +00:00
Mary Guillemard
92afeb37bf panfrost: Take tiler memory budget into account in pan_select_tiler_hierarchy_mask
On v12+, the hardware report support for 8 levels but
effectively only support up to 4 levels.

In case more than 4 levels are used, it will default to 0xAA when
tile_size is 32x32 or lower, otherwise 0xAC when the tile_size is greater than 32x32.

This patch makes it that we now ensure that the bins can fit inside out
tiler budget and otherwise drop levels until it fit.

This also allows the hardware to decide the hierarchy on v12+
if we know it will fit.

This fixes "dEQP-GLES31.functional.fbo.no_attachments.maximums.all" and
dEQP-GLES31.functional.fbo.no_attachments.maximums.size" on v12+ but
also likely more if we were exhausting the memory budget.

Signed-off-by: Mary Guillemard <mary.guillemard@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Backport-to: 25.1
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34559>
2025-04-21 19:55:59 +02:00
Eric Engestrom
c643f62633 ci: bump to fedora 42
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34626>
2025-04-21 16:05:11 +00:00
Eric Engestrom
2bcb55f3f6 aco: help clang 20 do some additions and subtractions
clang 20 complains:

    ../src/amd/compiler/aco_assembler.cpp:837:28: error: writing 1 byte into a region of size 0 [-Werror=stringop-overflow=]
      837 |       vaddr[num_vaddr + i] = reg(ctx, instr->operands.back(), 8) + i + 1;
          |       ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    ../src/amd/compiler/aco_assembler.cpp:832:12: note: at offset 5 into destination object ‘vaddr’ of size 5
      832 |    uint8_t vaddr[5] = {0, 0, 0, 0, 0};
          |            ^~~~~
    ../src/amd/compiler/aco_assembler.cpp:837:28: error: writing 1 byte into a region of size 0 [-Werror=stringop-overflow=]
      837 |       vaddr[num_vaddr + i] = reg(ctx, instr->operands.back(), 8) + i + 1;
          |       ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    ../src/amd/compiler/aco_assembler.cpp:832:12: note: at offset 6 into destination object ‘vaddr’ of size 5
      832 |    uint8_t vaddr[5] = {0, 0, 0, 0, 0};
          |            ^~~~~
    ../src/amd/compiler/aco_assembler.cpp:837:28: error: writing 1 byte into a region of size 0 [-Werror=stringop-overflow=]
      837 |       vaddr[num_vaddr + i] = reg(ctx, instr->operands.back(), 8) + i + 1;
          |       ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    ../src/amd/compiler/aco_assembler.cpp:832:12: note: at offset 7 into destination object ‘vaddr’ of size 5
      832 |    uint8_t vaddr[5] = {0, 0, 0, 0, 0};
          |            ^~~~~

But `i < MIN2(instr->operands.back().size() - 1, 5 - num_vaddr)` means `i` is
at most `5 - num_vaddr - 1`, which means `vaddr[num_vaddr + i]` =>
`vaddr[num_vaddr + 5 - num_vaddr - 1]` => `vaddr[5 - 1]` => `vaddr[4]` which
is within the valid indices.

For some reason, using signed `int` instead allows clang to figure this
out, so let's do that since we don't need the extra range.

While at it, use ARRAY_SIZE(vaddr) instead of hard-coding the same `5`
in several places.

Backport-to: 25.0
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34625>
2025-04-21 15:16:02 +00:00
Eric Engestrom
b59b53e824 ci: uprev vkd3d-proton
078f07f588...7eef0a64e3

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34356>
2025-04-21 11:50:57 +00:00
Eric Engestrom
55199d988a turnip/ci: drop skip of test_vrs_depth_write_dxbc as it no longer hangs
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34356>
2025-04-21 11:50:57 +00:00
Eric Engestrom
fec01a11d4 ci/vkd3d: drop unused 32-bit build
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34356>
2025-04-21 11:50:57 +00:00
David Rosca
5ccf28ce1b radeonsi/uvd_enc: Move all code to radeon_uvd_enc.c
Also get rid of function pointers.

Reviewed-by: Ruijing Dong <ruijing.dong@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34450>
2025-04-21 10:43:04 +00:00
David Rosca
d9f214001b radeonsi/vce: Move all code to radeon_vce.c
Also get rid of function pointers and remove dump_feedback.

Reviewed-by: Ruijing Dong <ruijing.dong@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34450>
2025-04-21 10:43:03 +00:00
David Rosca
b0b52d4922 radeonsi/vcn: Fix decode target index for H264 interlaced streams
With H264 the target surface can also be in the reference list for
current frame, so it can only be inserted into the DPB list after
iterating over all references.

Fixes: 0e68a2655f ("radeonsi/vcn: Rework decode ref handling")
Reviewed-by: Ruijing Dong <ruijing.dong@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34527>
2025-04-21 10:00:29 +00:00
Job Noorman
bde3ab4cd3 ir3/isa: add nop encoding for bary.f/flat.b
We already use it in legalize but the disassembler didn't display it
yet.

Signed-off-by: Job Noorman <jnoorman@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34618>
2025-04-21 08:20:49 +00:00
Faith Ekstrand
cd953a7dfa nak/sm20: Use the immediates instead of rZ in OpShfl
For some reason, shfl doesn't seem to like rZ.  I have no idea why but

    shfl.up pt, r5, r5, r3, 0x0

works fine but

    shfl.up pt, r5, r5, r3, rz

does not.  Fortunately, this is pretty easy to handle in the generator
by just using `as_u32()` instead of the AluSrc hack I did before.

Fixes: 608eef01d6 ("nak/sm20: Add subgroup ops")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34624>
2025-04-20 13:43:24 -05:00
Faith Ekstrand
0b8359e159 nak/sm20: Fix legalization of float source types
Fixes: 142fb563c4 ("nak/sm20: Improve folding of ffma and dfma")
Fixes: a3330f1d46 ("nak/sm20: Add float ops")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34622>
2025-04-20 09:45:43 -05:00
Faith Ekstrand
a2caf95c50 nak: Handle OpFRnd in is_fp64()
Fixes: b27fc463da ("nak: Record and set DOES_FP64 in the SPH")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34622>
2025-04-20 09:45:43 -05:00
Marek Olšák
4a51089f30 radv: fix incorrect patch_outputs_read for TCS with dynamic state
Fixes: 8c2f9f0665 - radv: switch to the new TCS LDS/offchip size computation

Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34544>
2025-04-19 22:55:00 -04:00
Marek Olšák
2948f7ce96 ac/gpu_info: rename tess ring variables, fold double_offchip_wg
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34544>
2025-04-19 22:55:00 -04:00
Marek Olšák
d2e016c37d ac/nir: don't store tess levels for TES in TCS if no_varying is set
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34544>
2025-04-19 22:55:00 -04:00
Marek Olšák
be8977811b ac/nir: remove shader_info parameter from ac_nir_compute_tess_wg_info
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34544>
2025-04-19 22:55:00 -04:00
Marek Olšák
6d9e708642 ac/gpu_info: reduce the tess offchip ring size and compute it proportionately
.. to the CU count. We allocated too much.

This reduces the tess offchip ring size as follows (examples):
- GFX11-12:
  - Navi31, Navi33, and Navi48 get 75% decrease.
  - Navi32 gets 68.75% decrease.
  - Phoenix gets 81.25% decrease.
  - Phoenix2 gets 93.75% decrease.
- GFX10.3:
  - Navi21 and Navi22 get 37.5% decrease.
  - Navi23 and Navi24 get 50% decrease.
  - Rembrandt gets 62.5% decrease.
  - VanGogh gets 75% decrease.
  - Raphael gets 93.75% decrease.
- GFX8-9:
  - Vega10 gets 0% decrease.
  - Vega20 gets 49.6% decrease.
  - Raven gets 65.3% decrease.
  - Raven2 gets 93.7% decrease.
  - Stoney gets 81% decrease.

No difference in performance was measured.

Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34544>
2025-04-19 22:55:00 -04:00
Marek Olšák
9333c0a1ed ac/gpu_info: compute the tess factor ring size proportionately to the CU count
No change in the size on GPUs with 16 CUs per SE such as Navi31 and Navi48.
Navi21 and Navi32 get 25% increase. (20 CUs per SE)

APUs get a significant decrease. For example:
- Phoenix gets 25% decrease
- Vangogh gets 50% decrease
- Phoenix2 gets 75% decrease
- Raphael and Stoney get 87.5% decrease

Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34544>
2025-04-19 22:55:00 -04:00
Marek Olšák
5fb2de9454 ac/nir: don't include TCS offchip size in LDS_SIZE
This drastically reduces LDS usage for TCS.

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34544>
2025-04-19 22:55:00 -04:00
Marek Olšák
b8f2fb81f6 ac/gpu_info: print tessellation ring info
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34544>
2025-04-19 22:55:00 -04:00
Marek Olšák
b8d15fee3d ac: minor cleanup of ac_compute_num_tess_patches
No change in behavior.

Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34544>
2025-04-19 22:55:00 -04:00
Marek Olšák
a905a17f39 ac: use HS offchip wg size from radeon_info in ac_compute_num_tess_patches
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34544>
2025-04-19 22:55:00 -04:00
Marek Olšák
d82eda72a1 ac/gpu_info: move HS info into radeon_info
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34544>
2025-04-19 22:55:00 -04:00
Marek Olšák
ea294349bd radv: move the tess factor ring after the tess offchip ring
to match radeonsi

Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34544>
2025-04-19 22:54:59 -04:00
Marek Olšák
c057d9105f ac/gpu_info: add total_tess_ring_size
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34544>
2025-04-19 22:54:59 -04:00
Marek Olšák
97119d980c ac/gpu_info: clean up ac_get_hs_info, use standard terms like workgroup
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34544>
2025-04-19 22:54:59 -04:00
Pierre-Eric Pelloux-Prayer
ac6351fd23 radeonsi/tests: use proper skip file
gbm-skips.txt has been renamed all-skips.txt in f9564e1754
("ci/piglit: Consolidate identical skip lists for X11 and gbm")

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34544>
2025-04-19 22:54:59 -04:00
Janne Grunau
3d3ca9b65e venus: virtgpu: Require stable wire format
When VMMs do not support VIRTGPU_DRM_CAPSET_VENUS the capset data
remains zeroed. By requiring the stable wire_format_version 1 this can
be detected early without initialising the renderer.

Avoids triggering `assert(capset->supports_blob_id_0);` in debug builds
under such circumstances.

Cc: mesa-stable
Signed-off-by: Janne Grunau <j@jannau.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34613>
2025-04-19 21:02:17 +00:00
Yiwei Zhang
2a4675ee9f venus: fix missing renderer destructions
With failed compatibility check, the created renderer must be destroyed
within vn_instance_init_renderer.

Cc: mesa-stable
Fixes: 25b8f4f714 ("venus: handle device probing properly.")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34613>
2025-04-19 21:02:17 +00:00
Janne Grunau
39e4fd98ce venus: Do not use instance pointer before NULL check
Fixes: a753f50668 ("venus: break up vn_device.c")
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Signed-off-by: Janne Grunau <j@jannau.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34613>
2025-04-19 21:02:17 +00:00
Faith Ekstrand
7d3a99a46c nak/sm20: Use the correct index field for OpS2R
It's 10 bits, not 6.

Fixes: 078ffb860b ("nak/sm20: Add initial SM20 encoding")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34619>
2025-04-19 14:58:35 -05:00
Lorenzo Rossi
4d8d6a28c8 nak: Use s2r for SV_CLOCK on Kepler
cs2r is new starting with Maxwell.  Prior to that we need to use s2r
which still works just fine, it's just slower.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34619>
2025-04-19 14:58:35 -05:00
Faith Ekstrand
142fb563c4 nak/sm20: Improve folding of ffma and dfma
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34619>
2025-04-19 11:06:19 -05:00
David Heidelberg
9855467ed0 docs: Rename distro to distribution
Reviewed-by: Adam Jackson <ajax@redhat.com>
Signed-off-by: David Heidelberg <david@ixit.cz>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32880>
2025-04-19 15:52:17 +02:00
David Heidelberg
5251c82404 docs: Drop distro unmaintained and deprecated file.
Pretty much useless.

Reviewed-by: Adam Jackson <ajax@redhat.com>
Signed-off-by: David Heidelberg <david@ixit.cz>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32880>
2025-04-19 15:52:12 +02:00
Sushma Venkatesh Reddy
4084527876 intel/compiler: Always run opt_algebraic after descriptor_lowering
This change ensures that `brw_opt_algebraic` is always executed after
`brw_lower_send_descriptors` in `brw_opt.cpp`. By doing so, redundant
logical operations are optimized, resulting in cleaner and more
compact assembly output.

fossil-db results on LNL:
- Totals:
  - Instructions: 215857290 -> 215857028 (-0.00%)
  - Cycle count: 32008929636 -> 32008935384 (+0.00%); split: -0.00%, +0.00%
  - Max live registers: 66940643 -> 66940557 (-0.00%)

- Affected shaders (104 out of 713963):
  - Instructions: 31090 -> 30828 (-0.84%)
  - Cycle count: 5955908 -> 5961656 (+0.10%); split: -0.16%, +0.26%
  - Max live registers: 10888 -> 10802 (-0.79%)

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34615>
2025-04-19 07:05:54 +00:00
Faith Ekstrand
c0f56fc64c nvk: Return an error for Kepler storage images instead of asserting
This lets us fail without restarting dEQP, making CTS runs faster.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34616>
2025-04-19 03:40:08 +00:00
Faith Ekstrand
f6b9d13a15 nak/sm20: Implement OpBar
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34616>
2025-04-19 03:40:08 +00:00
Faith Ekstrand
8401a60840 nak/sm20: Add double ops
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34616>
2025-04-19 03:40:08 +00:00
Faith Ekstrand
608eef01d6 nak/sm20: Add subgroup ops
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34616>
2025-04-19 03:40:08 +00:00
Faith Ekstrand
5a140e7c3e nak/sm20: Add more memory ops
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34616>
2025-04-19 03:40:08 +00:00
Arunpravin Paneer Selvam
84f18f31ad amdgpu: Add queue id support to the user queue wait IOCTL
Add queue id support to the user queue wait IOCTL
drm_amdgpu_userq_wait structure.

This is required to retrieve the wait user queue and maintain
the fence driver references in it so that the user queue in
the same context releases their reference to the fence drivers
at some point before queue destruction.

Otherwise, we would gather those references until we
don't have any more space left and crash.

Signed-off-by: Arunpravin Paneer Selvam <Arunpravin.PaneerSelvam@amd.com>
Suggested-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34493>
2025-04-18 21:55:53 +00:00
Iván Briano
949d2e507d anv: expose promoted KHR_depth_clamp_zero_one
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34614>
2025-04-18 21:31:37 +00:00
Lorenzo Rossi
ddbf2ec883 nak: Add a new OpFSwz and use it for derivatives on Kepler
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34540>
2025-04-18 19:30:41 +00:00
Faith Ekstrand
309c48cbb7 nak/sm20: Add texture ops
The current NIR lowering is good for at least SM30+.  When someone
decides to enable Fermi, we'll have to add lowering for it.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34540>
2025-04-18 19:30:41 +00:00
Faith Ekstrand
8d41221158 nak/nir: Use Kepler texture source ordering on SM30
SM30 (i.e. Kepler A) has Fermi's instruction encoding but it uses the
same texture source ordering as Kepler B.  It also supports bindless,
unlike Fermi.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34540>
2025-04-18 19:30:41 +00:00
Lorenzo Rossi
b8c7d937fe nak: Add OpTexDepBar
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34540>
2025-04-18 19:30:41 +00:00
Faith Ekstrand
043995220a nak/sm20: Add control-flow ops
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34540>
2025-04-18 19:30:41 +00:00
Faith Ekstrand
9a62a76c46 nak/sm20: Add shader I/O ops
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34540>
2025-04-18 19:30:41 +00:00
Faith Ekstrand
bdbe6447ed nak/nir: Use Maxwell input interpolation for SM20+
It appears to be the same at least as far back as Kepler A.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34540>
2025-04-18 19:30:41 +00:00
Faith Ekstrand
0105a75c53 nak/sm20: Add conversion ops
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34540>
2025-04-18 19:30:41 +00:00
Faith Ekstrand
b27fc463da nak: Record and set DOES_FP64 in the SPH
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34540>
2025-04-18 19:30:41 +00:00
Faith Ekstrand
d249e7ddac nak: Lower 64-bit shifts in NIR on Kepler A and earlier
SHF is introduced on Kepler B.  Without it, there's nothing we can do
that's more efficient than NIR's lowering.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34540>
2025-04-18 19:30:41 +00:00
Faith Ekstrand
9fbf63b584 nak/sm20: Add integer ops
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34540>
2025-04-18 19:30:41 +00:00
Faith Ekstrand
a3330f1d46 nak/sm20: Add float ops
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34540>
2025-04-18 19:30:41 +00:00
Faith Ekstrand
078ffb860b nak/sm20: Add initial SM20 encoding
This is enough to get all the hardware unit tests passing and run
dEQP-VK.api.smoke.triangle.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34540>
2025-04-18 19:30:41 +00:00
Alyssa Rosenzweig
84505c5d99 asahi: fix possible null deref
with indirect non-indexed draws.

Backport-to: 25.1
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34612>
2025-04-18 18:34:55 +00:00
Alyssa Rosenzweig
b756e7da65 agx: delete more inots
noticed in dEQP-GLES31.functional.geometry_shading.input.basic_primitive.triangles

total instrs in shared programs: 2852257 -> 2850958 (-0.05%)
instrs in affected programs: 291488 -> 290189 (-0.45%)

total alu in shared programs: 2335534 -> 2334236 (-0.06%)
alu in affected programs: 236924 -> 235626 (-0.55%)

total fscib in shared programs: 2333895 -> 2332597 (-0.06%)
fscib in affected programs: 236924 -> 235626 (-0.55%)

total code size in shared programs: 20529508 -> 20520338 (-0.04%)
code size in affected programs: 2074254 -> 2065084 (-0.44%)

total gprs in shared programs: 901327 -> 901307 (<.01%)
gprs in affected programs: 756 -> 736 (-2.65%)

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34612>
2025-04-18 18:34:55 +00:00
Alyssa Rosenzweig
e541ffcbe8 hk: fix patch count = 0 handling
fixes fault in dEQP-VK.tessellation.misc_draw.triangles_no_patches

Backport-to: 25.1
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34612>
2025-04-18 18:34:55 +00:00
Daniel Lang
21b12b540f etnaviv: hwdb: update gc_feature_database from NXP
Updates the existing gc_feature_database.h file with changes from
https://github.com/nxp-imx/linux-imx/blob/lf-6.12.y/drivers/mxc/gpu-viv/hal/kernel/inc/gc_feature_database.h

git commit: 1bb08951917684136bf0c61ce7391902b2d6518b

Removed fields:
- NN_ZDP18
- NN_TP_SYSTEM_FIX
- DPP_SUPPORT_REF_OUTPUT_CROPING
- RGB_TO_RAW

Renamed fields:
- SHADER_TRIGGER_NN -> TC_SHADER_TRIGGER_NN

Signed-off-by: Daniel Lang <dalang@gmx.at>
Acked-by: Christian Gmeiner <cgmeiner@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34608>
2025-04-18 19:07:52 +02:00
Daniel Lang
d7c957c474 etnaviv: hwdb: update gc_feature_database from ST
Updates the existing gc_feature_database.h file with changes from
https://github.com/STMicroelectronics/gcnano-binaries/blob/gcnano-6.4.19-binaries/gcnano-driver-stm32mp/hal/kernel/inc/gc_feature_database.h

git commit: 359d5007ef19575f6b8ca3071cf90d3848778ae7

Removed fields:
- NN_TP_SYSTEM_FIX
- NN_ZDP18
- NN_FP8

New entry for CNANOULTRA31_VIP2 (GC8000 rev 6205) with EcoID set to 1.

Signed-off-by: Daniel Lang <dalang@gmx.at>
Acked-by: Christian Gmeiner <cgmeiner@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34608>
2025-04-18 19:07:20 +02:00
Job Noorman
e7c6037d12 ir3: use opt_shrink_vectors
This is useful to remove unused components from IO loads. This is not
only helpful for reducing the size of memory loads, but also for reducing
register pressure (as we need smaller vector registers).

Totals from 55567 (33.76% of 164575) affected shaders:
MaxWaves: 665780 -> 666690 (+0.14%); split: +0.15%, -0.01%
Instrs: 30850106 -> 30825516 (-0.08%); split: -0.33%, +0.25%
CodeSize: 62502952 -> 62336580 (-0.27%); split: -0.42%, +0.15%
NOPs: 5468972 -> 5463654 (-0.10%); split: -1.39%, +1.30%
MOVs: 1078607 -> 1060627 (-1.67%); split: -3.48%, +1.81%
Full: 807907 -> 805134 (-0.34%); split: -0.49%, +0.15%
(ss): 755846 -> 747963 (-1.04%); split: -2.51%, +1.46%
(sy): 367032 -> 363947 (-0.84%); split: -1.88%, +1.04%
(ss)-stall: 2907874 -> 2900183 (-0.26%); split: -1.97%, +1.71%
(sy)-stall: 10812082 -> 10599944 (-1.96%); split: -3.43%, +1.47%
STPs: 23062 -> 22980 (-0.36%)
LDPs: 35076 -> 32286 (-7.95%)
Preamble Instrs: 6668422 -> 6612037 (-0.85%); split: -1.35%, +0.51%
Early Preamble: 36055 -> 36169 (+0.32%); split: +0.32%, -0.01%
Cat0: 6015654 -> 6009409 (-0.10%); split: -1.29%, +1.18%
Cat1: 1631110 -> 1610537 (-1.26%); split: -2.54%, +1.28%
Cat2: 11783599 -> 11783634 (+0.00%); split: -0.02%, +0.02%
Cat3: 8198147 -> 8198526 (+0.00%); split: -0.00%, +0.01%
Cat5: 968517 -> 967899 (-0.06%); split: -0.06%, +0.00%
Cat6: 349200 -> 351795 (+0.74%); split: -0.01%, +0.75%
Cat7: 1009072 -> 1008909 (-0.02%); split: -0.58%, +0.56%

Signed-off-by: Job Noorman <jnoorman@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34600>
2025-04-18 15:56:02 +00:00
Job Noorman
f269c7b3b5 nir/opt_shrink_vectors: enable for load_ubo_vec4
Signed-off-by: Job Noorman <jnoorman@igalia.com>
Reviewed-by: Connor Abbott <cwabbott0@gmail.com>
Reviewed-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34600>
2025-04-18 15:56:02 +00:00
Samuel Pitoiset
792c30dd32 radv/meta: remove redundant parameter to blit_surf_for_image_level_layer()
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34558>
2025-04-18 17:21:24 +02:00
Samuel Pitoiset
a3f2c5f05e radv/meta: remove unnecessary radv_meta_blit2d_buffer::bs
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34558>
2025-04-18 17:21:24 +02:00
Samuel Pitoiset
78c2feed00 radv/meta: rename more buffer->memory for fill/copy/update operations
Recently, I renamed most of the helpers for future work but I forgot
few things like meta keys, etc.

This is for consistency.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34558>
2025-04-18 17:21:24 +02:00
Samuel Pitoiset
43c8cb1ae2 radv/meta: remove unused functions/prototypes
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34558>
2025-04-18 17:21:24 +02:00
Samuel Pitoiset
78f03dcf70 radv/meta: simplify dealing with image layouts for blits/resolves
This doesn't do anything useful.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34558>
2025-04-18 17:21:24 +02:00
Alyssa Rosenzweig
0140b7ba57 agx: remove silly cls argument
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34595>
2025-04-18 13:39:27 +00:00
Alyssa Rosenzweig
b1e86b3eae agx: early-kill sources only if it won't shuffle
rather than always early killing and then hitting pathological shuffle
situations, only early-kill when we can prove that we won't need to shuffle. it
turns out that's most of the time.

even with this heuristic, we still get hurt bad in shader-db due to extra moves.
but hopefully, the #s here are small enough that we can move on with our lives
and fix this source of known unsoundness.

this is tagged for backport as it's needed to avoid a perf regression with the
previous patch.

combined stats from this commit and the previous commit:

total instrs in shared programs: 2846065 -> 2852257 (0.22%)
instrs in affected programs: 618734 -> 624926 (1.00%)

total alu in shared programs: 2329477 -> 2335534 (0.26%)
alu in affected programs: 508119 -> 514176 (1.19%)

total gprs in shared programs: 894762 -> 901327 (0.73%)
gprs in affected programs: 36946 -> 43511 (17.77%)

Backport-to: 25.1
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34595>
2025-04-18 13:39:27 +00:00
Alyssa Rosenzweig
b88fe9b0c5 agx: late-kill sources
shader-db stats combined with next commit. this is the rip off the bandaid, next
is the optimize. split to enable bisecting.

the code we have to shuffle clobbered killed sources is broken and, after
thinking about that for a Long time, I don't see a reasonable way to fix it. But
if we late-kill sources - or model our calculations as-if we were late-killing
souces - we never have to shuffle onto a killed source and the problem goes away
entirely.

this is similar in spirit to what NAK does. it's not "optimal", but it's sane.

Backport-to: 25.1
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34595>
2025-04-18 13:39:27 +00:00
Alyssa Rosenzweig
7fad96d194 agx: model sources as late-kill in demand calcs
This hurts us in two ways:
* slightly more spilling (not actually a big problem)
* slightly worse occupancy (the shaders that are "helped" here are from trying
  less hard to fit at higher occupancy levels)

However, in exchange we get a LOT more flexibility in the RA.

total instrs in shared programs: 2847015 -> 2846065 (-0.03%)
instrs in affected programs: 84134 -> 83184 (-1.13%)

total alu in shared programs: 2330406 -> 2329477 (-0.04%)
alu in affected programs: 62305 -> 61376 (-1.49%)

total code size in shared programs: 20497326 -> 20491690 (-0.03%)
code size in affected programs: 586664 -> 581028 (-0.96%)

total gprs in shared programs: 894202 -> 894762 (0.06%)
gprs in affected programs: 8900 -> 9460 (6.29%)

total scratch in shared programs: 13292 -> 13304 (0.09%)
scratch in affected programs: 2924 -> 2936 (0.41%)

total threads in shared programs: 27819712 -> 27814272 (-0.02%)
threads in affected programs: 55296 -> 49856 (-9.84%)

total spills in shared programs: 907 -> 914 (0.77%)
spills in affected programs: 419 -> 426 (1.67%)

total fills in shared programs: 857 -> 862 (0.58%)
fills in affected programs: 389 -> 394 (1.29%)

Backport-to: 25.1
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34595>
2025-04-18 13:39:27 +00:00
Danylo Piliaiev
cc7aa31b30 ir3,tu,freedreno: Allow more tex coord interpolations for prefetch
FS tex prefetch reads tex coords from r0.x, and it doesn't care
what interpolation they have. Thus we can allow all interpolations
which HLSQ_CONTROL_3_REG/HLSQ_CONTROL_4_REG support. Which would
be: (pixel, centroid, sample) x (nopersp, persp). So all but FLAT
are supported.

Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34422>
2025-04-18 13:12:03 +00:00
Danylo Piliaiev
c4c7482a90 ir3: Move nir_intrinsic_barycentric_sysval to common ir3
Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34422>
2025-04-18 13:12:03 +00:00
Eric Engestrom
33caee7dfe glx: drop dead GL_LIB_NAME define
Fixes: 5b89be3545 ("glx: Don't try to dlopen ourselves")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34602>
2025-04-18 12:14:11 +00:00
Rohan Garg
a5033c54e7 anv: use the common function for detecting a mesh shader stage
Signed-off-by: Rohan Garg <rohan.garg@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34604>
2025-04-18 10:08:22 +00:00
Rohan Garg
9b477eea19 intel/compiler: use a immediate when doing the shift
We can pass immediates to SHL and don't need to allocate a separate
register here.

Signed-off-by: Rohan Garg <rohan.garg@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34604>
2025-04-18 10:08:22 +00:00
Yogesh Mohan Marimuthu
e63b24bee8 ac,radeonsi: clear_state is not supported in user queue
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34370>
2025-04-18 07:45:33 +00:00
Yogesh Mohan Marimuthu
61fd80a42e ac,winsys/amdgpu: get userq_ip_mask supported from kernel info ioctl
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34370>
2025-04-18 07:45:33 +00:00
Yogesh Mohan Marimuthu
b9054115d4 amd: update amdgpu_drm.h for userq info
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34370>
2025-04-18 07:45:33 +00:00
Adam Jackson
5b89be3545 glx: Don't try to dlopen ourselves
The intention here, long ago, was to ensure that any symbols the DRI
driver needed from libGL were available. We don't have this problem
anymore, libgallium does not import any symbols from the GLX frontend
(or any other one for that matter).

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30417>
2025-04-18 07:14:56 +00:00
Adam Jackson
9a610c5ab9 loader: Use RTLD_LOCAL not RTLD_GLOBAL
The gallium driver does not expose any symbols that anybody else wants
to see. But if we load it with RTLD_GLOBAL that's what happens, along
with all the symbols in the libraries it depends on.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30417>
2025-04-18 07:14:56 +00:00
Samuel Pitoiset
bc811a602e radeonsi: fix configuring compute scratch
Missed the two different variables for graphics vs compute.

Fixes: e433a57650 ("ac,radeonsi: rework computing scratch wavesize and tmpring register")
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34586>
2025-04-18 06:50:16 +00:00
Valentine Burley
6b1f30f359 ci: Fix Android container structured tagging checks
Structured tagging is used to verify the checksum of the component we're
building. In Android's case, this is currently only used for ANGLE.

Move the build-time check to the debian/x86_64_test-android container,
where ANGLE is built.

Previously, having this definition in .android-variables meant that every
Android test job inherited the ANGLE_TAG variable, making it impossible to
use Mesa as the GLES driver in CI.

Signed-off-by: Valentine Burley <valentine.burley@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34572>
2025-04-18 06:13:13 +00:00
Valentine Burley
b2490e5816 ci: Uncollapse yaml-toml-shell-py-test log sections
This job checks for errors in various scripts and files, so show its
output in the logs for easier debugging.

Signed-off-by: Valentine Burley <valentine.burley@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34572>
2025-04-18 06:13:11 +00:00
Eric Engestrom
519e329cd6 ci: bump apitrace
More dlopen fixes for !30417.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34599>
2025-04-18 05:24:38 +00:00
Juston Li
762b749f9f driconf: enable custom_border_colors_without_format for ANGLE-on-anv
custom_border_colors_without_format was disabled on android for anv to
add support for VK_FORMAT_A4R4G4B4_UNORM_PACK16_EXT.
See https://gitlab.freedesktop.org/mesa/mesa/-/issues/12511#note_2749432

ANGLE's vulkan backend needs custom_border_colors_without_format for
EXT_texture_border_clamp which is required for
GL_ANDROID_extension_pack_es31a so enable it when run under ANGLE which
doesn't utilize VK_FORMAT_A4R4G4B4_UNORM_PACK16_EXT.

Signed-off-by: Juston Li <justonli@google.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34490>
2025-04-17 22:14:57 +00:00
GKraats
995dc61bf5 EGL: legacy-x11=dri2 should support hardware driver
Since MR !33891 EGL only supports a software driver (LLVM).
Routine dri3_x11_connect at
src/egl/drivers/dri2/platform_x11.c fails if DRI3 is not
available. So at that location variable *allow_dri2 should be set.

Looking at the major codition, we see it is not executed
if LIBGL_DRI3_DISABLE is set. In that case the hardware driver
is activated as desired. Previously this was not needed.
Also it is not practical, and not necessary.

I do not understand the major condition, so I did not change it.
This causes some duplicate coding.

Fixes: 323bad6b18 ("egl/x11: split out dri2 init entirely")
Signed-off-by: GKraats <vd.kraats@hccnet.nl>
Acked-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34530>
2025-04-17 21:37:58 +00:00
Konstantin Seurer
76031ba53d radv: Optimize the gfx12 encode shader
Reviewed-by: Natalie Vock <natalie.vock@gmx.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34273>
2025-04-17 20:20:40 +00:00
Konstantin Seurer
97f6287827 radv: Use the BVH8 format on GFX12
Reviewed-by: Natalie Vock <natalie.vock@gmx.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34273>
2025-04-17 20:20:40 +00:00
Konstantin Seurer
95e7343a7d radv/bvh: Add helpers for encoding
The build and update paths can use the same code.

Reviewed-by: Natalie Vock <natalie.vock@gmx.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34273>
2025-04-17 20:20:40 +00:00
Konstantin Seurer
3af19f336c radv/bvh: Document GFX12 BVH encoding
Reviewed-by: Natalie Vock <natalie.vock@gmx.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34273>
2025-04-17 20:20:40 +00:00
Konstantin Seurer
2942e3affb radv/rra: Set rra_accel_struct_header::rtip_level
Reviewed-by: Natalie Vock <natalie.vock@gmx.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34273>
2025-04-17 20:20:40 +00:00
Konstantin Seurer
fa99eeb2b4 radv/rra: Move gfx10_3 specific code to a new file
gfx12 needs completely different code and having them in different files
is cleaner.

Reviewed-by: Natalie Vock <natalie.vock@gmx.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34273>
2025-04-17 20:20:40 +00:00
Konstantin Seurer
9d157173b2 radv: Refactor create_bvh_descriptor
Make it a bit more extendable since GFX12 introduced more fields.

Reviewed-by: Natalie Vock <natalie.vock@gmx.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34273>
2025-04-17 20:20:40 +00:00
Konstantin Seurer
978e9b670e aco,nir: Add support for new GFX12 ray tracing instructions
Adds image_bvh_dual_intersect_ray and image_bvh8_intersect_ray which can
handle the new BVH format. Both instructions write up to 10 VGPRs so
they need to use a vec16 definition in nir.

Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34273>
2025-04-17 20:20:40 +00:00
Natalie Vock
ee0f784858 aco/ra: Don't consider precolored ops/defs in get_reg_impl
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34273>
2025-04-17 20:20:40 +00:00
Natalie Vock
b9e506afd4 aco: Add support for multiple definitions in emit_mimg
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34273>
2025-04-17 20:20:40 +00:00
Natalie Vock
f309d76aab aco: Add support for multiple ops fixed to defs
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34273>
2025-04-17 20:20:40 +00:00
Konstantin Seurer
fe739a2da2 ac: Add rt_version
rt_version describes which generation of RT capabilities a chip has.
This matches what PAL does.

Reviewed-by: Natalie Vock <natalie.vock@gmx.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34273>
2025-04-17 20:20:40 +00:00
Konstantin Seurer
c33e598f39 vulkan: Add vk_ir_header::dst_leaf_node_offset
Reviewed-by: Natalie Vock <natalie.vock@gmx.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34273>
2025-04-17 20:20:40 +00:00
Konstantin Seurer
2dee1117b7 vulkan: Add a vk_device parameter to get_encode_key
Useful for selecting different encoding options based on hardware
generation.

Reviewed-by: Natalie Vock <natalie.vock@gmx.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34273>
2025-04-17 20:20:40 +00:00
Konstantin Seurer
0cc9443e9b util: Add BITSET_EXTRACT
Extracts a <=32 bit range from a bitset.

Reviewed-by: Natalie Vock <natalie.vock@gmx.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34273>
2025-04-17 20:20:40 +00:00
Eric Engestrom
c37a468a8a pick-ui: make Backport-to: 25.0 backport to 25.0 *and more recent release branches*
It is what developers expect, so make the code match it.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34580>
2025-04-17 20:13:41 +00:00
Jesse Natalie
37e6a8b57f d3d12: Minor fixes to residency algorithm when eviction is needed
Always reset batch_count and batch_memory_size. Proceed to eviction
only if we stopped before filling up the batch.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34562>
2025-04-17 19:51:15 +00:00
Jesse Natalie
565980f3c0 d3d12: Add tc memory throttles
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34562>
2025-04-17 19:51:15 +00:00
Caio Oliveira
43e521f7a5 hk: Don't expect garbage on shared_size
Talking to Alyssa this looks like an artifact of old ways that the
shader was being produced, so get rid of that zeroing.  Add an
assert as a canary for any problems we might be missing.

Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34139>
2025-04-17 19:13:18 +00:00
Caio Oliveira
33295b2249 spirv, nir: Allow non-Aliased workgroup memory blocks
Allocate space for the aliased region first, then allocate the
non-Aliased blocks in sequence after that.

SPV_KHR_workgroup_memory_explicit_layout extension added support for
having Blocks of workgroup (shared) memory, which include layout
decoration.  For that extension all such blocks must be decorated with
Aliased.

SPV_KHR_untyped_pointers extension lifts that requirement, allowing
blocks that don't alias in workgroup memory.  They are still explicitly
laid out.

The motivation is that untyped pointers provide a different
mechanism to obtain the same effect as the Aliased blocks.  Instead of
having two Aliased variables with different types, have a single
variable and use an untyped pointer with a different type to access it.

This patch is a preparation for supporting untyped pointers.

Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34139>
2025-04-17 19:13:18 +00:00
Caio Oliveira
fd0a7efb5a spirv, nir: Delay calculation of shared_size when using explicit layout
Move the calculation to nir_lower_vars_to_explicit_types().  This
consolidates the check of shader_info::shared_memory_explicit_layout
in a single place instead of in all drivers.

This is motivated by SPV_KHR_untyped_pointers.  Before that extension
we had essentially two modes for shared memory variables

- No layout decorations in the SPIR-V, and both internal layout and
  driver location was _given by the driver_.

- Explicitly laid out, i.e. they are blocks, and decorated with Aliased.
  Because they all alias, we could assign them driver location directly
  to the start of the shared memory.

With the untyped pointers extension, there's a third option, to be added
by a later commit

- Explicitly laid out, i.e. they are blocks, and NOT decorated
  with Aliased.  Driver location is _given by the driver_.  Blocks
  with and without Aliased can be mixed.

The driver location of multiple blocks that don't alias depend on
alignment that is driver-specific, which we can more easily do from
the nir_lower_vars_to_explicit_types() that already has access to
a function to obtain such value.

Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io> (hk)
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com> (v3dv)
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> (anv/hasvk)
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com> (panvk)
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> (radv)
Reviewed-by: Rob Clark <robdclark@gmail.com> (tu)
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34139>
2025-04-17 19:13:17 +00:00
Eric Engestrom
adfe29cb46 ci: give high priority to post-merge jobs as well
Right now, `deploy-docs` (updating the docs.mesa3d.org website) is the
only job that can exist in that pipeline (along with `alpine/x86_64_build`,
but that job is always a no-op).

Right now this job can get stuck for a long time waiting for a runner,
but it's very short, and we kinda want the website to be updated quickly.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34554>
2025-04-17 18:39:34 +00:00
José Roberto de Souza
a96e280dfe intel: Program XY_FAST_COLOR_BLT::Destination Mocs for gfx12
Copy engine is not used in gfx12 platforms on ANV but that is possible
in Iris.

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34560>
2025-04-17 18:11:44 +00:00
Alyssa Rosenzweig
8b068ef6c1 hk: handle HIC with twiddled
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34585>
2025-04-17 17:54:06 +00:00
Alyssa Rosenzweig
88bdc27342 asahi: let booleans be your guide
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34585>
2025-04-17 17:54:06 +00:00
Alyssa Rosenzweig
551355d4e5 asahi,hk: factor out zls_control pack helper
makes both drivers a lot more readable, but especially gl

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34585>
2025-04-17 17:54:06 +00:00
Alyssa Rosenzweig
3a560dd32b asahi: identify ZLS compress load/store bits
obvious in retrospect!

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34585>
2025-04-17 17:54:06 +00:00
Alyssa Rosenzweig
9757185153 hk: plumb ZLS tiling
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34585>
2025-04-17 17:54:06 +00:00
Alyssa Rosenzweig
454a90eaa8 asahi: plumb ZLS tiling bits
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34585>
2025-04-17 17:54:06 +00:00
Alyssa Rosenzweig
715f6b3b33 asahi: identify ZLS tiling bits
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34585>
2025-04-17 17:54:06 +00:00
Alyssa Rosenzweig
0dca602aff asahi: generalize compression check
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34585>
2025-04-17 17:54:06 +00:00
Alyssa Rosenzweig
72f3dcc8da asahi: generalize tiling checks
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34585>
2025-04-17 17:54:06 +00:00
Alyssa Rosenzweig
c4130af883 asahi: extend tile width/height in texture desc
we need to support up to 16384x16384 for atomics on twiddled images.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34585>
2025-04-17 17:54:06 +00:00
Alyssa Rosenzweig
f21dc4d0cf asahi: pack sample count in s/w texture descriptor
not needed for non-msaa case, and this lets us free up 2 bits.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34585>
2025-04-17 17:54:06 +00:00
Alyssa Rosenzweig
8f57b5187f ail: support twiddled
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34585>
2025-04-17 17:54:05 +00:00
Alyssa Rosenzweig
6fdad684da ail: generalize ail_space_bits
for full twiddling.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34585>
2025-04-17 17:54:05 +00:00
Alyssa Rosenzweig
e5006dc6ae hk: fill sparse.write with nonzero values
fuzz for bugs.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34585>
2025-04-17 17:54:05 +00:00
Alyssa Rosenzweig
ffac153bcf hk: reindent/unscope
no functional change, split because the diff is all spacing changes.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34585>
2025-04-17 17:54:05 +00:00
Alyssa Rosenzweig
86d3489c35 hk: drop FS null checks
these are all dead now.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34585>
2025-04-17 17:54:05 +00:00
Alyssa Rosenzweig
3ab8ce8579 hk: fix null FS corner cases
this fixes null FS + cull distance/API sample mask, which require a prolog.
fixes upcoming CTS.

Backport-to: 25.1
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34585>
2025-04-17 17:54:05 +00:00
Alyssa Rosenzweig
d959557669 hk: fix tessellation + clipper queries
fixes upcoming cts

Backport-to: 25.1
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34585>
2025-04-17 17:54:05 +00:00
Rhys Perry
427479c040 aco: remove va_vdst/vm_vsrc/sa_sdst variables
Use the "wait" variable instead.

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34529>
2025-04-17 17:28:22 +00:00
Rhys Perry
3d6fa6996c aco: init vm_vsrc/sa_sdst from depctr_wait
fossil-db (navi31):
Totals from 5805 (7.31% of 79377) affected shaders:
Instrs: 14229621 -> 14207115 (-0.16%); split: -0.16%, +0.00%
CodeSize: 75358724 -> 75268624 (-0.12%); split: -0.12%, +0.00%
Latency: 133637034 -> 133624262 (-0.01%); split: -0.01%, +0.00%
InvThroughput: 22067819 -> 22066213 (-0.01%); split: -0.01%, +0.00%

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34529>
2025-04-17 17:28:22 +00:00
Rhys Perry
ce2be5ab8e aco: combine VALU lanemask hazard into VALUMaskWriteHazard
This is now basically the same as the original VALUMaskWriteHazard, except
it now considers both VALU and SALU writes.

Now that it's a part of VALUMaskWriteHazard, differences from the original
VALU lanemask workaround are:
- it includes SALU reads after the write
- it includes VALU writes and SALU/VALU reads after the write which are
  not lanemasks
- it combines s_waitcnt_depctr instructions when it's a read after both a
  SALU write and a VALU write
- non-exec VALU SGPR reads reset the SGPRs read by VALU as a lanemask
- exec SGPRs are ignored

resolve_all_gfx11() is also finished.

fossil-db (navi31):
Totals from 21538 (27.13% of 79377) affected shaders:
Instrs: 27628855 -> 27552972 (-0.27%); split: -0.30%, +0.03%
CodeSize: 145968448 -> 145667616 (-0.21%); split: -0.23%, +0.02%
Latency: 209537805 -> 209509519 (-0.01%); split: -0.02%, +0.00%
InvThroughput: 36304270 -> 36301624 (-0.01%); split: -0.01%, +0.00%

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/12623
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/11480
Backport-to: 25.0
Backport-to: 25.1
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34529>
2025-04-17 17:28:22 +00:00
Mel Henning
eee3c8eab8 nak: Handle idp4 ureg latencies
Fixes: 6b8a4e6bb7 ("nak: Add Turing latency information")
Fixes: 7a01953a39 ("nak: Add Ampere and Ada latency information")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/12993
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34563>
2025-04-17 17:10:40 +00:00
Mel Henning
de1ed48325 nak/spill_values: Spill constants across edges if needed
In a previous iteration of the spilling code, we added an extra check to
only spill across edges if the value being spilled is in the W set.
This was due to a misunderstanding of the modeling of S and W in Braun
and Hack.  In the current implementation, we maintain the invariant that
every live value is in at least one of S or W so we don't need that
check but it was left in by mistake.

One exception to this rule was added when we special-cased constant
values.  Now the invariant is that every live value is in S, in W, or is
a constant.  When we made this change, the check we accidentally left in
bit us because now if a value is constant but not in W, it wasn't
getting spilled across the edge.  This can result in a value getting
filled later which was never spilled, leading to undefined values.

Fixes: 7b82e26e3c ("nak: Don't spill/fill const values")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/12993
Co-authored-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34563>
2025-04-17 17:10:40 +00:00
Eric Engestrom
8744c98fa9 meson: remove duplicate deprecated for power8 option
Fixes: c4b305079d ("meson: Simplify the power8 optimization logic")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34565>
2025-04-17 14:43:30 +00:00
Eric Engestrom
b9472db496 meson: remove duplicate deprecated for gallium-xa option
Fixes: cf40099730 ("meson: deprecate gallium-xa")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34565>
2025-04-17 14:43:30 +00:00
Rohan Garg
cbc1ec4f73 anv: re enable compression for CPS surfaces on platforms other than Xe
I accidentally disabled compression on CPS surfaces marked as storage or
color attachment for all platforms, when this should only be limited to
Xe.

Fixes: 80f9b6 ('anv: CPB surfaces that are used as color attachments or for stores cannot be compressed')
Signed-off-by: Rohan Garg <rohan.garg@intel.com>
Reviewed-by: Nanley Chery <nanley.g.chery@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34297>
2025-04-17 14:24:11 +00:00
Rhys Perry
4fcf2eb1d7 aco/gfx12: VOPD src0/1 are src bank compatible if they are the same vgpr
fossil-db (gfx1201):
Totals from 66518 (83.80% of 79377) affected shaders:
Instrs: 36939667 -> 36656685 (-0.77%); split: -0.79%, +0.02%
CodeSize: 220575208 -> 220201764 (-0.17%); split: -0.21%, +0.04%
Latency: 258919732 -> 258137974 (-0.30%); split: -0.35%, +0.05%
InvThroughput: 49911351 -> 49643836 (-0.54%); split: -0.55%, +0.02%
VClause: 788661 -> 788430 (-0.03%); split: -0.04%, +0.01%
SClause: 1176416 -> 1176263 (-0.01%); split: -0.02%, +0.01%
VALU: 18014058 -> 17818119 (-1.09%); split: -1.10%, +0.01%
VOPD: 4926983 -> 5122922 (+3.98%); split: +4.01%, -0.04%

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34246>
2025-04-17 14:00:29 +00:00
Rhys Perry
3446f2059d aco/gfx12: assume VOPD with two v_mov_b32 are src bank compatible
fossil-db (gfx1201):
Totals from 10576 (13.32% of 79377) affected shaders:
(no stats changed)

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34246>
2025-04-17 14:00:29 +00:00
Rhys Perry
1bd5ae7b14 aco: refactor can_use_vopd so that it returns flags
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34246>
2025-04-17 14:00:29 +00:00
Rhys Perry
d4b418bbb9 aco: add are_src_banks_compatible helper for VOPD creation
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34246>
2025-04-17 14:00:29 +00:00
Rhys Perry
4b0da5b51f aco: rename is_opy_only to can_be_opx
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34246>
2025-04-17 14:00:29 +00:00
Rhys Perry
408fa33c09 aco/gfx12: don't use second VALU for VOPD's OPX if there is a WaR
fossil-db (gfx1201):
Totals from 38908 (49.02% of 79377) affected shaders:
Instrs: 30268107 -> 30268131 (+0.00%); split: -0.00%, +0.00%
CodeSize: 180843648 -> 180843640 (-0.00%); split: -0.00%, +0.00%
Latency: 224905962 -> 224906072 (+0.00%); split: -0.00%, +0.00%
InvThroughput: 44322988 -> 44323004 (+0.00%)
VALU: 15124145 -> 15124167 (+0.00%)
VOPD: 4018504 -> 4018482 (-0.00%)

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Backport-to: 25.0
Backport-to: 25.1
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34246>
2025-04-17 14:00:29 +00:00
Tomeu Vizoso
a9fde960e6 etnaviv/ml: Support FullyConnected with signed weights
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34545>
2025-04-17 13:30:21 +00:00
Tomeu Vizoso
9615d44d6e teflon: Skip unsupported FullyConvolution operations
Drivers don't support these combinations yet.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34545>
2025-04-17 13:30:21 +00:00
Tomeu Vizoso
9409595c32 etnaviv/ml: All tensors are now 4D, adapt to it
After "teflon: Set unused dimensions to 1", all tensors have 4
dimensions, so change the dim index accordingly.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34498>
2025-04-17 13:13:09 +00:00
Tomeu Vizoso
c728e73d65 etnaviv/ml: Track memory layout of tensors
Improve the decision on when to add transpose and detranspose jobs by
tracking the memory layout that a tensor is in.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34498>
2025-04-17 13:13:09 +00:00
Tomeu Vizoso
c4a5f8d665 teflon: Set unused dimensions to 1
So drivers don't need to superfluously watch out for zeroes when
multiplying among dimensions.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34498>
2025-04-17 13:13:09 +00:00
Tomeu Vizoso
23ae1c3bff teflon: Actually accept concatenations with different number of channels
It is supported now by Etnaviv.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34498>
2025-04-17 13:13:09 +00:00
Tomeu Vizoso
bde0e69bcd etnaviv/ml: Consolidate transpose/detranspose
To simplify things, state that all operations as implemented expect
their input tensors to be in the channel order that the hardware
supports, and that the output tensors will be in that same order as
well.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34498>
2025-04-17 13:13:09 +00:00
Tomeu Vizoso
e06265ed3a teflon: Only mark integers as signed
As these are the types that need special handling, eg. not
kTfLiteFloat32.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34498>
2025-04-17 13:13:09 +00:00
Samuel Pitoiset
209a0ede98 radv: add a function to emit meshlet registers on GFX11+
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34518>
2025-04-17 12:49:47 +00:00
Samuel Pitoiset
836757bec3 radv: tidy up radv_emit_ps_epilog_state()
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34518>
2025-04-17 12:49:47 +00:00
Samuel Pitoiset
dca35b7226 radv: tidy up radv_emit_geometry_shader()
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34518>
2025-04-17 12:49:47 +00:00
Samuel Pitoiset
d999afeb7a radv: tidy up radv_emit_vertex_shader()
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34518>
2025-04-17 12:49:47 +00:00
Samuel Pitoiset
85fdf69027 radv: simplify combining TES/VS+GS config registers
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34518>
2025-04-17 12:49:47 +00:00
Samuel Pitoiset
0dd9833348 radv: remove redundant assertion when emitting PS epilog state
It's already checked by radv_emit_32bit_pointer().

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34518>
2025-04-17 12:49:47 +00:00
Samuel Pitoiset
a230d2daa3 radv: use radeon_set_sh_reg() for only 1 DWORD
It's just shorter to write.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34518>
2025-04-17 12:49:47 +00:00
Antonio Ospite
4dabc7776f ci/android: show how to add more Android CTS test cases
Show how to add more Android CTS tests cases, using --include-filters

Only CtsNativeHardwareTestCases and CtsSkQPTestCases are actually
enabled for now, because the android-angle-lavapipe-cts job is part of
the pre-merge pipeline and these modules would not be too expensive to
run.

The container size increases by about 60Mb and the test time from 4m to
7 min on a local system, so it's an acceptable compromise to show how
multiple modules can be tested.

A similar mechanism will be used to add CtsDeqpTestCases tests in the
future, probably in nightly or weekly jobs, because that would require
more space in the containers and a lot more time to run the tests.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34479>
2025-04-17 11:50:07 +00:00
Antonio Ospite
fbc715200e ci/android: strip tailing spaces in Android CTS expectation files
Trailing spaces in include and exclude filters can confuse cts-tradefed,
so make sure to strip those from the lines in Android CTS expectation
files, since those are used to build the filter arguments.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34479>
2025-04-17 11:50:07 +00:00
Antonio Ospite
8f41667b37 ci/android: specify EXCLUDE_FILTERS after INCLUDE_FILTERS when launching Android CTS
Specify EXCLUDE_FILTERS after INCLUDE_FILTERS when launching Android
CTS, to make it clearer that exclude filters take the precedence on
include filters.

This change is not strictly necessary, according to the documentation
exclude filters take the precedence anyway, see
https://source.android.com/docs/core/tests/tradefed/testing/through-suite/option-passing#pass_filters_to_the_suite

So this change is added only to document the behavior rather then to
control it.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34479>
2025-04-17 11:50:07 +00:00
Antonio Ospite
af96ed09f0 ci/deqp: force overwriting exiting files when compressing with zstd
This does not change the behavior in CI runs where the files are always
created from scratch, but it helps on local invocations when running the
command multiple times on the same rootfs.

It prevents build-deqp.sh to stop at the command line prompt for
questions like:

-----------------------------------------------------------------------
zstd: mustpass/egl-main.txt.zst already exists; overwrite (y/n) ? y
zstd: mustpass/gles2-khr-main.txt.zst already exists; overwrite (y/n) ? y      =>  5%
zstd: mustpass/gles2-main.txt.zst already exists; overwrite (y/n) ? y          =>  6%
-----------------------------------------------------------------------
...

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34468>
2025-04-17 11:07:17 +00:00
Antonio Ospite
3e2f43bb13 ci/android: only use custom kernel for venus GPU_MODEs
The venus GPU_MODEs require some patches to the Android 14 kernel to
work, so custom built bzImage and initramfs.img need to be passed to
launch_cvd.

However specifying a custom kernel triggers some image repacking which
is quite expensive in terms of I/O; so, since the custom kernel is only
needed for the venus GPU_MODEs, avoid specifying it for the other modes
to speed up launching cuttlefish in those cases.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34468>
2025-04-17 11:07:17 +00:00
Antonio Ospite
725acc0b74 meson: bump default value of platform-sdk-version to Android 14
Bump default value of platform-sdk-version to 34 which is Android 14.

This is the API version recommended by Google for new app development
since 31 August 2024, but it does not hurt to strongly suggest it for
mesa as well.

Developers who need to build for older Android SDK versions can always
pass `platform-sdk-version` when configuring the build.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34468>
2025-04-17 11:07:17 +00:00
Samuel Pitoiset
11e8a96495 radv: use common scratch tmpring size programming
No logical changes.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34549>
2025-04-17 10:35:40 +00:00
Samuel Pitoiset
710d7ea8b8 radv: compute the optimal scratch wavesize
This might increase the scratch BO sizes but it's supposed to be
faster because scratch waves would be distributed among memory channels.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34549>
2025-04-17 10:35:40 +00:00
Samuel Pitoiset
e433a57650 ac,radeonsi: rework computing scratch wavesize and tmpring register
To be re-used by RADV.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34549>
2025-04-17 10:35:40 +00:00
Samuel Pitoiset
d94f8b4460 ac/gpu_info,radv: add scratch_wavesize_granularity info
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34549>
2025-04-17 10:35:40 +00:00
Icenowy Zheng
82dda21806 zink: Do not use demote on IMG blobs
The implementation of demote in IMG blobs seems to be a piece of hack,
and the current use of it in Zink leads to assertion failure with
information "Uniflex does not support demote and terminate in the same
shader".

Disable usage of demote for IMG blobs.

Signed-off-by: Icenowy Zheng <uwu@icenowy.me>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33051>
2025-04-17 10:14:45 +00:00
Daniel Stone
8d08cde667 ci/piglit: Use structured tagging for Piglit
Structured tagging (cf. mesa/mesa!33421) captures a checksum of the
thing we think we're building, and verifies this through the chain.

When we run container builds, we check that the tag we've captured in
the CI variables matches the calculated checksum, to make sure the
declared tags are consistent and we always have traceability.

When we run tests, we check the tags again between what was declared in
the CI variables and what we're actually running from the test
container. This makes sure that we're always testing what we think we're
testing.

As a side advantage, the rule inheritance we need to make this work
means that we can start doing more optional downloads via overlays,
instead of pulling a whole container full of stuff we might not ever
use.

Signed-off-by: Daniel Stone <daniels@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34539>
2025-04-17 09:22:39 +00:00
Samuel Pitoiset
e616761fb2 radv: re-introduce the compute vs CP DMA heuristic for copy/fill operations
This caused a -5% performance regression in Control because using
compute always eats resources.

This new approach introduces a flag called RADV_COPY_FLAGS_DEVICE_LOCAL
which can be used to indicate if the underlying memory is device local.
This should also help for future work.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/12639
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34556>
2025-04-17 08:59:58 +00:00
Samuel Pitoiset
5e2508e7c4 radv: simplify radv_fill_xxx() helpers
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34556>
2025-04-17 08:59:58 +00:00
Samuel Pitoiset
8ba94d8263 radv: add radv_fill_image() helper
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34556>
2025-04-17 08:59:58 +00:00
Samuel Pitoiset
0fa43b5bfb radv: use radv_fill_memory() in the accel struct path
It's now possible to remove the NULL BO check.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34556>
2025-04-17 08:59:58 +00:00
Tapani Pälli
6d70ec449f iris: make sure to not mix compressed vs non-compressed
This commit implements the following requirement:

   "Keep any UMD-recycling of compression-enabled/disabled
    memory separate."

As additional info there are 2 related wa's for the issue:

   Wa_14018443005
   Wa_18038669374

Cc: mesa-stable
Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: José Roberto de Souza <jose.souza@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34499>
2025-04-17 06:17:53 +00:00
Tapani Pälli
c2a4657862 iris: force reallocate on eglCreateImage with GFX >= 20
Cc: mesa-stable
Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: José Roberto de Souza <jose.souza@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34499>
2025-04-17 06:17:53 +00:00
Tomeu Vizoso
aa73767f5e etnaviv/ml: Support per-channel quantized weights
Dequantize the weights, calculate new quantization values based on the
minimum and maximum values and requantize again.

This causes a loss of accuracy when compared to proper per-axis
quantization as we don't have the original data from training any more.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34497>
2025-04-17 05:25:49 +00:00
Philipp Zabel
ce9030740a teflon: Allow per-axis quantization
Allow per-axis quantization in the output channel dimension.

Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34497>
2025-04-17 05:25:49 +00:00
Tomeu Vizoso
7dfcca9007 etnaviv/ml: Fix zero point values for signedness
Take into account the signedness for FullyConnected.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34497>
2025-04-17 05:25:49 +00:00
Tomeu Vizoso
d88f0b8f3c etnaviv/ml: Reorder dimensions in convolutions
The blob does this, and doesn't seem to just be for performance as I see
some tests being fixed by it.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34497>
2025-04-17 05:25:49 +00:00
Thomas H.P. Andersen
d55a69e769 nak: make is_fneg_zero detect -rZ
fold_imm starts with this check:
        let SrcRef::Imm32(mut u) = self.src_ref else {
            return *self;
        };

For -rZ we thus return early and the matching in is_fneg_zero does not
find it. This MR adds a match for SrcRef::Zero + SrcMod::FNeg.

This lets copy propagation fold this:

r3  = shfl.bfly r2 0x2 0x1c03
r3  = fswzadd.ftz r3 r2 [sub, sub, subr, subr]
r3  = fadd.ftz -rZ |r3|
r16 = shfl.bfly r2 0x1 0x1c03
r16 = fswzadd.ftz r16 r2 [sub, subr, sub, subr]
r16 = fadd.ftz -rZ |r16|
r3  = fadd.ftz r16 r3

into:

r3  = shfl.bfly r2 0x2 0x1c03
r3  = fswzadd.ftz r3 r2 [sub, sub, subr, subr]
r16 = shfl.bfly r2 0x1 0x1c03
r16 = fswzadd.ftz r16 r2 [sub, subr, sub, subr]
r3  = fadd.ftz |r16| |r3|

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/12480
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33107>
2025-04-17 02:22:02 +00:00
Faith Ekstrand
47fc468944 nak/sm70: Fix the bit74_75_ar_mod assert
It's used for src2, not src0.

Fixes: 40422927dc ("nak: Pass has_mod to all form of src2 requiring it")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33107>
2025-04-17 02:22:02 +00:00
Faith Ekstrand
328112c6bc nak/legalize: Take a RegFile in copy_alu_src_and_lower_ineg()
Fixes: af6093a712 ("nak/legalize: Add a helper for lowering ineg")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33107>
2025-04-17 02:22:02 +00:00
Faith Ekstrand
22a30bfa4f nak/legalize: Take a RegFile in copy_alu_src_and_lower_fmod
Otherwise, we'll screw up uniform GPRs.

Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33107>
2025-04-17 02:22:02 +00:00
Eric Engestrom
269b09c449 docs: add sha sum for 25.0.4
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34564>
2025-04-17 02:22:24 +02:00
Eric Engestrom
71c1acfaf2 docs: add release notes for 25.0.4
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34564>
2025-04-17 02:22:24 +02:00
Eric Engestrom
f74a585dbb docs: update calendar for 25.0.4
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34564>
2025-04-17 02:22:23 +02:00
Caio Oliveira
d5ad798140 spirv, radv, intel: Add NIR intrinsic for cmat conversion
A cooperative matrix conversion operation was represented in NIR by the
cmat_unary_op intrinsic with an nir_alu_op as extra parameter,
that was already lowered to a specific conversion operation
based on the matrix types.

Instead of that, add a new intrinsic `cmat_convert` that is specific
for that conversion.  In addition to the src/dst matrix descriptions
already available, also include the signedness information in the
intrinsic (reuse nir_cmat_signed for that).  This is needed because
different Convert operations define different interpretations for
integers, regardless their original type.

In this patch, both radv and intel were changed to use the same logic
that was previously used to pick the lowered ALU op.

This change will help represent cmat conversions involving BFloat16,
because it avoids having to create new NIR ALU ops for all the
combinations involving BFloat16.

Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34511>
2025-04-16 23:13:36 +00:00
Valentine Burley
2f02fa5db4 intel/ci: Start using the new 6.14 kernel on JSL
The new 6.14 kernel in gfx-ci linux is now stable on Jasper Lake, so drop
the kernel override from the anv-jsl-vk job.

Signed-off-by: Valentine Burley <valentine.burley@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34553>
2025-04-16 22:13:19 +00:00
Valentine Burley
da71656dd9 ci/lava: Merge and deduplicate log sections
Drop the duplicated rootfs preparation sections, and combine the
TEST_SUITE and TEST_DUT_SUITE sections.

Signed-off-by: Valentine Burley <valentine.burley@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34523>
2025-04-16 21:34:35 +00:00
Valentine Burley
70b033d2ad ci/lava: Don't include the timeout in the log sections
Reduces visual clutter in the job logs.

Signed-off-by: Valentine Burley <valentine.burley@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34523>
2025-04-16 21:34:35 +00:00
Valentine Burley
f7224dd159 ci/lava: Collapse more log sections
These sections were not collapsed, causing the setup sections to clutter
the job logs.

Signed-off-by: Valentine Burley <valentine.burley@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34523>
2025-04-16 21:34:35 +00:00
Patrick Lerda
60a31156b0 mesa_interface: fix legacy dri2 compatibility
These values are shared with xcb/dri2.h, and can't be changed
without breaking the legacy dri2 compatibility. This change
reverses partially the update done by 3b603d1646.

For instance this issue is triggered on dri2 i915 with
"piglit/bin/glx-copy-sub-buffer -auto" or
"piglit/bin/hiz-depth-read-window-stencil0 -auto".

Fixes: 3b603d1646 ("mesa_interface: remove unused stuff")
Signed-off-by: Patrick Lerda <patrick9876@free.fr>
Acked-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34561>
2025-04-16 20:19:14 +00:00
Mike Blumenkrantz
de6efc01c1 zink: verify that surface exists when adding implicit feedback loop
this can be null if multiple contexts are in use

cc: mesa-stable

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34557>
2025-04-16 18:26:32 +00:00
Tomeu Vizoso
251d1e2551 etnaviv/ml: Use etna_buffer_resource instead of etna_resource
Otherwise we hit an assert in newly added code.

Fixes: d738b3ea2b ("etnaviv: split PIPE_BUFFER resources from other types of resources")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34481>
2025-04-16 17:53:39 +00:00
Tomeu Vizoso
1f5bc6ddbf etnaviv/tests: Add comment on why the SSDLite MobileDet test fails
So we don't waste time debugging it again.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34481>
2025-04-16 17:53:39 +00:00
Tomeu Vizoso
0213eef3b3 teflon/tests: Dump output buffers to disk
It can be convenient to compare the outputs from the CPU, proprietary
driver and Mesa to check for convergence.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34481>
2025-04-16 17:53:39 +00:00
Tomeu Vizoso
80e09e9b1f teflon/tests: Divide the tolerance level by a constant
A final tolerance of 0.6 seems to be about right for big models with
per-channel quantization.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34481>
2025-04-16 17:53:39 +00:00
Tomeu Vizoso
15a8c49ad5 teflon/tests: Print shorter negative INT8s
As we know that only the last 8 bits are relevant.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34481>
2025-04-16 17:53:39 +00:00
Tomeu Vizoso
554fb8af11 teflon/tests: Take into account signedness when checking the output tensors
Otherwise, it won't be able to apply the tolerance in all cases.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34481>
2025-04-16 17:53:39 +00:00
Tomeu Vizoso
b3746305ea teflon/tests: Test all models in /models
It was becoming quite tedious to add models to testing.

This will also make it easier to locally test with non-redistributable
models.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34481>
2025-04-16 17:53:39 +00:00
Tomeu Vizoso
68200ac961 teflon/tests: Use a single tolerance value
We have improved our accuracy and can use just a tolerance of 2 for all
the tests we currently have.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34481>
2025-04-16 17:53:39 +00:00
Jesse Natalie
7ca4e4d34b microsoft/compiler: Force load_output => undef in tess_ctrl main func
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34541>
2025-04-16 16:02:07 +00:00
José Roberto de Souza
ab591dc642 iris: Fix IRIS_HEAP_SYSTEM_MEMORY_CACHED_COHERENT slab parent allocation
It was using the same switch case from IRIS_HEAP_SYSTEM_MEMORY_UNCACHED
allocating both as uncached.

Cc: stable
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34533>
2025-04-16 15:43:15 +00:00
Alyssa Rosenzweig
9b55451ea7 hk: fix underbinding scratch
need to round up to page size (minimally) or we assert out. hit in vulkaninfo
of all things.

Fixes: 678134add5 ("hk: implement sparse")
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34526>
2025-04-16 15:24:37 +00:00
Eric Engestrom
dbe6c39270 docs: update calendar for 25.1.0-rc1
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34555>
2025-04-16 15:11:40 +00:00
Mike Blumenkrantz
5844dea316 delete clover
there comes a time when a project has to be declared unfit to remain
in the tree

this frontend hasn't seen actual development in about 6 years

if someone has a pressing need to continue development, there's no
blocker to un-deleting it, but unless that happens, there's now a
more featureful, more conformant, more active CL frontend in the tree

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19385>
2025-04-16 10:01:44 -04:00
Pierre-Eric Pelloux-Prayer
555821ff93 winsys/amdgpu: disable VM_ALWAYS_VALID
The referenced commit has been identified as the root cause of
graphic artifacts / hangs on some APUs.

For now disable AMDGPU_GEM_CREATE_VM_ALWAYS_VALID on all chips
except when user queues are used.

See https://gitlab.freedesktop.org/mesa/mesa/-/issues/12809.

Fixes: 8c91624614 ("winsys/amdgpu: use VM_ALWAYS_VALID for all VRAM and GTT allocations")
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34547>
2025-04-16 13:22:16 +00:00
Eric Engestrom
3f7345a0ce docs: reset new_features.txt
Signed-off-by: Eric Engestrom <eric@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34552>
2025-04-16 14:30:26 +02:00
Eric Engestrom
b8968276e6 VERSION: bump to 25.2
Signed-off-by: Eric Engestrom <eric@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34552>
2025-04-16 14:30:14 +02:00
989 changed files with 22247 additions and 44203 deletions

View File

@@ -47,6 +47,10 @@ workflow:
DEQP_RUNNER_MAX_FAILS: 40
# post-merge pipeline
- if: &is-post-merge $GITLAB_USER_LOGIN == "marge-bot" && $CI_PIPELINE_SOURCE == "push"
variables:
FDO_RUNNER_JOB_PRIORITY_TAG_X86_64: priority:high
FDO_RUNNER_JOB_PRIORITY_TAG_X86_64_KVM: priority:high-kvm
FDO_RUNNER_JOB_PRIORITY_TAG_AARCH64: priority:high-aarch64
# Pre-merge pipeline
- if: &is-pre-merge $CI_PIPELINE_SOURCE == "merge_request_event"
# Push to a branch on a fork
@@ -74,12 +78,11 @@ workflow:
variables:
FDO_UPSTREAM_REPO: mesa/mesa
MESA_TEMPLATES_COMMIT: &ci-templates-commit 48e4b6c9a2015f969fbe648999d16d5fb3eef6c4
MESA_TEMPLATES_COMMIT: &ci-templates-commit c6aeb16f86e32525fa630fb99c66c4f3e62fc3cb
CI_PRE_CLONE_SCRIPT: |-
set -o xtrace
wget -q -O download-git-cache.sh ${CI_PROJECT_URL}/-/raw/${CI_COMMIT_SHA}/.gitlab-ci/download-git-cache.sh
bash download-git-cache.sh
rm download-git-cache.sh
curl --silent --location --fail --retry-connrefused --retry 3 --retry-delay 10 \
${CI_PROJECT_URL}/-/raw/${CI_COMMIT_SHA}/.gitlab-ci/download-git-cache.sh | bash
set +o xtrace
S3_JWT_FILE: /s3_jwt
S3_JWT_FILE_SCRIPT: |-
@@ -166,37 +169,34 @@ stages:
- build-only
- code-validation
- amd
- amd-postmerge
- amd-nightly
- intel
- intel-postmerge
- intel-nightly
- nouveau
- nouveau-postmerge
- nouveau-nightly
- arm
- arm-postmerge
- arm-nightly
- broadcom
- broadcom-postmerge
- broadcom-nightly
- freedreno
- freedreno-postmerge
- freedreno-nightly
- etnaviv
- etnaviv-postmerge
- etnaviv-nightly
- software-renderer
- software-renderer-postmerge
- software-renderer-nightly
- layered-backends
- layered-backends-postmerge
- layered-backends-nightly
- performance
- deploy
include:
- project: 'freedesktop/ci-templates'
ref: 16bc29078de5e0a067ff84a1a199a3760d3b3811
file:
- '/templates/ci-fairy.yml'
- project: 'freedesktop/ci-templates'
ref: *ci-templates-commit
file:
- '/templates/alpine.yml'
- '/templates/debian.yml'
- '/templates/fedora.yml'
- '/templates/ci-fairy.yml'
- local: '.gitlab-ci/image-tags.yml'
- local: '.gitlab-ci/lava/lava-gitlab-ci.yml'
- local: '.gitlab-ci/container/gitlab-ci.yml'
@@ -337,7 +337,7 @@ include:
# Git archive
make git archive:
make-git-archive:
extends:
- .fdo.ci-fairy
stage: git-archive
@@ -351,7 +351,7 @@ make git archive:
# compress the current folder
- tar -cvzf ../$CI_PROJECT_NAME.tar.gz .
- s3_upload ../$CI_PROJECT_NAME.tar.gz "https://$S3_HOST/git-cache/$CI_PROJECT_NAMESPACE/$CI_PROJECT_NAME/"
- ci-fairy s3cp --token-file "${S3_JWT_FILE}" ../$CI_PROJECT_NAME.tar.gz https://$S3_HOST/git-cache/$CI_PROJECT_NAMESPACE/$CI_PROJECT_NAME/$CI_PROJECT_NAME.tar.gz
# Sanity checks of MR settings and commit logs
sanity:
@@ -381,7 +381,6 @@ sanity:
DEBIAN_TEST_GL_TAG
DEBIAN_TEST_VK_TAG
FEDORA_X86_64_BUILD_TAG
KERNEL_ROOTFS_TAG
KERNEL_TAG
PKG_REPO_REV
WINDOWS_X64_BUILD_TAG

View File

@@ -4,8 +4,8 @@
. "${SCRIPTS_DIR}/setup-test-env.sh"
export PATH=/android-tools/android-cts/jdk/bin/:/android-tools/build-tools:$PATH
export JAVA_HOME=/android-tools/android-cts/jdk
export PATH=/android-cts/jdk/bin/:$PATH
export JAVA_HOME=/android-cts/jdk
# Wait for the appops service to show up
while [ "$($ADB shell dumpsys -l | grep appops)" = "" ] ; do sleep 1; done
@@ -14,23 +14,23 @@ SKIP_FILE="$INSTALL/${GPU_VERSION}-android-cts-skips.txt"
EXCLUDE_FILTERS=""
if [ -e "$SKIP_FILE" ]; then
EXCLUDE_FILTERS="$(grep -v -E "(^#|^[[:space:]]*$)" "$SKIP_FILE" | sed -s 's/.*/--exclude-filter "\0" /g')"
EXCLUDE_FILTERS="$(grep -v -E "(^#|^[[:space:]]*$)" "$SKIP_FILE" | sed -e 's/\s*$//g' -e 's/.*/--exclude-filter "\0" /g')"
fi
INCLUDE_FILE="$INSTALL/${GPU_VERSION}-android-cts-include.txt"
if [ -e "$INCLUDE_FILE" ]; then
INCLUDE_FILTERS="$(grep -v -E "(^#|^[[:space:]]*$)" "$INCLUDE_FILE" | sed -s 's/.*/--include-filter "\0" /g')"
INCLUDE_FILTERS="$(grep -v -E "(^#|^[[:space:]]*$)" "$INCLUDE_FILE" | sed -e 's/\s*$//g' -e 's/.*/--include-filter "\0" /g')"
else
INCLUDE_FILTERS=$(printf -- "--include-filter %s " $ANDROID_CTS_MODULES | sed -e 's/ $//g')
fi
set +e
eval "/android-tools/android-cts/tools/cts-tradefed" run commandAndExit cts-dev \
$EXCLUDE_FILTERS \
$INCLUDE_FILTERS
eval "/android-cts/tools/cts-tradefed" run commandAndExit cts-dev \
$INCLUDE_FILTERS \
$EXCLUDE_FILTERS
[ "$(grep "^FAILED" /android-tools/android-cts/results/latest/invocation_summary.txt | tr -d ' ' | cut -d ':' -f 2)" = "0" ]
[ "$(grep "^FAILED" /android-cts/results/latest/invocation_summary.txt | tr -d ' ' | cut -d ':' -f 2)" = "0" ]
# shellcheck disable=SC2034 # EXIT_CODE is used by the script that sources this one
EXIT_CODE=$?
@@ -38,7 +38,7 @@ set -e
section_switch cuttlefish_results "cuttlefish: gathering the results"
cp -r "/android-tools/android-cts/results/latest"/* $RESULTS_DIR
cp -r "/android-tools/android-cts/logs/latest"/* $RESULTS_DIR
cp -r "/android-cts/results/latest"/* $RESULTS_DIR
cp -r "/android-cts/logs/latest"/* $RESULTS_DIR
section_end cuttlefish_results

View File

@@ -1,17 +0,0 @@
#!/bin/bash
# shellcheck disable=SC2086 # we want word splitting
if [ -z "$BM_POE_INTERFACE" ]; then
echo "Must supply the PoE Interface to power down"
exit 1
fi
if [ -z "$BM_POE_ADDRESS" ]; then
echo "Must supply the PoE Switch host"
exit 1
fi
SNMP_KEY="1.3.6.1.4.1.9.9.402.1.2.1.1.1.$BM_POE_INTERFACE"
SNMP_OFF="i 4"
snmpset -v2c -r 3 -t 30 -cmesaci "$BM_POE_ADDRESS" "$SNMP_KEY" $SNMP_OFF

View File

@@ -1,22 +0,0 @@
#!/bin/bash
# shellcheck disable=SC2086 # we want word splitting
if [ -z "$BM_POE_INTERFACE" ]; then
echo "Must supply the PoE Interface to power up"
exit 1
fi
if [ -z "$BM_POE_ADDRESS" ]; then
echo "Must supply the PoE Switch host"
exit 1
fi
set -ex
SNMP_KEY="1.3.6.1.4.1.9.9.402.1.2.1.1.1.$BM_POE_INTERFACE"
SNMP_ON="i 1"
SNMP_OFF="i 4"
snmpset -v2c -r 3 -t 10 -cmesaci "$BM_POE_ADDRESS" "$SNMP_KEY" $SNMP_OFF
sleep 3s
snmpset -v2c -r 3 -t 10 -cmesaci "$BM_POE_ADDRESS" "$SNMP_KEY" $SNMP_ON

View File

@@ -144,33 +144,6 @@ fi
date +'%F %T'
# Set up the pxelinux config for Jetson Nano
mkdir -p /tftp/pxelinux.cfg
cat <<EOF >/tftp/pxelinux.cfg/default-arm-tegra210-p3450-0000
PROMPT 0
TIMEOUT 30
DEFAULT primary
MENU TITLE jetson nano boot options
LABEL primary
MENU LABEL CI kernel on TFTP
LINUX Image
FDT tegra210-p3450-0000.dtb
APPEND \${cbootargs} $BM_CMDLINE
EOF
# Set up the pxelinux config for Jetson TK1
cat <<EOF >/tftp/pxelinux.cfg/default-arm-tegra124-jetson-tk1
PROMPT 0
TIMEOUT 30
DEFAULT primary
MENU TITLE jetson TK1 boot options
LABEL primary
MENU LABEL CI kernel on TFTP
LINUX zImage
FDT tegra124-jetson-tk1.dtb
APPEND \${cbootargs} $BM_CMDLINE
EOF
# Create the rootfs in the NFS directory
. $BM/rootfs-setup.sh /nfs

View File

@@ -1,41 +0,0 @@
#!/usr/bin/python3
# Copyright © 2020 Christian Gmeiner
#
# Permission is hereby granted, free of charge, to any person obtaining a
# copy of this software and associated documentation files (the "Software"),
# to deal in the Software without restriction, including without limitation
# the rights to use, copy, modify, merge, publish, distribute, sublicense,
# and/or sell copies of the Software, and to permit persons to whom the
# Software is furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice (including the next
# paragraph) shall be included in all copies or substantial portions of the
# Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
# IN THE SOFTWARE.
#
# Tiny script to read bytes from telnet, and write the output to stdout, with a
# buffer in between so we don't lose serial output from its buffer.
#
import sys
import telnetlib
host = sys.argv[1]
port = sys.argv[2]
tn = telnetlib.Telnet(host, port, 1000000)
while True:
bytes = tn.read_some()
sys.stdout.buffer.write(bytes)
sys.stdout.flush()
tn.close()

View File

@@ -130,7 +130,7 @@ debian-testing-asan:
-D mesa-clc=system
-D tools=dlclose-skip
-D valgrind=disabled
S3_ARTIFACT_NAME: ""
S3_ARTIFACT_NAME: mesa-x86_64-asan-${BUILDTYPE}
ARTIFACTS_DEBUG_SYMBOLS: 1
RUN_MESON_TESTS: "false" # just too slow
# Do a host build for mesa-clc (asan complains not being loaded as
@@ -138,7 +138,6 @@ debian-testing-asan:
HOST_BUILD_OPTIONS: >
-D build-tests=false
-D enable-glcpp-tests=false
-D gallium-opencl=disabled
-D gallium-rusticl=false
-D gallium-nine=false
-D gallium-drivers=
@@ -177,8 +176,7 @@ debian-testing-msan:
HOST_BUILD_OPTIONS: >
-D build-tests=false
-D enable-glcpp-tests=false
-D gallium-opencl=disabled
-D gallium-drivers=
-D gallium-drivers=panfrost
-D vulkan-drivers=
-D video-codecs=
-D glx=disabled
@@ -187,7 +185,6 @@ debian-testing-msan:
-D install-mesa-clc=true
-D precomp-compiler=enabled
-D install-precomp-compiler=true
-D tools=panfrost
debian-testing-ubsan:
extends:
@@ -214,7 +211,6 @@ debian-testing-ubsan:
HOST_BUILD_OPTIONS: >
-D build-tests=false
-D enable-glcpp-tests=false
-D gallium-opencl=disabled
-D gallium-rusticl=false
-D gallium-drivers=
-D vulkan-drivers=
@@ -302,7 +298,6 @@ alpine-build-testing:
-Wno-error=array-bounds
-Wno-error=stringop-overflow
-Wno-error=stringop-overread
-Wno-error=misleading-indentation
DRI_LOADERS: >
-D glx=disabled
-D gbm=enabled
@@ -421,8 +416,7 @@ debian-android:
HOST_BUILD_OPTIONS: >
-D build-tests=false
-D enable-glcpp-tests=false
-D gallium-opencl=disabled
-D gallium-drivers=
-D gallium-drivers=panfrost
-D vulkan-drivers=
-D video-codecs=
-D glx=disabled
@@ -431,7 +425,6 @@ debian-android:
-D install-mesa-clc=true
-D precomp-compiler=enabled
-D install-precomp-compiler=true
-D tools=panfrost
S3_ARTIFACT_NAME: mesa-x86_64-android-${BUILDTYPE}
script:
# x86_64 build:
@@ -501,8 +494,7 @@ debian-arm32:
HOST_BUILD_OPTIONS: >
-D build-tests=false
-D enable-glcpp-tests=false
-D gallium-opencl=disabled
-D gallium-drivers=
-D gallium-drivers=panfrost
-D vulkan-drivers=
-D video-codecs=
-D glx=disabled
@@ -511,7 +503,6 @@ debian-arm32:
-D install-mesa-clc=true
-D precomp-compiler=enabled
-D install-precomp-compiler=true
-D tools=panfrost
S3_ARTIFACT_NAME: mesa-arm32-default-${BUILDTYPE}
# The strip command segfaults, failing to strip the binary and leaving
# tempfiles in our artifacts.
@@ -795,7 +786,6 @@ debian-x86_32:
HOST_BUILD_OPTIONS: >
-D build-tests=false
-D enable-glcpp-tests=false
-D gallium-opencl=disabled
-D gallium-drivers=
-D vulkan-drivers=
-D video-codecs=

View File

@@ -49,7 +49,6 @@ VARS=(
FLAKES_CHANNEL
FLUSTER_CODECS
FLUSTER_FRACTION
FLUSTER_VECTORS_VERSION
FREEDRENO_HANGCHECK_MS
GALLIUM_DRIVER
GALLIVM_PERF
@@ -108,6 +107,7 @@ VARS=(
PIGLIT_REPLAY_SUBCOMMAND
PIGLIT_RESULTS
PIGLIT_RUNNER_OPTIONS
PIGLIT_TAG
PIGLIT_TESTS
PIGLIT_TRACES_FILE
PIPELINE_ARTIFACTS_BASE
@@ -120,8 +120,6 @@ VARS=(
S3_RESULTS_UPLOAD
SKQP_ASSETS_DIR
SKQP_BACKENDS
STORAGE_FORK_HOST_PATH
STORAGE_MAINLINE_HOST_PATH
TU_DEBUG
VIRGL_HOST_API
VIRGL_RENDER_SERVER

View File

@@ -109,6 +109,9 @@ export LIBGL_DRIVERS_PATH=/install/lib/dri
# telling it to look in /usr/local/lib.
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
# The Broadcom devices need /usr/local/bin unconditionally added to the path
export PATH=/usr/local/bin:$PATH
# Store Mesa's disk cache under /tmp, rather than sending it out over NFS.
export XDG_CACHE_HOME=/tmp
@@ -230,7 +233,7 @@ cleanup
# upload artifacts (lava jobs)
if [ -n "$S3_RESULTS_UPLOAD" ]; then
tar --zstd -cf results.tar.zst results/;
s3_upload results.tar.zst "https://${S3_RESULTS_UPLOAD}/"
ci-fairy s3cp --token-file "${S3_JWT_FILE}" results.tar.zst https://"$S3_RESULTS_UPLOAD"/results.tar.zst
fi
# We still need to echo the hwci: mesa message, as some scripts rely on it, such

View File

@@ -1,2 +1,3 @@
variables:
CONDITIONAL_BUILD_ANGLE_TAG: ab19bccfd3858c539ba8cb8d9b52a003
CONDITIONAL_BUILD_ANGLE_TAG: be4f59328ef607bcbf5048a3f6f27410
CONDITIONAL_BUILD_PIGLIT_TAG: a19e424b8a3f020dbf1b9dd29f220a4f

View File

@@ -1,4 +1,5 @@
#!/usr/bin/env bash
# shellcheck disable=SC2154 # arch is assigned in previous scripts
set -e
set -o xtrace
@@ -6,11 +7,12 @@ set -o xtrace
# Fetch the arm-built rootfs image and unpack it in our x86_64 container (saves
# network transfer, disk usage, and runtime on test jobs)
# shellcheck disable=SC2154 # arch is assigned in previous scripts
if curl --fail -L -s "${ARTIFACTS_PREFIX}/${FDO_UPSTREAM_REPO}/${ARTIFACTS_SUFFIX}/${arch}/done"; then
ARTIFACTS_URL="${ARTIFACTS_PREFIX}/${FDO_UPSTREAM_REPO}/${ARTIFACTS_SUFFIX}/${arch}"
S3_PATH="https://${S3_HOST}/${S3_KERNEL_BUCKET}"
if curl -L --retry 3 -f --retry-delay 10 -s --head "${S3_PATH}/${FDO_UPSTREAM_REPO}/${LAVA_DISTRIBUTION_TAG}"; then
ARTIFACTS_URL="${S3_PATH}/${FDO_UPSTREAM_REPO}/${LAVA_DISTRIBUTION_TAG}"
else
ARTIFACTS_URL="${ARTIFACTS_PREFIX}/${CI_PROJECT_PATH}/${ARTIFACTS_SUFFIX}/${arch}"
ARTIFACTS_URL="${S3_PATH}/${CI_PROJECT_PATH}/${LAVA_DISTRIBUTION_TAG}"
fi
curl -L --retry 4 -f --retry-all-errors --retry-delay 60 \
@@ -33,30 +35,11 @@ if [[ $arch == "arm64" ]]; then
DEVICE_TREES=""
DEVICE_TREES="$DEVICE_TREES apq8016-sbc-usb-host.dtb"
DEVICE_TREES="$DEVICE_TREES apq8096-db820c.dtb"
DEVICE_TREES="$DEVICE_TREES tegra210-p3450-0000.dtb"
DEVICE_TREES="$DEVICE_TREES imx8mq-nitrogen.dtb"
for DTB in $DEVICE_TREES; do
curl -L --retry 4 -f --retry-all-errors --retry-delay 60 \
-O "${KERNEL_IMAGE_BASE}/arm64/$DTB"
done
popd
elif [[ $arch == "armhf" ]]; then
mkdir -p /baremetal-files
pushd /baremetal-files
curl -L --retry 4 -f --retry-all-errors --retry-delay 60 \
-O "${KERNEL_IMAGE_BASE}"/armhf/zImage
DEVICE_TREES=""
DEVICE_TREES="$DEVICE_TREES imx6q-cubox-i.dtb"
DEVICE_TREES="$DEVICE_TREES tegra124-jetson-tk1.dtb"
for DTB in $DEVICE_TREES; do
curl -L --retry 4 -f --retry-all-errors --retry-delay 60 \
-O "${KERNEL_IMAGE_BASE}/armhf/$DTB"
done
popd
fi

View File

@@ -114,7 +114,7 @@ tar --zstd -cf "${ANDROID_LLVM_ARTIFACT_NAME}.tar.zst" "$LLVM_INSTALL_PREFIX"
# version does not change, and delete it.
# The file is not deleted for non-CI because it can be useful in local runs.
if [ -n "$CI" ]; then
s3_upload "${ANDROID_LLVM_ARTIFACT_NAME}.tar.zst" "https://${S3_HOST}/${S3_ANDROID_BUCKET}/${CI_PROJECT_PATH}/"
ci-fairy s3cp --token-file "${S3_JWT_FILE}" "${ANDROID_LLVM_ARTIFACT_NAME}.tar.zst" "https://${S3_HOST}/${S3_ANDROID_BUCKET}/${CI_PROJECT_PATH}/${ANDROID_LLVM_ARTIFACT_NAME}.tar.zst"
rm "${ANDROID_LLVM_ARTIFACT_NAME}.tar.zst"
fi

View File

@@ -3,17 +3,17 @@
# When changing this file, you need to bump the following
# .gitlab-ci/image-tags.yml tags:
# DEBIAN_TEST_ANDROID_TAG
# KERNEL_ROOTFS_TAG
# DEBIAN_TEST_GL_TAG
set -uex
uncollapsed_section_start angle "Building ANGLE"
section_start angle "Building ANGLE"
# 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 "ANGLE_TAG"
ANGLE_REV="a3f2545f6bb3e8d27827dceb2b4e901673995ad1"
ANGLE_REV="f355e2b37ed43939e2753fc7dacccf75abb4c1a3"
# Set ANGLE_ARCH based on DEBIAN_ARCH if it hasn't been explicitly defined
if [[ -z "${ANGLE_ARCH:-}" ]]; then

View File

@@ -3,15 +3,13 @@
# When changing this file, you need to bump the following
# .gitlab-ci/image-tags.yml tags:
# DEBIAN_TEST_GL_TAG
# DEBIAN_TEST_VK_TAG
# KERNEL_ROOTFS_TAG
# DEBIAN_BASE_TAG
set -uex
uncollapsed_section_start apitrace "Building apitrace"
APITRACE_VERSION="952bad1469ea747012bdc48c48993bd5f13eec04"
APITRACE_VERSION="b6102d10960c9f43b1b473903fc67937dd19fb98"
git clone https://github.com/apitrace/apitrace.git --single-branch --no-checkout /apitrace
pushd /apitrace

View File

@@ -6,7 +6,6 @@
# DEBIAN_BASE_TAG
# DEBIAN_TEST_GL_TAG
# DEBIAN_TEST_VK_TAG
# KERNEL_ROOTFS_TAG
set -uex

View File

@@ -5,11 +5,10 @@
# .gitlab-ci/image-tags.yml tags:
# DEBIAN_TEST_ANDROID_TAG
# DEBIAN_BASE_TAG
# KERNEL_ROOTFS_TAG
set -uex
uncollapsed_section_start deqp-runner "Building deqp-runner"
section_start deqp-runner "Building deqp-runner"
DEQP_RUNNER_VERSION=0.20.3

View File

@@ -6,14 +6,13 @@
# DEBIAN_TEST_ANDROID_TAG
# DEBIAN_TEST_GL_TAG
# DEBIAN_TEST_VK_TAG
# KERNEL_ROOTFS_TAG
set -ue -o pipefail
# shellcheck disable=SC2153
deqp_api=${DEQP_API,,}
uncollapsed_section_start deqp-$deqp_api "Building dEQP $DEQP_API"
section_start deqp-$deqp_api "Building dEQP $DEQP_API"
set -x
@@ -289,7 +288,7 @@ if [ "$DEQP_API" != tools ]; then
# Compress the caselists, since Vulkan's in particular are gigantic; higher
# compression levels provide no real measurable benefit.
zstd -1 --rm mustpass/*.txt
zstd -f -1 --rm mustpass/*.txt
fi
if [ "$DEQP_API" = tools ]; then

View File

@@ -4,36 +4,61 @@
# shellcheck disable=SC2034 # Variables are used in scripts called from here
# 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_VIDEO_TAG
# Install fluster in /usr/local.
set -uex
section_start fluster "Install fluster"
FLUSTER_REVISION="e997402978f62428fffc8e5a4a709690d9ca9bc5"
git clone https://github.com/fluendo/fluster.git --single-branch --no-checkout
export SKIP_UPDATE_FLUSTER_VECTORS=false
check_fluster()
{
S3_PATH_FLUSTER="${S3_HOST}/${S3_KERNEL_BUCKET}/$1/${DATA_STORAGE_PATH}/fluster/${FLUSTER_VECTORS_VERSION}/vectors.tar.zst"
if curl -L --retry 4 -f --retry-connrefused --retry-delay 30 -s --head \
"https://${S3_PATH_FLUSTER}"; then
echo "Fluster vectors are up-to-date, skip rebuilding them."
export SKIP_UPDATE_FLUSTER_VECTORS=true
fi
}
check_fluster "${FDO_UPSTREAM_REPO}"
if ! $SKIP_UPDATE_FLUSTER_VECTORS; then
check_fluster "${CI_PROJECT_PATH}"
fi
pushd fluster || exit
git checkout ${FLUSTER_REVISION}
git checkout "${FLUSTER_REVISION}"
popd || exit
if [ "${SKIP_UPDATE_FLUSTER_VECTORS}" != 1 ]; then
if ! $SKIP_UPDATE_FLUSTER_VECTORS; then
# Download the necessary vectors: H264, H265 and VP9
# When updating FLUSTER_REVISION, make sure to update the vectors if necessary or
# fluster-runner will report Missing results.
fluster/fluster.py download \
fluster/fluster.py download -j ${FDO_CI_CONCURRENT:-4} \
JVT-AVC_V1 JVT-FR-EXT JVT-MVC JVT-SVC_V1 \
JCT-VC-3D-HEVC JCT-VC-HEVC_V1 JCT-VC-MV-HEVC JCT-VC-RExt JCT-VC-SCC JCT-VC-SHVC \
VP9-TEST-VECTORS-HIGH VP9-TEST-VECTORS
# Build fluster vectors archive and upload it
tar --zstd -cf "vectors.tar.zst" fluster/resources/
s3_upload vectors.tar.zst "https://${S3_PATH_FLUSTER}/"
touch /lava-files/done
s3_upload /lava-files/done "https://${S3_PATH_FLUSTER}/"
# Don't include the vectors in the rootfs
rm -fr fluster/resources/*
ci-fairy s3cp --token-file "${S3_JWT_FILE}" "vectors.tar.zst" \
"https://${S3_PATH_FLUSTER}/vectors.tar.zst"
fi
mkdir -p "${ROOTFS}/usr/local/"
mv fluster "${ROOTFS}/usr/local/"
mv fluster/ /usr/local/
if $SKIP_UPDATE_FLUSTER_VECTORS; then
curl -L --retry 4 -f --retry-connrefused --retry-delay 30 \
"${FDO_HTTP_CACHE_URI:-}https://${S3_PATH_FLUSTER}" | tar --zstd -x -C /usr/local/
fi
section_end fluster

View File

@@ -3,7 +3,6 @@
# When changing this file, you need to bump the following
# .gitlab-ci/image-tags.yml tags:
# DEBIAN_TEST_VK_TAG
# KERNEL_ROOTFS_TAG
set -ex

View File

@@ -8,7 +8,6 @@ set -ex
# DEBIAN_BASE_TAG
# DEBIAN_BUILD_TAG
# FEDORA_X86_64_BUILD_TAG
# KERNEL_ROOTFS_TAG
uncollapsed_section_start mold "Building mold"

View File

@@ -8,9 +8,12 @@ uncollapsed_section_start piglit "Building piglit"
# .gitlab-ci/image-tags.yml tags:
# DEBIAN_TEST_GL_TAG
# DEBIAN_TEST_VK_TAG
# KERNEL_ROOTFS_TAG
REV="0ecdebb0f5927728ddeeb851639a559b0f7d6590"
# 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 "PIGLIT_TAG"
REV="c50d9aa54f85e0af9d72fab86c73f89356d96399"
git clone https://gitlab.freedesktop.org/mesa/piglit.git --single-branch --no-checkout /piglit
pushd /piglit

View File

@@ -5,7 +5,7 @@
set -ex
uncollapsed_section_start rust "Building Rust toolchain"
section_start rust "Building Rust toolchain"
# Pick a specific snapshot from rustup so the compiler doesn't drift on us.
RUST_VERSION=1.78.0-2024-05-02

View File

@@ -6,11 +6,11 @@
#
# When changing this file, you need to bump the following
# .gitlab-ci/image-tags.yml tags:
# KERNEL_ROOTFS_TAG
# DEBIAN_TEST_GL_TAG
set -uex
uncollapsed_section_start skqp "Building skqp"
uncollapsed_section_start skqp "Building SkQP"
SKQP_BRANCH=android-cts-12.1_r5
@@ -75,7 +75,7 @@ popd
# Fetch some needed build tools needed to build skia/skqp.
# Basically, it clones repositories with commits SHAs from ${SKIA_DIR}/DEPS
# directory.
python tools/git-sync-deps
python3 tools/git-sync-deps
mkdir -p "${SKQP_OUT_DIR}"
mkdir -p "${SKQP_INSTALL_DIR}"

View File

@@ -1,12 +1,13 @@
#!/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:
# KERNEL_ROOTFS_TAG
# DEBIAN_TEST_VIDEO_TAG
set -uex
uncollapsed_section_start va-tools "Building va-tools"
section_start va-tools "Building va-tools"
git config --global user.email "mesa@example.com"
git config --global user.name "Mesa CI"

View File

@@ -7,36 +7,30 @@ set -ex
uncollapsed_section_start vkd3d-proton "Building vkd3d-proton"
VKD3D_PROTON_COMMIT="078f07f588c849c52fa21c8cfdd1c201465b1932"
VKD3D_PROTON_COMMIT="7eef0a64e3fc107a6cb10e3abd1b56d21b575de8"
VKD3D_PROTON_DST_DIR="/vkd3d-proton-tests"
VKD3D_PROTON_SRC_DIR="/vkd3d-proton-src"
VKD3D_PROTON_BUILD_DIR="/vkd3d-proton-build"
function build_arch {
local arch="$1"
meson setup \
-Denable_tests=true \
--buildtype release \
--prefix "$VKD3D_PROTON_DST_DIR" \
--strip \
--bindir "x${arch}" \
--libdir "x${arch}" \
"$VKD3D_PROTON_BUILD_DIR/build.${arch}"
ninja -C "$VKD3D_PROTON_BUILD_DIR/build.${arch}" install
install -D -m755 -t "${VKD3D_PROTON_DST_DIR}/x${arch}/bin" "$VKD3D_PROTON_BUILD_DIR/build.${arch}/tests/d3d12"
}
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"
git checkout "$VKD3D_PROTON_COMMIT"
git submodule update --init --recursive
git submodule update --recursive
build_arch 64
build_arch 86
meson setup \
-D enable_tests=true \
--buildtype release \
--prefix "$VKD3D_PROTON_DST_DIR" \
--strip \
--libdir "lib" \
"$VKD3D_PROTON_BUILD_DIR/build"
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" \

View File

@@ -3,7 +3,6 @@
# When changing this file, you need to bump the following
# .gitlab-ci/image-tags.yml tags:
# DEBIAN_TEST_GL_TAG
# KERNEL_ROOTFS_TAG
set -uex

View File

@@ -14,7 +14,6 @@ uncollapsed_section_start wayland "Building Wayland"
# DEBIAN_TEST_GL_TAG
# DEBIAN_TEST_VK_TAG
# FEDORA_X86_64_BUILD_TAG
# KERNEL_ROOTFS_TAG
export LIBWAYLAND_VERSION="1.21.0"
export WAYLAND_PROTOCOLS_VERSION="1.41"

View File

@@ -38,14 +38,6 @@ chmod +x /usr/local/bin/ninja
# flags (doesn't apply to non-container builds, but we don't run make there)
export MAKEFLAGS="-j${FDO_CI_CONCURRENT:-4}"
# make wget to try more than once, when download fails or timeout
echo -e "retry_connrefused = on\n" \
"read_timeout = 300\n" \
"tries = 4\n" \
"retry_on_host_error = on\n" \
"retry_on_http_error = 429,500,502,503,504\n" \
"wait_retry = 32" >> /etc/wgetrc
# Ensure that rust tools are in PATH if they exist
CARGO_ENV_FILE="$HOME/.cargo/env"
if [ -f "$CARGO_ENV_FILE" ]; then

View File

@@ -86,7 +86,8 @@ apt-get update
apt-get -y install "${DEPS[@]}" "${EPHEMERAL[@]}"
pip3 install --break-system-packages git+http://gitlab.freedesktop.org/freedesktop/ci-templates@ffe4d1b10aab7534489f0c4bbc4c5899df17d3f2
# Needed for ci-fairy s3cp
pip3 install --break-system-packages "ci-fairy[s3] @ git+https://gitlab.freedesktop.org/freedesktop/ci-templates@$MESA_TEMPLATES_COMMIT"
arch=armhf
. .gitlab-ci/container/cross_build.sh

View File

@@ -0,0 +1,5 @@
#!/usr/bin/env bash
set -e
arch=arm64 . .gitlab-ci/container/debian/baremetal_arm_test.sh

View File

@@ -3,7 +3,6 @@
# When changing this file, you need to bump the following
# .gitlab-ci/image-tags.yml tags:
# DEBIAN_BASE_TAG
# KERNEL_ROOTFS_TAG
set -e
@@ -42,15 +41,3 @@ curl -L --retry 4 -f --retry-all-errors --retry-delay 60 \
-o /usr/share/snmp/mibs/SNMPv2-SMI.txt
. .gitlab-ci/container/baremetal_build.sh
mkdir -p /baremetal-files/jetson-nano/boot/
ln -s \
/baremetal-files/Image \
/baremetal-files/tegra210-p3450-0000.dtb \
/baremetal-files/jetson-nano/boot/
mkdir -p /baremetal-files/jetson-tk1/boot/
ln -s \
/baremetal-files/zImage \
/baremetal-files/tegra124-jetson-tk1.dtb \
/baremetal-files/jetson-tk1/boot/

View File

@@ -21,6 +21,8 @@ sed -i -e 's/http:\/\/deb/https:\/\/deb/g' /etc/apt/sources.list.d/*
echo "deb [trusted=yes] https://gitlab.freedesktop.org/gfx-ci/ci-deb-repo/-/raw/${PKG_REPO_REV}/ ${FDO_DISTRIBUTION_VERSION%-*} main" | tee /etc/apt/sources.list.d/gfx-ci_.list
echo "deb [signed-by=/usr/share/keyrings/debian-archive-keyring.gpg] https://deb.debian.org/debian ${FDO_DISTRIBUTION_VERSION%-*} non-free-firmware" | tee /etc/apt/sources.list.d/non-free-firmware.list
: "${LLVM_VERSION:?llvm version not set!}"
. .gitlab-ci/container/debian/maybe-add-llvm-repo.sh
@@ -71,13 +73,13 @@ EPHEMERAL=(
"llvm-${LLVM_VERSION}-dev"
make
meson
openssh-server
patch
pkgconf
protobuf-compiler
python3-dev
python3-pip
python3-setuptools
python3-venv
python3-wheel
wayland-protocols
xz-utils
@@ -87,6 +89,7 @@ DEPS=(
apt-utils
clinfo
curl
dropbear
git
git-lfs
inetutils-syslogd
@@ -129,6 +132,7 @@ DEPS=(
python3-simplejson
python3-six
python3-yaml
sntp
socat
spirv-tools
sysvinit-core
@@ -142,34 +146,58 @@ DEPS=(
xauth
xvfb
zlib1g
)
HW_DEPS=(
firmware-realtek
netcat-openbsd
mount
python3-distutils
python3-serial
tzdata
zstd
)
[ "$DEBIAN_ARCH" = "arm64" ] && ARCH_DEPS=(
firmware-linux-nonfree
firmware-qcom-media
)
[ "$DEBIAN_ARCH" = "armhf" ] && ARCH_DEPS=(
firmware-misc-nonfree
)
[ "$DEBIAN_ARCH" = "amd64" ] && ARCH_DEPS=(
firmware-amd-graphics
firmware-misc-nonfree
)
apt-get update
apt-get dist-upgrade -y
apt-get install --purge -y \
sysvinit-core libelogind0
apt-get install -y --no-remove "${DEPS[@]}"
apt-get install -y --no-remove "${DEPS[@]}" "${HW_DEPS[@]}" "${ARCH_DEPS[@]}"
apt-get install -y --no-install-recommends "${EPHEMERAL[@]}"
. .gitlab-ci/container/container_pre_build.sh
# Needed for ci-fairy, this revision is able to upload files to MinIO
# and doesn't depend on git
pip3 install --break-system-packages git+http://gitlab.freedesktop.org/freedesktop/ci-templates@ffe4d1b10aab7534489f0c4bbc4c5899df17d3f2
# Needed for ci-fairy s3cp
pip3 install --break-system-packages "ci-fairy[s3] @ git+https://gitlab.freedesktop.org/freedesktop/ci-templates@$MESA_TEMPLATES_COMMIT"
# Needed for manipulation with traces yaml files.
pip3 install --break-system-packages yq
section_end debian_setup
############### Download prebuilt kernel
############### Build ci-kdl
. .gitlab-ci/container/build-kdl.sh
############### Download prebuilt kernel and firmware
if [ "$DEBIAN_ARCH" = amd64 ]; then
uncollapsed_section_start kernel "Downloading kernel for crosvm"
uncollapsed_section_start kernel "Downloading kernel and firmware"
export KERNEL_IMAGE_NAME=bzImage
mkdir -p /kernel
# shellcheck disable=SC2153 # KERNEL_IMAGE_BASE is set in the root .gitlab-ci.yml file
@@ -177,6 +205,7 @@ if [ "$DEBIAN_ARCH" = amd64 ]; then
-o "/kernel/${KERNEL_IMAGE_NAME}" "${KERNEL_IMAGE_BASE}/${DEBIAN_ARCH}/${KERNEL_IMAGE_NAME}"
section_end kernel
fi
. .gitlab-ci/container/get-firmware-from-source.sh / "$FIRMWARE_FILES"
############### Build mold

View File

@@ -27,12 +27,15 @@ EPHEMERAL=(
libcap-dev
"libclang-cpp${LLVM_VERSION}-dev"
libdrm-dev
libfontconfig-dev
libgl-dev
libgles2-mesa-dev
libglu1-mesa-dev
libgtest-dev
libglx-dev
libpciaccess-dev
libpng-dev
libudev-dev
libvulkan-dev
libwaffle-dev
libwayland-dev
libx11-xcb-dev
@@ -50,11 +53,15 @@ EPHEMERAL=(
ocl-icd-opencl-dev
patch
pkgconf
python-is-python3
python3-distutils
xz-utils
)
DEPS=(
libfontconfig1
libglu1-mesa
libvulkan-dev
)
apt-get update
@@ -69,7 +76,7 @@ section_end debian_setup
############### Build ANGLE
if [ "$DEBIAN_ARCH" == "arm64" ]; then
if [ "$DEBIAN_ARCH" != "armhf" ]; then
ANGLE_TARGET=linux \
. .gitlab-ci/container/build-angle.sh
fi
@@ -112,6 +119,13 @@ rm -rf /VK-GL-CTS
. .gitlab-ci/container/build-vulkan-validation.sh
############### Build SKQP
if [ "$DEBIAN_ARCH" != "armhf" ]; then
. .gitlab-ci/container/build-skqp.sh
fi
############### Build nine tests
. .gitlab-ci/container/build-ninetests.sh

View File

@@ -99,8 +99,8 @@ apt-get install -y --no-remove "${DEPS[@]}" "${EPHEMERAL[@]}" \
. .gitlab-ci/container/build-libclc.sh
# Needed for ci-fairy, this revision is able to upload files to S3
pip3 install --break-system-packages git+http://gitlab.freedesktop.org/freedesktop/ci-templates@ffe4d1b10aab7534489f0c4bbc4c5899df17d3f2
# Needed for ci-fairy s3cp
pip3 install --break-system-packages "ci-fairy[s3] @ git+https://gitlab.freedesktop.org/freedesktop/ci-templates@$MESA_TEMPLATES_COMMIT"
. .gitlab-ci/container/install-meson.sh

View File

@@ -54,8 +54,8 @@ apt-get update
apt-get install -y --no-remove --no-install-recommends "${DEPS[@]}" "${EPHEMERAL[@]}" \
"${EXTRA_LOCAL_PACKAGES:-}"
# Needed for ci-fairy, this revision is able to upload files to S3
pip3 install --break-system-packages git+http://gitlab.freedesktop.org/freedesktop/ci-templates@ffe4d1b10aab7534489f0c4bbc4c5899df17d3f2
# Needed for ci-fairy s3cp
pip3 install --break-system-packages "ci-fairy[s3] @ git+https://gitlab.freedesktop.org/freedesktop/ci-templates@$MESA_TEMPLATES_COMMIT"
pip3 install --break-system-packages -r bin/ci/test/requirements.txt

View File

@@ -12,22 +12,25 @@ set -e
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
build-essential:native
ccache
cmake
config-package-dev
debhelper-compat
dpkg-dev
ninja-build
sudo
unzip
)
DEPS=(
aapt
iproute2
)
apt-get install -y --no-remove --no-install-recommends \
@@ -37,15 +40,21 @@ apt-get install -y --no-remove --no-install-recommends \
. .gitlab-ci/container/container_pre_build.sh
section_end debian_setup
############### 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 -d / "$ndk.zip"
unzip -q -d / "$ndk.zip"
rm "$ndk.zip"
section_end android-ndk
############### Build ANGLE
ANGLE_TARGET=android \
@@ -83,7 +92,7 @@ rm -rf /VK-GL-CTS
############### Downloading Cuttlefish resources ...
uncollapsed_section_start cuttlefish "Downloading, building and installing Cuttlefish"
section_start cuttlefish "Downloading, building and installing Cuttlefish"
CUTTLEFISH_PROJECT_PATH=ao2/aosp-manifest
CUTTLEFISH_BUILD_VERSION_TAGS=mesa-venus
@@ -138,40 +147,29 @@ usermod -a -G kvm,cvdnetwork root
section_end cuttlefish
############### Downloading Android CTS tools
############### Downloading Android CTS
uncollapsed_section_start android-cts "Downloading Android CTS tools"
section_start android-cts "Downloading Android CTS"
ANDROID_CTS_VERSION="${ANDROID_VERSION}_r1"
ANDROID_CTS_DEVICE_ARCH="x86"
mkdir /android-tools
pushd /android-tools
curl -L --retry 4 -f --retry-all-errors --retry-delay 60 \
-o "android-cts-${ANDROID_CTS_VERSION}-linux_x86-${ANDROID_CTS_DEVICE_ARCH}.zip" \
"https://dl.google.com/dl/android/cts/android-cts-${ANDROID_CTS_VERSION}-linux_x86-${ANDROID_CTS_DEVICE_ARCH}.zip"
unzip "android-cts-${ANDROID_CTS_VERSION}-linux_x86-${ANDROID_CTS_DEVICE_ARCH}.zip"
unzip -q -d / "android-cts-${ANDROID_CTS_VERSION}-linux_x86-${ANDROID_CTS_DEVICE_ARCH}.zip"
rm "android-cts-${ANDROID_CTS_VERSION}-linux_x86-${ANDROID_CTS_DEVICE_ARCH}.zip"
# Keep only the interesting tests to save space
# shellcheck disable=SC2086 # we want word splitting
ANDROID_CTS_MODULES_KEEP_EXPRESSION=$(printf "%s|" $ANDROID_CTS_MODULES | sed -e 's/|$//g')
find android-cts/testcases/ -mindepth 1 -type d | grep -v -E "$ANDROID_CTS_MODULES_KEEP_EXPRESSION" | xargs rm -rf
curl -L --retry 4 -f --retry-all-errors --retry-delay 60 \
-o "build-tools_r${ANDROID_SDK_VERSION}-linux.zip" "https://dl.google.com/android/repository/build-tools_r${ANDROID_SDK_VERSION}-linux.zip"
unzip "build-tools_r${ANDROID_SDK_VERSION}-linux.zip"
rm "build-tools_r${ANDROID_SDK_VERSION}-linux.zip"
mv "android-$ANDROID_VERSION" build-tools
popd
find /android-cts/testcases/ -mindepth 1 -type d | grep -v -E "$ANDROID_CTS_MODULES_KEEP_EXPRESSION" | xargs rm -rf
section_end android-cts
############### Uninstall the build software
uncollapsed_section_switch debian_cleanup "Cleaning up base Debian system"
section_switch debian_cleanup "Cleaning up base Debian system"
rm -rf "/${ndk:?}"

View File

@@ -0,0 +1,71 @@
#!/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_VIDEO_TAG
set -e
. .gitlab-ci/setup-test-env.sh
set -o xtrace
section_start debian_setup "Base Debian system setup"
export DEBIAN_FRONTEND=noninteractive
apt-get install -y gstreamer1.0-vaapi # This interferes with systemd deps, install separately
# Ephemeral packages (installed for this script and removed again at the end)
EPHEMERAL=(
g++
libdrm-dev
libva-dev
meson
pkgconf
)
DEPS=(
gstreamer1.0-plugins-bad
gstreamer1.0-plugins-base
gstreamer1.0-plugins-good
gstreamer1.0-plugins-ugly
gstreamer1.0-tools
libgstreamer1.0-0
libva-drm2
libva-wayland2
libva2
)
apt-get update
apt-get install -y --no-remove --no-install-recommends \
"${DEPS[@]}" "${EPHEMERAL[@]}" "${EXTRA_LOCAL_PACKAGES:-}"
. .gitlab-ci/container/container_pre_build.sh
section_end debian_setup
############### Build libva tests
. .gitlab-ci/container/build-va-tools.sh
############### Install Fluster
. .gitlab-ci/container/build-fluster.sh
############### Uninstall the build software
section_switch debian_cleanup "Cleaning up base Debian system"
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

@@ -0,0 +1,73 @@
#!/usr/bin/env bash
# This script exports the container image to a rootfs tarball and uploads it to
# S3.
#
# Usage:
#
# ./fdo_cntr_export.sh <container-image-url>
#
# The container image URL is the URL of the container image to export. It can be
# a local path or a remote URL.
# Example:
# ./fdo_cntr_export.sh registry.freedesktop.org/mesa/mesa/debian/x86_64_test-android:tag
# When changing this file, you need to bump the following
# .gitlab-ci/image-tags.yml tags:
# DEBIAN_TEST_GL_TAG
# DEBIAN_TEST_VIDEO_TAG
# DEBIAN_TEST_VK_TAG
set -eux -o pipefail
: "${CONTAINER:=$1}"
IMAGE_URL="${CONTAINER}"
readonly IMAGE_URL
container=$(buildah from "$IMAGE_URL")
readonly container
readonly ROOTFSTAR=lava-rootfs.tar.zst
touch "$ROOTFSTAR"
buildah copy "$container" ".gitlab-ci/container/setup-rootfs.sh" /root/setup-rootfs.sh
# Using --isolation chroot to ensure proper execution in CI/CD environments
buildah run --isolation chroot "$container" -- /root/setup-rootfs.sh
buildah_export() {
# Mount the volume
mountpoint=$(buildah mount "$1")
if [ ! -d "$mountpoint" ]; then
echo "Mount point not found: $mountpoint" >/dev/stderr
exit 1
fi
# Compress to zstd
ZSTD_CLEVEL=10 tar -C "$mountpoint" -I zstd -cf "$2" .
}
# When hacking on it locally, the script might not be executed as root.
# In CI it's always root.
if (($(id -u) != 0)); then
# Run unshare for rootless envs
buildah unshare -- bash -c "$(declare -f buildah_export); buildah_export '$container' '$ROOTFSTAR'"
else
# Run directly
buildah_export "$container" "$ROOTFSTAR"
fi
# Unmount the container
buildah umount "$container"
# Remove the container
buildah rm "$container"
# Upload the rootfs tarball to S3.
# The URL format matches the registry format, and LAVA_DISTRIBUTION_TAG is
# used later to match this URL.
curl --fail --retry-connrefused --retry 4 --retry-delay 30 \
--header "Authorization: Bearer $(cat "${S3_JWT_FILE}")" \
-X PUT --form file=@"$ROOTFSTAR" \
"https://${S3_HOST}/${S3_KERNEL_BUCKET}/${CI_PROJECT_PATH}/${CI_JOB_NAME}:${FDO_DISTRIBUTION_TAG}"

View File

@@ -78,17 +78,35 @@
# should make CI_BUILD_COMPONENTS="angle piglit"
CI_BUILD_COMPONENTS: "angle"
.container-builds-piglit:
variables:
PIGLIT_TAG: "${CONDITIONAL_BUILD_PIGLIT_TAG}"
.container-builds-x86_64:
extends:
- .container-builds-angle
- .container-builds-piglit
variables:
CI_BUILD_COMPONENTS: "angle"
CI_BUILD_COMPONENTS: "angle piglit"
.container-builds-arm32:
extends:
- .container-builds-piglit
variables:
CI_BUILD_COMPONENTS: "piglit"
.container-builds-arm64:
extends:
- .container-builds-angle
- .container-builds-piglit
variables:
CI_BUILD_COMPONENTS: "angle"
CI_BUILD_COMPONENTS: "angle piglit"
# Export the container rootfs and upload it to S3
.export-container:
variables:
FDO_DISTRIBUTION_PACKAGES: zstd
FDO_DISTRIBUTION_POST_EXEC: 'bash .gitlab-ci/container/fdo_cntr_export.sh'
.use-base-image:
extends:
@@ -113,7 +131,6 @@ debian/x86_64_build-base:
variables:
MESA_BASE_IMAGE: "debian/x86_64_build-base"
MESA_BASE_TAG: *debian-x86_64_build-base
MESA_ARTIFACTS_BASE_TAG: *debian-x86_64_build-base
LLVM_VERSION: *debian-x86_64-llvm
needs:
- debian/x86_64_build-base
@@ -203,14 +220,15 @@ debian/s390x_build:
# Android NDK cross-build image
.android-variables:
extends:
- .container-builds-android
variables:
ANDROID_VERSION: 14
ANDROID_NDK_VERSION: "r27c"
ANDROID_SDK_VERSION: 34
# Space-separated list of interesting CTS modules
ANDROID_CTS_MODULES: CtsGraphicsTestCases
ANDROID_CTS_MODULES: >-
CtsGraphicsTestCases
CtsNativeHardwareTestCases
CtsSkQPTestCases
ANDROID_LLVM_VERSION: llvmorg-19.1.7
ANDROID_LLVM_ARTIFACT_NAME: android-x86_64-llvm-20250324
# This can be confusing: LLVM_VERSION refers to the host LLVM toolchain
@@ -221,7 +239,6 @@ debian/s390x_build:
debian/android_build:
extends:
- .android-variables
- .container-builds-android
- .use-debian/x86_64_build-base
variables:
MESA_IMAGE_TAG: &debian-android_build ${DEBIAN_BUILD_TAG}
@@ -314,9 +331,9 @@ fedora/x86_64_build:
- .fdo.container-build@fedora
- .container
variables:
FDO_DISTRIBUTION_VERSION: 41
FDO_DISTRIBUTION_VERSION: 42
MESA_IMAGE_TAG: &fedora-x86_64_build ${FEDORA_X86_64_BUILD_TAG}
LLVM_VERSION: &fedora-x86_64-llvm 19
LLVM_VERSION: &fedora-x86_64-llvm 20
.use-fedora/x86_64_build:
tags:
@@ -334,6 +351,7 @@ fedora/x86_64_build:
debian/x86_64_test-base:
extends:
- .debian-container
- .firmware_x86_64
variables:
MESA_IMAGE_TAG: &debian-x86_64_test-base "${DEBIAN_BASE_TAG}--${PKG_REPO_REV}--${KERNEL_TAG}"
LLVM_VERSION: *debian-x86_64-llvm
@@ -385,6 +403,7 @@ debian/arm64_test-base:
- $FDO_RUNNER_JOB_PRIORITY_TAG_AARCH64
extends:
- .debian-container
- .firmware_arm64
variables:
MESA_IMAGE_TAG: &debian-arm64_test-base "${DEBIAN_BASE_TAG}--${PKG_REPO_REV}"
LLVM_VERSION: *debian-arm64-llvm
@@ -405,9 +424,13 @@ debian/arm64_test-base:
# Debian based x86_64 test image for GL
debian/x86_64_test-gl:
extends: .use-debian/x86_64_test-base
extends:
- .use-debian/x86_64_test-base
- .container-builds-x86_64
- .export-container
variables:
MESA_IMAGE_TAG: &debian-x86_64_test-gl ${DEBIAN_TEST_GL_TAG}
LAVA_DISTRIBUTION_TAG: "debian/x86_64_test-gl:${DEBIAN_TEST_GL_TAG}--${DEBIAN_BASE_TAG}--${PKG_REPO_REV}--${KERNEL_TAG}--${MESA_TEMPLATES_COMMIT}"
.use-debian/x86_64_test-gl:
tags:
@@ -423,9 +446,13 @@ debian/x86_64_test-gl:
# Debian based x86_64 test image for VK
debian/x86_64_test-vk:
extends: .use-debian/x86_64_test-base
extends:
- .use-debian/x86_64_test-base
- .container-builds-x86_64
- .export-container
variables:
MESA_IMAGE_TAG: &debian-x86_64_test-vk ${DEBIAN_TEST_VK_TAG}
LAVA_DISTRIBUTION_TAG: "debian/x86_64_test-vk:${DEBIAN_TEST_VK_TAG}--${DEBIAN_BASE_TAG}--${PKG_REPO_REV}--${KERNEL_TAG}--${MESA_TEMPLATES_COMMIT}"
.use-debian/x86_64_test-vk:
tags:
@@ -444,6 +471,7 @@ debian/x86_64_test-android:
extends:
- .android-variables
- .use-debian/x86_64_test-base
- .container-builds-android
variables:
MESA_IMAGE_TAG: &debian-x86_64_test-android ${DEBIAN_TEST_ANDROID_TAG}
@@ -460,6 +488,27 @@ debian/x86_64_test-android:
needs:
- debian/x86_64_test-android
# Debian based x86_64 test image for video
debian/x86_64_test-video:
extends:
- .use-debian/x86_64_test-base
- .export-container
variables:
MESA_IMAGE_TAG: &debian-x86_64_test-video ${DEBIAN_TEST_VIDEO_TAG}
LAVA_DISTRIBUTION_TAG: "debian/x86_64_test-video:${DEBIAN_TEST_VIDEO_TAG}--${DEBIAN_BASE_TAG}--${PKG_REPO_REV}--${KERNEL_TAG}--${MESA_TEMPLATES_COMMIT}"
.use-debian/x86_64_test-video:
tags:
- $FDO_RUNNER_JOB_PRIORITY_TAG_X86_64
extends:
- .set-image-base-tag
variables:
MESA_BASE_TAG: *debian-x86_64_test-base
MESA_IMAGE_PATH: "debian/x86_64_test-video"
MESA_IMAGE_TAG: *debian-x86_64_test-video
needs:
- debian/x86_64_test-video
# Debian-based x86_64 image to run Python utilities
debian/x86_64_pyutils:
extends:
@@ -484,9 +533,13 @@ debian/x86_64_pyutils:
debian/arm32_test-gl:
tags:
- $FDO_RUNNER_JOB_PRIORITY_TAG_AARCH64
extends: .use-debian/arm32_test-base
extends:
- .use-debian/arm32_test-base
- .container-builds-arm32
- .export-container
variables:
MESA_IMAGE_TAG: &debian-arm32_test-gl ${DEBIAN_TEST_GL_TAG}
LAVA_DISTRIBUTION_TAG: "debian/arm32_test-gl:${DEBIAN_TEST_GL_TAG}--${DEBIAN_BASE_TAG}--${PKG_REPO_REV}--${MESA_TEMPLATES_COMMIT}"
.use-debian/arm32_test-gl:
tags:
@@ -506,7 +559,9 @@ debian/arm32_test-vk:
- when: never # There are currently no arm32 VK jobs
tags:
- $FDO_RUNNER_JOB_PRIORITY_TAG_AARCH64
extends: .use-debian/arm32_test-base
extends:
- .use-debian/arm32_test-base
- .container-builds-arm32
variables:
MESA_IMAGE_TAG: &debian-arm32_test-vk ${DEBIAN_TEST_VK_TAG}
@@ -529,8 +584,10 @@ debian/arm64_test-gl:
extends:
- .use-debian/arm64_test-base
- .container-builds-arm64
- .export-container
variables:
MESA_IMAGE_TAG: &debian-arm64_test-gl ${DEBIAN_TEST_GL_TAG}
LAVA_DISTRIBUTION_TAG: "debian/arm64_test-gl:${DEBIAN_TEST_GL_TAG}--${DEBIAN_BASE_TAG}--${PKG_REPO_REV}--${MESA_TEMPLATES_COMMIT}"
.use-debian/arm64_test-gl:
tags:
@@ -548,9 +605,13 @@ debian/arm64_test-gl:
debian/arm64_test-vk:
tags:
- $FDO_RUNNER_JOB_PRIORITY_TAG_AARCH64
extends: .use-debian/arm64_test-base
extends:
- .use-debian/arm64_test-base
- .container-builds-arm64
- .export-container
variables:
MESA_IMAGE_TAG: &debian-arm64_test-vk ${DEBIAN_TEST_VK_TAG}
LAVA_DISTRIBUTION_TAG: "debian/arm64_test-vk:${DEBIAN_TEST_VK_TAG}--${DEBIAN_BASE_TAG}--${PKG_REPO_REV}--${MESA_TEMPLATES_COMMIT}"
.use-debian/arm64_test-vk:
tags:
@@ -565,7 +626,7 @@ debian/arm64_test-vk:
- debian/arm64_test-vk
# Get firmware directly rather than using package versions.
# Change KERNEL_ROOTFS_TAG to add firmware changes.
# Change DEBIAN_BASE_TAG to add firmware changes.
# FIRMWARE_FILES is a list of json files arranged by vendor in .gitlab-ci/firmware/*
.firmware_x86_64:
variables:
@@ -582,60 +643,6 @@ debian/arm64_test-vk:
variables:
FIRMWARE_FILES: |
.kernel+rootfs:
extends:
- .container+build-rules
- .debian-container-version
stage: container
timeout: 120m
variables:
GIT_STRATEGY: fetch
MESA_ROOTFS_TAG: &kernel-rootfs ${KERNEL_ROOTFS_TAG}
DISTRIBUTION_TAG: &distribution-tag-arm "${MESA_ROOTFS_TAG}--${KERNEL_TAG}--${MESA_ARTIFACTS_TAG}--${MESA_TEMPLATES_COMMIT}"
script:
- .gitlab-ci/container/lava_build.sh
kernel+rootfs_x86_64:
extends:
- .use-debian/x86_64_build-base
- .kernel+rootfs
- .firmware_x86_64
- .container-builds-x86_64
image: "$FDO_BASE_IMAGE"
variables:
DEBIAN_ARCH: "amd64"
DISTRIBUTION_TAG: &distribution-tag-x86_64 "${MESA_ROOTFS_TAG}--${KERNEL_TAG}--${MESA_ARTIFACTS_BASE_TAG}--${MESA_TEMPLATES_COMMIT}"
LLVM_VERSION: *debian-x86_64-llvm
kernel+rootfs_arm64:
extends:
- .use-debian/arm64_build
- .kernel+rootfs
- .firmware_arm64
- .container-builds-arm64
variables:
DEBIAN_ARCH: "arm64"
LLVM_VERSION: *debian-arm64-llvm
kernel+rootfs_arm32:
extends:
- kernel+rootfs_arm64
- .firmware_arm32
variables:
DEBIAN_ARCH: "armhf"
LLVM_VERSION: &debian-arm32-llvm 15 # no armhf builds for LLVM
# Cannot use anchors defined here from included files, so use extends: instead
.use-kernel+rootfs-arm:
variables:
DISTRIBUTION_TAG: *distribution-tag-arm
MESA_ROOTFS_TAG: *kernel-rootfs
.use-kernel+rootfs-x86_64:
variables:
DISTRIBUTION_TAG: *distribution-tag-x86_64
MESA_ROOTFS_TAG: *kernel-rootfs
# x86_64 image with ARM64 & ARM32 kernel & rootfs for baremetal testing
.debian/baremetal_arm_test:
extends:
@@ -645,49 +652,57 @@ kernel+rootfs_arm32:
# Don't want the .container rules
- .container+build-rules
variables:
FDO_DISTRIBUTION_TAG: "${MESA_IMAGE_TAG}--${MESA_ROOTFS_TAG}--${KERNEL_TAG}--${MESA_TEMPLATES_COMMIT}"
ARTIFACTS_PREFIX: "https://${S3_HOST}/${S3_KERNEL_BUCKET}"
ARTIFACTS_SUFFIX: "${MESA_ROOTFS_TAG}--${KERNEL_TAG}--${MESA_ARTIFACTS_TAG}--${MESA_TEMPLATES_COMMIT}"
FDO_DISTRIBUTION_TAG: "${MESA_IMAGE_TAG}--${KERNEL_TAG}--${MESA_TEMPLATES_COMMIT}"
MESA_ARTIFACTS_TAG: *debian-arm64_build
MESA_ROOTFS_TAG: *kernel-rootfs
debian/baremetal_arm32_test:
debian/baremetal_arm32_test-gl:
extends:
- .debian/baremetal_arm_test
needs:
- kernel+rootfs_arm32
- debian/arm32_test-gl
variables:
MESA_IMAGE_TAG: &debian-arm32_test "${DEBIAN_BASE_TAG}--${PKG_REPO_REV}"
MESA_IMAGE_TAG: &baremetal-arm32_test-gl "${DEBIAN_TEST_GL_TAG}--${DEBIAN_BASE_TAG}--${PKG_REPO_REV}"
LAVA_DISTRIBUTION_TAG: !reference [debian/arm32_test-gl, variables, LAVA_DISTRIBUTION_TAG]
debian/baremetal_arm64_test:
debian/baremetal_arm64_test-gl:
extends:
- .debian/baremetal_arm_test
needs:
- kernel+rootfs_arm64
- debian/arm64_test-gl
variables:
MESA_IMAGE_TAG: &debian-arm64_test "${DEBIAN_BASE_TAG}--${PKG_REPO_REV}"
MESA_IMAGE_TAG: &baremetal-arm64_test-gl "${DEBIAN_TEST_GL_TAG}--${DEBIAN_BASE_TAG}--${PKG_REPO_REV}"
LAVA_DISTRIBUTION_TAG: !reference [debian/arm64_test-gl, variables, LAVA_DISTRIBUTION_TAG]
.use-debian/baremetal_arm_test:
variables:
MESA_ROOTFS_TAG: *kernel-rootfs
.use-debian/baremetal_arm32_test:
image: "$CI_REGISTRY_IMAGE/${MESA_IMAGE_PATH}:${MESA_IMAGE_TAG}--${MESA_ROOTFS_TAG}--${KERNEL_TAG}--${MESA_TEMPLATES_COMMIT}"
debian/baremetal_arm64_test-vk:
extends:
- .use-debian/baremetal_arm_test
- .debian/baremetal_arm_test
needs:
- debian/arm64_test-vk
variables:
MESA_IMAGE_PATH: "debian/baremetal_arm32_test"
MESA_IMAGE_TAG: *debian-arm32_test
MESA_IMAGE_TAG: &baremetal-arm64_test-vk "${DEBIAN_TEST_VK_TAG}--${DEBIAN_BASE_TAG}--${PKG_REPO_REV}"
LAVA_DISTRIBUTION_TAG: !reference [debian/arm64_test-vk, variables, LAVA_DISTRIBUTION_TAG]
.use-debian/baremetal_arm32_test-gl:
image: "$CI_REGISTRY_IMAGE/${MESA_IMAGE_PATH}:${MESA_IMAGE_TAG}--${KERNEL_TAG}--${MESA_TEMPLATES_COMMIT}"
variables:
MESA_IMAGE_PATH: "debian/baremetal_arm32_test-gl"
MESA_IMAGE_TAG: *baremetal-arm32_test-gl
needs:
- debian/baremetal_arm_test
.use-debian/baremetal_arm64_test:
image: "$CI_REGISTRY_IMAGE/${MESA_IMAGE_PATH}:${MESA_IMAGE_TAG}--${MESA_ROOTFS_TAG}--${KERNEL_TAG}--${MESA_TEMPLATES_COMMIT}"
extends:
- .use-debian/baremetal_arm_test
.use-debian/baremetal_arm64_test-gl:
image: "$CI_REGISTRY_IMAGE/${MESA_IMAGE_PATH}:${MESA_IMAGE_TAG}--${KERNEL_TAG}--${MESA_TEMPLATES_COMMIT}"
variables:
MESA_IMAGE_PATH: "debian/baremetal_arm64_test"
MESA_IMAGE_TAG: *debian-arm64_test
MESA_IMAGE_PATH: "debian/baremetal_arm64_test-gl"
MESA_IMAGE_TAG: *baremetal-arm64_test-gl
needs:
- debian/baremetal_arm_test
.use-debian/baremetal_arm64_test-vk:
image: "$CI_REGISTRY_IMAGE/${MESA_IMAGE_PATH}:${MESA_IMAGE_TAG}--${KERNEL_TAG}--${MESA_TEMPLATES_COMMIT}"
variables:
MESA_IMAGE_PATH: "debian/baremetal_arm64_test-vk"
MESA_IMAGE_TAG: *baremetal-arm64_test-vk
needs:
- debian/baremetal_arm_test

View File

@@ -1,428 +0,0 @@
#!/usr/bin/env bash
# shellcheck disable=SC1091 # The relative paths in this file only become valid at runtime.
# shellcheck disable=SC2034 # Variables are used in scripts called from here
# shellcheck disable=SC2086 # we want word splitting
# shellcheck disable=SC2016 # non-expanded variables are intentional
# When changing this file, you need to bump the following
# .gitlab-ci/image-tags.yml tags:
# KERNEL_ROOTFS_TAG
# If you need to update the fluster vectors cache without updating the fluster revision,
# you can update the FLUSTER_VECTORS_VERSION tag in .gitlab-ci/image-tags.yml.
# When changing FLUSTER_REVISION, KERNEL_ROOTFS_TAG needs to be updated as well to rebuild
# the rootfs.
set -e
. .gitlab-ci/setup-test-env.sh
set -o xtrace
export DEBIAN_FRONTEND=noninteractive
: "${LLVM_VERSION:?llvm version not set!}"
export FIRMWARE_FILES="${FIRMWARE_FILES}"
export SKIP_UPDATE_FLUSTER_VECTORS=0
check_minio()
{
S3_PATH="${S3_HOST}/${S3_KERNEL_BUCKET}/$1/${DISTRIBUTION_TAG}/${DEBIAN_ARCH}"
if curl -L --retry 4 -f --retry-delay 60 -s \
"https://${S3_PATH}/done"; then
echo "Remote files are up-to-date, skip rebuilding them."
exit
fi
}
check_fluster()
{
S3_PATH_FLUSTER="${S3_HOST}/${S3_KERNEL_BUCKET}/$1/${DATA_STORAGE_PATH}/fluster/${FLUSTER_VECTORS_VERSION}"
if curl -L --retry 4 -f --retry-delay 60 -s \
"https://${S3_PATH_FLUSTER}/done"; then
echo "Fluster vectors are up-to-date, skip downloading them."
export SKIP_UPDATE_FLUSTER_VECTORS=1
fi
}
check_minio "${FDO_UPSTREAM_REPO}"
check_minio "${CI_PROJECT_PATH}"
check_fluster "${FDO_UPSTREAM_REPO}"
check_fluster "${CI_PROJECT_PATH}"
. .gitlab-ci/container/container_pre_build.sh
# Install rust, which we'll be using for deqp-runner. It will be cleaned up at the end.
. .gitlab-ci/container/build-rust.sh
if [[ "$DEBIAN_ARCH" = "arm64" ]]; then
BUILD_CL="ON"
BUILD_VK="ON"
GCC_ARCH="aarch64-linux-gnu"
KERNEL_ARCH="arm64"
elif [[ "$DEBIAN_ARCH" = "armhf" ]]; then
BUILD_CL="OFF"
BUILD_VK="OFF"
GCC_ARCH="arm-linux-gnueabihf"
KERNEL_ARCH="arm"
. .gitlab-ci/container/create-cross-file.sh armhf
CONTAINER_ARCH_PACKAGES=(
libegl1-mesa-dev:armhf
libelf-dev:armhf
libgbm-dev:armhf
libgles2-mesa-dev:armhf
libpng-dev:armhf
libudev-dev:armhf
libvulkan-dev:armhf
libwaffle-dev:armhf
libwayland-dev:armhf
libx11-xcb-dev:armhf
libxkbcommon-dev:armhf
)
else
BUILD_CL="ON"
BUILD_VK="ON"
GCC_ARCH="x86_64-linux-gnu"
KERNEL_ARCH="x86_64"
CONTAINER_ARCH_PACKAGES=(
libasound2-dev libcap-dev libfdt-dev libva-dev p7zip wine
)
fi
# Determine if we're in a cross build.
if [[ -e /cross_file-$DEBIAN_ARCH.txt ]]; then
EXTRA_MESON_ARGS="--cross-file /cross_file-$DEBIAN_ARCH.txt"
EXTRA_CMAKE_ARGS="-DCMAKE_TOOLCHAIN_FILE=/toolchain-$DEBIAN_ARCH.cmake"
if [ $DEBIAN_ARCH = arm64 ]; then
RUST_TARGET="aarch64-unknown-linux-gnu"
elif [ $DEBIAN_ARCH = armhf ]; then
RUST_TARGET="armv7-unknown-linux-gnueabihf"
fi
rustup target add $RUST_TARGET
export EXTRA_CARGO_ARGS="--target $RUST_TARGET"
export ARCH=${KERNEL_ARCH}
export CROSS_COMPILE="${GCC_ARCH}-"
fi
# no need to remove these at end, image isn't saved at the end
CONTAINER_EPHEMERAL=(
arch-test
automake
bc
"clang-${LLVM_VERSION}"
cmake
curl
mmdebstrap
git
glslang-tools
jq
libdrm-dev
libegl1-mesa-dev
libxext-dev
libfontconfig-dev
libgbm-dev
libgl-dev
libgles2-mesa-dev
libglu1-mesa-dev
libglx-dev
libpng-dev
libssl-dev
libudev-dev
libvulkan-dev
libwaffle-dev
libwayland-dev
libx11-xcb-dev
libxcb-dri2-0-dev
libxkbcommon-dev
libwayland-dev
"lld-${LLVM_VERSION}"
ninja-build
openssh-server
patch
protobuf-compiler
python-is-python3
python3-distutils
python3-mako
python3-numpy
python3-serial
python3-venv
unzip
wayland-protocols
zstd
)
[ "$BUILD_CL" == "ON" ] && CONTAINER_EPHEMERAL+=(
ocl-icd-opencl-dev
)
echo "deb [trusted=yes] https://gitlab.freedesktop.org/gfx-ci/ci-deb-repo/-/raw/${PKG_REPO_REV}/ ${FDO_DISTRIBUTION_VERSION%-*} main" | tee /etc/apt/sources.list.d/gfx-ci_.list
. .gitlab-ci/container/debian/maybe-add-llvm-repo.sh
apt-get update
apt-get install -y --no-remove \
-o Dpkg::Options::='--force-confdef' -o Dpkg::Options::='--force-confold' \
"${CONTAINER_EPHEMERAL[@]}" \
"${CONTAINER_ARCH_PACKAGES[@]}" \
${EXTRA_LOCAL_PACKAGES}
export ROOTFS=/lava-files/rootfs-${DEBIAN_ARCH}
mkdir -p "$ROOTFS"
# rootfs packages
PKG_BASE=(
tzdata mount
)
PKG_CI=(
firmware-realtek
bash ca-certificates curl
initramfs-tools jq netcat-openbsd dropbear openssh-server
libasan8
libubsan1
git
python3-dev python3-pip python3-setuptools python3-wheel
weston # Wayland
xinit xserver-xorg-core xwayland # X11
)
PKG_MESA_DEP=(
libdrm2 libsensors5 libexpat1 # common
libvulkan1 # vulkan
libx11-6 libx11-xcb1 libxcb-dri2-0 libxcb-dri3-0 libxcb-glx0 libxcb-present0 libxcb-randr0 libxcb-shm0 libxcb-sync1 libxcb-xfixes0 libxdamage1 libxext6 libxfixes3 libxkbcommon0 libxrender1 libxshmfence1 libxxf86vm1 # X11
)
PKG_DEP=(
libpng16-16
libva-wayland2
libwaffle-1-0
libpython3.11 python3 python3-lxml python3-mako python3-numpy python3-packaging python3-pil python3-renderdoc python3-requests python3-simplejson python3-yaml # Python
sntp
strace
waffle-utils
zstd
)
# arch dependent rootfs packages
[ "$DEBIAN_ARCH" = "arm64" ] && PKG_ARCH=(
libgl1 libglu1-mesa
firmware-linux-nonfree firmware-qcom-media
libfontconfig1
)
[ "$DEBIAN_ARCH" = "amd64" ] && PKG_ARCH=(
firmware-amd-graphics
firmware-misc-nonfree
gstreamer1.0-plugins-bad gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-ugly gstreamer1.0-tools gstreamer1.0-vaapi libgstreamer1.0-0 # Fluster
libgl1 libglu1-mesa
inetutils-syslogd iptables libcap2
libfontconfig1
spirv-tools
libelf1 libfdt1 "libllvm${LLVM_VERSION}"
libva2 libva-drm2
socat
sysvinit-core
wine
)
[ "$DEBIAN_ARCH" = "armhf" ] && PKG_ARCH=(
firmware-misc-nonfree
)
[ "$BUILD_CL" == "ON" ] && PKG_ARCH+=(
clinfo
"libclang-cpp${LLVM_VERSION}"
"libclang-common-${LLVM_VERSION}-dev"
ocl-icd-libopencl1
)
[ "$BUILD_VK" == "ON" ] && PKG_ARCH+=(
libvulkan-dev
)
mmdebstrap \
--variant=apt \
--arch="${DEBIAN_ARCH}" \
--components main,contrib,non-free-firmware \
--customize-hook='.gitlab-ci/container/get-firmware-from-source.sh "$ROOTFS" "$FIRMWARE_FILES"' \
--include "${PKG_BASE[*]} ${PKG_CI[*]} ${PKG_DEP[*]} ${PKG_MESA_DEP[*]} ${PKG_ARCH[*]}" \
bookworm \
"$ROOTFS/" \
"http://deb.debian.org/debian" \
"deb [trusted=yes] https://gitlab.freedesktop.org/gfx-ci/ci-deb-repo/-/raw/${PKG_REPO_REV}/ ${FDO_DISTRIBUTION_VERSION%-*} main" \
"${LLVM_APT_REPO:-}"
############### Install mold
. .gitlab-ci/container/build-mold.sh
############### Building
STRIP_CMD="${GCC_ARCH}-strip"
mkdir -p $ROOTFS/usr/lib/$GCC_ARCH
############### Build libclc
if [ "$BUILD_CL" = "ON" ]; then
rm -rf /usr/lib/clc/*
. .gitlab-ci/container/build-libclc.sh
mkdir -p $ROOTFS/usr/{share,lib}/clc
mv /usr/share/clc/spirv*-mesa3d-.spv $ROOTFS/usr/share/clc/
ln -s /usr/share/clc/spirv64-mesa3d-.spv $ROOTFS/usr/lib/clc/
ln -s /usr/share/clc/spirv-mesa3d-.spv $ROOTFS/usr/lib/clc/
fi
############### Build Vulkan validation layer (for zink)
if [ "$DEBIAN_ARCH" = "amd64" ]; then
. .gitlab-ci/container/build-vulkan-validation.sh
mv /usr/lib/x86_64-linux-gnu/libVkLayer_khronos_validation.so $ROOTFS/usr/lib/x86_64-linux-gnu/
mkdir -p $ROOTFS/usr/share/vulkan/explicit_layer.d
mv /usr/share/vulkan/explicit_layer.d/* $ROOTFS/usr/share/vulkan/explicit_layer.d/
fi
############### Build apitrace
. .gitlab-ci/container/build-apitrace.sh
mkdir -p $ROOTFS/apitrace
mv /apitrace/build $ROOTFS/apitrace
rm -rf /apitrace
############### Build ANGLE
if [ "$DEBIAN_ARCH" != "armhf" ]; then
ANGLE_TARGET=linux \
. .gitlab-ci/container/build-angle.sh
mv /angle $ROOTFS/.
rm -rf /angle
fi
############### Build dEQP runner
. .gitlab-ci/container/build-deqp-runner.sh
mkdir -p $ROOTFS/usr/bin
mv /usr/local/bin/*-runner $ROOTFS/usr/bin/.
############### Build dEQP
DEQP_API=tools \
DEQP_TARGET=default \
. .gitlab-ci/container/build-deqp.sh
DEQP_API=GL \
DEQP_TARGET=surfaceless \
. .gitlab-ci/container/build-deqp.sh
DEQP_API=GLES \
DEQP_TARGET=surfaceless \
. .gitlab-ci/container/build-deqp.sh
if [ "$BUILD_VK" == "ON" ]; then
DEQP_API=VK \
DEQP_TARGET=default \
. .gitlab-ci/container/build-deqp.sh
if [ "$DEBIAN_ARCH" == "amd64" ]; then
DEQP_API=VK-main \
DEQP_TARGET=default \
. .gitlab-ci/container/build-deqp.sh
fi
fi
rm -rf /VK-GL-CTS
mv /deqp-* $ROOTFS/.
############### Build SKQP
if [[ "$DEBIAN_ARCH" = "arm64" ]] \
|| [[ "$DEBIAN_ARCH" = "amd64" ]]; then
. .gitlab-ci/container/build-skqp.sh
mv /skqp $ROOTFS/.
fi
############### Build piglit
PIGLIT_OPTS="-DPIGLIT_USE_WAFFLE=ON
-DPIGLIT_USE_GBM=ON
-DPIGLIT_USE_WAYLAND=ON
-DPIGLIT_USE_X11=ON
-DPIGLIT_BUILD_GLX_TESTS=ON
-DPIGLIT_BUILD_EGL_TESTS=ON
-DPIGLIT_BUILD_WGL_TESTS=OFF
-DPIGLIT_BUILD_GL_TESTS=ON
-DPIGLIT_BUILD_GLES1_TESTS=ON
-DPIGLIT_BUILD_GLES2_TESTS=ON
-DPIGLIT_BUILD_GLES3_TESTS=ON
-DPIGLIT_BUILD_CL_TESTS=$BUILD_CL
-DPIGLIT_BUILD_VK_TESTS=$BUILD_VK
-DPIGLIT_BUILD_DMA_BUF_TESTS=ON" \
. .gitlab-ci/container/build-piglit.sh
mv /piglit $ROOTFS/.
############### Build libva tests
if [[ "$DEBIAN_ARCH" = "amd64" ]]; then
. .gitlab-ci/container/build-va-tools.sh
mv /va/bin/* $ROOTFS/usr/bin/
fi
############### Build Crosvm
if [[ ${DEBIAN_ARCH} = "amd64" ]]; then
. .gitlab-ci/container/build-crosvm.sh
mv /usr/local/bin/crosvm $ROOTFS/usr/bin/
mv /usr/local/lib/libvirglrenderer.* $ROOTFS/usr/lib/$GCC_ARCH/
mkdir -p $ROOTFS/usr/local/libexec/
mv /usr/local/libexec/virgl* $ROOTFS/usr/local/libexec/
fi
############### Build ci-kdl
. .gitlab-ci/container/build-kdl.sh
mv /ci-kdl $ROOTFS/
############### Install fluster
if [[ ${DEBIAN_ARCH} = "amd64" ]]; then
section_start fluster "Install fluster"
. .gitlab-ci/container/build-fluster.sh
section_end fluster
fi
############### Build local stuff for use by igt and kernel testing, which
############### will reuse most of our container build process from a specific
############### hash of the Mesa tree.
if [[ -e ".gitlab-ci/local/build-rootfs.sh" ]]; then
. .gitlab-ci/local/build-rootfs.sh
fi
############### Delete rust, since the tests won't be compiling anything.
rm -rf /root/.cargo
rm -rf /root/.rustup
############### Delete firmware files we don't need
if [ "$DEBIAN_ARCH" = "amd64" ]; then
dpkg -L firmware-misc-nonfree | grep -v "i915" | xargs rm || true
fi
############### Fill rootfs
cp .gitlab-ci/setup-test-env.sh $ROOTFS/.
cp .gitlab-ci/container/setup-rootfs.sh $ROOTFS/.
cp .gitlab-ci/container/strip-rootfs.sh $ROOTFS/.
cp .gitlab-ci/container/debian/llvm-snapshot.gpg.key $ROOTFS/.
cp .gitlab-ci/container/debian/winehq.gpg.key $ROOTFS/.
chroot $ROOTFS bash /setup-rootfs.sh
rm $ROOTFS/{llvm-snapshot,winehq}.gpg.key
rm "$ROOTFS/setup-test-env.sh"
rm "$ROOTFS/setup-rootfs.sh"
rm "$ROOTFS/strip-rootfs.sh"
cp /etc/wgetrc $ROOTFS/etc/.
# Copy all tags to the rootfs, so test jobs can check if they are using the intended version
TAG_FILE_DIR="$(get_tag_file)"
if [ -d "${TAG_FILE_DIR}" ]; then
cp --parents -r "${TAG_FILE_DIR}" $ROOTFS/.
fi
if [ "${DEBIAN_ARCH}" = "arm64" ]; then
mkdir -p /lava-files/rootfs-arm64/lib/firmware/qcom/sm8350/ # for firmware imported later
fi
ROOTFSTAR="lava-rootfs.tar.zst"
du -ah "$ROOTFS" | sort -h | tail -100
pushd $ROOTFS
tar --zstd -cf /lava-files/${ROOTFSTAR} .
popd
. .gitlab-ci/container/container_post_build.sh
s3_upload /lava-files/"${ROOTFSTAR}" "https://${S3_PATH}/"
touch /lava-files/done
s3_upload /lava-files/done "https://${S3_PATH}/"

18
.gitlab-ci/container/setup-rootfs.sh Normal file → Executable file
View File

@@ -2,19 +2,11 @@
# shellcheck disable=SC1091 # The relative paths in this file only become valid at runtime.
# When changing this file, you need to bump the following
# .gitlab-ci/image-tags.yml tags:
# KERNEL_ROOTFS_TAG
set -ex
# DEBIAN_TEST_GL_TAG
# DEBIAN_TEST_VIDEO_TAG
# DEBIAN_TEST_VK_TAG
. setup-test-env.sh
export DEBIAN_FRONTEND=noninteractive
# Needed for ci-fairy, this revision is able to upload files to
# MinIO and doesn't depend on git
pip3 install --break-system-packages git+http://gitlab.freedesktop.org/freedesktop/ci-templates@ffe4d1b10aab7534489f0c4bbc4c5899df17d3f2
# Needed for manipulation with traces yaml files.
pip3 install --break-system-packages yq
set -eux -o pipefail
passwd root -d
chsh -s /bin/sh
@@ -29,5 +21,3 @@ chmod +x /init
# Copy timezone file and remove tzdata package
rm -rf /etc/localtime
cp /usr/share/zoneinfo/Etc/UTC /etc/localtime
. strip-rootfs.sh

View File

@@ -4,8 +4,8 @@
# .gitlab-ci/image-tags.yml tags:
# DEBIAN_TEST_ANDROID_TAG
# DEBIAN_TEST_GL_TAG
# DEBIAN_TEST_VIDEO_TAG
# DEBIAN_TEST_VK_TAG
# KERNEL_ROOTFS_TAG
set -ex
section_start strip-rootfs "Stripping rootfs"
@@ -38,7 +38,6 @@ UNNEEDED_PACKAGES=(
udev
init-system-helpers
cpio
passwd
libsemanage1 libsemanage-common
libsepol1
gpgv

View File

@@ -49,6 +49,14 @@ ulimit -S -n 32768
VSOCK_BASE=10000 # greater than all the default vsock ports
VSOCK_CID=$((VSOCK_BASE + (CI_JOB_ID & 0xfff)))
# Venus requires a custom kernel for now
if [ "$ANDROID_GPU_MODE" = "venus" ] || [ "$ANDROID_GPU_MODE" = "venus_guest_angle" ]; then
CUSTOM_KERNEL_ARGS="
-kernel_path=/cuttlefish/bzImage
-initramfs_path=/cuttlefish/initramfs.img
"
fi
HOME=/cuttlefish launch_cvd \
-daemon \
-verbosity=VERBOSE \
@@ -64,8 +72,7 @@ HOME=/cuttlefish launch_cvd \
-gpu_mode="$ANDROID_GPU_MODE" \
-cpus=${FDO_CI_CONCURRENT:-4} \
-memory_mb 8192 \
-kernel_path="/cuttlefish/bzImage" \
-initramfs_path="/cuttlefish/initramfs.img"
$CUSTOM_KERNEL_ARGS
sleep 1

View File

@@ -31,6 +31,16 @@ if [ -n "$ANGLE_TAG" ]; then
export LD_LIBRARY_PATH=/angle:$LD_LIBRARY_PATH
fi
if [ -n "$PIGLIT_TAG" ]; then
# Are we using the right Piglit version?
ci_tag_test_time_check "PIGLIT_TAG"
elif [ -d "/piglit" ]; then
# The job does not inherit from .test-piglit, so we move it out of the way.
# This makes sure that we can both do the right version checks when needed,
# and also optimise our dependencies so we don't pull unneeded stuff.
mv /piglit /piglit.unused
fi
# Ensure Mesa Shader Cache resides on tmpfs.
SHADER_CACHE_HOME=${XDG_CACHE_HOME:-${HOME}/.cache}
SHADER_CACHE_DIR=${MESA_SHADER_CACHE_DIR:-${SHADER_CACHE_HOME}/mesa_shader_cache}

View File

@@ -16,8 +16,8 @@ fi
TMP_DIR=$(mktemp -d)
echo "$(date +"%F %T") Downloading archived master..."
if ! /usr/bin/wget \
-O "$TMP_DIR/$CI_PROJECT_NAME.tar.gz" \
if ! curl --location --fail --retry-connrefused --retry 3 --retry-delay 10 \
--output "$TMP_DIR/$CI_PROJECT_NAME.tar.gz" \
"https://${S3_HOST}/${S3_GITCACHE_BUCKET}/${FDO_UPSTREAM_REPO}/$CI_PROJECT_NAME.tar.gz";
then
echo "Repository cache not available"

View File

@@ -13,19 +13,6 @@ if [ -z "$FLUSTER_CODECS" ]; then
exit 1
fi
# Check which fluster vectors to get
FLUSTER_VECTORS_HOST_PATH="${STORAGE_MAINLINE_HOST_PATH}/fluster/${FLUSTER_VECTORS_VERSION}"
if [ "$CI_PROJECT_PATH" != "$FDO_UPSTREAM_REPO" ]; then
if ! curl -s -L --retry 4 -f --retry-delay 60 "${FDO_HTTP_CACHE_URI:-}https://${FLUSTER_VECTORS_HOST_PATH}/done"; then
echo "Using Fluster vectors from the fork, cached from mainline is unavailable."
FLUSTER_VECTORS_HOST_PATH="${STORAGE_FORK_HOST_PATH}/fluster/${FLUSTER_VECTORS_VERSION}"
else
echo "Using the cached Fluster vectors."
fi
fi
curl -L --retry 4 -f --retry-all-errors --retry-delay 60 "${FDO_HTTP_CACHE_URI:-}https://${FLUSTER_VECTORS_HOST_PATH}/vectors.tar.zst" | tar --zstd -x -C /usr/local/
INSTALL="$PWD/install"
# Set up the driver environment.

View File

@@ -8,6 +8,8 @@ set -ex
INSTALL=$PWD/install
export PATH=/va/bin:$PATH
# Set up the driver environment.
export LD_LIBRARY_PATH=$INSTALL/lib/

View File

@@ -19,22 +19,22 @@ include:
- .gitlab-ci/conditional-build-image-tags.yml
variables:
DEBIAN_BASE_TAG: "20250408-virgl"
DEBIAN_BASE_TAG: "20250424-rootfs"
DEBIAN_BUILD_TAG: "20250324-android"
DEBIAN_BUILD_TAG: "20250422-ci-fairy"
DEBIAN_TEST_ANDROID_TAG: "20250415-anglit"
DEBIAN_TEST_GL_TAG: "20250415-anglit"
DEBIAN_TEST_VK_TAG: "20250416-vkvideo"
KERNEL_ROOTFS_TAG: "20250415-anglit"
DEBIAN_TEST_ANDROID_TAG: "20250423-rootfs"
DEBIAN_TEST_GL_TAG: "20250423-rootfs"
DEBIAN_TEST_VIDEO_TAG: "20250423-rootfs"
DEBIAN_TEST_VK_TAG: "20250423-rootfs"
DEBIAN_PYUTILS_TAG: "20250321-s3cp-fix5"
DEBIAN_PYUTILS_TAG: "20250422-ci-fairy"
ALPINE_X86_64_BUILD_TAG: "20250324-sphinx"
ALPINE_X86_64_LAVA_SSH_TAG: "20250321-s3cp-fix5"
FEDORA_X86_64_BUILD_TAG: "20250321-s3cp-fix5"
ALPINE_X86_64_BUILD_TAG: "20250423-rootfs"
ALPINE_X86_64_LAVA_SSH_TAG: "20250423-rootfs"
FEDORA_X86_64_BUILD_TAG: "20250423-rootfs"
KERNEL_TAG: "v6.14-mesa-0bdd"
KERNEL_TAG: "v6.14-mesa-dea4"
KERNEL_REPO: "gfx-ci/linux"
PKG_REPO_REV: "95bf62c"

View File

@@ -20,13 +20,14 @@ variables:
timeout: 1h
variables:
GIT_STRATEGY: none # testing doesn't build anything from source
HWCI_TEST_SCRIPT: ./install/deqp-runner.sh
FDO_CI_CONCURRENT: 6 # should be replaced by per-machine definitions
# the dispatchers use this to cache data locally
LAVA_HTTP_CACHE_URI: "http://caching-proxy/cache/?uri="
# base system generated by the container build job, shared between many pipelines
BASE_SYSTEM_HOST_PREFIX: "${S3_HOST}/${S3_KERNEL_BUCKET}"
BASE_SYSTEM_MAINLINE_HOST_PATH: "${BASE_SYSTEM_HOST_PREFIX}/${FDO_UPSTREAM_REPO}/${DISTRIBUTION_TAG}/${DEBIAN_ARCH}"
BASE_SYSTEM_FORK_HOST_PATH: "${BASE_SYSTEM_HOST_PREFIX}/${CI_PROJECT_PATH}/${DISTRIBUTION_TAG}/${DEBIAN_ARCH}"
BASE_SYSTEM_MAINLINE_HOST_PATH: "${BASE_SYSTEM_HOST_PREFIX}/${FDO_UPSTREAM_REPO}/${LAVA_DISTRIBUTION_TAG}"
BASE_SYSTEM_FORK_HOST_PATH: "${BASE_SYSTEM_HOST_PREFIX}/${CI_PROJECT_PATH}/${LAVA_DISTRIBUTION_TAG}"
# per-job build artifacts
JOB_ROOTFS_OVERLAY_PATH: "${JOB_ARTIFACTS_BASE}/job-rootfs-overlay.tar.gz"
JOB_RESULTS_PATH: "${JOB_ARTIFACTS_BASE}/results.tar.zst"
@@ -35,8 +36,6 @@ variables:
S3_RESULTS_UPLOAD: "${JOB_ARTIFACTS_BASE}"
PIGLIT_NO_WINDOW: 1
VISIBILITY_GROUP: "Collabora+fdo"
STORAGE_MAINLINE_HOST_PATH: "${BASE_SYSTEM_HOST_PREFIX}/${FDO_UPSTREAM_REPO}/${DATA_STORAGE_PATH}"
STORAGE_FORK_HOST_PATH: "${BASE_SYSTEM_HOST_PREFIX}/${CI_PROJECT_PATH}/${DATA_STORAGE_PATH}"
before_script:
- !reference [.download_s3, before_script]
script:
@@ -64,57 +63,7 @@ variables:
- job: python-artifacts
artifacts: false
.lava-test:arm32:
variables:
ARCH: arm32
DEBIAN_ARCH: armhf
KERNEL_IMAGE_NAME: zImage
KERNEL_IMAGE_TYPE: "zimage"
BOOT_METHOD: u-boot
extends:
- .use-debian/arm64_build # for same $MESA_ARTIFACTS_TAG as in kernel+rootfs_arm32
- .use-debian/x86_64_pyutils
- .lava-test
- .use-kernel+rootfs-arm
needs:
- !reference [.lava-test, needs]
- job: kernel+rootfs_arm32
artifacts: false
- job: debian-arm32
artifacts: false
.lava-test-deqp:arm32:
extends:
- .lava-test:arm32
variables:
HWCI_TEST_SCRIPT: "/install/deqp-runner.sh"
.lava-test:arm64:
variables:
ARCH: arm64
DEBIAN_ARCH: arm64
KERNEL_IMAGE_NAME: Image
KERNEL_IMAGE_TYPE: "image"
BOOT_METHOD: u-boot
extends:
- .use-debian/arm64_build # for same $MESA_ARTIFACTS_TAG as in kernel+rootfs_arm64
- .use-debian/x86_64_pyutils
- .lava-test
- .use-kernel+rootfs-arm
needs:
- !reference [.lava-test, needs]
- job: kernel+rootfs_arm64
artifacts: false
- job: debian-arm64
artifacts: false
.lava-test-deqp:arm64:
variables:
HWCI_TEST_SCRIPT: "/install/deqp-runner.sh"
extends:
- .lava-test:arm64
.lava-test:x86_64:
.lava-x86_64-test:
variables:
ARCH: x86_64
DEBIAN_ARCH: amd64
@@ -122,24 +71,106 @@ variables:
KERNEL_IMAGE_TYPE: "zimage"
BOOT_METHOD: u-boot
extends:
- .use-debian/x86_64_build-base # for same $MESA_ARTIFACTS_BASE_TAG as in kernel+rootfs_x86_64
- .use-debian/x86_64_pyutils
- .lava-test
- .use-kernel+rootfs-x86_64
needs:
- !reference [.lava-test, needs]
- job: kernel+rootfs_x86_64
artifacts: false
- job: debian-testing
artifacts: false
.lava-test-deqp:x86_64:
.lava-x86_64-test-gl:
variables:
HWCI_TEST_SCRIPT: "/install/deqp-runner.sh"
LAVA_DISTRIBUTION_TAG: !reference [debian/x86_64_test-gl, variables, LAVA_DISTRIBUTION_TAG]
extends:
- .lava-test:x86_64
- .lava-x86_64-test
needs:
- !reference [.lava-x86_64-test, needs]
- job: debian/x86_64_test-gl
artifacts: false
.lava-x86_64-test-video:
variables:
LAVA_DISTRIBUTION_TAG: !reference [debian/x86_64_test-video, variables, LAVA_DISTRIBUTION_TAG]
extends:
- .lava-x86_64-test
needs:
- !reference [.lava-x86_64-test, needs]
- job: debian/x86_64_test-video
artifacts: false
.lava-x86_64-test-vk:
variables:
LAVA_DISTRIBUTION_TAG: !reference [debian/x86_64_test-vk, variables, LAVA_DISTRIBUTION_TAG]
extends:
- .lava-x86_64-test
needs:
- !reference [.lava-x86_64-test, needs]
- job: debian/x86_64_test-vk
artifacts: false
.lava-arm32-test:
variables:
ARCH: arm32
DEBIAN_ARCH: armhf
KERNEL_IMAGE_NAME: zImage
KERNEL_IMAGE_TYPE: "zimage"
BOOT_METHOD: u-boot
extends:
- .use-debian/x86_64_pyutils
- .lava-test
needs:
- !reference [.lava-test, needs]
- job: debian-arm32
artifacts: false
.lava-arm32-test-gl:
variables:
LAVA_DISTRIBUTION_TAG: !reference [debian/arm32_test-gl, variables, LAVA_DISTRIBUTION_TAG]
extends:
- .lava-arm32-test
needs:
- !reference [.lava-arm32-test, needs]
- job: debian/arm32_test-gl
artifacts: false
.lava-arm64-test:
variables:
ARCH: arm64
DEBIAN_ARCH: arm64
KERNEL_IMAGE_NAME: Image
KERNEL_IMAGE_TYPE: "image"
BOOT_METHOD: u-boot
extends:
- .use-debian/x86_64_pyutils
- .lava-test
needs:
- !reference [.lava-test, needs]
- job: debian-arm64
artifacts: false
.lava-arm64-test-gl:
variables:
LAVA_DISTRIBUTION_TAG: !reference [debian/arm64_test-gl, variables, LAVA_DISTRIBUTION_TAG]
extends:
- .lava-arm64-test
needs:
- !reference [.lava-arm64-test, needs]
- job: debian/arm64_test-gl
artifacts: false
.lava-arm64-test-vk:
variables:
LAVA_DISTRIBUTION_TAG: !reference [debian/arm64_test-vk, variables, LAVA_DISTRIBUTION_TAG]
extends:
- .lava-arm64-test
needs:
- !reference [.lava-arm64-test, needs]
- job: debian/arm64_test-vk
artifacts: false
.lava-piglit-traces:
extends:
- .test-piglit
variables:
HWCI_TEST_SCRIPT: "/install/piglit/piglit-traces.sh"
# until we overcome Infrastructure issues, give traces extra 5 min before timeout
@@ -150,19 +181,19 @@ variables:
reports:
junit: results/junit.xml
.lava-piglit-traces:x86_64:
.lava-x86_64-piglit-traces:
extends:
- .lava-test:x86_64
- .lava-x86_64-test-gl
- .lava-piglit-traces
.lava-piglit-traces:arm32:
.lava-arm32-piglit-traces:
extends:
- .lava-test:arm32
- .lava-arm32-test-gl
- .lava-piglit-traces
.lava-piglit-traces:arm64:
.lava-arm64-piglit-traces:
extends:
- .lava-test:arm64
- .lava-arm64-test-gl
- .lava-piglit-traces
.lava-fluster:

View File

@@ -40,7 +40,6 @@ section_start prepare_rootfs "Preparing root filesystem"
set -ex
section_switch rootfs "Assembling root filesystem"
ROOTFS_URL="$(get_path_to_artifact lava-rootfs.tar.zst)"
[ $? != 1 ] || exit 1
@@ -52,7 +51,7 @@ cp artifacts/ci-common/init-*.sh results/job-rootfs-overlay/
cp "$SCRIPTS_DIR"/setup-test-env.sh results/job-rootfs-overlay/
tar zcf job-rootfs-overlay.tar.gz -C results/job-rootfs-overlay/ .
s3_upload job-rootfs-overlay.tar.gz "https://${JOB_ARTIFACTS_BASE}/"
ci-fairy s3cp --token-file "${S3_JWT_FILE}" job-rootfs-overlay.tar.gz "https://${JOB_ROOTFS_OVERLAY_PATH}"
# Prepare env vars for upload.
section_switch variables "Environment variables passed through to device:"

View File

@@ -225,10 +225,9 @@ def wait_for_job_get_started(job, attempt_no):
def bootstrap_log_follower(main_test_case, timestamp_relative_to) -> LogFollower:
deploy_timeout = GL_SECTION_TIMEOUTS[LogSectionType.LAVA_DEPLOY]
start_section = GitlabSection(
id="dut_deploy",
header=f"Running LAVA deploy action - Timeout: {deploy_timeout}",
header="Running LAVA deploy action",
type=LogSectionType.LAVA_DEPLOY,
start_collapsed=True,
timestamp_relative_to=timestamp_relative_to,

View File

@@ -257,7 +257,8 @@ class LAVAJobDefinition:
# since the license isn't bundled inside the repository
if self.job_submitter.device_type == "sm8350-hdk":
run_steps.append(
"curl -L --retry 4 -f --retry-all-errors --retry-delay 60 "
"mkdir -p /lib/firmware/qcom/sm8350 && "
+ "curl -L --retry 4 -f --retry-all-errors --retry-delay 60 "
+ "https://github.com/allahjasif1990/hdk888-firmware/raw/main/a660_zap.mbn "
+ '-o "/lib/firmware/qcom/sm8350/a660_zap.mbn"'
)

View File

@@ -14,7 +14,6 @@ class LogSectionType(Enum):
LAVA_QUEUE = auto()
LAVA_DEPLOY = auto()
LAVA_BOOT = auto()
TEST_DUT_SUITE = auto()
TEST_SUITE = auto()
TEST_CASE = auto()
LAVA_POST_PROCESSING = auto()
@@ -44,12 +43,9 @@ LAVA_BOOT_TIMEOUT = int(getenv("LAVA_BOOT_TIMEOUT", 5))
# including LAVA scheduling and boot duration
LAVA_TEST_OVERHEAD_MIN = 5
# Test DUT suite phase is where the initialization happens in DUT, not on docker.
# The device will be listening to SSH session until the end of the job.
LAVA_TEST_DUT_SUITE_TIMEOUT = int(getenv("CI_JOB_TIMEOUT")) // 60 - LAVA_TEST_OVERHEAD_MIN
# Test suite phase is where the initialization happens on docker.
LAVA_TEST_SUITE_TIMEOUT = int(getenv("LAVA_TEST_SUITE_TIMEOUT", 5))
# Test suite phase is where initialization occurs on both the DUT and the Docker container.
# The device will be listening to the SSH session until the end of the job.
LAVA_TEST_SUITE_TIMEOUT = int(getenv("CI_JOB_TIMEOUT")) // 60 - LAVA_TEST_OVERHEAD_MIN
# Test cases may take a long time, this script has no right to interrupt
# them. But if the test case takes almost 1h, it will never succeed due to
@@ -66,7 +62,6 @@ DEFAULT_GITLAB_SECTION_TIMEOUTS = {
LogSectionType.LAVA_QUEUE: timedelta(minutes=LAVA_QUEUE_TIMEOUT),
LogSectionType.LAVA_DEPLOY: timedelta(minutes=LAVA_DEPLOY_TIMEOUT),
LogSectionType.LAVA_BOOT: timedelta(minutes=LAVA_BOOT_TIMEOUT),
LogSectionType.TEST_DUT_SUITE: timedelta(minutes=LAVA_TEST_DUT_SUITE_TIMEOUT),
LogSectionType.TEST_SUITE: timedelta(minutes=LAVA_TEST_SUITE_TIMEOUT),
LogSectionType.TEST_CASE: timedelta(minutes=LAVA_TEST_CASE_TIMEOUT),
LogSectionType.LAVA_POST_PROCESSING: timedelta(
@@ -95,10 +90,9 @@ class LogSection:
section_id = self.section_id.format(*match.groups())
section_header = self.section_header.format(*match.groups())
is_main_test_case = section_id == main_test_case
timeout = DEFAULT_GITLAB_SECTION_TIMEOUTS[self.section_type]
return GitlabSection(
id=section_id,
header=f"{section_header} - Timeout: {timeout}",
header=section_header,
type=self.section_type,
start_collapsed=self.collapsed,
suppress_start=is_main_test_case,
@@ -122,27 +116,22 @@ LOG_SECTIONS = (
section_id="{}",
section_header="test_case {}",
section_type=LogSectionType.TEST_CASE,
collapsed=True,
),
LogSection(
regex=re.compile(r"<?STARTRUN>? ([^>]*ssh.*server.*)"),
levels=("debug"),
section_id="{}",
section_header="[dut] test_suite {}",
section_type=LogSectionType.TEST_DUT_SUITE,
),
LogSection(
regex=re.compile(r"<?STARTRUN>? ([^>]*)"),
levels=("debug"),
section_id="{}",
section_header="[docker] test_suite {}",
section_header="Setting up hardware device for remote control",
section_type=LogSectionType.TEST_SUITE,
collapsed=True,
),
LogSection(
regex=re.compile(r"ENDTC>? ([^>]+)"),
levels=("target", "debug"),
section_id="post-{}",
section_header="Post test_case {}",
collapsed=True,
section_type=LogSectionType.LAVA_POST_PROCESSING,
collapsed=True,
),
)

View File

@@ -177,7 +177,6 @@ meson setup _build \
-D libunwind=${UNWIND} \
${DRI_LOADERS} \
${GALLIUM_ST} \
-D gallium-opencl=disabled \
-D gallium-drivers=${GALLIUM_DRIVERS:-[]} \
-D vulkan-drivers=${VULKAN_DRIVERS:-[]} \
-D video-codecs=all \

View File

@@ -12,6 +12,9 @@ set -ex
# Our rootfs may not have "less", which apitrace uses during apitrace dump
export PAGER=cat # FIXME: export everywhere
# Check we're using the version of Piglit we think we are
ci_tag_test_time_check "PIGLIT_TAG"
INSTALL=$(realpath -s "$PWD"/install)
export PIGLIT_REPLAY_DESCRIPTION_FILE="$INSTALL/$PIGLIT_TRACES_FILE"
@@ -127,7 +130,8 @@ replay_s3_upload_images() {
__DESTINATION_FILE_PATH="$__S3_TRACES_PREFIX/${line##*-}"
fi
s3_upload "$RESULTS_DIR/$__PREFIX/$line" "https://${__S3_PATH}/${__DESTINATION_FILE_PATH%/*}/"
ci-fairy s3cp --token-file "${S3_JWT_FILE}" "$RESULTS_DIR/$__PREFIX/$line" \
"https://${__S3_PATH}/${__DESTINATION_FILE_PATH}"
done
}

View File

@@ -1,6 +1,4 @@
#!/usr/bin/env bash
# shellcheck disable=SC2038 # TODO: rewrite the find
# shellcheck disable=SC2086 # we want word splitting
# shellcheck disable=SC1091 # relative paths only become valid at runtime
. "${SCRIPTS_DIR}/setup-test-env.sh"
@@ -14,7 +12,6 @@ mkdir -p artifacts/
# Test runs don't pull down the git tree, so put the dEQP helper
# script and associated bits there.
echo "$(cat VERSION) (git-$(git rev-parse HEAD | cut -b -10))" > artifacts/VERSION
cp -Rp .gitlab-ci/report-flakes.py artifacts/
cp -Rp .gitlab-ci/setup-test-env.sh artifacts/
cp -Rp .gitlab-ci/common artifacts/ci-common
@@ -23,37 +20,11 @@ cp -Rp .gitlab-ci/bare-metal artifacts/
cp -Rp .gitlab-ci/lava artifacts/
cp -Rp .gitlab-ci/bin/*_logger.py artifacts/
mapfile -t duplicate_files < <(
find src/ -path '*/ci/*' \
\( \
-name '*.txt' \
-o -name '*.toml' \
-o -name '*traces*.yml' \
\) \
-exec basename -a {} + | sort | uniq -d
)
if [ ${#duplicate_files[@]} -gt 0 ]; then
echo 'Several files with the same name in various ci/ folders:'
printf -- ' %s\n' "${duplicate_files[@]}"
exit 1
fi
if [ -d "src/" ]; then
find src/ -path '*/ci/*' \
\( \
-name '*.txt' \
-o -name '*.toml' \
-o -name '*traces*.yml' \
\) \
-exec cp -p {} artifacts/ \;
fi
cp -Rp .gitlab-ci/*.txt artifacts/
if [ -n "$S3_ARTIFACT_NAME" ]; then
# Pass needed files to the test stage
S3_ARTIFACT_TAR="$S3_ARTIFACT_NAME.tar.zst"
tar c artifacts/ | zstd -o "${S3_ARTIFACT_TAR}"
s3_upload "${S3_ARTIFACT_TAR}" "https://${PIPELINE_ARTIFACTS_BASE}/"
ci-fairy s3cp --token-file "${S3_JWT_FILE}" "${S3_ARTIFACT_TAR}" "https://${PIPELINE_ARTIFACTS_BASE}/${S3_ARTIFACT_TAR}"
rm "${S3_ARTIFACT_TAR}"
fi

View File

@@ -1,5 +1,4 @@
#!/usr/bin/env bash
# shellcheck disable=SC2038 # TODO: rewrite the find
# shellcheck disable=SC2086 # we want word splitting
# shellcheck disable=SC1091 # paths only become valid at runtime
@@ -32,7 +31,8 @@ fi
# Test runs don't pull down the git tree, so put the dEQP helper
# script and associated bits there.
echo "$(cat VERSION) (git-$(git rev-parse HEAD | cut -b -10))" > install/VERSION
git_sha=$(git rev-parse --short=10 HEAD)
echo "$(cat VERSION) (git-$git_sha)" > install/VERSION
cp -Rp .gitlab-ci/bare-metal install/
cp -Rp .gitlab-ci/common install/
cp -Rp .gitlab-ci/piglit install/
@@ -71,20 +71,11 @@ find src/ -path '*/ci/*' \
\) \
-exec cp -p {} install/ \;
# Tar up the install dir so that symlinks and hardlinks aren't each
# packed separately in the zip file.
mkdir -p artifacts/
tar -cf artifacts/install.tar install
cp -Rp .gitlab-ci/common artifacts/ci-common
cp -Rp .gitlab-ci/lava artifacts/
cp -Rp .gitlab-ci/b2c artifacts/
cp bin/ci/structured_logger.py artifacts/
if [ -n "$S3_ARTIFACT_NAME" ]; then
# Pass needed files to the test stage
S3_ARTIFACT_NAME="$S3_ARTIFACT_NAME.tar.zst"
zstd --quiet --threads ${FDO_CI_CONCURRENT:-0} artifacts/install.tar -o ${S3_ARTIFACT_NAME}
s3_upload "${S3_ARTIFACT_NAME}" "https://${PIPELINE_ARTIFACTS_BASE}/"
S3_ARTIFACT_TAR="$S3_ARTIFACT_NAME.tar.zst"
tar -c install | zstd --quiet --threads ${FDO_CI_CONCURRENT:-0} -o ${S3_ARTIFACT_TAR}
ci-fairy s3cp --token-file "${S3_JWT_FILE}" ${S3_ARTIFACT_TAR} https://${PIPELINE_ARTIFACTS_BASE}/${S3_ARTIFACT_TAR}
fi
section_end prepare-artifacts

View File

@@ -285,25 +285,6 @@ export -f get_tag_file
# Structured tagging ------
s3_upload() {
x_off
local file=$1 s3_folder_url=$2
if [ ! -f "$file" ] || [[ "$s3_folder_url" != https://*/ ]]
then
echo "Error: s3_upload incorrect usage."
echo "Usage: s3_upload <file> <s3_folder_url>"
echo " - <file> must exist."
echo " - <s3_folder_url> must start with 'https://' and end with '/'."
exit 1
fi
curl --fail --retry-all-errors --retry 4 --retry-delay 60 \
--header "Authorization: Bearer $(cat "${S3_JWT_FILE}")" \
-X PUT --form file=@"$file" \
"$s3_folder_url"
x_restore
}
export -f s3_upload
export -f error
export -f trap_err

View File

@@ -133,16 +133,9 @@
extends:
- .piglit-performance-base
needs:
- debian/baremetal_arm64_test
- debian/baremetal_arm64_test-gl
- debian-arm64-release
.piglit-performance:x86_64:
extends:
- .piglit-performance-base
needs:
- kernel+rootfs_x86_64
- debian-release
# Mesa source file dependencies that may impact any GL driver test job.
.gallium-core-rules:
rules:
@@ -155,6 +148,7 @@
- src/gallium/frontends/dri/*
- src/gallium/frontends/glx/**/*
- src/gallium/targets/**/*
- src/gallium/tests/**/*
- src/gallium/winsys/*
when: on_success

View File

@@ -2,12 +2,11 @@
# Cancel job if a newer commit is pushed to the same branch
interruptible: true
variables:
GIT_STRATEGY: none # testing doesn't build anything from source
GIT_STRATEGY: none # testing doesn't build anything from source
# `before_script:` is only used by test jobs on generic fdo runners
# it's overwritten by hardware test jobs
before_script:
- !reference [default, before_script]
# Note: Build dir (and thus install) may be dirty due to GIT_STRATEGY
- rm -rf install
- tar -xf artifacts/install.tar
- !reference [.download_s3, before_script]
- section_start ldd_section "Checking ldd on driver build"
- LD_LIBRARY_PATH=install/lib find install/lib -name "*.so" -print -exec ldd {} \;
- section_end ldd_section
@@ -86,11 +85,9 @@ yaml-toml-shell-py-test:
- uncollapsed_section_start tomllint "tomllint"
- echo "If your change looks right but this script rejects it, contact @eric (GitLab) / eric_engestrom (IRC)."
- python3 bin/toml_lint.py
- section_end tomllint
- section_start yamllint "yamllint"
- uncollapsed_section_switch yamllint "yamllint"
- .gitlab-ci/run-yamllint.sh
- section_end yamllint
- section_start shellcheck "shellcheck"
- uncollapsed_section_switch shellcheck "shellcheck"
- .gitlab-ci/run-shellcheck.sh
- section_end shellcheck
- .gitlab-ci/run-pytest.sh
@@ -130,6 +127,7 @@ yaml-toml-shell-py-test:
- !reference [.required-for-hardware-jobs, needs]
variables:
DEBIAN_ARCH: amd64
S3_ARTIFACT_NAME: mesa-x86_64-default-debugoptimized
.test-vk:
extends:
@@ -141,6 +139,7 @@ yaml-toml-shell-py-test:
- !reference [.required-for-hardware-jobs, needs]
variables:
DEBIAN_ARCH: amd64
S3_ARTIFACT_NAME: mesa-x86_64-default-debugoptimized
.test-cl:
extends:
@@ -149,6 +148,8 @@ yaml-toml-shell-py-test:
needs:
- debian/x86_64_test-gl
- !reference [.required-for-hardware-jobs, needs]
variables:
S3_ARTIFACT_NAME: mesa-x86_64-default-debugoptimized
.test-android:
extends:
@@ -158,6 +159,7 @@ yaml-toml-shell-py-test:
# This is for the guest artifacts from debian-android which will be
# downloaded explicitly by cuttlefish-runner.sh
S3_ANDROID_ARTIFACT_NAME: mesa-x86_64-android-debug
S3_ARTIFACT_NAME: mesa-x86_64-default-debugoptimized
# Set the default Vulkan driver to lavapipe for some preliminary checks
# that Cuttlefish always performs before starting the VM. This can be
# overwritten depending on the physical machine running the job.
@@ -181,7 +183,11 @@ yaml-toml-shell-py-test:
variables:
ANGLE_TAG: ${CONDITIONAL_BUILD_ANGLE_TAG}
.b2c-vkd3d-proton-test:
.test-piglit:
variables:
PIGLIT_TAG: ${CONDITIONAL_BUILD_PIGLIT_TAG}
.test-vkd3d-proton:
variables:
HWCI_TEST_SCRIPT: install/vkd3d-runner.sh
@@ -195,6 +201,8 @@ yaml-toml-shell-py-test:
- results/
exclude:
- results/*.shader_cache
extends:
- .test-piglit
variables:
# until we overcome Infrastructure issues, give traces extra 5 min before timeout
DEVICE_HANGING_TIMEOUT_SEC: 600
@@ -209,7 +217,7 @@ yaml-toml-shell-py-test:
.deqp-test:
script:
- rm -rf results # 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
artifacts:
exclude:
@@ -260,62 +268,98 @@ yaml-toml-shell-py-test:
junit: results/junit.xml
# ARM testing of bare-metal boards attached to an x86 gitlab-runner system
.baremetal-test-arm32:
.baremetal-test-arm32-gl:
extends:
- .baremetal-test
- .use-debian/baremetal_arm32_test
- .use-debian/baremetal_arm32_test-gl
variables:
DEBIAN_ARCH: armhf
S3_ARTIFACT_NAME: mesa-arm32-default-debugoptimized
needs:
- debian/baremetal_arm32_test
- debian/baremetal_arm32_test-gl
- job: debian-arm32
artifacts: false
- !reference [.required-for-hardware-jobs, needs]
# ARM64 testing of bare-metal boards attached to an x86 gitlab-runner system
.baremetal-test-arm64:
.baremetal-test-arm64-gl:
extends:
- .baremetal-test
- .use-debian/baremetal_arm64_test
- .use-debian/baremetal_arm64_test-gl
variables:
DEBIAN_ARCH: arm64
S3_ARTIFACT_NAME: mesa-arm64-default-debugoptimized
needs:
- debian/baremetal_arm64_test
- debian/baremetal_arm64_test-gl
- job: debian-arm64
artifacts: false
- !reference [.required-for-hardware-jobs, needs]
# ARM64 testing of bare-metal boards attached to an x86 gitlab-runner system
.baremetal-test-arm64-vk:
extends:
- .baremetal-test
- .use-debian/baremetal_arm64_test-vk
variables:
DEBIAN_ARCH: arm64
S3_ARTIFACT_NAME: mesa-arm64-default-debugoptimized
needs:
- debian/baremetal_arm64_test-vk
- job: debian-arm64
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
.baremetal-arm32-asan-test:
.baremetal-arm32-asan-test-gl:
variables:
S3_ARTIFACT_NAME: mesa-arm32-asan-debugoptimized
DEQP_FORCE_ASAN: 1
needs:
- debian/baremetal_arm32_test
- debian/baremetal_arm32_test-gl
- job: debian-arm32-asan
artifacts: false
- !reference [.required-for-hardware-jobs, needs]
.baremetal-arm64-asan-test:
.baremetal-arm64-asan-test-gl:
variables:
S3_ARTIFACT_NAME: mesa-arm64-asan-debugoptimized
DEQP_FORCE_ASAN: 1
needs:
- debian/baremetal_arm64_test
- debian/baremetal_arm64_test-gl
- job: debian-arm64-asan
artifacts: false
- !reference [.required-for-hardware-jobs, needs]
.baremetal-arm64-ubsan-test:
.baremetal-arm64-asan-test-vk:
variables:
S3_ARTIFACT_NAME: mesa-arm64-asan-debugoptimized
DEQP_FORCE_ASAN: 1
needs:
- debian/baremetal_arm64_test-vk
- job: debian-arm64-asan
artifacts: false
- !reference [.required-for-hardware-jobs, needs]
.baremetal-arm64-ubsan-test-gl:
extends:
- .baremetal-test
- .use-debian/baremetal_arm64_test
- .use-debian/baremetal_arm64_test-vk
variables:
S3_ARTIFACT_NAME: mesa-arm64-ubsan-debugoptimized
needs:
- debian/baremetal_arm64_test
- debian/baremetal_arm64_test-vk
- job: debian-arm64-ubsan
artifacts: false
- !reference [.required-for-hardware-jobs, needs]
.baremetal-arm64-ubsan-test-vk:
extends:
- .baremetal-test
- .use-debian/baremetal_arm64_test-vk
variables:
S3_ARTIFACT_NAME: mesa-arm64-ubsan-debugoptimized
needs:
- debian/baremetal_arm64_test-vk
- job: debian-arm64-ubsan
artifacts: false
- !reference [.required-for-hardware-jobs, needs]
@@ -323,7 +367,7 @@ yaml-toml-shell-py-test:
.baremetal-deqp-test:
variables:
HWCI_TEST_SCRIPT: "/install/deqp-runner.sh"
FDO_CI_CONCURRENT: 0 # Default to number of CPUs
FDO_CI_CONCURRENT: 0 # Default to number of CPUs
# For Valve's bare-metal testing farm jobs.
.b2c-test:
@@ -376,6 +420,9 @@ yaml-toml-shell-py-test:
B2C_JOB_TEMPLATE: "${CI_B2C_ARTIFACTS}/b2c.yml.jinja2.jinja2"
JOB_FOLDER: "job_folder"
# Assume by default this is running deqp, as that's almost always true
HWCI_TEST_SCRIPT: install/deqp-runner.sh
needs:
- job: python-artifacts
artifacts: true

View File

@@ -118,19 +118,15 @@ def test_gl_sections():
section_types = [s.type for s in lf.section_history]
assert "section_start" in parsed_lines[0]
assert "collapsed=true" not in parsed_lines[0]
assert "collapsed=true" in parsed_lines[0]
assert "section_end" in parsed_lines[1]
assert "section_start" in parsed_lines[2]
assert "collapsed=true" not in parsed_lines[2]
assert "collapsed=true" in parsed_lines[2]
assert "section_end" in parsed_lines[3]
assert "section_start" in parsed_lines[4]
assert "collapsed=true" not in parsed_lines[4]
assert "section_end" in parsed_lines[5]
assert "section_start" in parsed_lines[6]
assert "collapsed=true" in parsed_lines[6]
assert "collapsed=true" in parsed_lines[4]
assert section_types == [
# LogSectionType.LAVA_BOOT, True, if LogFollower started with Boot section
LogSectionType.TEST_DUT_SUITE,
LogSectionType.TEST_SUITE,
LogSectionType.TEST_CASE,
LogSectionType.LAVA_POST_PROCESSING,

View File

@@ -3,7 +3,7 @@
. "${SCRIPTS_DIR}/setup-test-env.sh"
set -e
set -eu -o pipefail
comma_separated() {
local IFS=,
@@ -21,7 +21,7 @@ INSTALL=$(realpath -s "$PWD"/install)
# Modifiying here directly LD_LIBRARY_PATH may cause problems when
# using a command wrapper. Hence, we will just set it when running the
# command.
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$INSTALL/lib/:/vkd3d-proton-tests/x64/"
export LD_LIBRARY_PATH="${LD_LIBRARY_PATH:-}:$INSTALL/lib/:/vkd3d-proton-tests/lib/"
# Set the Vulkan driver to use.
@@ -43,7 +43,7 @@ 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.
MESA_VERSION=$(cat "$INSTALL/VERSION")
if ! vulkaninfo | grep driverInfo | tee /tmp/version.txt | grep -F "Mesa $MESA_VERSION"; then
if ! vulkaninfo 2>/dev/null | grep driverInfo | tee /tmp/version.txt | grep -qF "Mesa $MESA_VERSION"; then
printf "%s\n" "Found $(cat /tmp/version.txt), expected $MESA_VERSION"
exit 1
fi
@@ -51,7 +51,10 @@ fi
# Gather the list expected failures
EXPECTATIONFILE="$RESULTS_DIR/$GPU_VERSION-vkd3d-fails.txt"
if [ -f "$INSTALL/$GPU_VERSION-vkd3d-fails.txt" ]; then
grep -vE '^(#|$)' "$INSTALL/$GPU_VERSION-vkd3d-fails.txt" | sort > "$EXPECTATIONFILE"
# Ignore the grep "failure" if the file exists but contains only comments
# or empty lines; the expectation file used will be empty in this case,
# which is not a problem.
grep -vE '^(#|$)' "$INSTALL/$GPU_VERSION-vkd3d-fails.txt" | sort > "$EXPECTATIONFILE" || true
else
printf "%s\n" "$GPU_VERSION-vkd3d-fails.txt not found, assuming a \"no failures\" baseline."
touch "$EXPECTATIONFILE"
@@ -89,17 +92,13 @@ fi
printf "%s\n" "Running vkd3d-proton testsuite..."
LOGFILE="$RESULTS_DIR/vkd3d-proton-log.txt"
TEST_LOGS="$RESULTS_DIR/test-logs"
(cd /vkd3d-proton-tests && tests/test-runner.sh x64/bin/d3d12 --jobs "${FDO_CI_CONCURRENT:-4}" --output-dir "$TEST_LOGS" | tee "$LOGFILE")
TEST_LOGS="/test-logs"
pushd /vkd3d-proton-tests
tests/test-runner.sh ./d3d12 --jobs "${FDO_CI_CONCURRENT:-4}" --output-dir "$TEST_LOGS" | tee "$LOGFILE" || true
popd
printf '\n\n'
# Check if the executable finished (ie. no segfault).
if ! grep -E "^Finished" "$LOGFILE" > /dev/null; then
error "Failed, see ${ARTIFACTS_BASE_URL}/results/vkd3d-proton-log.txt"
exit 1
fi
# Print list of flakes seen this time
flakes_seen=()
for flake in "${flakes[@]}"; do
@@ -114,12 +113,17 @@ if [ ${#flakes_seen[@]} -gt 0 ]; then
printf >&2 ' %s\n' "${flakes_seen[@]}"
fi
# Collect all the failures
mapfile -t fails < <(grep -oE "^FAILED .+$" "$LOGFILE" | cut -d' ' -f2 | sort)
# Collect all the failures; ignore grep "failure" if there are none
fails_lines=$(grep -oE "^FAILED .+$" "$LOGFILE" | cut -d' ' -f2 | sort) || true
if [ -n "$fails_lines" ]; then
mapfile -t fails < <(echo "$fails_lines")
else
fails=()
fi
# Save test output for failed tests (before excluding flakes)
for failed_test in "${fails[@]}"; do
cp "$TEST_LOGS/$failed_test.log" "$RESULTS/$failed_test.log"
cp "$TEST_LOGS/$failed_test.log" "$RESULTS_DIR/$failed_test.log"
done
# Ignore flakes when comparing
@@ -129,11 +133,11 @@ for flake in "${flakes[@]}"; do
done
done
RESULTSFILE="$RESULTS/$GPU_VERSION.txt"
RESULTSFILE="$RESULTS_DIR/$GPU_VERSION.txt"
for failed_test in "${fails[@]}"; do
if ! grep -qE "$failed_test end" "$RESULTS/$failed_test.log"; then
if ! grep -qE "$failed_test end" "$RESULTS_DIR/$failed_test.log"; then
test_status=Crash
elif grep -qE "Test failed:" "$RESULTS/$failed_test.log"; then
elif grep -qE "Test failed:" "$RESULTS_DIR/$failed_test.log"; then
test_status=Fail
else
test_status=Unknown
@@ -147,7 +151,7 @@ for expected_fail_line in "${expected_fail_lines[@]}"; do
test_name=$(cut -d, -f1 <<< "$expected_fail_line")
if [ ! -f "$TEST_LOGS/$test_name.log" ]; then
test_status='UnexpectedImprovement(Skip)'
elif [ ! -f "$RESULTS/$test_name.log" ]; then
elif [ ! -f "$RESULTS_DIR/$test_name.log" ]; then
test_status='UnexpectedImprovement(Pass)'
else
continue

View File

@@ -53,7 +53,6 @@ meson setup `
-Dvideo-codecs="all" `
-Dgles1=enabled `
-Dgles2=enabled `
-Dgallium-opencl=icd `
-Dgallium-rusticl=false `
-Dmicrosoft-clc=enabled `
-Dstatic-libclc=all `

File diff suppressed because it is too large Load Diff

View File

@@ -1 +1 @@
25.1.1
25.2.0-devel

View File

@@ -51,11 +51,6 @@ LOCAL_HEADER_LIBRARIES := libnativebase_headers hwvulkan_headers
MESON_GEN_PKGCONFIGS := log cutils expat hardware libdrm:$(LIBDRM_VERSION) nativewindow sync zlib:1.2.11 libelf
LOCAL_CFLAGS += $(BOARD_MESA3D_CFLAGS)
ifeq ($(shell test $(PLATFORM_SDK_VERSION) -lt 35; echo $$?), 0)
# Before SDK35 the c++ filesystem API was part of a standalone library
LOCAL_STATIC_LIBRARIES += libc++fs
endif
ifneq ($(filter swrast,$(BOARD_MESA3D_GALLIUM_DRIVERS) $(BOARD_MESA3D_VULKAN_DRIVERS)),)
ifeq ($(BOARD_MESA3D_FORCE_SOFTPIPE),)
MESON_GEN_LLVM_STUB := true
@@ -109,6 +104,7 @@ LOCAL_SHARED_LIBRARIES += \
libutils
ifeq ($(shell test $(PLATFORM_SDK_VERSION) -ge 35; echo $$?), 0)
LOCAL_SHARED_LIBRARIES += libui
LOCAL_STATIC_LIBRARIES += libzstd
MESON_GEN_PKGCONFIGS += ui
endif
MESON_GEN_PKGCONFIGS += android.hardware.graphics.mapper:4.0

View File

@@ -16,12 +16,12 @@ import argparse
import re
import sys
import time
from collections import defaultdict
from collections import defaultdict, Counter
from concurrent.futures import ThreadPoolExecutor
from functools import partial
from itertools import chain
from subprocess import check_output, CalledProcessError
from typing import Dict, TYPE_CHECKING, Iterable, Literal, Optional, Tuple
from typing import Callable, Dict, TYPE_CHECKING, Iterable, Literal, Optional, Tuple, cast
import gitlab
import gitlab.v4.objects
@@ -44,6 +44,7 @@ if TYPE_CHECKING:
REFRESH_WAIT_LOG = 10
REFRESH_WAIT_JOBS = 6
MAX_ENABLE_JOB_ATTEMPTS = 3
URL_START = "\033]8;;"
URL_END = "\033]8;;\a"
@@ -99,17 +100,44 @@ def job_duration(job: gitlab.v4.objects.ProjectPipelineJob) -> float:
if job.duration:
return job.duration
elif job.started_at:
return time.perf_counter() - time.mktime(job.started_at.timetuple())
# Convert both times to UTC timestamps for consistent comparison
current_time = time.time()
start_time = job.started_at.timestamp()
return current_time - start_time
return 0.0
def pretty_wait(sec: int) -> None:
"""shows progressbar in dots"""
for val in range(sec, 0, -1):
print(f"{val} seconds", end="\r") # U+23F2 Timer clock
print(f"{val:2d} seconds", end="\r") # U+23F2 Timer clock
time.sleep(1)
def run_target_job(
job: gitlab.v4.objects.ProjectPipelineJob,
enable_job_fn: Callable,
stress: int,
execution_times: dict,
target_statuses: dict,
name_field_pad: int,
) -> None:
execution_times[job.name][job.id] = (job_duration(job), job.status, job.web_url)
if stress and job.status in COMPLETED_STATUSES:
if (
stress < 0
or len(execution_times[job.name]) < stress
):
enable_job_fn(job=job, action_type="retry")
# Wait for the next loop to get the updated job object
return
else:
enable_job_fn(job=job, action_type="target")
print_job_status(job, job.status not in target_statuses[job.name], name_field_pad)
target_statuses[job.name] = job.status
def monitor_pipeline(
project: gitlab.v4.objects.Project,
pipeline: gitlab.v4.objects.ProjectPipeline,
@@ -122,8 +150,7 @@ def monitor_pipeline(
"""Monitors pipeline and delegate canceling jobs"""
statuses: dict[str, str] = defaultdict(str)
target_statuses: dict[str, str] = defaultdict(str)
stress_status_counter: dict[str, dict[str, int]] = defaultdict(lambda: defaultdict(int))
execution_times = defaultdict(lambda: defaultdict(tuple))
execution_times: dict[str, dict[str, tuple[float, str, str]]] = defaultdict(lambda: defaultdict(tuple))
target_id: int = -1
name_field_pad: int = len(max(dependencies, key=len))+2
# In a running pipeline, we can skip following job traces that are in these statuses.
@@ -137,17 +164,18 @@ def monitor_pipeline(
include_stage_regex.fullmatch(job.stage) and \
not exclude_stage_regex.fullmatch(job.stage) and \
job.status in COMPLETED_STATUSES:
stress_status_counter[job.name][job.status] += 1
execution_times[job.name][job.id] = (job_duration(job), job.status, job.web_url)
# jobs_waiting is a list of job names that are waiting for status update.
# It occurs when a job that we want to run depends on another job that is not yet finished.
jobs_waiting = []
# Dictionary to track the number of attempts made for each job
enable_attempts: dict[int, int] = {}
# FIXME: This function has too many parameters, consider refactoring.
enable_job_fn = partial(
enable_job,
project=project,
pipeline=pipeline,
enable_attempts=enable_attempts,
job_name_field_pad=name_field_pad,
jobs_waiting=jobs_waiting,
)
@@ -156,28 +184,20 @@ def monitor_pipeline(
to_cancel = []
jobs_waiting.clear()
for job in sorted(pipeline.jobs.list(all=True), key=lambda j: j.name):
job = cast(gitlab.v4.objects.ProjectPipelineJob, job)
if target_jobs_regex.fullmatch(job.name) and \
include_stage_regex.fullmatch(job.stage) and \
not exclude_stage_regex.fullmatch(job.stage):
run_target_job(
job,
enable_job_fn,
stress,
execution_times,
target_statuses,
name_field_pad,
)
target_id = job.id
target_status = job.status
if stress and target_status in COMPLETED_STATUSES:
if (
stress < 0
or sum(stress_status_counter[job.name].values()) < stress
):
stress_status_counter[job.name][target_status] += 1
execution_times[job.name][job.id] = (job_duration(job), target_status, job.web_url)
job = enable_job_fn(job=job, action_type="retry")
else:
execution_times[job.name][job.id] = (job_duration(job), target_status, job.web_url)
job = enable_job_fn(job=job, action_type="target")
print_job_status(job, target_status not in target_statuses[job.name], name_field_pad)
target_statuses[job.name] = target_status
continue
# all other non-target jobs
if job.status != statuses[job.name]:
print_job_status(job, True, name_field_pad)
@@ -185,7 +205,9 @@ def monitor_pipeline(
# run dependencies and cancel the rest
if job.name in dependencies:
job = enable_job_fn(job=job, action_type="dep")
if not enable_job_fn(job=job, action_type="dep"):
# Wait for the next loop to get the updated job object
continue
if job.status == "failed":
deps_failed.append(job.name)
else:
@@ -195,14 +217,22 @@ def monitor_pipeline(
if stress:
enough = True
for job_name, status in sorted(stress_status_counter.items()):
status_counters = {
name: Counter(info[1] for info in runs.values())
for name, runs in execution_times.items()
}
for job_name, counter in sorted(status_counters.items()):
n_succeed = counter.get("success", 0)
n_failed = counter.get("failed", 0)
n_total_completed = n_succeed + n_failed
n_total_seen = len(execution_times[job_name])
print(
f"* {job_name:{name_field_pad}}succ: {status['success']}; "
f"fail: {status['failed']}; "
f"total: {sum(status.values())} of {stress}",
f"* {job_name:{name_field_pad}}succ: {n_succeed}; "
f"fail: {n_failed}; "
f"total: {n_total_seen} of {stress}",
flush=False,
)
if stress < 0 or sum(status.values()) < stress:
if stress < 0 or n_total_completed < stress:
enough = False
if not enough:
@@ -218,8 +248,10 @@ def monitor_pipeline(
pretty_wait(REFRESH_WAIT_JOBS)
continue
if len(target_statuses) == 1 and RUNNING_STATUSES.intersection(
target_statuses.values()
if (
stress in [0, 1]
and len(target_statuses) == 1
and RUNNING_STATUSES.intersection(target_statuses.values())
):
return target_id, None, execution_times
@@ -247,42 +279,58 @@ def monitor_pipeline(
pretty_wait(REFRESH_WAIT_JOBS)
def get_pipeline_job(
pipeline: gitlab.v4.objects.ProjectPipeline,
job_id: int,
) -> gitlab.v4.objects.ProjectPipelineJob:
pipeline_jobs = pipeline.jobs.list(all=True)
return [j for j in pipeline_jobs if j.id == job_id][0]
def enable_job(
project: gitlab.v4.objects.Project,
pipeline: gitlab.v4.objects.ProjectPipeline,
job: gitlab.v4.objects.ProjectPipelineJob,
enable_attempts: dict[int, int],
action_type: Literal["target", "dep", "retry"],
job_name_field_pad: int = 0,
jobs_waiting: list[str] = [],
) -> gitlab.v4.objects.ProjectPipelineJob:
) -> bool:
"""
Enable a job to run.
:param project: The GitLab project.
:param job: The job to enable.
:param enable_attempts: A dictionary to track the number of attempts made for each job.
:param action_type: The type of action to perform.
:return: True if the job was enabled, False otherwise.
"""
# We want to run this job, but it is not ready to run yet, so let's try again in the next
# iteration.
if job.status == "created":
jobs_waiting.append(job.name)
return job
return False
if (
(job.status in COMPLETED_STATUSES and action_type != "retry")
or job.status in {"skipped"} | RUNNING_STATUSES
):
return job
return False
# Get current attempt number
attempt_count = enable_attempts.get(job.id, 0)
# Check if we've exceeded max attempts to avoid infinite loop
if attempt_count >= MAX_ENABLE_JOB_ATTEMPTS:
raise RuntimeError(
f"Maximum enabling attempts ({MAX_ENABLE_JOB_ATTEMPTS}) reached for job {job.name} "
f"({link2print(job.web_url, job.id)}). Giving up."
)
enable_attempts[job.id] = attempt_count + 1
pjob = project.jobs.get(job.id, lazy=True)
if job.status in {"success", "failed", "canceled", "canceling"}:
new_job = pjob.retry()
job = get_pipeline_job(pipeline, new_job["id"])
try:
pjob.retry()
except Exception as e:
print(f"Error retrying job {job.name}: {e}")
return False
else:
pjob.play()
job = get_pipeline_job(pipeline, pjob.id)
try:
pjob.play()
except Exception as e:
print(f"Error playing job {job.name}: {e}")
return False
if action_type == "target":
jtype = "🞋 target" # U+1F78B Round target
@@ -294,7 +342,7 @@ def enable_job(
job_name_field_pad = len(job.name) if job_name_field_pad < 1 else job_name_field_pad
print(Fore.MAGENTA + f"{jtype} job {job.name:{job_name_field_pad}}manually enabled" + Style.RESET_ALL)
return job
return True
def cancel_job(
@@ -378,9 +426,9 @@ def parse_args() -> argparse.Namespace:
help="Job stages to exclude when searching for target jobs. "
"For multiple targets, pass multiple values, eg. "
"`--exclude-stage foo bar`. By default, performance and "
"post-merge jobs are excluded; pass --exclude-stage '' to "
"nightly jobs are excluded; pass --exclude-stage '' to "
"include them for consideration.",
default=["performance", ".*-postmerge"],
default=["performance", ".*-postmerge", ".*-nightly"],
nargs=argparse.ONE_OR_MORE,
)
parser.add_argument(

View File

@@ -85,3 +85,46 @@ relevant as we have many stable branches all using CI).
Now it's time to define your test jobs in the driver-specific
gitlab-ci.yml file, using the device-specific tags.
Caching downloads
-----------------
To improve the runtime for downloading traces during traces job runs, you will
want a pass-through HTTP cache. On your runner box, install nginx:
.. code-block:: sh
sudo apt install nginx libnginx-mod-http-lua
Add the server setup files:
.. literalinclude:: fdo-cache
:name: /etc/nginx/sites-available/fdo-cache
:caption: /etc/nginx/sites-available/fdo-cache
.. literalinclude:: uri-caching.conf
:name: /etc/nginx/snippets/uri-caching.conf
:caption: /etc/nginx/snippets/uri-caching.conf
Edit the listener addresses in fdo-cache to suit the ethernet interface that
your devices are on.
Enable the site and restart nginx:
.. code-block:: sh
sudo rm /etc/nginx/sites-enabled/default
sudo ln -s /etc/nginx/sites-available/fdo-cache /etc/nginx/sites-enabled/fdo-cache
sudo systemctl restart nginx
# First download will hit the internet
wget http://localhost/cache/?uri=https://s3.freedesktop.org/mesa-tracie-public/itoral-gl-terrain-demo/demo-v2.trace
# Second download should be cached.
wget http://localhost/cache/?uri=https://s3.freedesktop.org/mesa-tracie-public/itoral-gl-terrain-demo/demo-v2.trace
Now, set ``download-url`` in your ``traces-*.yml`` entry to something like
``http://caching-proxy/cache/?uri=https://s3.freedesktop.org/mesa-tracie-public``
and you should have cached downloads for traces. Add it to
``FDO_HTTP_CACHE_URI=`` in your ``config.toml`` runner environment lines and you
can use it for cached artifact downloads instead of going all the way to
freedesktop.org on each job.

View File

@@ -1,232 +1,10 @@
Bare-metal CI
=============
The bare-metal scripts run on a system with gitlab-runner and Docker,
connected to potentially multiple bare-metal boards that run tests of
Mesa. Currently "fastboot", "ChromeOS Servo", and POE-powered devices are
supported.
Bare-metal support is being removed from Mesa, and adding new devices is
no longer supported.
In comparison with LAVA, this doesn't involve maintaining a separate
web service with its own job scheduler and replicating jobs between the
two. It also places more of the board support in Git, instead of
web service configuration. On the other hand, the serial interactions
and bootloader support are more primitive.
Please consider using one of the following alternatives:
Requirements (fastboot)
-----------------------
This testing requires power control of the DUTs by the gitlab-runner
machine, since this is what we use to reset the system and get back to
a pristine state at the start of testing.
We require access to the console output from the gitlab-runner system,
since that is how we get the final results back from the tests. You
should probably have the console on a serial connection, so that you
can see bootloader progress.
The boards need to be able to have a kernel/initramfs supplied by the
gitlab-runner system, since Mesa often needs to update the kernel either for new
DRM functionality, or to fix kernel bugs.
The boards must have networking, so that we can extract the dEQP XML results to
artifacts on GitLab, and so that we can download traces (too large for an
initramfs) for trace replay testing. Given that we need networking already, and
our dEQP/Piglit/etc. payload is large, we use NFS from the x86 runner system
rather than initramfs.
See ``src/freedreno/ci/gitlab-ci.yml`` for an example of fastboot on DB410c and
DB820c (freedreno-a306 and freedreno-a530).
Requirements (Servo)
--------------------
For Servo-connected boards, we can use the EC connection for power
control to reboot the board. However, loading a kernel is not as easy
as fastboot, so we assume your bootloader can do TFTP, and that your
gitlab-runner mounts the runner's tftp directory specific to the board
at /tftp in the container.
Since we're going the TFTP route, we also use NFS root. This avoids
packing the rootfs and sending it to the board as a ramdisk, which
means we can support larger rootfses (for Piglit testing), at the cost
of needing more storage on the runner.
Telling the board about where its TFTP and NFS should come from is
done using dnsmasq on the runner host. For example, this snippet in
the dnsmasq.conf.d in the Google farm, with the gitlab-runner host we
call "servo"::
dhcp-host=1c:69:7a:0d:a3:d3,10.42.0.10,set:servo
# Fixed dhcp addresses for my sanity, and setting a tag for
# specializing other DHCP options
dhcp-host=a0:ce:c8:c8:d9:5d,10.42.0.11,set:cheza1
dhcp-host=a0:ce:c8:c8:d8:81,10.42.0.12,set:cheza2
# Specify the next server, watch out for the double ',,'. The
# filename didn't seem to get picked up by the bootloader, so we use
# tftp-unique-root and mount directories like
# /srv/tftp/10.42.0.11/jwerner/cheza as /tftp in the job containers.
tftp-unique-root
dhcp-boot=tag:cheza1,cheza1/vmlinuz,,10.42.0.10
dhcp-boot=tag:cheza2,cheza2/vmlinuz,,10.42.0.10
dhcp-option=tag:cheza1,option:root-path,/srv/nfs/cheza1
dhcp-option=tag:cheza2,option:root-path,/srv/nfs/cheza2
See ``src/freedreno/ci/gitlab-ci.yml`` for an example of Servo on cheza. Note
that other Servo boards in CI are managed using LAVA.
Requirements (POE)
------------------
For boards with 30W or less power consumption, POE can be used for the power
control. The parts list ends up looking something like (for example):
- x86-64 gitlab-runner machine with a mid-range CPU, and 3+ GB of SSD storage
per board. This can host at least 15 boards in our experience.
- Cisco 2960S gigabit ethernet switch with POE. (Cisco 3750G, 3560G, or 2960G
were also recommended as reasonable-priced HW, but make sure the name ends in
G, X, or S)
- POE splitters to power the boards (you can find ones that go to micro USB,
USBC, and 5V barrel jacks at least)
- USB serial cables (Adafruit sells pretty reliable ones)
- A large powered USB hub for all the serial cables
- A pile of ethernet cables
You'll talk to the Cisco for configuration using its USB port, which provides a
serial terminal at 9600 baud. You need to enable SNMP control, which we'll do
using a "mesaci" community name that the gitlab runner can access as its
authentication (no password) to configure. To talk to the SNMP on the router,
you need to put an IP address on the default VLAN (VLAN 1).
Setting that up looks something like:
.. code-block: console
Switch>
Password:
Switch#configure terminal
Switch(config)#interface Vlan 1
Switch(config-if)#ip address 10.42.0.2 255.255.0.0
Switch(config-if)#end
Switch(config)#snmp-server community mesaci RW
Switch(config)#end
Switch#copy running-config startup-config
With that set up, you should be able to power on/off a port with something like:
.. code-block: console
% snmpset -v2c -r 3 -t 30 -cmesaci 10.42.0.2 1.3.6.1.4.1.9.9.402.1.2.1.1.1.1 i 1
% snmpset -v2c -r 3 -t 30 -cmesaci 10.42.0.2 1.3.6.1.4.1.9.9.402.1.2.1.1.1.1 i 4
Note that the "1.3.6..." SNMP OID changes between switches. The last digit
above is the interface id (port number). You can probably find the right OID by
Google, that was easier than figuring it out from finding the switch's MIB
database. You can query the POE status from the switch serial using the ``show
power inline`` command.
Other than that, find the dnsmasq/tftp/NFS setup for your boards "servo" above.
See ``src/broadcom/ci/gitlab-ci.yml`` and ``src/nouveau/ci/gitlab-ci.yml`` for an
examples of POE for Raspberry Pi 3/4, and Jetson Nano.
Setup
-----
Each board will be registered in freedesktop.org GitLab. You'll want
something like this to register a fastboot board:
.. code-block:: sh
sudo gitlab-runner register \
--url https://gitlab.freedesktop.org \
--registration-token $1 \
--name MY_BOARD_NAME \
--tag-list MY_BOARD_TAG \
--executor docker \
--docker-image "alpine:latest" \
--docker-volumes "/dev:/dev" \
--docker-network-mode "host" \
--docker-privileged \
--non-interactive
For a Servo board, you'll need to also volume mount the board's NFS
root dir at /nfs and TFTP kernel directory at /tftp.
The registration token has to come from a freedesktop.org GitLab admin
going to https://gitlab.freedesktop.org/admin/runners
The name scheme for Google's lab is google-freedreno-boardname-n, and
our tag is something like google-freedreno-db410c. The tag is what
identifies a board type so that board-specific jobs can be dispatched
into that pool.
We need privileged mode and the /dev bind mount in order to get at the
serial console and fastboot USB devices (--device arguments don't
apply to devices that show up after container start, which is the case
with fastboot, and the Servo serial devices are actually links to
/dev/pts). We use host network mode so that we can spin up a nginx
server to collect XML results for fastboot.
Once you've added your boards, you're going to need to add a little
more customization in ``/etc/gitlab-runner/config.toml``. First, add
``concurrent = <number of boards>`` at the top ("we should have up to
this many jobs running managed by this gitlab-runner"). Then for each
board's runner, set ``limit = 1`` ("only 1 job served by this board at a
time"). Finally, add the board-specific environment variables
required by your bare-metal script, something like::
[[runners]]
name = "google-freedreno-db410c-1"
environment = ["BM_SERIAL=/dev/ttyDB410c8", "BM_POWERUP=google-power-up.sh 8", "BM_FASTBOOT_SERIAL=15e9e390", "FDO_CI_CONCURRENT=4"]
The ``FDO_CI_CONCURRENT`` variable should be set to the number of CPU threads on
the board, which is used for auto-tuning of job parallelism.
Once you've updated your runners' configs, restart with ``sudo service
gitlab-runner restart``
Caching downloads
-----------------
To improve the runtime for downloading traces during traces job runs, you will
want a pass-through HTTP cache. On your runner box, install nginx:
.. code-block:: sh
sudo apt install nginx libnginx-mod-http-lua
Add the server setup files:
.. literalinclude:: fdo-cache
:name: /etc/nginx/sites-available/fdo-cache
:caption: /etc/nginx/sites-available/fdo-cache
.. literalinclude:: uri-caching.conf
:name: /etc/nginx/snippets/uri-caching.conf
:caption: /etc/nginx/snippets/uri-caching.conf
Edit the listener addresses in fdo-cache to suit the ethernet interface that
your devices are on.
Enable the site and restart nginx:
.. code-block:: sh
sudo rm /etc/nginx/sites-enabled/default
sudo ln -s /etc/nginx/sites-available/fdo-cache /etc/nginx/sites-enabled/fdo-cache
sudo systemctl restart nginx
# First download will hit the internet
wget http://localhost/cache/?uri=https://s3.freedesktop.org/mesa-tracie-public/itoral-gl-terrain-demo/demo-v2.trace
# Second download should be cached.
wget http://localhost/cache/?uri=https://s3.freedesktop.org/mesa-tracie-public/itoral-gl-terrain-demo/demo-v2.trace
Now, set ``download-url`` in your ``traces-*.yml`` entry to something like
``http://caching-proxy/cache/?uri=https://s3.freedesktop.org/mesa-tracie-public``
and you should have cached downloads for traces. Add it to
``FDO_HTTP_CACHE_URI=`` in your ``config.toml`` runner environment lines and you
can use it for cached artifact downloads instead of going all the way to
freedesktop.org on each job.
- `CI-tron <https://gfx-ci.pages.freedesktop.org/ci-tron/>`__
- :doc:`LAVA`

View File

@@ -53,16 +53,11 @@ Kconfigs location
Updating image tags
-------------------
Every kernel uprev should update 3 image tags, located at two files.
Every kernel uprev should update the following tag:
:code:`.gitlab-ci/container/gitlab-ci.yml` tag
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- **KERNEL_URL** for the location of the new kernel
:code:`.gitlab-ci/image-tags.yml` tags
:code:`.gitlab-ci/image-tags.yml` tag
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- **KERNEL_ROOTFS_TAG** to rebuild rootfs with the new kernel
- **DEBIAN_X86_TEST_GL_TAG** to ensure that the new rootfs is being used by the GitLab x86 jobs
- **KERNEL_TAG** to use the new kernel
Development routine
-------------------

View File

@@ -249,11 +249,11 @@ To integrate structured tagging for a new component (for example, ``my_component
variables:
MY_COMPONENT_TAG: "${CONDITIONAL_BUILD_MY_COMPONENT_TAG}"
- It is time to modify the job that builds the component image to include the new component tag. Let's suppose that only the ``kernel+rootfs_x86_64`` job builds the component image. We need to add the new component tag to the job as an extension:
- It is time to modify the job that builds the component image to include the new component tag. Let's suppose that only the ``debian/arm64_test-gl`` job builds the component image. We need to add the new component tag to the job as an extension:
.. code-block:: yaml
kernel+rootfs_x86_64:
debian/arm64_test-gl:
extends:
- .container-builds-my-component
- .container-builds-my-component2

View File

@@ -51,7 +51,7 @@ Add this to your ``.vimrc`` to automatically format any C & C++ file
If ``/usr/share/clang/clang-format.py`` doesn't exist, try
``/usr/share/clang/clang-format-$CLANG_VERSION/clang-format.py``
(replacing ``$CLANG_VERSION`` with your clang version). If your distro
(replacing ``$CLANG_VERSION`` with your clang version). If your distribution
has put the file somewhere else, look through the files in the package
providing ``clang-format``.
@@ -82,8 +82,8 @@ Add this to your ``.emacs`` to automatically format any C & C++ file
(add-hook 'c++-mode-hook (lambda () (clang-format-save-hook-for-this-buffer)))
If ``/usr/share/clang/clang-format.el`` doesn't exist, look through the
files in the package providing ``clang-format`` in your distro. If you
can't find anything (e.g. on Debian/Ubuntu), refer to `this StackOverflow
files in the package providing ``clang-format`` in your distribution.
If you can't find anything (e.g. on Debian/Ubuntu), refer to `this StackOverflow
answer <https://stackoverflow.com/questions/59690583/how-do-you-use-clang-format-on-emacs-ubuntu/59850773#59850773>`__
to install clang-format through Emacs instead.

View File

@@ -6,9 +6,12 @@ NVK is a Vulkan driver for NVIDIA GPUs.
Hardware support
----------------
NVK currently supports Turing (RTX 20XX and GTX 16XX) and later GPUs.
Eventually, we plan to support as far back as Kepler (GeForce 600 and 700
series) GPUs but anything pre-Turing is currently disabled by default.
NVK currently supports Maxwell (some GTX 700 and 800 series, most 900
series) and later GPUs. Kepler (GeForce 600 and 700 series) work is
currently in-progress but incomplete. Support for new GPU generations may
take up to a year after the launch of the hardware because it takes time
for Nouveau developers to get access to hardware and documentation from
NVIDIA.
Kernel requirements
-------------------
@@ -18,8 +21,8 @@ NVK requires at least a Linux 6.6 kernel
Conformance status:
-------------------
NVK is a conformant Vulkan 1.3 implementation for all Turing (RTX 20XX and
GTX 16XX) and later GPUs.
NVK is a conformant Vulkan 1.4 implementation for all Maxwell (some GTX 700
and 800 series, most 900 series) and later GPUs.
Debugging
---------

View File

@@ -60,8 +60,8 @@ LLVM is required by Panfrost's compilers at build time.
In case of cross compilation without LLVM,
you can build and install the required tools on the host (with LLVM installed) with
``meson . build-host/ -Dtools=panfrost -Dmesa-clc=enabled -Dinstall-mesa-clc=true
-Dprecomp-compiler=enabled -Dinstall-precomp-compiler=true``
``meson . build-host/ -Dvulkan-drivers=panfrost -Dgallium-drivers=panfrost
-Dmesa-clc=enabled -Dinstall-mesa-clc=true -Dprecomp-compiler=enabled -Dinstall-precomp-compiler=true``
and then use ``-Dmesa-clc=system -Dprecomp-compiler=system`` on the cross compile side.
For general information on building Mesa, read :doc:`the install documentation

View File

@@ -201,10 +201,10 @@ Core Mesa environment variables
if set, determines the directory to be used for the on-disk cache of
compiled shader programs. If set then the cache will be stored in
``$MESA_SHADER_CACHE_DIR/mesa_shader_cache_db``. If this variable is not
``$MESA_SHADER_CACHE_DIR/mesa_shader_cache``. If this variable is not
set, then the cache will be stored in
``$XDG_CACHE_HOME/mesa_shader_cache_db`` (if that variable is set), or else
within ``.cache/mesa_shader_cache_db`` within the user's home directory.
``$XDG_CACHE_HOME/mesa_shader_cache`` (if that variable is set), or else
within ``.cache/mesa_shader_cache`` within the user's home directory.
.. envvar:: MESA_SHADER_CACHE_SHOW_STATS
@@ -228,9 +228,9 @@ Core Mesa environment variables
.. envvar:: MESA_DISK_CACHE_MULTI_FILE
if set to 1, enables the multi file on-disk shader cache implementation
instead of the default Mesa-DB cache implementation.
This implementation increases the overall disk usage.
if set to 1 (set by default), enables the multi file on-disk
shader cache implementation. This implementation increases the overall
disk usage.
If :envvar:`MESA_SHADER_CACHE_DIR` is set, the cache will be stored in
``$MESA_SHADER_CACHE_DIR/mesa_shader_cache``, or else within
``$XDG_CACHE_HOME/mesa_shader_cache`` (if that variable is set)
@@ -248,6 +248,18 @@ Core Mesa environment variables
and ``filename1_idx.foz``. A limit of 8 DBs can be loaded and this limit
is shared with :envvar:`MESA_DISK_CACHE_READ_ONLY_FOZ_DBS_DYNAMIC_LIST`.
.. envvar:: MESA_DISK_CACHE_DATABASE
if set to 1, enables the Mesa-DB single file on-disk shader cache
implementation instead of the default multi-file cache implementation.
Like :envvar:`MESA_DISK_CACHE_SINGLE_FILE`, Mesa-DB reduces overall
disk usage but Mesa-DB supports cache size limits via
:envvar:`MESA_SHADER_CACHE_MAX_SIZE`. If
:envvar:`MESA_SHADER_CACHE_DIR` is not set, the cache will be stored
in ``$XDG_CACHE_HOME/mesa_shader_cache_db`` (if that variable is set)
or else within ``.cache/mesa_shader_cache_db`` within the user's home
directory.
.. envvar:: MESA_DISK_CACHE_DATABASE_NUM_PARTS
specifies number of mesa-db cache parts, default is 50.
@@ -1077,20 +1089,20 @@ Gallium environment variables
.. envvar:: GALLIUM_TRACE
If set, this variable will cause the :ref:`trace` output to be written to the
If set, this variable will cause the trace output to be written to the
specified file. Paths may be relative or absolute; relative paths are relative
to the working directory. For example, setting it to "trace.xml" will cause
the trace to be written to a file of the same name in the working directory.
.. envvar:: GALLIUM_TRACE_TC
If enabled while :ref:`trace` is active, this variable specifies that the threaded context
If enabled while trace is active, this variable specifies that the threaded context
should be traced for drivers which implement it. By default, the driver thread is traced,
which will include any reordering of the command stream from threaded context.
.. envvar:: GALLIUM_TRACE_TRIGGER
If set while :ref:`trace` is active, this variable specifies a filename to monitor.
If set while trace is active, this variable specifies a filename to monitor.
Once the file exists (e.g., from the user running 'touch /path/to/file'), a single
frame will be recorded into the trace output.
Paths may be relative or absolute; relative paths are relative to the working directory.
@@ -1135,54 +1147,6 @@ Gallium environment variables
``sse4.1``
``avx``
Clover environment variables
----------------------------
.. envvar:: CLOVER_DEVICE_TYPE
allows to overwrite the device type of devices. Possible values are
``accelerator``, ``cpu``, ``custom`` and ``gpu``
.. envvar:: CLOVER_DEVICE_VERSION_OVERRIDE
overwrites the auto detected OpenCL version of a device. Possible values:
``1.0``
``1.1``
``1.2``
``2.0``
``2.1``
``2.2``
``3.0``
.. envvar:: CLOVER_DEVICE_CLC_VERSION_OVERRIDE
overwrites the auto detected CLC version. Possible values:
``1.0``
``1.1``
``1.2``
``2.0``
``2.1``
``2.2``
``3.0``
.. envvar:: CLOVER_EXTRA_BUILD_OPTIONS
allows specifying additional compiler and linker options. Specified
options are appended after the options set by the OpenCL program in
``clBuildProgram``.
.. envvar:: CLOVER_EXTRA_COMPILE_OPTIONS
allows specifying additional compiler options. Specified options are
appended after the options set by the OpenCL program in
``clCompileProgram``.
.. envvar:: CLOVER_EXTRA_LINK_OPTIONS
allows specifying additional linker options. Specified options are
appended after the options set by the OpenCL program in
``clLinkProgram``.
.. _rusticl-env-var:
Rusticl environment variables
@@ -1509,6 +1473,8 @@ RADV driver environment variables
Dump backend IR (ACO or LLVM) for selected shader stages.
``asm``
Dump shader disassembly for selected shader stages.
``bvh4``
Use bvh4 encoding on GPUs that support bvh8 encoding.
.. envvar:: RADV_FORCE_FAMILY

View File

@@ -125,8 +125,8 @@ popular and feature-complete.
2.1 What's the easiest way to install Mesa?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
If you're using a Linux-based system, your distro CD most likely already
has Mesa packages (like RPM or DEB) which you can easily install.
If you're using a Linux-based system, your distribution
most likely already includes Mesa packages.
2.2 I get undefined symbols such as bgnpolygon, v3f, etc...
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

View File

@@ -99,7 +99,7 @@ GL 3.2, GLSL 1.50 --- all DONE: freedreno, nv50, nvc0, r600, radeonsi, llvmpipe,
GL 3.3, GLSL 3.30 --- all DONE: freedreno, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe, virgl, zink, d3d12, iris, crocus/gen6+, asahi
GL_ARB_blend_func_extended DONE (freedreno/a3xx, freedreno/a6xx, panfrost, lima)
GL_ARB_blend_func_extended DONE (freedreno/a3xx, freedreno/a6xx, v3d, panfrost, lima)
GL_ARB_explicit_attrib_location DONE (all drivers that support GLSL)
GL_ARB_occlusion_query2 DONE (v3d, panfrost)
GL_ARB_sampler_objects DONE (all drivers)
@@ -461,7 +461,7 @@ Vulkan 1.2 -- all DONE: anv, nvk, panvk, tu, vn
VK_KHR_buffer_device_address DONE (anv, hasvk, lvp, nvk, panvk, radv, tu, v3dv, vn)
VK_KHR_create_renderpass2 DONE (anv, dzn, hasvk, lvp, nvk, panvk, radv, tu, v3dv, vn)
VK_KHR_depth_stencil_resolve DONE (anv, dzn, hasvk, lvp, nvk, panvk, radv, tu, v3dv, vn)
VK_KHR_draw_indirect_count DONE (anv, dzn, hasvk, lvp, nvk, radv, tu, vn)
VK_KHR_draw_indirect_count DONE (anv, dzn, hasvk, lvp, nvk, panvk/v10+, radv, tu, vn)
VK_KHR_driver_properties DONE (anv, dzn, hasvk, lvp, nvk, panvk, radv, tu, v3dv, vn)
VK_KHR_image_format_list DONE (anv, dzn, hasvk, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn)
VK_KHR_imageless_framebuffer DONE (anv, dzn, hasvk, lvp, nvk, panvk, radv, tu, v3dv, vn)
@@ -487,21 +487,21 @@ Vulkan 1.3 -- all DONE: anv, lvp, nvk, radv, tu, vn, v3dv
VK_KHR_copy_commands2 DONE (anv, hasvk, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn)
VK_KHR_dynamic_rendering DONE (anv, dzn, hasvk, lvp, nvk, panvk, radv, tu, v3dv, vn)
VK_KHR_format_feature_flags2 DONE (anv, hasvk, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn)
VK_KHR_maintenance4 DONE (anv, hasvk, lvp, nvk, radv, tu, v3dv, vn)
VK_KHR_shader_integer_dot_product DONE (anv, dzn, hasvk, lvp, nvk, radv, tu, v3dv, vn)
VK_KHR_maintenance4 DONE (anv, hasvk, lvp, nvk, panvk/v10+, radv, tu, v3dv, vn)
VK_KHR_shader_integer_dot_product DONE (anv, dzn, hasvk, lvp, nvk, panvk, radv, tu, v3dv, vn)
VK_KHR_shader_non_semantic_info DONE (anv, hasvk, nvk, panvk, radv, tu, v3dv, vn)
VK_KHR_shader_terminate_invocation DONE (anv, hasvk, lvp, nvk, radv, tu, v3dv, vn)
VK_KHR_shader_terminate_invocation DONE (anv, hasvk, lvp, nvk, panvk, radv, tu, v3dv, vn)
VK_KHR_synchronization2 DONE (anv, dzn, hasvk, lvp, nvk, panvk, radv, tu, v3dv, vn)
VK_KHR_zero_initialize_workgroup_memory DONE (anv, hasvk, lvp, nvk, panvk, radv, tu, v3dv, vn)
VK_EXT_4444_formats DONE (anv, hasvk, lvp, nvk, panvk, radv, tu, v3dv, vn)
VK_EXT_extended_dynamic_state DONE (anv, hasvk, lvp, nvk, radv, tu, v3dv, vn)
VK_EXT_extended_dynamic_state2 DONE (anv, hasvk, lvp, nvk, radv, tu, v3dv, vn)
VK_EXT_extended_dynamic_state DONE (anv, hasvk, lvp, nvk, panvk, radv, tu, v3dv, vn)
VK_EXT_extended_dynamic_state2 DONE (anv, hasvk, lvp, nvk, panvk, radv, tu, v3dv, vn)
VK_EXT_inline_uniform_block DONE (anv, hasvk, lvp, nvk, radv, tu, v3dv, vn)
VK_EXT_pipeline_creation_cache_control DONE (anv, hasvk, lvp, nvk, panvk, radv, tu, v3dv, vn)
VK_EXT_pipeline_creation_feedback DONE (anv, hasvk, lvp, nvk, panvk, radv, tu, v3dv, vn)
VK_EXT_private_data DONE (anv, hasvk, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn)
VK_EXT_image_robustness DONE (anv, hasvk, lvp, nvk, panvk, radv, tu, v3dv, vn)
VK_EXT_shader_demote_to_helper_invocation DONE (anv, hasvk, lvp, nvk, radv, tu, v3dv, vn)
VK_EXT_shader_demote_to_helper_invocation DONE (anv, hasvk, lvp, nvk, panvk, radv, tu, v3dv, vn)
VK_EXT_subgroup_size_control DONE (anv, hasvk, lvp, nvk, panvk/v10+, radv, tu, v3dv, vn)
VK_EXT_texel_buffer_alignment DONE (anv, hasvk, lvp, nvk, pvr, radv, tu, v3dv, vn)
VK_EXT_texture_compression_astc_hdr DONE (vn)
@@ -515,7 +515,7 @@ Vulkan 1.4 -- all DONE: anv, lvp, nvk, radv/gfx8+, tu/a7xx+, vn
VK_KHR_index_type_uint8 DONE (anv, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn)
VK_KHR_line_rasterization DONE (anv, lvp, nvk, panvk, radv, tu, v3dv, vn)
VK_KHR_load_store_op_none DONE (anv, lvp, nvk, radv, tu, v3dv, vn)
VK_KHR_maintenance5 DONE (anv, lvp, nvk, radv, tu, v3dv, vn)
VK_KHR_maintenance5 DONE (anv, lvp, nvk, panvk/v10+, radv, tu, v3dv, vn)
VK_KHR_maintenance6 DONE (anv, lvp, nvk, radv, tu, vn)
VK_KHR_map_memory2 DONE (anv, lvp, nvk, panvk, radv, tu, vn)
VK_KHR_push_descriptor DONE (anv, hasvk, lvp, nvk, panvk, radv, tu, vn)
@@ -559,11 +559,12 @@ Khronos extensions that are not part of any Vulkan version:
VK_KHR_ray_tracing_maintenance1 DONE (anv/gfx12.5+, radv/gfx10.3+, tu/a740+, vn)
VK_KHR_ray_tracing_pipeline DONE (anv/gfx12.5+, lvp, radv/gfx10.3+, vn)
VK_KHR_ray_tracing_position_fetch DONE (anv, radv/gfx10.3+, vn)
VK_KHR_shader_bfloat16 DONE (anv/gfx12.5+)
VK_KHR_shader_clock DONE (anv, hasvk, lvp, nvk, radv, tu, vn)
VK_KHR_shader_maximal_reconvergence DONE (anv, lvp, nvk, panvk/v10+, radv, vn)
VK_KHR_shader_relaxed_extended_instruction DONE (anv, hasvk, nvk, panvk, radv, tu, v3dv, vn)
VK_KHR_shader_subgroup_uniform_control_flow DONE (anv, hasvk, nvk, panvk/v10+, radv, tu, vn)
VK_KHR_shader_quad_control DONE (anv, nvk, radv, vn)
VK_KHR_shader_quad_control DONE (anv, nvk, panvk/v10+, radv, vn)
VK_KHR_shared_presentable_image not started
VK_KHR_surface DONE (anv, dzn, hasvk, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn)
VK_KHR_surface_protected_capabilities DONE (anv, lvp, nvk, radv, tu, v3dv, vn)
@@ -589,7 +590,7 @@ Khronos extensions that are not part of any Vulkan version:
VK_EXT_debug_marker DONE (radv)
VK_EXT_debug_report DONE (anv, dzn, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn)
VK_EXT_debug_utils DONE (anv, dzn, hasvk, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn)
VK_EXT_depth_bias_control DONE (anv, nvk, radv, vn)
VK_EXT_depth_bias_control DONE (anv, nvk, panvk, radv, vn)
VK_EXT_depth_clamp_control DONE (anv, hasvk, nvk, radv, vn)
VK_EXT_depth_clip_control DONE (anv, hasvk, lvp, nvk, radv, tu, v3dv, vn)
VK_EXT_depth_clip_enable DONE (anv, hasvk, lvp, nvk, panvk, radv, tu, v3dv/vc7+, vn)
@@ -648,7 +649,7 @@ Khronos extensions that are not part of any Vulkan version:
VK_EXT_shader_atomic_float2 DONE (anv, lvp, radv, vn)
VK_EXT_shader_image_atomic_int64 DONE (nvk, radv, vn)
VK_EXT_shader_object DONE (lvp, nvk, radv)
VK_EXT_shader_replicated_composites DONE (anv, dzn, hasvk, lvp, nvk, radv, tu, vn)
VK_EXT_shader_replicated_composites DONE (anv, dzn, hasvk, lvp, nvk, panvk, radv, tu, vn)
VK_EXT_shader_stencil_export DONE (anv, lvp, radv, tu, vn)
VK_EXT_shader_subgroup_ballot DONE (anv, dzn, hasvk, lvp, nvk, radv, vn)
VK_EXT_shader_subgroup_vote DONE (anv, dzn, hasvk, lvp, nvk, radv, vn)
@@ -656,8 +657,8 @@ Khronos extensions that are not part of any Vulkan version:
VK_EXT_surface_maintenance1 DONE (anv, lvp, nvk, radv, tu, v3dv, vn)
VK_EXT_swapchain_maintenance1 DONE (anv, lvp, nvk, radv, tu, v3dv, vn)
VK_EXT_transform_feedback DONE (anv, hasvk, lvp, nvk, radv, tu, vn)
VK_EXT_vertex_attribute_divisor DONE (anv, dzn, hasvk, lvp, nvk, radv, tu, v3dv, vn)
VK_EXT_vertex_input_dynamic_state DONE (anv, lvp, nvk, radv, tu, vn)
VK_EXT_vertex_attribute_divisor DONE (anv, dzn, hasvk, lvp, nvk, panvk, radv, tu, v3dv, vn)
VK_EXT_vertex_input_dynamic_state DONE (anv, lvp, nvk, panvk, radv, tu, vn)
VK_EXT_ycbcr_image_arrays DONE (anv, hasvk, lvp, nvk, panvk/v10+, radv, vn)
VK_ANDROID_external_memory_android_hardware_buffer DONE (anv, radv, tu, vn)
VK_ANDROID_native_buffer DONE (anv, radv, tu, v3dv, vn)
@@ -697,160 +698,6 @@ Khronos extensions that are not part of any Vulkan version:
VK_QCOM_fragment_density_map_offset DONE (tu)
Clover OpenCL 1.0 -- all DONE:
Image support in progress
- Optional image formats in progress
Clover OpenCL 1.1 -- all DONE:
Additional queries for clGetDeviceInfo DONE (nvc0, r600, radeonsi)
CL_CONTEXT_NUM_DEVICES for clGetContextInfo DONE
New optional image formats not started
- CL_Rx not started
- CL_RGx not started
- CL_RGBx not started
clCreateSubBuffer DONE
Read from, write to, copy rectangular regions DONE
clSetMemObjectDestructorCallback DONE
Control OpenCL C version when building DONE
Query for preferred work-group size multiple DONE (nvc0, r600, radeonsi)
Support user events DONE
clSetEventCallback DONE
Minimum requirement changes for clGetDeviceInfo DONE (nvc0, r600, radeonsi)
Arg prerequisite change for clEnqueueNDRangeKernel DONE ()
OpenCL C 1.1 DONE (nvc0, r600, radeonsi)
- 3-component vector data types DONE (nvc0, r600, radeonsi)
- cl_khr_byte_addressable_store DONE (nvc0, r600, radeonsi)
- cl_khr_global_int32_base_atomics DONE (nvc0, r600, radeonsi)
- cl_khr_global_int32_extended_atomics DONE (nvc0, r600, radeonsi)
- cl_khr_local_int32_base_atomics DONE (nvc0, r600, radeonsi)
- cl_khr_local_int32_extended_atomics DONE (nvc0, r600, radeonsi)
Clover OpenCL 1.2 -- all DONE:
Custom devices DONE
Built-in kernels in progress
Device partitioning not started
Separate compilation and linking of programs DONE
Extend cl_mem_flags DONE
clEnqueueFillBuffer, clEnqueueFillImage DONE
Add CL_MAP_WRITE_INVALIDATE_REGION to cl_map_flags DONE
New image types not started
clCreateImage DONE
clEnqueueMigrateMemObjects DONE
Retrieve kernels information from a program DONE
clGetKernelArgInfo DONE
clEnqueueMarkerWithWaitList DONE
clEnqueueBarrierWithWaitList DONE
clUnloadPlatformCompiler DONE
cl_khr_fp64 DONE (nvc0, r600, radeonsi)
printf DONE (nvc0)
CL_KERNEL_ATTRIBUTES for clGetKernelInfo DONE
OpenCL C 1.2 DONE
Clover OpenCL 2.0 -- all DONE:
Shared virtual memory DONE (nvc0, llvmpipe)
Device queues not started
- cl_khr_create_command_queue not started
- Additional queries for clGetDeviceInfo not started
Pipes not started
Extended 2D images creation in progress
- CL_ABGR DONE
- cl_khr_image2d_from_buffer not started
- cl_khr_depth_images not started
- from sRGB images not started
clCreateSamplerWithProperties not started
Non-uniform work-group sizes not started
cl_khr_3d_image_writes not started
OpenCL C 2.0 in progress
- Work-group Collective Functions not started
- Generic address space in progress
Clover OpenCL 2.1 -- all DONE:
Sub groups not started
- cl_khr_subgroups not started
cl_khr_il_program DONE (nvc0)
Device and host timer synchronization not started
clEnqueueSVMMigrateMem not started
clCloneKernel not started
Default device command queue not started
CL_UNORM_INT_101010_2 DONE
Clover OpenCL 2.2 -- all DONE:
clSetProgramSpecializationConstant not started
clSetProgramReleaseCallback not started
Initialization and clean-up kernels not started
CL_MAX_SIZE_RESTRICTION_EXCEEDED for clSetKernelArg not started
Support SPIR-V 1.1 and 1.2 not started
Clover OpenCL 3.0 -- all DONE:
Optional device capabilities queries in progress
cl_khr_extended_versioning DONE
clSetContextDestructorCallback DONE
clCreateBufferWithProperties DONE
clCreateImageWithProperties DONE
Query properties arrays in progress
Supported OpenCL C versions and features queries DONE
CL_COMMAND_SVM_MIGRATE_MEM for clGetEventInfo not started
OpenCL C 3.0 DONE
Latest conformance version passed for devices not started
Clover extensions that are not part of any OpenCL version:
cl_khr_async_copy_fence not started
cl_khr_async_work_group_copy_fence not started
cl_khr_device_enqueue_local_arg_types not started
cl_khr_device_uuid not started
cl_khr_egl_event not started
cl_khr_egl_image not started
cl_khr_expect_assume not started
cl_khr_extended_async_copies not started
cl_khr_extended_bit_ops not started
cl_khr_fp16 DONE ()
cl_khr_gl_depth_images not started
cl_khr_gl_msaa_sharing not started
cl_khr_gl_sharing not started
cl_khr_icd DONE
cl_khr_initialize_memory not started
cl_khr_int64_base_atomics DONE ()
cl_khr_int64_extended_atomics DONE ()
cl_khr_integer_dot_product not started
cl_khr_mipmap_image not started
cl_khr_pci_bus_info not started
cl_khr_priority_hints not started
cl_khr_spirv_extended_debug_info not started
cl_khr_spirv_linkonce_odr not started
cl_khr_spirv_no_integer_wrap_decoration not started
cl_khr_srgb_image_writes not started
cl_khr_subgroup_ballot not started
cl_khr_subgroup_clustered_reduce not started
cl_khr_subgroup_extended_types not started
cl_khr_subgroup_named_barrier not started
cl_khr_subgroup_non_uniform_arithmetic not started
cl_khr_subgroup_non_uniform_vote not started
cl_khr_subgroup_rotate not started
cl_khr_subgroup_shuffle not started
cl_khr_subgroup_shuffle_relative not started
cl_khr_suggested_local_work_size not started
cl_khr_terminate_context not started
cl_khr_throttle_hints not started
cl_khr_work_group_uniform_arithmetic not started
cl_arm_non_uniform_work_group_size not started
cl_arm_shared_virtual_memory DONE (nvc0)
cl_intel_unified_shared_memory not started
Rusticl OpenCL 1.0 -- all DONE:
Image support DONE

View File

@@ -56,7 +56,7 @@ flatshade
CONSTANT, LINEAR and PERSPECTIVE. The flatshade state is needed at
clipping time to determine how to set the color of new vertices.
:ref:`Draw` can implement flat shading by copying the provoking vertex
Draw can implement flat shading by copying the provoking vertex
color to all the other vertices in the primitive.
flatshade_first
@@ -80,7 +80,7 @@ Polygons
light_twoside
If set, there are per-vertex back-facing colors. The hardware
(perhaps assisted by :ref:`Draw`) should be set up to use this state
(perhaps assisted by Draw) should be set up to use this state
along with the front/back information to set the final vertex colors
prior to rasterization.
@@ -178,7 +178,7 @@ sprite_coord_enable
always rasterized as quads). Any mismatch between these states should
be considered a bug in the gallium frontend.
This feature is implemented in the :ref:`Draw` module but may also be
This feature is implemented in the Draw module but may also be
implemented natively by GPUs or implemented with a geometry shader.
@@ -187,7 +187,7 @@ sprite_coord_mode
point sprites. For PIPE_SPRITE_COORD_LOWER_LEFT, the lower-left vertex will
have coordinates (0,0,0,1). For PIPE_SPRITE_COORD_UPPER_LEFT, the upper-left
vertex will have coordinates (0,0,0,1).
This state is used by :ref:`Draw` to generate texcoords.
This state is used by Draw to generate texcoords.
point_quad_rasterization

View File

@@ -1,187 +0,0 @@
Distribution
============
Along with the interface definitions, the following drivers, Gallium frontends,
and auxiliary modules are shipped in the standard Gallium distribution.
Drivers
-------
Intel i915
^^^^^^^^^^
Driver for Intel i915 and i945 chipsets.
LLVM Softpipe
^^^^^^^^^^^^^
A version of :ref:`softpipe` that uses the Low-Level Virtual Machine to
dynamically generate optimized rasterizing pipelines.
NVIDIA NV30
^^^^^^^^^^^
Driver for the NVIDIA NV30 and NV40 families of GPUs.
NVIDIA NV50
^^^^^^^^^^^
Driver for the NVIDIA NV50 family of GPUs.
NVIDIA NVC0
^^^^^^^^^^^
Driver for the NVIDIA NVC0 / Fermi family of GPUs.
VMware SVGA
^^^^^^^^^^^
Driver for VMware virtualized guest operating system graphics processing.
ATI R300
^^^^^^^^
Driver for the ATI/AMD R300, R400, and R500 families of GPUs.
ATI/AMD R600
^^^^^^^^^^^^
Driver for the ATI/AMD R600, R700, Evergreen and Northern Islands families of GPUs.
AMD RadeonSI
^^^^^^^^^^^^
Driver for the AMD Southern Islands family of GPUs.
Freedreno
^^^^^^^^^
Driver for Qualcomm Adreno 2xx, 3xx, and 4xx series of GPUs.
.. _softpipe:
Softpipe
^^^^^^^^
Reference software rasterizer. Slow but accurate.
.. _trace:
Trace
^^^^^
Wrapper driver. Trace dumps an XML record of the calls made to the
:ref:`Context` and :ref:`Screen` objects that it wraps.
Gallium frontends
-----------------
Clover
^^^^^^
Tracker that implements the Khronos OpenCL standard.
.. _dri:
Direct Rendering Infrastructure
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Tracker that implements the client-side DRI protocol, for providing direct
acceleration services to X11 servers with the DRI extension. Supports DRI1
and DRI2. Only GL is supported.
GLX
^^^
MesaGL
^^^^^^
The Gallium frontend implementing a GL state machine. Not usable as
a standalone frontend; Mesa should be built with another Gallium frontend,
such as :ref:`DRI` or EGL.
Nine
^^^^
The Gallium frontend implements the Direct3D 9 API.
VDPAU
^^^^^
Tracker for Video Decode and Presentation API for Unix.
WGL
^^^
Xorg DDX
^^^^^^^^
Tracker for Xorg X11 servers. Provides device-dependent
modesetting and acceleration as a DDX driver.
Auxiliary
---------
OS
^^
The OS module contains the abstractions for basic operating system services:
* memory allocation
* simple message logging
* obtaining run-time configuration option
* threading primitives
This is the bare minimum required to port Gallium to a new platform.
The OS module already provides the implementations of these abstractions for
the most common platforms. When targeting an embedded platform no
implementation will be provided -- these must be provided separately.
CSO Cache
^^^^^^^^^
The CSO cache is used to accelerate preparation of state by saving
driver-specific state structures for later use.
.. _draw:
Draw
^^^^
Draw is a software :term:`TCL` pipeline for hardware that lacks vertex shaders
or other essential parts of pre-rasterization vertex preparation.
Gallivm
^^^^^^^
Indices
^^^^^^^
Indices provides tools for translating or generating element indices for
use with element-based rendering.
Pipe Buffer Managers
^^^^^^^^^^^^^^^^^^^^
Each of these managers provides various services to drivers that are not
fully utilizing a memory manager.
Remote Debugger
^^^^^^^^^^^^^^^
Runtime Assembly Emission
^^^^^^^^^^^^^^^^^^^^^^^^^
TGSI
^^^^
The TGSI auxiliary module provides basic utilities for manipulating TGSI
streams.
Translate
^^^^^^^^^
Util
^^^^

View File

@@ -15,7 +15,6 @@ Contents:
context
cso
buffermapping
distro
postprocess
glossary

View File

@@ -66,7 +66,7 @@ Check/install the respective development package as prompted by the
configure error message.
Here are some common ways to retrieve most/all of the dependencies based
on the packaging tool used by your distro.
on the packaging tool used by your distribution.
.. code-block:: sh

View File

@@ -51,7 +51,7 @@ most of these with just one command. On Fedora and similar, ``sudo dnf
builddep mesa`` does the same.
.. note::
All these dependencies are for latest linux distros and is tested on ubuntu-24 only for now.
All these dependencies are for latest Linux distributions and is tested on Ubuntu 24.xx only for now.
Also note, some packages below might not be available in your OS with the exact name, in such case you can search for it and install the distribution specific one.

View File

@@ -1,8 +1,5 @@
25.0,2025-04-16,25.0.4,Eric Engestrom,
,2025-04-30,25.0.5,Eric Engestrom,
25.0,2025-04-30,25.0.5,Eric Engestrom,
,2025-05-14,25.0.6,Eric Engestrom,
,2025-05-28,25.0.7,Eric Engestrom,Last planned 25.0.x release.
25.1,2025-04-16,25.1.0-rc1,Eric Engestrom,25.1 branchpoint
,2025-04-23,25.1.0-rc2,Eric Engestrom,
,2025-04-30,25.1.0-rc3,Eric Engestrom,
25.1,2025-04-30,25.1.0-rc3,Eric Engestrom,
,2025-05-07,25.1.0-rc4,Eric Engestrom,or 25.1.0 final
1 25.0 2025-04-16 2025-04-30 25.0.4 25.0.5 Eric Engestrom
2025-04-30 25.0.5 Eric Engestrom
2 2025-05-14 2025-05-14 25.0.6 25.0.6 Eric Engestrom
3 2025-05-28 2025-05-28 25.0.7 25.0.7 Eric Engestrom Last planned 25.0.x release.
4 25.1 2025-04-16 2025-04-30 25.1.0-rc1 25.1.0-rc3 Eric Engestrom 25.1 branchpoint
2025-04-23 25.1.0-rc2 Eric Engestrom
2025-04-30 25.1.0-rc3 Eric Engestrom
5 2025-05-07 2025-05-07 25.1.0-rc4 25.1.0-rc4 Eric Engestrom or 25.1.0 final

View File

@@ -3,8 +3,7 @@ Release Notes
The release notes summarize what's new or changed in each Mesa release.
- :doc:`25.1.1 release notes <relnotes/25.1.1>`
- :doc:`25.1.0 release notes <relnotes/25.1.0>`
- :doc:`25.0.4 release notes <relnotes/25.0.4>`
- :doc:`25.0.3 release notes <relnotes/25.0.3>`
- :doc:`25.0.2 release notes <relnotes/25.0.2>`
- :doc:`25.0.1 release notes <relnotes/25.0.1>`
@@ -448,8 +447,7 @@ The release notes summarize what's new or changed in each Mesa release.
:maxdepth: 1
:hidden:
25.1.1 <relnotes/25.1.1>
25.1.0 <relnotes/25.1.0>
25.0.4 <relnotes/25.0.4>
25.0.3 <relnotes/25.0.3>
25.0.2 <relnotes/25.0.2>
25.0.1 <relnotes/25.0.1>

256
docs/relnotes/25.0.4.rst Normal file
View File

@@ -0,0 +1,256 @@
Mesa 25.0.4 Release Notes / 2025-04-17
======================================
Mesa 25.0.4 is a bug fix release which fixes bugs found since the 25.0.3 release.
Mesa 25.0.4 implements the OpenGL 4.6 API, but the version reported by
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
Some drivers don't support all the features required in OpenGL 4.6. OpenGL
4.6 is **only** available if requested at context creation.
Compatibility contexts may report a lower version depending on each driver.
Mesa 25.0.4 implements the Vulkan 1.4 API, but the version reported by
the apiVersion property of the VkPhysicalDeviceProperties struct
depends on the particular driver being used.
SHA checksums
-------------
::
SHA256: 76293cf4372ca4e4e73fd6c36c567b917b608a4db9d11bd2e33068199a7df04d mesa-25.0.4.tar.xz
SHA512: 562a97bd0374ff2a76f71c848df4fe542f1fc66c420a9101eb4bb1947d00eee4417d9c6f2d1be19638663753785c19384f8a6dc078c3187448ab79413d906152 mesa-25.0.4.tar.xz
New features
------------
- None
Bug fixes
---------
- RADV: Performance regression in Elden Ring on GFX8/Polaris
- RADV: Performance regression in Elden Ring on GFX8/Polaris
- Confidential issue #12324
- Confidential issue #12946
- The Last of Us Part I GPU hang on gfx1201
- brw: new Xe2 CTS failures
- [NVK] NAK assert in The Last of Us Part 2 shader
- [ANV][LNL] - Lost Records: Bloom & Rage (1902960) - Title hangs on launch and subsequently crashes to desktop.
- [BMG] Intel b580 battlemage: Fort Solis (Unreal Engine game) boots to menu, hangs while loading after hitting continue from the main menu
- [ANV][LNL] - NINJA GAIDEN 2 Black (3287520) - Environment assets are incorrectly rendered or missing.
- [ANV][LNL] - The Headliners (3059070) - Title hangs a few minutes after launch.
- anv, regression: Invisibly blinking cliffs & rocks in Satisfactory DX12 on BMG
- vk/overlay: output_file option failing
- [bisected, LNL] brw: 341e5117ecbc ("brw/nir: Treat load_const as convergent") regresses arb_gpu_shader5-interpolateAtOffset on LNL
- vulkan regression mesa 24.3.4 to 25.0.0.rc3 with broadcom
- radv: nir_opt_varyings.c:2766: deduplicate_outputs: Assertion \`list_index == 0' failed.
- vulkan/wsi: memory leak from wsi_CreateSwapchainKHR
Changes
-------
Aaron Ruby (2):
- gfxstream: Make the virtgpu device discovery for LinuxVirtGpu more robust
- gfxstream: Add common interfaces in the VirtGpuDevice to query DrmInfo and PciBusInfo
Alyssa Rosenzweig (4):
- nir/lower_blend: refactor logicop variables
- nir/lower_blend: disable logic ops for unsupported formats
- panfrost: invert and rename no_ubo_to_push flag
- panfrost: do not push "true" UBOs
Benjamin Lee (2):
- panvk/csf: fix uninitialized read in utrace_clone_init_builder
- panfrost/pps: fix omitting several counters
Benjamin Otte (1):
- lavapipe: Don't advertise support for multiplane drm formats
Boris Brezillon (2):
- vulkan/state: Fix input attachment map state initialization/copy
- vk/pass: Add input attachment location info
Caio Oliveira (1):
- nir/load_store_vectorize: Skip new bit-sizes that are unaligned with high_offset
Caterina Shablia (2):
- panfrost: don't overwrite push uniforms and sysvals UBO with user's UBO
- panfrost: update nr_uniform_buffers before dispatching XFB
Connor Abbott (1):
- tu: Fix layer_count with dynamic rendering + multiview
David Rosca (4):
- radeonsi/vcn: Disable AV1 unidir compound with rate control
- radv/video: Fix msg header total size
- radv/video: Fix encode session info for VCN3+
- radeonsi/vpe: Use float division to get scaling ratio
Eric Engestrom (7):
- docs: add sha sum for 25.0.3
- [25.0 only] update more ci expectations
- .pick_status.json: Update to 7c5389695bdf106acaab6ccc69535f25c1d7a8e6
- ci: rename ci-tron priority tag to avoid conflict with the generic fdo runners
- .pick_status.json: Update to 2f00daf67a7990da68dfc4a8e5f2019daecb7a59
- .pick_status.json: Update to 58321cf2e57279079bf742be1063ac2900ea2436
- .pick_status.json: Update to 555821ff93118d4a6ea441127cd0427a95743d47
Eric R. Smith (2):
- panfrost,lima: use index size in panfrost minmax_cache
- panfrost: fix transaction elimination crc valid calculation
Erik Faye-Lund (4):
- panfrost: fixup typo in 16x sample-pattern
- nir/lower_tex: use texture_mask instead of shifting on use
- panvk: set shared_addr_format
- panvk: claim official conformance on v10
Faith Ekstrand (3):
- nak: Allow predicates in nir_intrinsic_as_uniform
- nvk/nvkmd: Check the correct flag for the Kepler GART workaround
- nil: Multiply by array_stride_B instead of adding
Felix DeGrood (1):
- vk/overlay-layer: fix regression in non-control pathway
Georg Lehmann (2):
- spirv: clamp/sign-extend non 32bit ldexp exponents
- spirv: fix cooperative matrix by value function params
Gurchetan Singh (3):
- gfxstream: check device exists before using it
- gfxstream: refactor device initialization
- gfxstream: follow the semantics desired by distro VK loader
Ian Romanick (4):
- brw/algebraic: Constant folding for BROADCAST and SHUFFLE
- brw/nir: Fix source handling of nir_intrinsic_load_barycentric_at_offset
- brw/algebraic: Optimize derivative of convergent value
- brw/nir: Use offset() for all uses of offs in emit_pixel_interpolater_alu_at_offset
Jan Alexander Steffens (heftig) (1):
- gfxstream: Use proper log format for 32-bit Vulkan
Job Noorman (1):
- ir3/ra: assign interval offsets to new defs after shared RA
Jose Maria Casanova Crespo (1):
- v3dv: avoid TFU reading unmapped pages beyond the end of the buffers
Juan A. Suarez Romero (1):
- v3dv: don't check if DRM device is master
Kenneth Graunke (4):
- brw: Track the largest VGRF size in liveness analysis
- brw: Use live->max_vgrf_size in register coalescing
- brw: Use live->max_vgrf_size in pre-RA scheduling
- brw: Don't assert about MAX_VGRF_SIZE in brw_opt_split_virtual_grfs()
Lars-Ivar Hesselberg Simonsen (2):
- panvk: Add barrier for interleaved ZS copy cmds
- vk/sync: Fix execution only barriers
Lionel Landwerlin (3):
- brw: fix shuffle with scalar/uniform index
- anv: fix self dependency computation
- brw: fix Wa_22013689345 emission
Marek Olšák (5):
- radeonsi: work around a primitive restart bug on gfx10-10.3
- radeonsi: make si_shader_selector::main_shader_part_* an iterable union
- radeonsi: add ACO-specific main shader parts
- ac/surface: make gfx12_estimate_size reusable by gfx6
- ac/surface: select 3D tile mode without overallocating too much for gfx6-8
Mike Blumenkrantz (4):
- gallium/util: check nr_samples in pipe_surface_equal()
- tu: check for valid descriptor set when binding descriptors
- zink: don't set shared block stride without KHR_workgroup_memory_explicit_layout
- zink: stop setting ArrayStride on image arrays
Natalie Vock (1):
- aco: Make private_segment_buffer/scratch_offset per-resume
Patrick Lerda (9):
- r600: move stores to the end of shader when required
- r600: fix textures with swizzles limited to zero and one
- r600: fallback to util_blitter_draw_rectangle when required
- r600: fix pa_su_vtx_cntl rounding mode
- r600: fix points clipping
- i915: fix i915_set_vertex_buffers() related refcnt imbalance and remove redundancies
- i915: fix slab_create() related memory leaks
- i915: fix nir_to_tgsi() related memory leak
- i915: fix draw_create_fragment_shader() related memory leak
Pierre-Eric Pelloux-Prayer (1):
- winsys/amdgpu: disable VM_ALWAYS_VALID
Rob Clark (1):
- tu/vdrm: Fix userspace fence cmds
Ryan Mckeever (1):
- pan/format: Update format flags to follow HW spec
Samuel Pitoiset (4):
- radv: fix ignoring conditional rendering with vkCmdResolveImage()
- radv: determine if HiZ/HiS is enabled earlier on GFX12
- radv: add a workaround for buggy HiZ/HiS on GFX12
- radv: apply the workaround for buggy HiZ/HiS on GFX12 for DGC
Sviatoslav Peleshko (1):
- vulkan/wsi/headless: Remove unnecessary wsi_configure_image()
Tapani Pälli (3):
- compiler/glsl: check that bias is not used outside fragment stage
- mesa: clamp texbuf query size to MAX_TEXTURE_BUFFER_SIZE
- mesa: various fixes for ClearTexImage/ClearTexSubImage
Timothy Arceri (1):
- glsl: fix regression in ubo cloning
Timur Kristóf (4):
- nir/xfb: Preserve some xfb information when gathering from intrinsics.
- nir/opt_varyings: Fix assertion when deduplicating TCS outputs.
- radv: Use buffers_written mask when gathering XFB info.
- radv: Call nir_opt_undef too after nir_opt_varyings.

File diff suppressed because it is too large Load Diff

View File

@@ -1,212 +0,0 @@
Mesa 25.1.1 Release Notes / 2025-05-21
======================================
Mesa 25.1.1 is a bug fix release which fixes bugs found since the 25.1.0 release.
Mesa 25.1.1 implements the OpenGL 4.6 API, but the version reported by
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
Some drivers don't support all the features required in OpenGL 4.6. OpenGL
4.6 is **only** available if requested at context creation.
Compatibility contexts may report a lower version depending on each driver.
Mesa 25.1.1 implements the Vulkan 1.4 API, but the version reported by
the apiVersion property of the VkPhysicalDeviceProperties struct
depends on the particular driver being used.
SHA checksums
-------------
::
TBD.
New features
------------
- None
Bug fixes
---------
- radv: VK_EXT_primitive_topology_list_restart bug
- [RADV][GFX9] Recent Mesa-git broken on AMD Vega 64 with ring sdma0 timeouts when launching DXVK games
- ACO: IR Validation error "SDWA operand selection size" triggered by compute shader on VEGA20
- RADV: Gibberish output with llama.cpp (Vulkan compute) on Radeon VII (Vega20) with Mesa 25.1.0, works on 25.0.5
- Blending broken in game SkinDeep
- Radeon R5 (Mullins) H264 VA-API encoding acceleration doesn't work
- nvk: lib_rs_gen.py requires \`rustfmt`
- radv: vkd3d-proton test failure with predication + EXT_dgc
- mesa-25.0.4 aborts Xserver due to ACO "Unsupported opcode" v_lshlrev_b16
- In SkinDeep, GL_LINES causes GL_INVALID_OPERATION with radeonsi and llvmpipe
- radv: UB and artifacts when copying a \`COMBINED_IMAGE_SAMPLER` with an immutable sampler
- RADV: Dynamic state multiple viewport corruption
- [drm:amdgpu_uvd_cs_pass2 [amdgpu]] \*ERROR* )Handle 0x48780001 already in use!
- glGetInternalformativ returns incorrect information for GL_STENCIL_INDEX8
- RadeonSI: Psychonauts rendering regression since !29895
- [r600g] Rejected CS when using dolphin's GPU texture decoder
- radeonsi: Assertion \`src_bit_size == bit_size' failed. when running without MESA_GLSL_DISABLE_IO_OPT=1
- radeonsi vdpau + Packed YUY2 = assert
- Indiana Jones and The Great Circle, Graphical corruption on 9070 XT.
- glPushAttrib/glPopAttrib broken with glColorMaterial and ligthing
Changes
-------
Alessandro Astone (1):
- android: Link with libc++fs up to SDK 35
Dave Airlie (1):
- nvk: Fix compute class comparison in dispatch indirect
David Rosca (6):
- frontends/vdpau: Fix creating surfaces with 422 chroma
- ac/uvd: Add ac_uvd_alloc_stream_handle
- radv/video: Use ac_uvd_alloc_stream_handle
- radeonsi/vce: Fix bitstream buffer size
- radeonsi/vce: Only send one task per IB
- radeonsi/vce: Fix output quality and performance in speed preset
Dmitry Baryshkov (1):
- rusticl/device: relax some params for embdded profile
Ella Stanforth (1):
- v3d/compiler: Fix ub when using memcmp for texture comparisons.
Eric Engestrom (2):
- docs: add sha sum for 25.1.0
- .pick_status.json: Update to 8edee1e25b62aa0a60dfa060f68c35cf4e60f59e
Georg Lehmann (2):
- radeonsi: always lower alu bit sizes
- aco: assume sram ecc is enabled on Vega20
Gurchetan Singh (1):
- gfxstream: make sure by default descriptor is negative
Hans-Kristian Arntzen (1):
- radv: Consider that DGC might need shader reads of predicated data.
José Roberto de Souza (2):
- anv: Implement missing part of Wa_1604061319
- anv: Enable preemption due 3DPRIMITIVE in GFX 12
Lars-Ivar Hesselberg Simonsen (7):
- pan/texture: Correctly handle slice stride for MSAA
- pan/texture: Set plane size to slice size
- pan/genxml/v10: Add minus1 mod for plane width/height
- pan/genxml/v12: Add minus1 mod for plane width/height
- pan/genxml/v13: Add minus1 mod for plane width/height
- pan/texture/v10+: Set width/height in the plane descs
- panvk/v9+: Set up limited texture descs for storage use
Lionel Landwerlin (3):
- brw: fix brw_nir_move_interpolation_to_top
- vulkan/runtime: fixup assert with link_geom_stages
- anv: enable preemption setting on command/batch correctly
Marek Olšák (2):
- nir/opt_vectorize_io: fix a failure when vectorizing different bit sizes
- nir: fix gathering color interp modes in nir_lower_color_inputs
Mary Guillemard (2):
- pan/bi: Flush subnormals to zero for FROUND on v11+
- pan/bi: Lower ffract in bifrost_nir_algebraic on v11+
Matt Turner (1):
- gallivm: Use \`llvm.roundeven` in lp_build_round()
Matthieu Oechslin (1):
- r600: Take dual source blending in account when creating target mask with RATs
Mel Henning (2):
- nouveau/headers: Run rustfmt after file is closed
- nouveau/headers: Ignore PermissionError in rustfmt
Mike Blumenkrantz (1):
- zink: fix broken comparison for dummy pipe surface sizing
Natalie Vock (2):
- radv,driconf: Add radv_force_64k_sparse_alignment config
- driconf: Add workarounds for DOOM: The Dark Ages
Olivia Lee (2):
- panvk: fix driconf memory leak
- util/u_printf: fix memory leak in u_printf_singleton_add_serialized
Rhys Perry (3):
- ac/llvm: correctly split vector 8/16-bit stores
- ac/llvm: correctly set alignment of vector global load/store
- aco/gfx115: consider point sample acceleration
Rob Clark (2):
- freedreno/ir3: Fix tess/geom asan error
- freedreno: Fix shader-clock when kernel exposes UCHE_TRAP_BASE
Robert Mader (1):
- llvmpipe: Fix dmabuf import paths for DRM_FORMAT_YUYV variants
Sagar Ghuge (1):
- anv: Fix untyped data port cache pipe control dump output
Samuel Pitoiset (9):
- radv: ignore radv_disable_dcc_stores on GFX12
- radv: ignore conditional rendering with vkCmdTraceRays*
- radv: fix SDMA copies for linear 96-bits formats
- radv: fix emitting dynamic viewports/scissors when the count is static
- radv: remove the optimization for equal immutable samplers
- radv: fix fetching conditional rendering state for DGC preprocess
- radv: fix conditional rendering with DGC and non native 32-bit predicate
- radv: fix missing texel scale for unaligned linear SDMA copies
- radv: fix non-indexed draws with primitive restart enable
Tapani Pälli (3):
- mesa: add missing stencil formats to _mesa_is_stencil_format
- intel/compiler: provide a helper for null any-hit shader
- anv: use internal rt-null-ahs when any_hit is null
Thomas H.P. Andersen (1):
- driconf: update X4 Foundations executable name
Timothy Arceri (6):
- mesa: fix color material tracking
- mesa: relax EXT_texture_integer validation
- st/mesa: fix _IntegerBuffers bitfield use
- mesa/st: fix _BlendForceAlphaToOneDraw bitfield use
- mesa/st: fix _IsRGBDraw bitfield use
- mesa: fix _FP32Buffers bitfield use
llyyr (1):
- vulkan/wsi/wayland: make needs_color_surface_old check if surface exists

View File

@@ -0,0 +1,22 @@
removed clover frontend
VK_EXT_vertex_input_dynamic_state/vertexInputDynamicState on panvk
pushDescriptor on panvk
VK_EXT_vertex_input_dynamic_state on panvk
VK_EXT_vertex_attribute_divisor on panvk
supportsNonZeroFirstInstance on panvk
GL_ARB_blend_func_extended on v3d
dualSrcBlend on v3dv
VK_KHR_maintenance4 on panvk/v10+
VK_KHR_maintenance5 on panvk/v10+
VK_EXT_direct_mode_display on panvk
VK_EXT_extended_dynamic_state[2] on panvk
Vulkan 1.2 on panvk/v10+
VK_KHR_shader_quad_control on panvk/v10+
multiDrawIndirect on panvk/v10+
VK_KHR_draw_indirect_count on panvk/v10+
VK_KHR_shader_integer_dot_product on panvk
VK_KHR_shader_terminate_invocation on panvk
VK_EXT_shader_demote_to_helper_invocation on panvk
VK_EXT_shader_replicated_composites on panvk
VK_EXT_depth_bias_control on panvk
VK_KHR_shader_bfloat16 on anv/gfx125+

View File

@@ -132,7 +132,6 @@ each directory.
- **frontends** - These implement various libraries using the
device drivers
- **clover** - OpenCL frontend
- **d3d10umd** - D3D10 frontend for Windows only. It's similar to Microsoft WARP, but using LLVMpipe/Softpipe.
- **dri** - Meta frontend for DRI drivers, see mesa/state_tracker
- **glx** - Meta frontend for GLX

View File

@@ -413,7 +413,7 @@ Our documentation is written as `reStructuredText`_ files in the
.. code-block:: sh
# Install dependencies (adapt for your distro)
# Install dependencies (adapt for your distribution)
apk add coreutils graphviz py3-clang clang-dev musl-dev linux-headers
pip3 install sphinx===5.1.1 mako===1.2.3 hawkmoth===0.16.0

View File

@@ -502,6 +502,12 @@ struct drm_amdgpu_userq_fence_info {
};
struct drm_amdgpu_userq_wait {
/**
* @waitq_id: Queue handle used by the userq wait IOCTL to retrieve the
* wait queue and maintain the fence driver references in it.
*/
__u32 waitq_id;
__u32 pad;
/**
* @syncobj_handles: The list of syncobj handles submitted by the user queue
* job to get the va/value pairs.
@@ -1454,6 +1460,9 @@ struct drm_amdgpu_info_device {
__u32 csa_size;
/* context save area base virtual alignment for gfx11 */
__u32 csa_alignment;
/* Userq IP mask (1 << AMDGPU_HW_IP_*) */
__u32 userq_ip_mask;
__u32 pad;
};
struct drm_amdgpu_info_hw_ip {

View File

@@ -89,7 +89,7 @@ if with_gallium_st_nine
subdir : 'd3dadapter',
)
endif
opencl_headers = files(
'CL/cl.h',
'CL/cl.hpp',
@@ -113,11 +113,3 @@ opencl_headers = files(
'CL/opencl.h',
'CL/opencl.hpp',
)
# Only install the headers if we are building a stand alone implementation and
# not an ICD enabled implementation
if with_gallium_clover and not with_opencl_icd
install_headers(
opencl_headers,
subdir: 'CL'
)
endif

View File

@@ -743,24 +743,7 @@ if get_option('vmware-mks-stats')
pre_args += '-DVMX86_STATS=1'
endif
_opencl = get_option('gallium-opencl')
_rtti = get_option('cpp_rtti')
if _opencl != 'disabled'
warning('Clover will be removed in Mesa 25.2')
if not with_gallium
error('OpenCL Clover implementation requires at least one gallium driver.')
endif
if not _rtti
error('The Clover OpenCL state tracker requires rtti')
endif
with_gallium_clover = true
with_opencl_icd = _opencl == 'icd'
else
with_gallium_clover = false
with_opencl_icd = false
endif
with_gallium_rusticl = get_option('gallium-rusticl')
if with_gallium_rusticl
@@ -829,7 +812,7 @@ else
endif
dep_clc = null_dep
if with_gallium_clover or with_clc
if with_clc
dep_clc = dependency('libclc')
endif
@@ -1716,15 +1699,6 @@ if with_amd_vk or with_gallium_radeonsi or with_gallium_r600
llvm_modules += 'asmparser'
endif
endif
if with_gallium_clover
llvm_modules += [
'linker', 'coverage', 'instrumentation', 'ipo', 'irreader',
'lto', 'option', 'objcarcopts', 'profiledata'
]
# all-targets is needed to support static linking LLVM build with multiple targets
# windowsdriver is needded with LLVM>=15, but we don't know what LLVM verrsion we are using yet
llvm_optional_modules += ['all-targets', 'frontendopenmp', 'windowsdriver']
endif
if with_clc
llvm_modules += ['coverage', 'target', 'linker', 'irreader', 'option', 'libdriver', 'lto']
# all-targets is needed to support static linking LLVM build with multiple targets.
@@ -1750,8 +1724,6 @@ if with_amd_vk or with_gallium_radeonsi
_llvm_version = '>= 18.0.0'
elif with_clc or llvm_with_orcjit
_llvm_version = '>= 15.0.0'
elif with_gallium_clover
_llvm_version = '>= 11.0.0'
else
_llvm_version = '>= 5.0.0'
endif
@@ -1771,7 +1743,7 @@ if _llvm.allowed()
modules : llvm_modules,
optional_modules : llvm_optional_modules,
required : (
with_amd_vk or with_gallium_radeonsi or with_gallium_clover or with_clc
with_amd_vk or with_gallium_radeonsi or with_clc
or _llvm.enabled()
),
static : not _shared_llvm,
@@ -1825,8 +1797,6 @@ elif with_swrast_vk
error('lavapipe requires LLVM and is enabled, but LLVM is disabled.')
elif with_any_llvmpipe
error('llvmpipe requires LLVM and is enabled, but LLVM is disabled.')
elif with_gallium_clover
error('The OpenCL "Clover" state tracker requires LLVM, but LLVM is disabled.')
elif with_clc
error('The CLC compiler requires LLVM, but LLVM is disabled.')
else
@@ -1876,7 +1846,7 @@ if dep_spirv_tools.found()
endif
dep_clang = null_dep
if with_clc or with_gallium_clover
if with_clc
llvm_libdir = dep_llvm.get_variable(cmake : 'LLVM_LIBRARY_DIR', configtool: 'libdir')
dep_clang = cpp.find_library('clang-cpp', dirs : llvm_libdir, required : false)
@@ -1891,7 +1861,7 @@ if with_clc or with_gallium_clover
if dep_llvm.version().version_compare('>= 15.0')
clang_modules += 'clangSupport'
endif
if dep_llvm.version().version_compare('>= 16.0') or with_gallium_clover
if dep_llvm.version().version_compare('>= 16.0')
clang_modules += 'clangASTMatchers'
endif
if dep_llvm.version().version_compare('>= 18.0')
@@ -2414,9 +2384,6 @@ if with_gallium
if with_gallium_st_nine
gallium_frontends += 'nine'
endif
if with_gallium_clover
gallium_frontends += 'clover'
endif
if with_gallium_rusticl
gallium_frontends += 'rusticl'
endif

View File

@@ -146,15 +146,6 @@ option(
description : 'build gallium D3D10 WDDM UMD frontend.',
)
option(
'gallium-opencl',
type : 'combo',
choices : ['icd', 'standalone', 'disabled'],
value : 'disabled',
description : 'build gallium "clover" OpenCL frontend.',
deprecated: true,
)
option(
'gallium-rusticl',
type : 'boolean',
@@ -165,7 +156,7 @@ option(
option(
'gallium-rusticl-enable-drivers',
type : 'array',
value : ['auto', 'asahi'],
value : ['auto', 'asahi', 'radeonsi'],
description : 'List of gallium drivers for which rusticl will be enabled ' +
'by default',
)
@@ -581,8 +572,8 @@ option(
type : 'integer',
min : 25,
max : 10000,
value : 25,
description : 'Android Platform SDK version. Default: Nougat version.'
value : 34,
description : 'Android Platform SDK version. Default: Android14 version.'
)
option(

View File

@@ -35,7 +35,7 @@
when: on_success
.radeonsi-manual-rules:
stage: amd-postmerge
stage: amd-nightly
extends: .no-auto-retry
rules:
- !reference [.test, rules]
@@ -63,7 +63,7 @@
when: on_success
.radv-manual-rules:
stage: amd-postmerge
stage: amd-nightly
rules:
- !reference [.test, rules]
- !reference [.vulkan-manual-rules, rules]
@@ -89,7 +89,7 @@
- !reference [.radv-collabora-rules, rules]
.radv-collabora-manual-rules:
stage: amd-postmerge
stage: amd-nightly
extends: .no-auto-retry
rules:
- !reference [.test, rules]
@@ -104,7 +104,7 @@
- !reference [.radv-rules, rules]
.radv-valve-manual-rules:
stage: amd-postmerge
stage: amd-nightly
extends: .no-auto-retry
rules:
- !reference [.test, rules]
@@ -129,7 +129,7 @@
when: on_success
.radeonsi-vaapi-manual-rules:
stage: amd-postmerge
stage: amd-nightly
rules:
- !reference [.test, rules]
- !reference [.collabora-farm-manual-rules, rules]
@@ -146,7 +146,8 @@
- !reference [.radeonsi-rules, rules]
.radeonsi-valve-manual-rules:
stage: amd-postmerge
stage: amd-nightly
extends: .no-auto-retry
rules:
- !reference [.test, rules]
- !reference [.valve-farm-manual-rules, rules]
@@ -308,10 +309,6 @@
variables:
B2C_KERNEL_URL: https://fs.mupuf.org/linux-6.6-b2c-radv-ci # 6.6
.b2c-deqp-test:
variables:
HWCI_TEST_SCRIPT: ./install/deqp-runner.sh
.tahiti-test-valve:
variables:
FDO_CI_CONCURRENT: 24
@@ -463,20 +460,9 @@
.vkcts-test-valve:
extends:
- .b2c-test-radv-vk
- .b2c-deqp-test
variables:
DEQP_SUITE: radv-valve
############### vkd3d-proton
.vkd3d-kabini-valve:
extends:
- .b2c-test-radv-vk
- .b2c-vkd3d-proton-test
- .kabini-test-valve
- .radv-valve-manual-rules
variables:
GPU_VERSION: radv-kabini
############### Fluster tests ###############
.radeonsi-raven-vaapi-fluster:
extends:
@@ -484,8 +470,8 @@
rules:
- !reference [.radeonsi-vaapi-rules, rules]
- changes:
- .gitlab-ci/fluster/*
- src/amd/ci/$GPU_VERSION-fluster-fails.txt
- src/amd/ci/$GPU_VERSION-fluster-flakes.txt
- src/amd/ci/$GPU_VERSION-fluster-skips.txt
- .gitlab-ci/fluster/*
- src/amd/ci/$GPU_VERSION-fluster-fails.txt
- src/amd/ci/$GPU_VERSION-fluster-flakes.txt
- src/amd/ci/$GPU_VERSION-fluster-skips.txt
when: on_success

View File

@@ -4,7 +4,7 @@ include:
# Run five jobs in parallel each running 1/55th of the test suite
radv-stoney-vkcts:
extends:
- .lava-test-deqp:x86_64
- .lava-x86_64-test-vk
- .radv-stoney-test:x86_64
parallel: 5
variables:
@@ -13,7 +13,7 @@ radv-stoney-vkcts:
radv-stoney-angle:
extends:
- .lava-test-deqp:x86_64
- .lava-x86_64-test-gl
- .radv-stoney-test:x86_64
- .test-angle
variables:
@@ -32,8 +32,9 @@ radv-stoney-angle-full:
radeonsi-stoney-glcts-piglit:
extends:
- .lava-test-deqp:x86_64
- .lava-x86_64-test-gl
- .radeonsi-stoney-test:x86_64
- .test-piglit
parallel: 11
variables:
DEQP_SUITE: radeonsi-stoney
@@ -49,7 +50,7 @@ radeonsi-stoney-glcts-piglit-full:
radeonsi-stoney-traces:
extends:
- .lava-piglit-traces:x86_64
- .lava-x86_64-piglit-traces
- .radeonsi-stoney-test:x86_64
variables:
EGL_PLATFORM: surfaceless
@@ -58,7 +59,7 @@ radeonsi-stoney-traces:
radv-raven-vkcts:
extends:
- .lava-test-deqp:x86_64
- .lava-x86_64-test-vk
- .radv-raven-test:x86_64
- .lava-asus-CM1400CXA-dalboz:x86_64
parallel: 9
@@ -68,7 +69,7 @@ radv-raven-vkcts:
amd-raven-skqp:
extends:
- .lava-test-deqp:x86_64
- .lava-x86_64-test-gl
- .amd-raven-test:x86_64
- .lava-hp-x360-14a-cb0001xx-zork:x86_64
variables:
@@ -80,7 +81,7 @@ amd-raven-skqp:
# being disabled due to being flaky.
.radv-raven-traces:
extends:
- .lava-piglit-traces:x86_64
- .lava-x86_64-piglit-traces
- .radv-raven-test:x86_64
- .lava-asus-CM1400CXA-dalboz:x86_64
variables:
@@ -91,7 +92,7 @@ amd-raven-skqp:
radv-raven-traces-restricted:
extends:
- .lava-piglit-traces:x86_64
- .lava-x86_64-piglit-traces
- .radv-raven-test:x86_64
- .lava-lenovo-TPad-C13-Yoga-zork:x86_64
- .radv-collabora-restricted-rules
@@ -107,8 +108,9 @@ radv-raven-traces-restricted:
radeonsi-raven-piglit:
extends:
- .lava-test-deqp:x86_64
- .lava-x86_64-test-gl
- .radeonsi-raven-test:x86_64
- .test-piglit
- .lava-lenovo-TPad-C13-Yoga-zork:x86_64
parallel: 2
variables:
@@ -118,8 +120,9 @@ radeonsi-raven-piglit:
# lower image opcodes to emulate CDNA compute devices
radeonsi-raven-cdna-lower-image-piglit:
extends:
- .lava-test-deqp:x86_64
- .lava-x86_64-test-gl
- .radeonsi-raven-test:x86_64
- .test-piglit
- .lava-lenovo-TPad-C13-Yoga-zork:x86_64
variables:
DEQP_SUITE: radeonsi-raven-cdna
@@ -127,7 +130,7 @@ radeonsi-raven-cdna-lower-image-piglit:
radeonsi-raven-va:
extends:
- .lava-test-deqp:x86_64
- .lava-x86_64-test-video
- .radeonsi-raven-test:x86_64
- .radeonsi-vaapi-rules
- .lava-hp-x360-14a-cb0001xx-zork:x86_64
@@ -147,7 +150,7 @@ radeonsi-raven-vaapi-fluster:
- radeonsi-raven-va
- .radeonsi-raven-vaapi-fluster
timeout: 30m
parallel: 6
parallel: 2
variables:
FLUSTER_CODECS: VP9 H.264 H.265
# FIXME: Downloading the vectors can take about 4-5 minutes
@@ -271,7 +274,7 @@ radv-vangogh-vkcts:
.radeonsi-vangogh-glcts-common:
extends:
- .b2c-x86_64-test-gl
- .b2c-deqp-test
- .test-piglit
- .vangogh-test-valve
variables:
GPU_VERSION: radeonsi-vangogh
@@ -358,7 +361,7 @@ radv-fossils:
radv-tahiti-vkd3d:
extends:
- .b2c-test-radv-vk
- .b2c-vkd3d-proton-test
- .test-vkd3d-proton
- .tahiti-test-valve
- .radv-valve-manual-rules
variables:
@@ -369,7 +372,7 @@ radv-tahiti-vkd3d:
radv-hawaii-vkd3d:
extends:
- .b2c-test-radv-vk
- .b2c-vkd3d-proton-test
- .test-vkd3d-proton
- .hawaii-test-valve
- .radv-valve-manual-rules
variables:
@@ -380,7 +383,7 @@ radv-hawaii-vkd3d:
radv-polaris10-vkd3d:
extends:
- .b2c-test-radv-vk
- .b2c-vkd3d-proton-test
- .test-vkd3d-proton
- .polaris10-test-valve-kws
- .radv-valve-manual-rules
variables:
@@ -391,7 +394,7 @@ radv-polaris10-vkd3d:
radv-vega10-vkd3d:
extends:
- .b2c-test-radv-vk
- .b2c-vkd3d-proton-test
- .test-vkd3d-proton
- .vega10-test-valve
- .radv-valve-manual-rules
variables:
@@ -402,7 +405,7 @@ radv-vega10-vkd3d:
radv-renoir-vkd3d:
extends:
- .b2c-test-radv-vk
- .b2c-vkd3d-proton-test
- .test-vkd3d-proton
- .renoir-test-valve
- .radv-valve-manual-rules
variables:
@@ -413,7 +416,7 @@ radv-renoir-vkd3d:
radv-navi10-vkd3d:
extends:
- .b2c-test-radv-vk
- .b2c-vkd3d-proton-test
- .test-vkd3d-proton
- .navi10-test-valve-mupuf
- .radv-valve-manual-rules
variables:
@@ -424,7 +427,7 @@ radv-navi10-vkd3d:
radv-navi21-vkd3d:
extends:
- .b2c-test-radv-vk
- .b2c-vkd3d-proton-test
- .test-vkd3d-proton
- .navi21-test-valve
- .radv-valve-manual-rules
variables:
@@ -435,7 +438,7 @@ radv-navi21-vkd3d:
radv-vangogh-vkd3d:
extends:
- .b2c-test-radv-vk
- .b2c-vkd3d-proton-test
- .test-vkd3d-proton
- .vangogh-test-valve
- .radv-valve-manual-rules
variables:
@@ -446,7 +449,7 @@ radv-vangogh-vkd3d:
radv-raphael-vkd3d:
extends:
- .b2c-test-radv-vk
- .b2c-vkd3d-proton-test
- .test-vkd3d-proton
- .raphael-test-valve
- .radv-valve-manual-rules
variables:
@@ -457,10 +460,19 @@ radv-raphael-vkd3d:
radv-navi31-vkd3d:
extends:
- .b2c-test-radv-vk
- .b2c-vkd3d-proton-test
- .test-vkd3d-proton
- .navi31-test-valve
- .radv-valve-manual-rules
variables:
GPU_VERSION: radv-navi31
# Random tests fail/crash when trying to run them in parallel
FDO_CI_CONCURRENT: 1
.radv-kabini-vkd3d:
extends:
- .b2c-test-radv-vk
- .test-vkd3d-proton
- .kabini-test-valve
- .radv-valve-manual-rules
variables:
GPU_VERSION: radv-kabini

View File

@@ -38,3 +38,6 @@ spec@!opengl 1.1@line-smooth-stipple,Fail
spec@arb_viewport_array@display-list,Fail
# since transition XORG -> WESTON
glx@glx_arb_sync_control@waitformsc,Fail
# Since switching to test-gl container based rootfs
spec@arb_shader_texture_lod@execution@arb_shader_texture_lod-texgradcube,Fail

Some files were not shown because too many files have changed in this diff Show More