Compare commits

..

283 Commits

Author SHA1 Message Date
Eric Engestrom
a3df5eab6c VERSION: bump for 24.0.2 2024-02-28 18:29:18 +00:00
Eric Engestrom
11367cc87a docs: add release notes for 24.0.2 2024-02-28 18:29:07 +00:00
Eric Engestrom
8a5c89a294 [24.0 only] disable clang-format
It's been disabled on main which means I'm now getting backports that do not pass this check anymore.
2024-02-28 13:30:12 +00:00
Daniel Stone
7e6f55f336 egl/wayland: Fix EGL_EXT_present_opaque
This extension has been broken ever since the initial commit. It created
an XRGB DRIImage for the driver to render to, so whilst the presentation
was opaque, the buffer also completely lacked an alpha channel.

Fix it by making sure we only modify the FourCC we send to the Wayland
server when creating a buffer.

Closes: mesa/mesa#5886
Fixes: 9aee7855d2 ("egl: implement EGL_EXT_present_opaque on wayland")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27709>
(cherry picked from commit 9ea9a963aa)
2024-02-27 22:11:53 +00:00
Daniel Stone
b137afc1e6 egl/wayland: Add opaque-equivalent FourCCs
Add a mapping for the opaque version of an alphaful format (e.g.
ARGB8888 -> XRGB8888) to better support EGL_EXT_present_opaque.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27709>
(cherry picked from commit c74f480391)
2024-02-27 22:11:53 +00:00
Ian Romanick
b067a61c07 nir: Mark nir_intrinsic_load_global_block_intel as divergent
This is divergent because it specifically loads sequential values into
successive SIMD lanes.

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

Fixes: 9f44a26462 ("nir/divergence: handle load_global_block_intel")
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27044>
(cherry picked from commit 75de4458a1)
2024-02-27 22:11:53 +00:00
David Rosca
e7244292ce frontends/va: Only set VP9 segmentation fields when segmentation is enabled
Workaround for ffmpeg setting segmentation_update_map to 1 with
segmentation_enabled == 0.

Fixes decoding sample from https://github.com/mpv-player/mpv/issues/13533

Cc: mesa-stable

Reviewed-by: Leo Liu <leo.liu@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27816>
(cherry picked from commit 82ff9204ab)
2024-02-27 22:02:25 +00:00
Tapani Pälli
6157ac47f5 iris: make sure DS and TE are sent in pairs on >= gfx125
We have couple of dynamic fields used on >= gfx125, ScratchSpaceBuffer
and TessellationDistributionMode. There are also 2 workarounds dealing
with TessellationDistributionMode. These changes make sure that we
always emit both DS and TE together when the dynamic fields need to be
changed.

This fixes KHR-Single-GL46.arrays_of_arrays_gl.AtomicUsage on MTL.

Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10636
Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: José Roberto de Souza <jose.souza@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27753>
(cherry picked from commit 1b1afd7b24)
2024-02-27 22:01:10 +00:00
Sagar Ghuge
dd627a3462 nir: Allow nir_texop_tg4 in implicit derivative
This allow us to invoke the quad helper.

v2: (Georg)
- Add check for is_gather_implicit_lod

Fixes: 48158636bf ("nir: add is_gather_implicit_lod")
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Signed-off-by: Sagar Ghuge <sagar.ghuge@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27447>
(cherry picked from commit 30ead72e80)
2024-02-27 22:01:08 +00:00
Connor Abbott
f22f1117bd tu: Follow pipeline compatibility rules for dynamic descriptors
When we bind a descriptor set with dynamic descriptors, we can't ignore
dynamic descriptors in previously-bound higher descriptor sets. For
example, assume we have descriptor sets A and B, each of which has one
dynamic storage buffer, and we do:

CmdBindDescriptorSets(firstSet=1, descriptorSetCount=1, A)
CmdBindDescriptorSets(firstSet=0, descriptorSetCount=1, B)

and in the first CmdBindDescriptorSets the pipeline layout includes a
descriptor set layout compatible with B in set 0. Then, following
"Pipeline Layout Compatibility," set 0 is disturbed:

   When binding a descriptor set to set number N, a previously bound
   descriptor set bound with lower index M than N is disturbed if the
   pipeline layouts for set M and N are not compatible for set M.
   Otherwise, the bound descriptor set in M is not disturbed

When it's disturbed, it's effectively turned into a set with 1 undefined
dynamic storage buffer:

   When a descriptor set is disturbed by binding descriptor sets, the
   disturbed set is considered to contain undefined descriptors bound
   with the same pipeline layout as the disturbing descriptor set.

This disturbed set is compatible with B, so in the second
CmdBindDescriptorSets this clause doesn't apply:

   If, additionally, the previously bound descriptor set for set N was
   bound using a pipeline layout not compatible for set N, then all
   bindings in sets numbered greater than N are disturbed.

and A remains valid to access. The code before 88db7364 worked only if
the pipeline layout when binding B contained a descriptor layout
compatible with A in set 1, because it used the pipeline layout's total
size when allocating the internal dynamic descriptors array, but that
isn't actually a requirement, so the previous code was already broken.
After 88db7364 we only allocate as much space as required by the current
descriptors being bound, because I misread the rules here, which made it
more broken and broke 3DMark Wildlife Extreme that does something like
this.

In order to properly fix this we need to keep track of the maximum ever
seen dynamic descriptor size, similar to what we already do for
descriptor sets, and use that. We have no idea what needs to be
preserved when binding a descriptor set with dynamic descriptors, so we
have to be conservative.

Fixes: 88db7364 ("tu: Rework dynamic offset handling")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27750>
(cherry picked from commit db0291c235)
2024-02-27 22:01:07 +00:00
Tapani Pälli
b44886773c intel/blorp: disable use of REP16 independent of format
Previously we were optimistic and tied this to certain format but wa
description lists other formats and bspec clearly disallows the usage.

Issue can be seen with different 16bpp tests, effect looks a bit like
dithering pattern but it is not, it is just rep16 failing.

Fixes:
   GTF-GL46.gtf42.GL3Tests.texture_storage.texture_storage_texture_as_framebuffer_attachment

on DG2 and MTL, some 565 EGL tests on Android and internal issue on game
that displays a dither like pattern on the background while it's not
supposed to do that.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10646
Cc: mesa-stable
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/27794>
(cherry picked from commit 1a4f220c29)
2024-02-27 22:01:06 +00:00
Patrick Lerda
d6aefb583e r300: fix memory leaks when register allocation fails
For instance, this issue is triggered with
"piglit/bin/ext_framebuffer_multisample-accuracy all_samples color depthstencil -auto -fbo":
Direct leak of 1160 byte(s) in 1 object(s) allocated from:
    #0 0x7fbe8897d7ef in __interceptor_malloc (/usr/lib64/libasan.so.6+0xb17ef)
    #1 0x7fbe7e7abfcc in rc_constants_copy ../src/gallium/drivers/r300/compiler/radeon_code.c:47
    #2 0x7fbe7e7ec902 in r3xx_compile_fragment_program ../src/gallium/drivers/r300/compiler/r3xx_fragprog.c:174
    #3 0x7fbe7e7e1b22 in r300_translate_fragment_shader ../src/gallium/drivers/r300/r300_fs.c:516
    #4 0x7fbe7e7e6373 in r300_pick_fragment_shader ../src/gallium/drivers/r300/r300_fs.c:591
    #5 0x7fbe7e75456e in r300_create_fs_state ../src/gallium/drivers/r300/r300_state.c:1073
    #6 0x7fbe7cd2ebe5 in st_create_fp_variant ../src/mesa/state_tracker/st_program.c:1070
    #7 0x7fbe7cd374b5 in st_get_fp_variant ../src/mesa/state_tracker/st_program.c:1116
    #8 0x7fbe7cd38273 in st_precompile_shader_variant ../src/mesa/state_tracker/st_program.c:1281
    #9 0x7fbe7cd38273 in st_finalize_program ../src/mesa/state_tracker/st_program.c:1345
    #10 0x7fbe7d798ca8 in st_link_glsl_to_nir ../src/mesa/state_tracker/st_glsl_to_nir.cpp:724
    #11 0x7fbe7d798ca8 in st_link_shader ../src/mesa/state_tracker/st_glsl_to_nir.cpp:952
    #12 0x7fbe7d6790d5 in link_program ../src/mesa/main/shaderapi.c:1336
    #13 0x7fbe7d6790d5 in link_program_error ../src/mesa/main/shaderapi.c:1447
...
SUMMARY: AddressSanitizer: 2528456 byte(s) leaked in 1057 allocation(s).

Fixes: 54f6e72b27 ("r300: better register allocator for vertex shaders")
Signed-off-by: Patrick Lerda <patrick9876@free.fr>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27792>
(cherry picked from commit 4d00edda00)
2024-02-27 21:59:35 +00:00
Patrick Lerda
e94f1fc304 r300: fix r300_destroy_context() related memory leaks
For instance, with "piglit/bin/fcc-blit-between-clears -auto -fbo"":
SUMMARY: AddressSanitizer: 70512 byte(s) leaked in 497 allocation(s).

Fixes: e01f86c67b ("r300: set PIPE_BIND_CONSTANT_BUFFER for const_uploader")
Signed-off-by: Patrick Lerda <patrick9876@free.fr>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27791>
(cherry picked from commit b11ecacb93)
2024-02-27 21:59:34 +00:00
Eric Engestrom
046ca162a9 .pick_status.json: Update to 82ff9204ab 2024-02-27 21:59:24 +00:00
Lionel Landwerlin
c440d7ceef anv: add missing generated file dep
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10672
Cc: mesa-stable
Acked-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27786>
(cherry picked from commit e9169881db)
2024-02-26 12:22:22 +00:00
Mike Blumenkrantz
20cc365eb2 zink: flag acquired swapchain image as readback target on acquire, not present
readback should trigger on the current backbuffer, not the most recently
presented buffer. if e.g., a clear is only triggered through glFlush,
this clear should be read back rather than the contents of the last-presented
buffer

cc: mesa-stable

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27553>
(cherry picked from commit d2ed77072c)
2024-02-26 12:22:22 +00:00
Mike Blumenkrantz
cf0ed80d3a zink: lock buffer age when chundering swapchain for readback
this sequence doesn't count as SwapBuffers calls, so age cannot be modified

Fixes: c123ab2137 ("kopper: Implement {EGL,GLX}_EXT_buffer_age")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27553>
(cherry picked from commit c3a2e2f9f2)
2024-02-26 12:22:22 +00:00
Mike Blumenkrantz
850c9dbdc9 zink: fix (dynamic rendering) execution of scissored clears during flush
in the case where the renderpass did not change, this would
otherwise have skipped the mask composition for in-rp clears

cc: mesa-stable

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27553>
(cherry picked from commit 50b671c1c3)
2024-02-26 12:22:22 +00:00
Mike Blumenkrantz
baba35ed69 zink: clamp in_rp clears to fb size
this was almost sort of clamping except that it wasn't

cc: mesa-stable

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27553>
(cherry picked from commit e602035596)
2024-02-26 12:22:22 +00:00
Mike Blumenkrantz
ffd79476ec zink: assert that batch_id is valid in zink_screen_check_last_finished()
0 is never a valid batch_id

cc: mesa-stable

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27729>
(cherry picked from commit 35185ad9df)
2024-02-26 12:22:22 +00:00
Mike Blumenkrantz
ab000d7951 zink: fix longstanding issue with active batch state recycling
the previous code could recycle a currently-submitting state by hitting
a race condition where zink_screen_check_last_finished(batch_id) returned
true because batch_id was 0

this can no longer recycle the current batch, but the race should still be
eliminated for consistency: check 'submitted' since this guarantees batch_id
is valid

cc: mesa-stable

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27729>
(cherry picked from commit 3283415bbd)
2024-02-26 12:22:22 +00:00
Mike Blumenkrantz
2728e5f2cc zink: only scan active batch states for free states if > 1 exist
trying to recycle the current active batch state is never going to be
productive

cc: mesa-stable

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27729>
(cherry picked from commit 16103b61e7)
2024-02-26 12:22:22 +00:00
Eric Engestrom
313a9e6b73 .pick_status.json: Update to 4071c399a2 2024-02-26 12:22:22 +00:00
Lionel Landwerlin
f5311e2418 anv: limit depth flush on dynamic render pass suspend
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Ivan Briano <ivan.briano@intel.com>
Reviewed-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27745>
(cherry picked from commit 642b12baef)
2024-02-26 12:22:22 +00:00
Lionel Landwerlin
d2c6a48ee9 intel/nir: only consider ray query variables in lowering
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Cc: mesa-stable
Reviewed-by: Ivan Briano <ivan.briano@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27752>
(cherry picked from commit abeac8cf96)
2024-02-26 12:22:22 +00:00
Chris Rankin
aead18c79d vdpau: Refactor query for video surface formats.
Cc: mesa-stable

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10614
Signed-off-by: Chris Rankin <rankincj@gmail.com>
Reviewed-by: Leo Liu <leo.liu@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27730>
(cherry picked from commit c3ceec6cd8)
2024-02-26 12:22:22 +00:00
Michel Dänzer
40ab1da1b4 egl/wayland: Flush after blitting to linear copy
We need to flush after blitting to the linear copy, or the Wayland
compositor may not see the correct linear buffer contents.

v2:
* Keep blitImage call in the same place (Daniel Stone)
* Add second flush for the blit to linear copy

Fixes: 58f90fd03f ("egl/wayland: fix glthread crashes")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/9816
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27718>
(cherry picked from commit 7a6836611e)
2024-02-26 12:22:22 +00:00
Konstantin Seurer
83250a30aa ci: Update llvmpipe trace checksums
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27603>
(cherry picked from commit 3fed272da7)
2024-02-26 12:22:22 +00:00
Konstantin Seurer
6aa24ea086 gallivm: Consider the initial mask when terminating loops
Partial subgroups can lead to infinite loops otherwise.

cc: mesa-stable

Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27603>
(cherry picked from commit 4d7beb22fa)
2024-02-26 12:22:22 +00:00
Konstantin Seurer
5e178a07a0 llvmpipe: Use full subgroups when possible
Fixes computeFullSubgroups on lavapipe.

cc: mesa-stable

Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27603>
(cherry picked from commit eb3c96d5ed)
2024-02-26 11:20:16 +00:00
Erik Faye-Lund
da3ac67e23 mesa/main: allow GL_BGRA for FBOs
The EXT_texture_format_BGRA8888 spec clearly defines GL_BGRA as a
color-renderable format, so we need to support it here as well.

This has been broken since the day support for the extension was added.
Oh well, let's fix it up!

Fixes: 1d595c7cd4 ("gles2: Add GL_EXT_texture_format_BGRA8888 support")
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27720>
(cherry picked from commit 3b23e9d89d)
2024-02-26 11:20:16 +00:00
Samuel Pitoiset
76bb6e7f8e radv: fix indirect dispatches on compute queue with conditional rendering on GFX7
COND_EXEC needs to happen right before PKT3_DISPATCH_INDIRECT.

Like this combination will probably never happen but better to have
it fixed anyways.

Fixes: 5c03cdbd02 ("radv: fix indirect dispatches on the compute queue on GFX7")
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27655>
(cherry picked from commit 9ae8f0f9d7)
2024-02-26 11:20:16 +00:00
Karol Herbst
21090c8d3e meson: do not pull in clc for clover
Fixes: 01d0d94319 ("meson: Simplify clc expression")
Signed-off-by: Karol Herbst <kherbst@redhat.com>
Acked-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27663>
(cherry picked from commit 815a6647eb)
2024-02-26 11:20:15 +00:00
Chris Rankin
c8bdf6129a vdpau: Declare texture object as immutable using helper function.
Cc: mesa-stable

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10618
Signed-off-by: Chris Rankin <rankincj@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27681>
(cherry picked from commit e1e84b0721)
2024-02-26 11:20:15 +00:00
Rhys Perry
d50d8ea2ba aco/ra: fix GFX9- writelane
061b8bfd29 moved handling of fixed operands earlier, but it should have
moved the fixing of writelane operands earlier too.

This fixes Crucible's func.uniform-subgroup.exclusive.imin64 on GFX8.

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Fixes: 061b8bfd29 ("aco/ra: rework fixed operands")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27583>
(cherry picked from commit d0595e4805)
2024-02-26 11:20:15 +00:00
Rhys Perry
c7f3e736a0 aco/ra: don't initialize assigned in initializer list
According to Valgrind, vcc/m0 are uninitialized and this fixes it.

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27583>
(cherry picked from commit 53800191a3)
2024-02-26 11:20:15 +00:00
Lionel Landwerlin
db5a997626 anv: disable Wa_16013994831
We've implemented another workaround completely disabling high
priority preemption.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: e6e320fc79 ("anv: make Wa_16013994831 to use intel_needs_workaround")
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27716>
(cherry picked from commit 137b7e874f)
2024-02-26 11:20:15 +00:00
Samuel Pitoiset
d3df85a197 spirv: only consider IO variables when adjusting patch locations for TES
With TES, the primitive ID is an input variable but it's considered a
sysval by SPIRV->NIR. Though, its value is greater than
VARYING_SLOT_VAR0 which means its location was adjusted by mistake.

This fixes compiling a tessellation evaluation shader in debug build
with Enshrouded.

Fixes: dfbc03fa88 ("spirv: Fix locations for per-patch varyings")
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27413>
(cherry picked from commit 78ea304a06)
2024-02-26 11:20:15 +00:00
Iago Toral Quiroga
d0ea44cfdc v3d,v3dv: fix BO allocation for shared vars
We need to allocate "shared size" bytes for each workgroup but
we were incorrectly multiplying by the number of workgroups in
each supergroup instead, which would typically cause us to allocate
less memory than actually required.

The reason this issue was not visible until now is that the kernel
driver is using a large page alignment on all BO allocations and
this causes us to "waste" a lot of memory after each allocation.
Incidentally, this wasted memory ensured that out of bounds
accesses would not cause issues since they would typically land
in unused memory regions in between aligned allocations, however,
experimenting with reduced memory aligments raised the issue,
which manifested with the UE4 Shooter demo as a GPU hang caused
by corrupted state from out of bounds memory writes to CS
shared memory.

Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27675>
(cherry picked from commit 1880e7cfed)
2024-02-26 11:20:15 +00:00
Dave Airlie
2e1ccf1c59 nvk: fix dri options leak.
Noticed in valgrind.

Fixes: edb5229538 ("nvk: Hook up driconf for nvk_instance")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27712>
(cherry picked from commit f47858b837)
2024-02-26 11:20:15 +00:00
Dave Airlie
2bc85abbf2 nouveau/winsys: fix bda heap leak.
found with valgrind.

Fixes: b4cfac64c8 ("nvk: Add a separate VMA heap for BDA capture/replay")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27712>
(cherry picked from commit fd04c14306)
2024-02-26 11:20:15 +00:00
Faith Ekstrand
0f8d77fc04 nvk: Invalidate the texture cache before MSAA resolves
Fixes: 4bd2ba31fc ("nvk: Use meta for MSAA resolves")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27710>
(cherry picked from commit 3b658028dd)
2024-02-26 11:20:15 +00:00
Mike Blumenkrantz
6add041513 vk/wsi/x11/sw: use swapchain depth for putimage
this is otherwise broken for 32bit depth windows

cc: mesa-stable

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27605>
(cherry picked from commit 1e849b12f5)
2024-02-25 17:11:02 +00:00
Patrick Lerda
0de687d8f8 r300: fix vertex_buffer related refcnt imbalance
Indeed, vertex_buffer was not properly freed.

For instance, this issue is triggered with:
"piglit/bin/fcc-read-after-clear blit rb -auto -fbo"
while setting GALLIUM_REFCNT_LOG=refcnt.log.

Fixes: 8a963d122d ("r300g/swtcl: don't do stuff which is only for HWTCL")
Signed-off-by: Patrick Lerda <patrick9876@free.fr>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27678>
(cherry picked from commit 3b90c46bdf)
2024-02-25 16:58:16 +00:00
Lionel Landwerlin
8dd90997d7 anv: fix Wa_16013994831 macros
The commit that switched to the WA framework forgot to update one of
the ifdef section.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: e6e320fc79 ("anv: make Wa_16013994831 to use intel_needs_workaround")
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27676>
(cherry picked from commit 63676ed502)
2024-02-25 16:58:15 +00:00
Lionel Landwerlin
71442fdd6f anv: reenable ANV_ALWAYS_BINDLESS
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Cc: mesa-stable
Reviewed-by: Ivan Briano <ivan.briano@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27504>
(cherry picked from commit 27a7c5447d)
2024-02-25 16:57:56 +00:00
Lionel Landwerlin
2128a8a07b anv: fixup push descriptor shader analysis
There are a couple mistakes here :

   - using a bitfield as an index to generate a bitfield...

   - in anv_nir_push_desc_ubo_fully_promoted(), confusing binding
     table access of the descriptor buffer with actual descriptors

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: ff91c5ca42 ("anv: add analysis for push descriptor uses and store it in shader cache")
Reviewed-by: Ivan Briano <ivan.briano@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27504>
(cherry picked from commit cf193af762)
2024-02-25 16:52:51 +00:00
Mike Blumenkrantz
e814fc81b0 mesa: check driver format support for certain GetInternalformativ queries
according to spec, these should return NONE if the format is
not supported for a given texture target, but mesa was incorrectly
returning a hardcoded value for all cases without checking the driver

instead, check whether the driver can create a texture for a given
format to correctly handle this non-support case

cc: mesa-stable

Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27621>
(cherry picked from commit 893780b362)
2024-02-25 16:52:50 +00:00
Chia-I Wu
c126631fe7 radv: fix pipeline stats mask
Left-shifting by 11*8 or 14*8 is undefined.  This fixes many
dEQP-VK.query_pool.statistics_query.* failures (but not pre-existing
flakes) for release builds using clang.

Fixes: 48aabaf225 ("radv: do not harcode the pipeline stats mask for query resolves")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27651>
(cherry picked from commit ec5d0ffb04)
2024-02-25 16:52:47 +00:00
Boyuan Zhang
519c96f3c8 radeonsi/vcn: only use multi slices reflist when available
Some frontends interface doesn't provide ref pic lists for HEVC. Therefore
ONLY enabling multislices reflist for frontends that support direct ref pic
list by checking the flag.

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

Signed-off-by: Boyuan Zhang <boyuan.zhang@amd.com>
Reviewed-by: Leo Liu <leo.liu@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27642>
(cherry picked from commit 0db2d13af1)
2024-02-25 16:52:46 +00:00
Karol Herbst
a85301784d rusticl/program: fix CL_PROGRAM_BINARIES for devs with no builds
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10611
Fixes: e028baa177 ("rusticl/program: implement clCreateProgramWithBinary")
Signed-off-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27633>
(cherry picked from commit a4f77ce2d4)
2024-02-25 16:51:58 +00:00
Samuel Pitoiset
8a338675c6 radv: enable GS_FAST_LAUNCH=2 by default for RDNA3 APUs (Phoenix)
GS_FAST_LAUNCH=1 shouldn't be used on GFX11 but it's still needed for
dGPUs (eg. NAVI31) because it destroys performance for unknown reasons.

On RDNA3 APUs, GS_FAST_LAUNCH=2 seems to be required for working
mesh shaders and performance is fine. There is possibly a firmware bug
on APUs that would explain why GS_FAST_LAUNCH=1 doesn't work on Phoenix.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10583
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10397
Cc: mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27618>
(cherry picked from commit 6894692d27)
2024-02-25 16:51:25 +00:00
Pavel Ondračka
abd5842ed7 r300: add explicit flrp lowering
Even though we set .lower_flrp32 = true there is no actuall flrp
lowering in nir_opt_algebraic. Mesa does not produce any but nine does,
so lower it explicitly to fix nine.

Fixes: f8a5cba3b4
Signed-off-by: Pavel Ondračka <pavel.ondracka@gmail.com>
Reviewed-by: Filip Gawin <filip.gawin@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27467>
(cherry picked from commit d78a913bda)
2024-02-25 16:48:41 +00:00
Hans-Kristian Arntzen
f36d69d1d6 radv: export multiview in VS/TES/GS for depth-only rendering
For depth-only rendering, a VS would not export layer properly.

Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10606
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
cc: mesa-stable

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27615>
(cherry picked from commit 786c1b8322)
2024-02-25 16:48:19 +00:00
Karol Herbst
2166ee5c2e zink: lower unaligned memory accesses
Fixes `vload_half` in OpenCL

Fixes: 0288cb0a0c ("zink: lower vec8/16")
Signed-off-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27754>
(cherry picked from commit 2b9c0e3768)
2024-02-25 14:14:14 +00:00
Mike Blumenkrantz
3794d15e61 zink: don't destroy the current batch state on context destroy
these are owned by the screen now

should fix some flakiness with shared contexts

Fixes: b06f6e00fb ("zink: fix heap-use-after-free on batch_state with sub-allocated pipe_resources")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27749>
(cherry picked from commit dfe331930c)
2024-02-25 14:14:14 +00:00
Mike Blumenkrantz
40c72e73e7 zink: handle stencil_fallback in zink_clear_depth_stencil
ctx->blitting will already be set at this point, meaning the flag
should not be modified and no barriers are required

fixes stencil blitting on nvk

cc: mesa-stable

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27735>
(cherry picked from commit ac45d893d6)
2024-02-25 14:14:09 +00:00
Mike Blumenkrantz
7426889729 zink: force host-visible allocations for MAP_COHERENT resources
this fixes persistent maps for systems without any BAR

cc: mesa-stable

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27707>
(cherry picked from commit ccbf9b0ea7)
2024-02-25 14:13:08 +00:00
Mike Blumenkrantz
0738409dc7 zink: add a second fence disambiguation case
this is the case where:
* a batch A is submitted
* a no-op flush occurs
* the frontend gets the fence from already-flushed batch A
* zink recycles batch A
* the frontend waits on fence A

fixes #10598

cc: mesa-stable

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27623>
(cherry picked from commit fb2ae7736f)
2024-02-25 14:11:28 +00:00
Mike Blumenkrantz
cd582fa016 zink: add checks/compat for low-spec descriptor buffer implementations
for implementations that can only support 1 descriptor buffer:
* prefer templates
* allow db if explicitly requested, but disable bindless (for testing)

fix #10640

Fixes: b8b51d96b0 ("zink: delete maxDescriptorBufferBindings checks")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27696>
(cherry picked from commit 83d1241cf5)
2024-02-25 14:11:27 +00:00
Mike Blumenkrantz
4d87eb83da zink: avoid infinite recursion on (very) small BAR systems in bo alloc
this should only try a full reclaim if possible, not unconditionally

cc: mesa-stable

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27606>
(cherry picked from commit c6635c09d0)
2024-02-25 14:11:24 +00:00
Mike Blumenkrantz
e730b1b62b zink: delete maxDescriptorBufferBindings checks
only one descriptor buffer is used now

Fixes: 13c6ad0038 ("zink: use a single descriptor buffer for all non-bindless types")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27685>
(cherry picked from commit b8b51d96b0)
2024-02-25 14:11:24 +00:00
Mike Blumenkrantz
b9def8ca05 zink: don't add VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT for sparse textures
according to VUID-VkImageCreateInfo-flags-09403, this is illegal

cc: mesa-stable

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27358>
(cherry picked from commit 4c08db5501)
2024-02-25 14:11:17 +00:00
Mike Blumenkrantz
3c1a634e7e zink: promote gpl libs freeing during shader destroy out of prog loop
now that zink_gfx_lib_cache::stages_present exists (and is correct),
this value can be used directly to effect cache eviction instead of depending
on the prog->stages_present value, which may not even be the same prog that
owns a given zink_gfx_lib_cache instance

this fixes the case where a shader used in multiple progs with differing shader
masks would never have all its gpl pipelines freed

fixes leaks with caselist:
KHR-Single-GL46.arrays_of_arrays_gl.InteractionUniformBuffers1
KHR-Single-GL46.subgroups.quad.framebuffer.subgroupquadbroadcast_3_float_vertex

Fixes: d786f52f1f ("zink: prevent crash when freeing")

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27358>
(cherry picked from commit e8ce53a33d)
2024-02-25 14:11:16 +00:00
Mike Blumenkrantz
10eb12968b zink: clamp zink_gfx_lib_cache::stages_present for generated tcs
this otherwise does not reflect reality

Fixes: d786f52f1f ("zink: prevent crash when freeing")

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27358>
(cherry picked from commit 36e7350e0b)
2024-02-25 14:11:15 +00:00
Konstantin Seurer
a9c5611b49 Revert "zink: always force flushes when originating from api frontend"
This reverts commit 03f049f497.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27560>
(cherry picked from commit 097e543c0a)
2024-02-25 14:10:38 +00:00
Konstantin Seurer
1528c6f524 zink: Always set mfence->submit_count to the fence submit_count
Fixes glFinish not finishing all GPU work.

cc: mesa-stable

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/8257
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27560>
(cherry picked from commit aed5e4e1f2)
2024-02-25 14:09:32 +00:00
Mike Blumenkrantz
25d2384e10 zink: adjust swizzled deref loads by the variable component offset
this code is intended to transform a block like:

```
  32    %306 = @load_interpolated_input (%34, %0 (0x0)) (base=3, component=2, dest_type=float32, io location=VARYING_SLOT_VAR3 slots=1)
  32x2  %307 = fsub %305, %306.xx
```

into derefs. the existing code generates this:

```
decl_var shader_in INTERP_MODE_NONE none vec2 #7 (VARYING_SLOT_VAR3.zw, 0, 0)
  32    %516 = deref_var &#7 (shader_in vec2)
  32x2  %517 = @load_deref (%516) (access=none)
  32    %518 = mov %517.z
error: src->swizzle[i] < num_components (../src/compiler/nir/nir_validate.c:216)
```

the problem is attempting to reapply the component offset to a variable which is
already at an offset

fixes #10567

Fixes: 17a35412dc ("zink: re-rework i/o variable handling to make having variables entirely optional")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27522>
(cherry picked from commit 0a243a7241)
2024-02-25 14:09:29 +00:00
Mike Blumenkrantz
3120d28d2d zink: run sparse lowering after all optimization passes
some passes (e.g., opt_shrink_vector) operate on the assumption that
sparse tex ops have a certain number of components and then remove components
and unset the sparse flag if they can optimize out the sparse usage

zink's sparse ops do not have the standard number of components, which
causes such passes to make incorrect assumptions and tag them as
not being sparse, which breaks everything

fix #10540

Fixes: 0d652c0c8d ("zink: shrink vectors during optimization")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27414>
(cherry picked from commit 2085d60438)
2024-02-25 14:09:28 +00:00
Mike Blumenkrantz
7a0833e335 zink: move sparse lowering up in file
no functional changes

Fixes: 0d652c0c8d ("zink: shrink vectors during optimization")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27414>
(cherry picked from commit 6a8cd7a64f)
2024-02-25 14:09:28 +00:00
Mike Blumenkrantz
974829185e zink: zero allocate resident_defs array in ntv
this makes assert(def!=0) more reliable

Fixes: 73ef54e342 ("zink: handle residency return value from sparse texture instructions")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27414>
(cherry picked from commit aacc4e1c68)
2024-02-25 14:09:27 +00:00
Mike Blumenkrantz
5da667ad3e zink: fix sparse bo placement
the util function here takes a bitmask of memory type indices, not properties.
rename the function and correct the usage

fixes sparse on nvidia blob

Fixes: c71287e70c ("zink: correct sparse bo mem_type_idx placement")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27414>
(cherry picked from commit 3b025d6b42)
2024-02-25 14:09:25 +00:00
Mike Blumenkrantz
1933436ada zink: prune dmabuf export tracking when adding resource binds
this avoids invalid access for the stack resource in add_resource_bind()
when adding a new bind to an exportable resource

cc: mesa-stable

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27395>
(cherry picked from commit 7b7a581a52)
2024-02-25 14:08:48 +00:00
Yiwei Zhang
3ba68813f2 venus: fix the cmd stride used for qfb recording
Not a real issue since the dispatchable handle size is the same.

Fixes: d2a626787e ("venus: track/recycle appended query feedback cmds")
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27649>
(cherry picked from commit 55224006b7)
2024-02-25 13:54:25 +00:00
Juston Li
be7a46c3c5 venus: fix image reqs cache store locking
lock the entire scope when storing image reqs cache entry to prevent
entry being added between the split locks.

Fixes: b51ff22fbe ("venus: support caching image memory requirements")

Signed-off-by: Juston Li <justonli@google.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27401>
(cherry picked from commit f3de6f17c1)
2024-02-25 13:54:25 +00:00
Yiwei Zhang
000135abe1 venus: force async pipeline create on threads creating descriptor pools
This works around some Unity engine behaivor with ANGLE-on-Venus, when
cmd pools are created on main thread once while the render thread only
does descriptor pool creation for set allocations during recording time.

This change also explicitly forces async pipeline create for threads
creating the device instead of implicitly via feedback cmd pool create.
This ensures intended behavior when feedback is disabled.

Fixes: d17ddcc847 ("venus: dispatch background shader tasks to secondary ring")
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27347>
(cherry picked from commit 1718980e85)
2024-02-25 13:54:25 +00:00
Eric Engestrom
c1b9d9118f .pick_status.json: Update to 423add61e2 2024-02-25 11:40:30 +00:00
Jordan Justen
edf03628d7 intel/dev: Add 2 additional ADL-N PCI ids
Ref: https://patchwork.freedesktop.org/patch/578271/?series=129901&rev=1
Ref: bspec 68397
Cc: mesa-stable
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27625>
(cherry picked from commit 62b72b6be9)
2024-02-25 11:33:41 +00:00
Eric Engestrom
f32c100fcc .pick_status.json: Mark 3b927567ac as denominated 2024-02-25 11:33:41 +00:00
Eric Engestrom
eb72574c8d .pick_status.json: Update to c12300844d 2024-02-25 11:33:41 +00:00
Martin Roukala (né Peres)
ef8f54de13 radv/ci: switch vkcts-polaris10 from mupuf to KWS' farm
The DUT that currently hosts the Polaris10 will be used for NVK
testing, so let's move the polaris10 job to another farm.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27652>
(cherry picked from commit dce2069054)
2024-02-25 11:33:41 +00:00
Eric Engestrom
f43c8e6694 .pick_status.json: Update to dce2069054 2024-02-25 11:33:41 +00:00
thfrwn
e886ee02ed mesa: fix off-by-one for newblock allocation in dlist_alloc
Cc: mesa-stable
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27556>
(cherry picked from commit 460d2c46a9)
2024-02-25 11:33:41 +00:00
Samuel Pitoiset
4c434ac992 radv: fix RGP barrier reason for RP barriers inserted by the runtime
Without that, RGP is confused and it's reporting CmdPipelineBarrier()
instead of CmdRenderPassSync().

Cc: mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27546>
(cherry picked from commit b58de424f4)
2024-02-25 11:33:40 +00:00
Lionel Landwerlin
be6a909520 vulkan/runtime: add helper to query attachment layout
The runtime is turning GENERAL layouts into FEEDBACK_LOOP ones when it
detects feedback loops in a render pass. This is breaking drivers that
would like to use a different HW layout for those 2 layouts because if
the application inserts barrier in the render pass, the barriers the
driver sees are inconsistent.

This could lead to barrier of this type :
   - GENERAL       -> FEEDBACK_LOOP (runtime)
   - GENERAL       -> GENERAL       (app)
   - FEEDBACK_LOOP -> GENERAL       (runtime)

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Ivan Briano <ivan.briano@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23523>
(cherry picked from commit 76cf391255)
2024-02-25 11:33:40 +00:00
Eric Engestrom
f41b8b1323 .pick_status.json: Update to c6e855b64b 2024-02-25 11:33:40 +00:00
Daniel Schürmann
5c0de4ed9b spirv: Fix SpvOpExpectKHR
This instruction behaves the same as *OpCopyObject* by making a copy of _Value_.

Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com>
(cherry picked from commit 5df7be8017)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27740>
2024-02-25 10:11:58 +00:00
Jesse Natalie
9d42171013 dzn: Don't set view instancing mask until after the PSO
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27286>
(cherry picked from commit fa1c9618f9)
2024-02-24 18:27:57 +00:00
Eric Engestrom
19d0f2708f [24.0-only change] ci: increase the kernel+rootfs builds timeout to 2h
Overkill but better than being prevented from accepting backport MRs
because Collabora deleted these files from the S3 bucket *yet again*...
2024-02-24 18:27:57 +00:00
Eric Engestrom
92cb6d5938 docs: add sha256sum for 24.0.1 2024-02-14 21:05:06 +00:00
Eric Engestrom
3e361635b8 VERSION: bump for 24.0.1 2024-02-14 20:55:00 +00:00
Eric Engestrom
68a46fd846 docs: add release notes for 24.0.1 2024-02-14 20:54:39 +00:00
Friedrich Vock
9b4abb2ed0 radv,driconf: Enable active AS leaf workaround for Jedi Survivor
Another game that can't get AS updates right.

Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27590>
(cherry picked from commit afab80bdb6)
2024-02-14 17:26:50 +00:00
Lionel Landwerlin
e4c2cbeb33 anv: fix buffer marker cache flush issues on MTL
For some yet unknown reason the CS L3 coherency setting is different
on MTL than DG2.

Fixes issues in tests from the subgroup :

  dEQP-VK.api.buffer_marker.*

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: c8e122a738 ("anv: Implement rudimentary VK_AMD_buffer_marker support")
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27613>
(cherry picked from commit e54638ddf5)
2024-02-14 17:05:00 +00:00
Mike Blumenkrantz
8d18be6357 nir/lower_io: fix handling for compact arrays with indirect derefs
this logic relies on constant indexing for compact arrays, but this is
frequently not the case for compact array builtins (e.g., gl_TessLevelOuter).
the usual strategy of lowering to temps isn't viable in TCS, which means
io lowering has to be able to handle indirect access to these builtins
without crashing

cc: mesa-stable

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27534>
(cherry picked from commit 9e2c7314f2)
2024-02-14 17:04:59 +00:00
José Roberto de Souza
c1afe86299 intel: Fix intel_get_mesh_urb_config()
The round up in 'next_address_8kb = DIV_ROUND_UP(push_constant_kb, 8)'
was not decreasing the amount of URB available for Mesh and Task, what
could cause an over allocation of URB.

There was also no minimum entries enforcement for Mesh and Task, what
could cause 0 r.mesh_entries to be set in a case where tue_size_dw is
90% > than mue_size_dw. Same for r.task_entries when Task is enabled.

Also adding a few more asserts to help debug.

This fixes at least dEQP-VK.mesh_shader.ext.properties.mesh_payload_size
in LNL but it has potential to fixes other Mesh tests as well.

Cc: mesa-stable
Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27555>
(cherry picked from commit d0fba810b3)
2024-02-14 17:04:53 +00:00
Georg Lehmann
003ba21b5f aco/gfx11+: limit hard clauses to 32 instructions
https://github.com/llvm/llvm-project/pull/81287

Foz-DB Navi31:
Totals from 406 (0.52% of 78112) affected shaders:
Instrs: 585342 -> 585750 (+0.07%)
CodeSize: 3077856 -> 3079456 (+0.05%); split: -0.00%, +0.05%
Latency: 3263165 -> 3263326 (+0.00%); split: -0.00%, +0.01%
InvThroughput: 664092 -> 664114 (+0.00%); split: -0.00%, +0.00%
VClause: 11143 -> 11537 (+3.54%)
SClause: 11878 -> 11884 (+0.05%)
Copies: 39807 -> 39815 (+0.02%)

Cc: mesa-stable
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27569>
(cherry picked from commit 6121497228)
2024-02-14 17:04:51 +00:00
Karol Herbst
73c637fcfe rusticl/mem: support GL_TEXTURE_BUFFER
Fixes: 2645003bdc ("rusticl: Create CL mem objects from GL")
Signed-off-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27385>
(cherry picked from commit 3f7b344930)
2024-02-14 17:04:48 +00:00
Karol Herbst
277c905b41 rusticl/mem: properly handle buffers
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10505
Fixes: 2645003bdc ("rusticl: Create CL mem objects from GL")
Signed-off-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27385>
(cherry picked from commit 117291332c)
2024-02-14 17:04:47 +00:00
Karol Herbst
c206849335 nir/lower_cl_images: record image_buffers and msaa_images
Cc: mesa-stable
Signed-off-by: Karol Herbst <kherbst@redhat.com>
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27385>
(cherry picked from commit 727cddd338)
2024-02-14 17:04:46 +00:00
Lionel Landwerlin
a2a141dffa anv: fix incorrect flushing on shader query copy
When doing query result copies in 3D mode, we're flushing the render
target cache, but the shader writes go through the dataport.

Fixes flakes/fails in piglit with shader query copies forced with Zink :

  $ query_copy_with_shader_threshold=0 ./bin/arb_query_buffer_object-coherency -auto -fbo

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: b3b12c2c27 ("anv: enable CmdCopyQueryPoolResults to use shader for copies")
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26797>
(cherry picked from commit c53a4711cb)
2024-02-14 17:04:41 +00:00
Lionel Landwerlin
48608401a3 intel/fs: rerun divergence prior to lowering non-uniform interpolate at sample
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: 74a40cc4b6 ("intel/fs: move lower of non-uniform at_sample barycentric to NIR")
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26797>
(cherry picked from commit 2437556d83)
2024-02-14 17:04:39 +00:00
Lepton Wu
9b2d95ab13 llvmpipe: Set "+64bit" for X86_64
Without this, on some "buggy" qemu cpu setup, LLVM could crash
if LLVM detects the wrong CPU type.

Fixes: f92cadccc6 ("llvmpipe: Always using util_get_cpu_caps to get cpu caps for llvm on x86")

Signed-off-by: Lepton Wu <lepton@chromium.org>
Reviewed-by: Yonggang Luo <luoyonggang@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27539>
(cherry picked from commit 04d26ceb0a)
2024-02-14 17:04:37 +00:00
David Rosca
73b955965b radeonsi/vcn: Don't reinitialize encode session on bitrate/fps change
When bitrate or fps change is detected, only update rate control
parameters instead of completely reinitializing encode session.

This fixes an issue where if application changed bitrate or fps often,
the output bitrate would significantly overshoot the target bitrate in some
cases. In other cases, the output bitrate would be extremely low instead.

Cc: mesa-stable

Reviewed-by: Ruijing Dong <ruijing.dong@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27548>
(cherry picked from commit 8d44a11508)
2024-02-14 17:04:18 +00:00
Lionel Landwerlin
23442c825b anv: don't unmap AUX ranges at BO delete
It is possible to free memory backing images before images are
destroyed :

   VkFreeMemory:

   "Memory can be freed whilst still bound to resources, but those
    resources must not be used afterwards."

The spec leaves us the option to keep a reference on the associated
memory and free it only when all the bound resources have been
destroyed. Here we choose to free memory immediately.

One particular test in the CTS
(dEQP-VK.synchronization.internally_synchronized_objects.pipeline_cache_graphics)
does the following :

   imgA = vkCreateImage()
   imgB = vkCreateImage()
   memA = vkAllocateMemory()
   vkBindImageMemory(imgA, memA) # Aux mapping with ref count = 1
   vkFreeMemory(memA)            # Aux mapping removed, ref count = 0
   memB = vkAllocateMemory()     # Same address as memA
   vkBindImageMemory(imgB, memB)
   vkDestroyImage(imgA)	         # Removes the mapping of imgB-memB

   vkQueueSubmit()               # hang with pagefault in AUX-TT

The solution implemented in this change is to not do anything AUX-TT
related in vkFreeMemory(). This soluation has some consequences,
because a virtual memory address range freed and reallocated cannot be
rebound in the AUX-TT until all the associated resources have released
their AUX-TT mapping (to bring back the AUX-TT refcount of the range
to 0). This should still be better than keeping the memory allocated
through refcounting of the anv_bo.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: 7b87e1afbc ("anv: track & unbind image aux-tt binding")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10528
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27566>
(cherry picked from commit e0b4dfbbda)
2024-02-14 17:04:18 +00:00
Timothy Arceri
d1b79ef57b Revert "ci: Enable GALLIUM_DUMP_CPU=true only in the clang job"
Rob worded it well in 9e8450b65c.

"We don't want util_cpu to vomit cpu caps all over the test output."

This reverts commit c6979d97e4.

Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27564>
(cherry picked from commit 62fa5c8d0f)
2024-02-14 17:04:18 +00:00
M Henning
e7c7b4e2f1 nvk: Don't clobber vb0 after repeated blits
If a program does two blits in a row, we internally do a sequence of
operations that involves binding vb0.

Previously, the vb0 state after each operation would look something like:

| operation                    | cmd->state.gfx.vb0 | hardware  | save->vb0 |
| ---------------------------- | ------------------ | --------- | --------- |
|                              | user               | user      |           |
| nvk_meta_begin()             | user               | user      | user      |
| BindVertexBuffers(internal0) | internal0          | internal0 | user      |
| nvk_meta_end()               | internal0          | user      |           |
| nvk_meta_begin()             | internal0          | user      | internal0 |
| BindVertexBuffers(internal1) | internal1          | internal1 | internal0 |
| nvk_meta_end()               | internal1          | internal0 |           |

That is, CmdBindVertexBuffers() would update cmd->state.gfx.vb0, but
nvk_meta_end() would not. This meant that the last operation would bind a
driver-internal buffer instead of the original value that the user set.

This change fixes the issue by tracking cmd->state.gfx.vb0 in
nvk_cmd_bind_vertex_buffer(), which both CmdBindVertexBuffers() and
nvk_meta_end() call into.

After this commit, the state looks like:

| operation                    | cmd->state.gfx.vb0 | hardware  | save->vb0 |
| ---------------------------- | ------------------ | --------- | --------- |
|                              | user               | user      |           |
| nvk_meta_begin()             | user               | user      | user      |
| BindVertexBuffers(internal0) | internal0          | internal0 | user      |
| nvk_meta_end()               | user               | user      |           |
| nvk_meta_begin()             | user               | user      | user      |
| BindVertexBuffers(internal1) | internal1          | internal1 | user      |
| nvk_meta_end()               | user               | user      |           |

To test this commit, build gtk4 commit 87b66de1, run:

    GSK_RENDERER=vulkan gtk4-demo --run=image_scaling

then select trilinear filtering in the dropdown and check for rendering
artifacts.

Fixes: e1c66501 ("nvk: Use vk_meta for CmdClearAttachments")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27559>
(cherry picked from commit d98ff2cc4a)
2024-02-14 17:01:50 +00:00
Georg Lehmann
e8c13d5b9d aco: don't remove branches that skip v_writelane_b32
Cc: mesa-stable

Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27537>
(cherry picked from commit cd6d9c5918)
2024-02-14 17:01:49 +00:00
Georg Lehmann
ddb4aff2c2 aco/gfx11+: disable v_pk_fmac_f16_dpp
Public docs are apparently wrong: https://github.com/llvm/llvm-project/pull/79598#issuecomment-1933988048

Cc: mesa-stable

Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27533>
(cherry picked from commit e927c5004f)
2024-02-14 17:01:47 +00:00
Mark Janes
963ad46563 hasvk: add missing linker arguments
vulkan_icd_link_args was added for other vulkan drivers but not hasvk.
Without it, statically linked json-c symbols are wrongly exported.

Ref: 2b1e9b0fd6 ("anv: add linker script to fix android symbols")
Fixes: 78578a6ddb ("vk: move radv's linker symbols scripts for use in all drivers")
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27540>
(cherry picked from commit fb7240bef9)
2024-02-14 16:59:53 +00:00
Mike Blumenkrantz
8667ddc209 mesa: plumb errors through to texture allocation
the spec allows this and tests like spec@arb_texture_multisample@arb_texture_multisample-dsa-texelfetch
expect it

cc: mesa-stable

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25931>
(cherry picked from commit fab5c706fe)
2024-02-14 16:59:44 +00:00
Danylo Piliaiev
46c290d94b tu: Do not print anything on systems without Adreno GPU
Output debug info only when explicitly requested with
TU_DEBUG=startup otherwise we should be silent.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10213
Fixes: a669147689
("tu: Always print startup failure messages")

Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27527>
(cherry picked from commit c8cc7c5c18)
2024-02-14 16:59:43 +00:00
Boris Brezillon
45c761f2c2 pan/va: Add missing valhall_enums dep to valhall_disasm
valhall_disasm compilation fails if the valhall_enums.h has
not be generated.

Fixes: 619566dea1 ("pan/va: Generate header containing enums")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10553
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Dylan Baker <dylan@pnwbakers.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27524>
(cherry picked from commit 49069a1243)
2024-02-14 16:59:43 +00:00
Boris Brezillon
41b9381046 panfrost: Pad compute jobs with zeros on v4
Apparently, Midgard GPUs don't like when the last 2 words of
compute/vertex jobs contain garbage. Extend the compute job definition
to include a padding section thus aligning the job on a 64-byte boundary,
and add the according pan_section_pack() calls where we have a
compute job filled.

Fixes: b76420be1f ("panfrost: Split command stream descriptor definitions per-gen")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10558
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Acked-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Tested-by: Anton Bambura <jenneron@postmarketos.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27515>
(cherry picked from commit 5b1b76e9cd)
2024-02-14 16:59:42 +00:00
Sviatoslav Peleshko
d329b14698 driconf: Apply dual color blending workaround to Dying Light
The game uses shader with `location=0` and `location=1` outputs where
it wants dual source blending and should've used `location=0, index=0`
and `location=0, index=1`.

Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10413
Signed-off-by: Sviatoslav Peleshko <sviatoslav.peleshko@globallogic.com>
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27509>
(cherry picked from commit 0a1c8779e8)
2024-02-14 16:59:41 +00:00
Kenneth Graunke
25b67841a1 driconf: Advertise GL_EXT_shader_image_load_store on iris for SVP13
SPECviewperf creo-03 needs GL_EXT_shader_image_load_store in order for
its shaders to compile but we don't support a few corner cases that
didn't make it into the ARB variant.  It seems to run fine with an
override, so just do that for now.

Cc: mesa-stable
Acked-by: Tapani Pälli <tapani.palli@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27429>
(cherry picked from commit 24d3c83212)
2024-02-14 16:59:40 +00:00
Rob Clark
7d8c7ccc0d freedreno: Fix MSAA z/s layout in GMEM
A bit surprised that this didn't show up in any piglit or deqp.

Fixes: cf0c7258ee ("freedreno/a5xx: MSAA")
Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27508>
(cherry picked from commit c3062e3402)
2024-02-14 16:59:37 +00:00
Pavel Ondračka
feacc7e5a3 r300: fix vs output register indexing
Vertex shaders were writing TEXCOORDs before GENERICS, however
fragment shaders were reading it the opposite way, so this caused
problems for shaders that used both TEXCOORD and GENERIC varyings.

Fixes: d4b8e8a481
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10489
Signed-off-by: Pavel Ondračka <pavel.ondracka@gmail.com>
Reviewed-by: Filip Gawin <filip.gawin@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27469>
(cherry picked from commit 0ac6801970)
2024-02-14 16:09:59 +00:00
José Roberto de Souza
7d78a9b36b iris: Fix return of iris_wait_syncobj()
iris_wait_syncobj() succeed if IOCTL return is 0 otherwise it failled.

Cc: mesa-stable
Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27500>
(cherry picked from commit 138303fb9d)
2024-02-14 16:09:59 +00:00
Connor Abbott
6e96c0df97 ir3/ra: Fix bug with collect source handling
It can be the case that a collect and one of its sources are assigned
to non-overlapping parts of the same merge set, for example:

	ssa_1 = ...
	ssa_2 = ...
	ssa_3 = ...

	ssa_4 = collect ssa_1, ssa_2 (kill), ssa_3
	... = ssa_4 (kill)

	ssa_5 = collect ssa_1, ssa_3

	... = ssa_1 (kill)
	... = ssa_3 (kill)
	... = ssa_5 (kill)

If we merge the first collect first, we get a merge set:

	ssa_1 (offset 0)
	ssa_2 (offset 2)
	ssa_3 (offset 4)
	ssa_4 (offset 0)

Now, we decide to merge ssa_1 and ssa_5:

	ssa_1 (offset 0)
	ssa_2 (offset 2)
	ssa_3 (offset 4)
	ssa_4 (offset 0)
	ssa_5 (offset 0)

ssa_3 cannot become a child of ssa_5 in the interval tree, just like a
source not in the same merge set, so we should not remove it and then
reinsert it assuming that RA will make it a child of ssa_5.

This fixes an RA validation error in Farming Simulater.

Fixes: 0ffcb19 ("ir3: Rewrite register allocation")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27497>
(cherry picked from commit aeed5fd98d)
2024-02-14 16:09:59 +00:00
Corentin Noël
eac978e36d zink: Only call reapply_color_write if EXT_color_write_enable is available
Allows to use zink with drivers that do not expose this extension.

Backport-to: 23.3 24.0
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Signed-off-by: Corentin Noël <corentin.noel@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27516>
(cherry picked from commit 72886cbefa)
2024-02-14 16:09:59 +00:00
Eric Engestrom
8bb8f2ef2c .pick_status.json: Update to 90eae30bcb 2024-02-14 15:55:45 +00:00
David Rosca
c3ba03903f frontends/va: Fix updating AV1 rate control parameters
Follow the same logic as H264.

Fixes: 5edbecb856 ("frontends/va: adding va av1 encoding functions")

Reviewed-by: Ruijing Dong <ruijing.dong@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27481>
(cherry picked from commit fa8e0ba3f7)
2024-02-06 22:09:28 +00:00
David Heidelberg
cb6f5b00e9 meson: upgrade zlib wrap to 1.3.1
`$ meson wrap update zlib`

Cc: mesa-stable
Reviewed-by: Dylan Baker <dylan@pnwbakers.com>
Acked-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27311>
(cherry picked from commit 56f31d1847)
2024-02-06 22:09:27 +00:00
Rhys Perry
223c8cd0d3 aco: fix >8 byte linear vgpr copies
No fossil-db changes.

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27436>
(cherry picked from commit 174e37afb9)
2024-02-06 22:09:26 +00:00
Sviatoslav Peleshko
71c1740914 anv,driconf: Add sampler coordinate precision workaround for AoE 4
AoE4 samples texture on the edge between texels, which can cause
unexpected texel to be returned, and cause misrenderings. This workaround
enables coordinate rounding even in NEAREST mode, which fixes the problem.

Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/9864
Signed-off-by: Sviatoslav Peleshko <sviatoslav.peleshko@globallogic.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27337>
(cherry picked from commit 0a44f6319e)
2024-02-06 22:09:25 +00:00
Tapani Pälli
7bca150d5a anv: flush tile cache independent of format with HIZ-CCS flush
Cc: mesa-stable
Fixes: ba87656079 ("anv: implement undocumented tile cache flush requirements")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10420
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10530
Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Tested-by: Mark Janes <markjanes@swizzler.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27440>
(cherry picked from commit 5178ad761c)
2024-02-06 22:09:18 +00:00
Christian Duerr
7a27b2afba panfrost: Fix dual-source blending
If dual blending is enabled, only 1 output is supported. Multiple
outputs confuse the write combining pass in this case, leading to
incorrect output and/or an assert failure in emit_fragment_store.

The fix is straightforward, just skip the speculative emitting of
multiple outputs in the case where dual source blending is enabled.

This also adds an extra sanity check in `pan_nir_lower_zs_store` to
check for only one blend store being present.

Fixes: c65a9be421 ("panfrost: Preprocess shaders at CSO create time")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/9487
Co-Authored-By: Eric R. Smith <eric.smith@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26474>
(cherry picked from commit 49c1b404e5)
2024-02-06 22:09:17 +00:00
Dave Airlie
acdfcc4243 radv: don't submit 0 length on UVD either.
The kernel checks for UVD msgs and if there aren't any gets upset,
so don't submit 0 length on UVD rings either to avoid that.

Cc: mesa-stable
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27186>
(cherry picked from commit 47c725b53e)
2024-02-06 22:09:16 +00:00
Dave Airlie
c47dbea2a0 radv/uvd: uvd kernel checks for full dpb allocation.
The CTS image allocation sometimes doesn't try to allocate a complete
DPB, but the amdgpu kernel module checks for this, so always make
the DPB max sized on uvd instances.

Fixes part of video decode on Fiji/Polaris

Cc: mesa-stable
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27186>
(cherry picked from commit df9bc11589)
2024-02-06 22:09:16 +00:00
Dave Airlie
4c25e80e6c radv: init decoder ip block earlier.
This makes the queue decisions later correct.

Cc: mesa-stable
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27186>
(cherry picked from commit bba36df84d)
2024-02-06 22:09:15 +00:00
Dave Airlie
3ee587ed56 radv: fix correct padding on uvd
Fixes: 8a29291dbe ("radv/video: add h264 support for uvd")

Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27186>
(cherry picked from commit 6065671a7f)
2024-02-06 22:09:14 +00:00
Samuel Pitoiset
d24a93dbec radv/sqtt: fix describing queue submits for RGP
The submit_sub_index field is used by RGP to determine the number of
submits. Previously, it was incorrectly reporting the same number of
submits than command buffers.

Fixes: 88cbe32048 ("radv: add support for RGP queue events")
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27439>
(cherry picked from commit c6286e39ec)
2024-02-06 22:09:13 +00:00
Samuel Pitoiset
dbf730b14d radv: add a workaround for mipmaps and minLOD on GFX6-8
This is spurious and it looks like we should be able to uses non-zero
base level everytime on GFX6-8 but it doesn't always work.

This fixes the remaining CTS failures on GFX6-8.

Cc: mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26290>
(cherry picked from commit 9698d5f0fd)
2024-02-06 22:09:12 +00:00
Eric Engestrom
b9554aead1 panfrost: fix UB caused by shifting signed int too far
Fixes: 13d7ca1300 ("pan/va: Optimize add with imm to ADD_IMM")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27437>
(cherry picked from commit 6250885640)
2024-02-06 22:09:11 +00:00
Konstantin Seurer
3f5b57c696 radv/sqtt: Handle ray tracing pipelines with no traversal shader
Fixes: 0f87d40 ("radv/rt: Skip compiling a traversal shader")
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27383>
(cherry picked from commit bb14ee53a5)
2024-02-06 22:07:48 +00:00
Blisto
8c5fafef1d driconf: set vk_x11_strict_image_count for Atlas Fallen Vulkan
Prevents crash with vsync turned off on xwayland.

Cc: mesa-stable
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27122>
(cherry picked from commit 3bc6f95e3d)
2024-02-06 22:07:47 +00:00
Timothy Arceri
f45c9a38db glsl: don't tree graft globals
As per this optimisations description:

"Takes assignments to variables that are dereferenced only
once and pastes the RHS expression into where the variables
dereferenced."

However the optimisation is run at compile time before multiple
shaders from the same stage could have been pasted together.
So this optimisation can incorrectly assume a global is only
referenced once since it cannot see the other pieces of the
shader stage until link time.

Here we skip the optimisation if the variable is a global. We
could change it to only run at link time however this
optimisation is only run at link time if we are being forced
to use GLSL IR to inline a function that glsl to nir cannot
handle and this will also be removed in a future patchset.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10482
Fixes: d75a36a9ee ("glsl: remove do_copy_propagation_elements() optimisation pass")

Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27351>
(cherry picked from commit bc0178af57)
2024-02-06 22:06:13 +00:00
Pierre-Eric Pelloux-Prayer
4ce8d2d8b3 egl/drm: flush before calling get_back_bo
Similar to what was done for Wayland in 58f90fd03f:
the glthread unmarhsal thread needs to be idle to avoid
concurrent calls to get_back_bo.

Also the existing code flushed after setting dri2_surf->back
to NULL so a new back buffer was always allocated by the
glthread flush:

|---------------> dri2_drm_swap_buffers
| get_back_bo (back=0x55eb93c6c488) >       # First get_back_bo call
| get_back_bo (back=0x55eb93c6c488 age: 0)<
|                                           # dri2_surf->back = NULL
|-----> FLUSH
| get_back_bo (back=nil) >                  # Another get_back_bo call
| get_back_bo (back=0x55eb93c6c4c8 age: 3)<
|-----< FLUSH
|---------------< dri2_drm_swap_buffers

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10437
Cc: mesa-stable
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27143>
(cherry picked from commit 6f47e87a60)
2024-02-06 22:06:12 +00:00
Friedrich Vock
9f0048a73f radv/rt: Write inactive node data in ALWAYS_ACTIVE workaround
Fixes: a9831caa ("radv/rt: Add workaround to make leaves always active")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27340>
(cherry picked from commit f66055a6a6)
2024-02-06 22:06:10 +00:00
Dave Airlie
60d67f1820 zink: use sparse residency for buffers.
GL ARB_sparse_buffer allows unbound regions in buffers.
VK sparseBinding insists all regions must be bound before first use.

This means we need to use sparseResidencyBuffer to back GL
sparse buffers to get the same semantics.

Fixes GL and piglit sparse buffer tests on zink/nvk.

Fixes: c90246b682 ("zink: implement sparse buffer creation/mapping")
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27404>
(cherry picked from commit ff50e80574)
2024-02-06 22:06:08 +00:00
Eric Engestrom
22bc2a897c vk/util: fix 'beta' check for physical device properties
`--beta` is a string, not a bool (although really it should be, but that's a bigger change).

Fixes: 083793a39d ("vulkan: Allow beta extensions for physical device properties")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27394>
(cherry picked from commit c35247ab20)
2024-02-06 22:05:54 +00:00
Eric Engestrom
8c6de60c54 vk/util: fix 'beta' check for physical device features
`--beta` is a string, not a bool (although really it should be, but that's a bigger change).

Fixes: a7141a6f8a ("vulkan: Allow beta extensions for physical device features")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27394>
(cherry picked from commit 794ec7f0a1)
2024-02-06 22:05:51 +00:00
Eric Engestrom
e79ec6621b .pick_status.json: Update to fa8e0ba3f7 2024-02-06 22:05:41 +00:00
Eric Engestrom
ee25160ed5 docs: add sha256sum for 24.0.0 2024-02-01 00:18:28 +00:00
Eric Engestrom
150a5d8298 docs: add release notes for 24.0.0 2024-02-01 00:18:28 +00:00
Eric Engestrom
03ecd8b0a5 VERSION: bump for 24.0.0 2024-01-31 23:29:42 +00:00
Daniel Schürmann
74a0eb9cfa aco/insert_exec_mask: Fix unconditional demote at top-level control flow.
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27362>
(cherry picked from commit c309d20172)
2024-01-31 22:21:24 +00:00
Antoine Coutant
ec84f5a1e2 clc: retrieve libclang path at runtime.
LLVM_LIB_DIR is a variable used for runtime compilations.
When cross compiling, LLVM_LIB_DIR must be set to the
libclang path on the target. So, this path should not
be retrieved during compilation but at runtime.

dladdr uses an address to search for a loaded library.
If a library is found, it returns information about it.
The path to the libclang library can therefore be
retrieved using one of its functions. This is useful
because we don't know the name of the libclang library
(libclang.so.X or libclang-cpp.so.X)

v2 (Karol): use clang::CompilerInvocation::CreateFromArgs for dladdr
v3 (Karol): follow symlinks to fix errors on debian

Fixes: e22491c832 ("clc: fetch clang resource dir at runtime")
Signed-off-by: Antoine Coutant <antoine.coutant@smile.fr>
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Reviewed-by (v1): Jesse Natalie <jenatali@microsoft.com>

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25568>
(cherry picked from commit 445aacb421)
2024-01-31 22:21:24 +00:00
Karol Herbst
63dc250b69 clc: force fPIC for every user when using shared LLVM
As we want to start using `dladdr`, this is needed to prevent `dladdr`
returning information of the wrong file.

Fixes tag as it's required by the actual fix.

Signed-off-by: Karol Herbst <kherbst@redhat.com>
Fixes: e22491c832 ("clc: fetch clang resource dir at runtime")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25568>
(cherry picked from commit 8efd11fce9)
2024-01-31 22:21:24 +00:00
Iago Toral Quiroga
a3a927a1cd broadcom/compiler: be more careful with unifa in non-uniform control flow
If the lane from which the hardware writes the unifa address
is disabled, then we may end up with a bogus address and invalid
memory accesses from follow-up ldunifa.

Instead of always disabling unifa loads in non-uniform control
flow we can try to see if the address is prouced from a nir
register (which is the only case where we do conditional writes
under non-uniform control flow in ntq_store_def), and only
disable it in that case.

When enabling subgroups for graphics pipelines, this fixes a
GMP violation in the simulator with the following test
(which has non-uniform control flow writing unifa with lane 0
disabled, which is the lane from which the unifa takes the
address):
dEQP-VK.subgroups.ballot_broadcast.graphics.subgroupbroadcastfirst_int

Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27211>
(cherry picked from commit 5b269814fc)
2024-01-31 22:21:24 +00:00
Iago Toral Quiroga
f7c73de1c2 broadcom/compiler: fix incorrect flags update for subgroup elect
c->execute is 0 (not the block index) for lanes currently active
under non-uniform control flow.

Also this simplifies a bit the instructions we emit for flag
generation, both for uniform and non-uniform control flow.

Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27211>
(cherry picked from commit 7bdc8898b1)
2024-01-31 22:21:24 +00:00
Iago Toral Quiroga
a085877c56 broadcom/compiler: fix incorrect flags setup in non-uniform if path
If the ELSE block is cheap then we don't emit the branch instruction
but we still want to generate the flags, since these are setting
the flags for the THEN block too.

Fixes: e401add741 ("broadcom/compiler: skip jumps in non-uniform if/then when block cost is small")
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27211>
(cherry picked from commit 29d4924e5e)
2024-01-31 22:21:24 +00:00
Hyunjun Ko
438a064a9c anv/video: fix out-of-bounds read
Since STD_VIDEO_H265_CHROMA_QP_OFFSET_TILE_COLS_LIST_SIZE is 19.

Fixes: 8d519eb5 ("anv: add initial video decode support for h265")
Closes: mesa/mesa#10529

Signed-off-by: Hyunjun Ko <zzoon@igalia.com>
Acked-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27373>
(cherry picked from commit d0d2cf549b)
2024-01-31 22:21:23 +00:00
Mike Blumenkrantz
627a6d792a zink: fix descriptor buffer unmaps on screen destroy
descriptor buffer uses mapped buffers. mapping/unmapping buffers
uses a ctx in the function params, but at this time there is no ctx.
since the ctx is not actually used for unmapping descriptor buffers,
this can instead use a special buffer unmap function to avoid invalid access

Fixes: b06f6e00fb ("zink: fix heap-use-after-free on batch_state with sub-allocated pipe_resources")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27344>
(cherry picked from commit 0a97d1ebfa)
2024-01-31 22:21:23 +00:00
Mike Blumenkrantz
098fb7465d zink: always map descriptor buffers as COHERENT
this is already implied since the buffers must be BAR-allocated,
but it ensures the context isn't accessed during unmap

Fixes: b06f6e00fb ("zink: fix heap-use-after-free on batch_state with sub-allocated pipe_resources")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27344>
(cherry picked from commit c900cca96c)
2024-01-31 22:21:23 +00:00
Gert Wollny
b728809a02 nir/builder: Fix compilation with gcc-13 when tsan is enabled
../src/compiler/nir/nir_builder.h: In function ‘nir_build_deref_follower’:
../src/compiler/nir/nir_builder.h:1607:1: error: control reaches end of non-void function [-Werror=return-type]
 1607 | }

Fixes: 4a4e175738
    nir: Support deref instructions in lower_var_copies

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27345>
(cherry picked from commit 0ab3b3c641)
2024-01-31 22:21:23 +00:00
Gert Wollny
cb7fe98f3f nir/lower_int64: Fix compilation with gcc-13 and tsan enabled
../src/compiler/nir/nir_lower_int64.c: In function ‘lower_int64_intrinsic’:
../src/compiler/nir/nir_lower_int64.c:1347:1: error: control reaches end of non-void function [-Werror=return-type]
1347 | }

Fixes: bf7a114246
   nir/lower_int64: Add lowering for some 64-bit subgroup ops

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27345>
(cherry picked from commit 80a1b91601)
2024-01-31 22:21:23 +00:00
Gert Wollny
22a21925e4 radv: Fix compilation with gcc-13 and tsan enabled
../src/amd/vulkan/radv_sampler.c: In function ‘radv_tex_wrap’:
../src/amd/vulkan/radv_sampler.c:50:1: error: control reaches end of non-void function [-Werror=return-type]
   50 | }
      | ^
../src/amd/vulkan/radv_sampler.c: In function ‘radv_tex_compare’:
../src/amd/vulkan/radv_sampler.c:76:1: error: control reaches end of non-void function [-Werror=return-type]
   76 | }
      | ^

Fixes: 4de305cb8a
   radv: move sampler related code to radv_sampler.c

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27345>
(cherry picked from commit ca47138fb1)
2024-01-31 22:21:23 +00:00
Leo Liu
f135adb82a radeonsi: fix video processing path without VPE enabled
Fixes: 6b441ef6ab (amd, radeonsi: supports post processing entrypoint)
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10495
Cc: mesa-stable

Signed-off-by: Leo Liu <leo.liu@amd.com>
Reviewed-by: Ruijing Dong <ruijing.dong@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27339>
(cherry picked from commit 46f5a226d6)
2024-01-31 22:21:23 +00:00
Haihao Xiang
d2064c52fb anv: Fix typo in transition_color_buffer
Signed-off-by: Haihao Xiang <haihao.xiang@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27330>
(cherry picked from commit 29d18f3ca9)
2024-01-31 22:21:23 +00:00
Friedrich Vock
e5ef4678dd util/disk_cache: Use secure_getenv to determine cache directories
Reviewed-by: Eric Engestrom <eric@igalia.com>
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27381>
(cherry picked from commit 1c01fd0286)
2024-01-31 22:21:23 +00:00
Friedrich Vock
9ac7a658c4 radv: Use secure_getenv for RADV_THREAD_TRACE_TRIGGER
Reviewed-by: Eric Engestrom <eric@igalia.com>
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27381>
(cherry picked from commit e8b0e5cac9)
2024-01-31 22:21:23 +00:00
Friedrich Vock
566c2835dc radv: Use secure_getenv in radv_builtin_cache_path
Reviewed-by: Eric Engestrom <eric@igalia.com>
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27381>
(cherry picked from commit c01a07f2e4)
2024-01-31 22:21:23 +00:00
Friedrich Vock
6bcf386f5c mesa/main: Use secure_getenv for shader dumping
Reviewed-by: Eric Engestrom <eric@igalia.com>
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27381>
(cherry picked from commit 72f95a8364)
2024-01-31 22:21:23 +00:00
Friedrich Vock
cad3474793 vtn: Use secure_getenv for shader dumping
Reviewed-by: Eric Engestrom <eric@igalia.com>
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27381>
(cherry picked from commit 321e2cee53)
2024-01-31 22:21:23 +00:00
Friedrich Vock
bbe9e29fd4 aux/trace: Guard triggers behind __normal_user
Reviewed-by: Eric Engestrom <eric@igalia.com>
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27381>
(cherry picked from commit f3b892b74a)
2024-01-31 22:21:23 +00:00
Friedrich Vock
1aab9bc3f0 vulkan: Use secure_getenv for trigger files
Reviewed-by: Eric Engestrom <eric@igalia.com>
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27381>
(cherry picked from commit 7ea96ff75b)
2024-01-31 22:21:23 +00:00
Friedrich Vock
ec4d013e82 util: Provide a secure_getenv fallback for platforms without it
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27381>
(cherry picked from commit 8b209a6200)
2024-01-31 22:21:23 +00:00
Eric Engestrom
6924679fff util: check for setgid() as well in __normal_user()
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27378>
(cherry picked from commit 501f78fdba)
2024-01-31 21:22:09 +00:00
Eric Engestrom
780b69ebfc util: simplify logic in __normal_user()
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27378>
(cherry picked from commit afd4e633ee)
2024-01-31 21:22:08 +00:00
Eric Engestrom
26db70410e tree-wide: use __normal_user() everywhere instead of writing the check manually
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27346>
(cherry picked from commit 92c24191d4)
2024-01-31 21:22:04 +00:00
Eric Engestrom
d1b2c4152e util: rename __check_suid() to __normal_user()
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27346>
(cherry picked from commit 3e00558ef0)
2024-01-31 21:22:03 +00:00
Eric Engestrom
ce8c959664 .pick_status.json: Update to 4cd5b2b542 2024-01-31 21:21:49 +00:00
Lionel Landwerlin
e6990f0316 anv: fix transfer barriers flushes with compute queue
Transfer operation are implemented differently on the compute engine
and require a different kind of cache flush.

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

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27354>
2024-01-31 19:32:15 +00:00
Tapani Pälli
6cced86088 anv: move *bits_for_access_flags to genX_cmd_buffer
This makes is possible to use GFX_VER macros in these functions.

Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
(cherry picked from commit d0a3bac163)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27354>
2024-01-31 19:32:15 +00:00
Gert Wollny
ea8681f985 virgl: Use better reporting for mirror_clamp features
Fixes: 9efe50c83b
    virgl: report MIRROR_CLAMP features better

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27106>
(cherry picked from commit b9fea5ea6b)
2024-01-31 19:31:13 +00:00
Samuel Pitoiset
570faac1c1 radv: fix segfault when getting device vm fault info
pFaultInfo can be NULL.

Fixes: 8097becc7f ("radv: add initial VK_EXT_device_fault support")
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27292>
(cherry picked from commit c68f96878c)
2024-01-31 19:31:13 +00:00
Gert Wollny
a315353199 r600: lower dround_even also on hardware that supports fp64
Fixes: aed6a39c10
  glsl: Retire dround lowering.

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27329>
(cherry picked from commit 820859a6ab)
2024-01-31 19:31:13 +00:00
Sebastian Wick
4c62d39214 radeonsi: Destroy queues before the aux contexts
Otherwise the queue might access the already destroyed aux contexts

Signed-off-by: Sebastian Wick <sebastian.wick@redhat.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27300>
(cherry picked from commit c467a87e06)
2024-01-31 19:31:13 +00:00
Lionel Landwerlin
5f7921620e anv: retain ccs image binding address
Memory can be free before images it is bound to. When unmapping the
CCS range in the AUX-TT, we cannot rely on the anv_bo::offset field
because the anv_bo might have been freed.

Just save the mapping address/size and use those values at unmapping
time.

Fixes an assert on CI with :

  dEQP-VK.synchronization.internally_synchronized_objects.pipeline_cache_graphics

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: e519e06f4b ("anv: add missing alignment for AUX-TT mapping")
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27304>
(cherry picked from commit 9d31680e79)
2024-01-29 22:22:31 +00:00
Lionel Landwerlin
8be6eab836 anv: rename aux_tt image field
We'll add more to the sub-struct

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Jianxun Zhang <jianxun.zhang@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27304>
(cherry picked from commit eead86ad8e)
2024-01-29 22:22:25 +00:00
Lionel Landwerlin
66d3b00eaa anv: factor out aux-tt binding logic for future reuse
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Jianxun Zhang <jianxun.zhang@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27304>
(cherry picked from commit fdc2f0a52e)
2024-01-29 22:22:15 +00:00
Pierre-Eric Pelloux-Prayer
68e58263eb radeonsi: adjust flags for si_compute_shorten_ubyte_buffer
- no need to flush anything before as we're working on a clean
  buffer (SI_OP_SKIP_CACHE_INV_BEFORE)
- L2 must be flushed after the job to avoid rendering artifacts.
  Instead of setting it manually, use SI_OP_SYNC_AFTER +
  SI_COHERENCY_NONE.

Fixes: 1a99f50c7f ("radeonsi: use a compute shader to convert unsupported indices format")
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27095>
(cherry picked from commit cce5920025)
2024-01-29 22:07:53 +00:00
Pierre-Eric Pelloux-Prayer
88880bfc78 radeonsi: emit cache flushes before draw registers
This fixes #9807 but I don't understand why.

Emitting cache flushes before VGT_PRIMITIVE_TYPE is what makes
the problem go away but changing the order in si_draw() is clearer.

The only cases where sctx->flags is modified in si_emit_draw_registers
is handled using si_emit_cache_flush_direct so we can move cache
flushing up without any addtional conditionals.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/9807
Fixes: 1e4b539042 ("radeonsi: handle deferred cache flushes as a state (si_atom)")
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27095>
(cherry picked from commit 0e16da89fe)
2024-01-29 22:07:53 +00:00
Lionel Landwerlin
439aff7ff6 anv: add missing alignment for AUX-TT mapping
Buffers that are not dedicated can also be used for CCS mapped images,
so they need to be aligned to the AUX-TT requirements.

GTK+ is running into such case where it creates an image with a CCS
modifier. When requesting the alignment through
vkGetImageMemoryRequirements() the 64KB/1MB alignment is returned, but
the binding fails with an assert because the VkDeviceMemory has not
been aligned to the AUX-TT requirement and we cannot disable CCS since
the modifier requires it.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: 4cdd3178fb ("anv: Meet CCS alignment reqs with dedicated allocs")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10433
Reviewed-by: Jianxun Zhang <jianxun.zhang@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27258>
(cherry picked from commit e519e06f4b)
2024-01-29 22:07:52 +00:00
Louis-Francis Ratté-Boulianne
e7715e39a5 panfrost: Legalize before updating part of a AFBC-packed texture
When updating an AFBC-packed resource, we need to make sure it is
legalized before blitting the staging resource to it. We can't rely
on the blit to properly convert the resource as it will result in
blit recursion and a crash.

If the whole texture is updated however, there is no need to unpack
as the content can be discarded. Just create a new BO with the right
format.

Signed-off-by: Louis-Francis Ratté-Boulianne <lfrb@collabora.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Fixes: 33b48a5585 ("panfrost: Add debug flag to force packing of AFBC textures on upload")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27208>
(cherry picked from commit 1aa832e5f5)
2024-01-29 22:07:32 +00:00
Louis-Francis Ratté-Boulianne
97c0e12da3 panfrost: add can_discard flag to pan_legalize_afbc_format
There might be a more efficient path when legalizing a resource if
we don't need to worry about its content. For example, it doesn't
make sense to copy the resource content when converting the modifier
if the resource content is discarded anyway.

Signed-off-by: Louis-Francis Ratté-Boulianne <lfrb@collabora.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Fixes: 33b48a5585 ("panfrost: Add debug flag to force packing of AFBC textures on upload")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27208>
(cherry picked from commit ee77168d57)
2024-01-29 22:07:30 +00:00
Louis-Francis Ratté-Boulianne
dae3eb155a panfrost: add copy_resource flag to pan_resource_modifier_convert
When converting the modifier for a resource, it's not always
needed to blit the content as well. Creating a new resource with
the right format/modifier might be enough.

Signed-off-by: Louis-Francis Ratté-Boulianne <lfrb@collabora.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Fixes: 33b48a5585 ("panfrost: Add debug flag to force packing of AFBC textures on upload")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27208>
(cherry picked from commit 62ed14b386)
2024-01-29 22:07:29 +00:00
Louis-Francis Ratté-Boulianne
dc7b4111fd panfrost: factor out method to check whether we can discard resource
The logic is gonna be re-used to determine whether we need to
unpack a AFBC-packed texture before updating it (when unmapping).

Signed-off-by: Louis-Francis Ratté-Boulianne <lfrb@collabora.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Fixes: 33b48a5585 ("panfrost: Add debug flag to force packing of AFBC textures on upload")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27208>
(cherry picked from commit 22a7637b08)
2024-01-29 22:06:19 +00:00
Faith Ekstrand
6ffceb7138 nak: Fix TCS output reads
The hardware uses the lane index for per-vertex TCS output reads rather
than the vertex index.  Fortunately, it's a pretty easy calculation to
go from one to the other.

Fixes: abe9c1fea2 ("nak: Add NIR lowering for attribute I/O")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27284>
(cherry picked from commit 99ef70d8aa)
2024-01-29 21:16:35 +00:00
Lionel Landwerlin
8f9db1db2e anv: don't prevent L1 untyped cache flush in 3D mode
Required on MTL.

Fixes tests like :

 dEQP-VK.synchronization2.op.single_queue.timeline_semaphore.write_copy_buffer_read_copy_buffer.buffer_16384

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Cc: mesa-stable
Co-Authored-by: Jordan Justen <jordan.l.justen@intel.com>
Tested-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27172>
(cherry picked from commit 7c2ff46a4f)
2024-01-29 21:16:33 +00:00
Dmitry Baryshkov
5b7553a101 freedreno/drm: don't crash for unsupported devices
For unsupported devices fd_pipe_new() will return NULL, causing a crash
when fd_device_new() tries to check device generation.

Handle fd_pipe_new() returning NULL by destroying device and returning
NULL.

Fixes: 4861067689 ("freedreno/drm: Add sub-allocator")
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26961>
(cherry picked from commit 7a81855a67)
2024-01-29 21:16:20 +00:00
Rohan Garg
77e4a2a06e anv: untyped data port flush required when a pipeline sets the VK_ACCESS_2_SHADER_STORAGE_READ_BIT
VK_ACCESS_2_SHADER_STORAGE_READ_BIT specifies read access to a
storage buffer, physical storage buffer, storage texel buffer, or
storage image in any shader pipeline stage.

Any storage buffers or images written to must be invalidated and
flushed before the shader can access them.

This fixes the following tests on LNL:
  - dEQP-VK.synchronization2.op.single_queue.barrier.write\*_specialized_access_flag

Signed-off-by: Rohan Garg <rohan.garg@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
cc: mesa-stable

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27212>
(cherry picked from commit 3e93ccbc1b)
2024-01-29 21:10:02 +00:00
Dave Airlie
2588d3f4b9 gallivm: passing fp16_split_fp64 to fp16 lowering.
This causes lavapipe to use the split code and fixes accuracy
for CTS.

Fixes dEQP-VK.glsl.builtin.precision_fconvert.f64_to_f16*

Cc: mesa-stable
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27228>
(cherry picked from commit 38e92556a0)
2024-01-29 21:07:02 +00:00
Faith Ekstrand
09bace40bf nvk: Don't exnore ExternalImageFormatInfo
Fixes: 702326d013 ("nvk: Add external memory queries")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27242>
(cherry picked from commit 58e916b3b7)
2024-01-29 21:07:01 +00:00
Rhys Perry
aba20a934d aco: fix labelling of s_not with constant
Fixes RADV compilation of a Cyberpunk 2077 RT pipeline with
PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT.

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Fixes: dfaa3c0af6 ("aco: Flip s_cbranch / s_cselect to optimize out an s_not if possible.")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27194>
(cherry picked from commit 6dc182b6b2)
2024-01-29 21:07:00 +00:00
Mike Blumenkrantz
7e4e5fbdfb zink: set more dynamic states when using shader objects
fixes #10457

cc: mesa-stable

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27146>
(cherry picked from commit df45cbddb5)
2024-01-29 21:06:57 +00:00
Eric Engestrom
77c2a5d4d8 .pick_status.json: Update to b75ee1a067 2024-01-29 18:09:22 +00:00
Thong Thai
ba5fd74ae3 radeonsi/vcn: remove EFC support for renoir
Renoir hardware has limited EFC support, so remove support for it from Mesa.
Thanks to @nyanmisaka for raising the issue.

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

Signed-off-by: Thong Thai <thong.thai@amd.com>
Reviewed-by: Ruijing Dong <ruijing.dong@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27076>
(cherry picked from commit df5203d631)
2024-01-29 17:31:50 +00:00
Eric Engestrom
808f056688 VERSION: bump for 24.0.0-rc3 2024-01-24 20:01:30 +00:00
Karol Herbst
d25222c73f rusticl/kernel: check that local size on dispatch doesn't exceed limits
Cc: mesa-stable
Signed-off-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27232>
(cherry picked from commit eca4f0f632)
2024-01-24 14:22:24 +00:00
Friedrich Vock
3f1d5726cc nir: Handle casts in nir_opt_copy_prop_vars
Cc: mesa-stable

Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27197>
(cherry picked from commit 9f22b95956)
2024-01-24 14:22:23 +00:00
Friedrich Vock
466ae8c313 nir: Make is_trivial_deref_cast public
Cc: mesa-stable

Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27197>
(cherry picked from commit 6c845ed548)
2024-01-24 14:22:22 +00:00
Boris Brezillon
d2094c1e1b panfrost: Clamp the render area to the damage region
The render area clamping was lost during the transition to the FB
helpers. Restore the original logic so we can benefit from
EGL_KHR_partial_update on v4, and on v5 when only one damage
rectangle is passed.

Fixes: ff3eada7eb ("panfrost: Use the generic preload and FB helpers in the gallium driver")
Reported-by: Sjoerd Simons <sjoerd.simons@collabora.com>
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Tested-by: Sjoerd Simons <sjoerd.simons@collabora.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27215>
(cherry picked from commit f6f7715c58)
2024-01-24 14:22:21 +00:00
Rhys Perry
73dcdc7a4e nir/lower_shader_calls: remove CF before nir_opt_if
Otherwise, opt_if_simplification() can attempt to insert an inot after a
jump.

Fixes RADV compilation of a Cyberpunk 2077 pipeline with
PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT.

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27193>
(cherry picked from commit e465ac2561)
2024-01-24 14:22:20 +00:00
Rhys Perry
1059613931 nir/lower_non_uniform: set non_uniform=false when lowering is not needed
Fixes RADV compilation of a Doom Eternal pipeline with
PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT, because
nir_opt_non_uniform_access was skipped and later passes don't expect
non-uniform access.

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: b1619109ca ("nir/lower_non_uniform: remove non_uniform flags after lowering")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27192>
(cherry picked from commit 015b0d678f)
2024-01-24 14:22:19 +00:00
Eric Engestrom
4410947ebe .pick_status.json: Update to eca4f0f632 2024-01-24 14:22:16 +00:00
Rhys Perry
b85673b086 radv: do nir_shader_gather_info after radv_nir_lower_rt_abi
Fixes compilation of a Doom Eternal shader with
PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT.

ac_nir_lower_resinfo() was not happening because it is predicated on
uses_resource_info_query and no later optimization updated it.

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Friedrich Vock <friedrich.vock@gmx.de>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27195>
(cherry picked from commit 90939e93f6)
2024-01-23 20:34:31 +00:00
Karol Herbst
725af5b50c nak/opt_out: fix comparison in try_combine_outs
clippy complained it was comparing the same thing

Fixes: 5b355ff25a ("nak: Fix opt_out")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27216>
(cherry picked from commit 0a414ecdf5)
2024-01-23 20:34:31 +00:00
Eric Engestrom
e2178ddc07 .pick_status.json: Update to 90939e93f6 2024-01-23 20:34:30 +00:00
Karol Herbst
ee57c9df39 nir: rework and fix rotate lowering
No driver supports urol/uror on all bit sizes. Intel gen11+ only for 16
and 32 bit, Nvidia GV100+ only for 32 bit. Etnaviv can support it on 8,
16 and 32 bit.

Also turn the `lower` into a `has` option as only two drivers actually
support `uror` and `urol` at this momemt.

Fixes crashes with CL integer_rotate on iris and nouveau since we emit
urol for `rotate`.

v2: always lower 64 bit

Fixes: fe0965afa6 ("spirv: Don't use libclc for rotate")
Signed-off-by: Karol Herbst <kherbst@redhat.com>
Reviewed-by (Intel and nir): Ian Romanick <ian.d.romanick@intel.com>

Reviewed-by: David Heidelberg <david.heidelberg@collabora.com>
Acked-by: Yonggang Luo <luoyonggang@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27090>
(cherry picked from commit f2b7c4ce29)
2024-01-23 20:34:30 +00:00
Caio Oliveira
2a4f8de54f intel/compiler: Fix rebuilding the CFG in fs_combine_constants
When building the CFG the instructions are taken of the list in
fs_visitor and added to the lists inside each block.  The single
"exec_node" in the instruction is used for those memberships.

In the case the pass rebuilt the CFG, it had no instructions, so
calculate_cfg() had nothing to work with.  For now fix the bug by
pulling all the instructions back to the original list.

We can do better here, but punting until upcoming work on
CFG itself.

Issue found in an unpublished CTS test.  Small reproduction in our
unit tests now enabled.

Fixes: 65237f8bbc ("intel/fs: Don't add MOV instructions to DO blocks in combine constants")
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27131>
(cherry picked from commit 4dbf9181cd)
2024-01-23 20:21:13 +00:00
Tapani Pälli
7af4d666a7 iris: replace constant cache invalidate with hdc flush
This implements Wa_14010840176.

Cc: mesa-stable
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/21364>
(cherry picked from commit 231ede4f0c)
2024-01-23 19:49:09 +00:00
Lionel Landwerlin
72d36448f8 anv: implement undocumented tile cache flush requirements
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Cc: mesa-stable
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Ivan Briano <ivan.briano@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27169>
(cherry picked from commit ba87656079)
2024-01-23 19:49:07 +00:00
Lionel Landwerlin
e99d28b4e2 anv: fix pipeline executable properties with graphics libraries
We're missing the ISA code in renderdoc. You can reproduce with the
Sascha Willems graphics pipeline demo.

The change is large here because we have to fix a confusion between
anv_shader_bin & anv_pipeline_executable. anv_pipeline_executable is
there as a representation for the user and multiple
anv_pipeline_executable can point to a single anv_shader_bin.

In this change we split the anv_shader_bin related logic that was
added in anv_pipeline_add_executable*() and move it to a new
anv_pipeline_account_shader() function.

When importing RT libraries, we add all the anv_pipeline_executable
from the libraries.

When importing Gfx libraries, we add the anv_pipeline_executable only
if not doing link time optimization.

anv_shader_bin related properties are added whenever we're importing a
shader from a library, compiling or finding in the cache.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: 3d49cdb71e ("anv: implement VK_EXT_graphics_pipeline_library")
Reviewed-by: Ivan Briano <ivan.briano@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26594>
(cherry picked from commit 58c9f817cb)
2024-01-23 19:49:06 +00:00
Yiwei Zhang
bfa31de5fd venus: fix to respect the final pipeline layout
This fixes VUID-vkCmdDraw-None-08600 violation when running gpl cts:
dEQP-VK...graphics_library.misc.bind_null_descriptor_set.*, where the
final pipeline layout is falsely dropped, leading to incompatible with
the pipeline layout of the bound descriptor set.

Fixes: a65ac274ac ("venus: Do pipeline fixes for VK_EXT_graphics_pipeline_library")
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27054>
(cherry picked from commit 80a5df16fe)
2024-01-23 13:21:29 +00:00
Yiwei Zhang
252a87e77c venus: fix pipeline derivatives
This was unexpected dropped in the initial GPL impl.

Fixes: a65ac274ac ("venus: Do pipeline fixes for VK_EXT_graphics_pipeline_library")
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27054>
(cherry picked from commit f713b17a16)
2024-01-23 13:21:28 +00:00
Yiwei Zhang
95167b212e venus: fix pipeline layout lifetime
Should check the count instead of random ptr addr.

Fixes: 19f2b9d0bb ("venus: extend VkPipelineLayout lifetime for ...")
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27054>
(cherry picked from commit b551b6e48a)
2024-01-23 13:21:27 +00:00
Sil Vilerino
8039f6a525 d3d12: Implement cap for PIPE_VIDEO_CAP_ENC_INTRA_REFRESH
Fixes: c81967fa89 ("d3d12: Implement Intra Refresh for H264, HEVC, AV1")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27201>
(cherry picked from commit a3c91624f4)
2024-01-23 13:21:25 +00:00
Eric R. Smith
2e4623bd19 panfrost: fix panfrost drm-shim
The panfrost driver now makes an ioctl to retrieve some new memory
parameters, and DRM_PANFROST_PARAM_MEM_FEATURES is required (does not
default in the caller). This caused drm-shim to stop working. This
patch adds some defaults to get drm-shim working again.

Signed-off-by: Eric R. Smith <eric.smith@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Fixes: 91fe8a0d28 ("panfrost: Back panfrost_device with pan_kmod_dev object")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27162>
(cherry picked from commit a50b2f8f25)
2024-01-23 13:21:14 +00:00
Samuel Pitoiset
812bcc29af radv: fix indirect draws with NULL index buffer on GFX10
GFX10 has a hw bug and it can't handle 0-sized index buffer. The
non-indirect draw path was fine but not the indirect path where RADV
emits the index buffer.

This fixes flakes with dEQP-VK.*maintenance6* on NAVI14, and possibly
GPU hangs if there is an indirect draw with a valid index buffer right
before because it would re-use the same index buffer.

Fixes: db9816fd66 ("radv: add support for NULL index buffer")
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27142>
(cherry picked from commit 783e3c096f)
2024-01-23 13:21:10 +00:00
Samuel Pitoiset
21d22653da radv: fix indirect dispatches on the compute queue on GFX7
GFX7 CP requires the indirect dispatch VA to be aligned to 32-bytes.

This fixes dEQP-VK.api.command_buffers.many_indirect_disps_on_secondary,
but it's unexpected that it uncovered this bug.

Cc: mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27148>
(cherry picked from commit 5c03cdbd02)
2024-01-23 13:21:09 +00:00
Georg Lehmann
ebd56d7a76 aco: stop scheduling at p_logical_end
No Foz-DB changes, but this fixes some issues when the spiller inserts
scratch loads after p_logical_end for p_return.

Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>

Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27119>
(cherry picked from commit 74fc2e287f)
2024-01-23 13:21:08 +00:00
Daniel Schürmann
e1d20b69c4 aco: give spiller more room to assign spilled SGPRs to VGPRs
On chordal graphs, a greedy coloring can be done in a way that never uses
more colors than are required for the largest clique. However, since we
have vector values and force phi resources into the same spill slots, the
interference graphs are not chordal, and thus, this assumption doesn't hold.

Use twice as many spill slots as upper bound.

Totals from 10 (0.01% of 79242) affected shaders: (GFX11)
MaxWaves: 52 -> 54 (+3.85%)
Instrs: 271386 -> 271779 (+0.14%)
CodeSize: 1362544 -> 1365432 (+0.21%)
VGPRs: 2536 -> 2532 (-0.16%)
SpillVGPRs: 778 -> 818 (+5.14%)
Scratch: 73472 -> 76800 (+4.53%)
Latency: 3331718 -> 3328798 (-0.09%); split: -0.14%, +0.05%
InvThroughput: 1665860 -> 1643350 (-1.35%); split: -1.40%, +0.05%
VClause: 3292 -> 3329 (+1.12%); split: -0.06%, +1.18%
Copies: 46082 -> 46257 (+0.38%)

Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27011>
(cherry picked from commit e3098bb232)
2024-01-23 13:21:08 +00:00
Friedrich Vock
0392e4bf5c radv: Fix shader replay allocation condition
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26891>
(cherry picked from commit 43bdfebbff)
2024-01-23 13:21:07 +00:00
Konstantin Seurer
364835c513 lavapipe: Report the correct preprocess buffer size
There can be multiple sequences.

Fixes: 976dd26 ("lavapipe: NV_device_generated_commands")
Reviewed-by: Dave Airlie <airlied@redhat.com>
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27019>
(cherry picked from commit 024f144165)
2024-01-23 13:20:01 +00:00
Konstantin Seurer
83b5a3a3f9 lavapipe: Mark vertex elements dirty if the stride changed
Fixes: 7672545 ("gallium: move vertex stride to CSO")
Reviewed-by: Dave Airlie <airlied@redhat.com>
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27019>
(cherry picked from commit cc94ff081c)
2024-01-23 13:20:00 +00:00
Konstantin Seurer
6d1dae874d lavapipe: Fix DGC vertex buffer handling
Fixes: 976dd26 ("lavapipe: NV_device_generated_commands")
Reviewed-by: Dave Airlie <airlied@redhat.com>
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27019>
(cherry picked from commit 6d88c1bb6c)
2024-01-23 13:19:59 +00:00
Konstantin Seurer
484a051aaa ac/llvm: Enable helper invocations for quad OPs
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/9239
cc: mesa-stable

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27110>
(cherry picked from commit 220c912080)
2024-01-23 13:19:58 +00:00
Tapani Pälli
cfa818f191 anv: expand pre-hiz data cache flush to gfx >= 125
Cc: mesa-stable
Signed-off-by: Tapani Pälli <tapani.palli@intel.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/27132>
(cherry picked from commit 02d7f5e4ff)
2024-01-23 13:19:07 +00:00
Tapani Pälli
69cac7ae19 iris: expand pre-hiz data cache flush to gfx >= 125
Cc: mesa-stable
Signed-off-by: Tapani Pälli <tapani.palli@intel.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/27132>
(cherry picked from commit 93706d5c2f)
2024-01-23 13:19:06 +00:00
Ian Romanick
b428530441 intel/compiler: Track mue_compaction and mue_header_packing flags in brw_get_compiler_config_value
v2: Use u_foreach_bit64. Suggested by Lionel.

Fixes: 48885c7fe3 ("intel/compiler: load debug mesh compaction options once")
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26993>
(cherry picked from commit 7481d61a5d)
2024-01-23 13:19:05 +00:00
Ian Romanick
057493cefb intel/compiler: Track lower_dpas flag in brw_get_compiler_config_value
This user-settable flag affects compiler output, so it should be tracked
in the cache hash.

Fixes: 3756f60558 ("intel/fs: DPAS lowering")
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Suggested-by: Lionel Landwerlin
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26993>
(cherry picked from commit 6f237a23c7)
2024-01-23 13:19:04 +00:00
Ian Romanick
219cd6dc40 intel/compiler: Disable DPAS instructions on MTL
Reviewed-by: Mark Janes <markjanes@swizzler.org>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: 3756f60558 ("intel/fs: DPAS lowering")
Closes: #10376
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26993>
(cherry picked from commit 951e08fc18)
2024-01-23 13:19:03 +00:00
Hans-Kristian Arntzen
ba54cfa014 wsi/x11: Add workaround for Detroit Become Human.
Game needs strict image count to not crash in non-vsync mode.

Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27038>
(cherry picked from commit efc0131d5b)
2024-01-23 13:19:02 +00:00
Eric Engestrom
bc9a92aa03 .pick_status.json: Update to d0a3bac163 2024-01-23 13:18:34 +00:00
Dave Airlie
085612fce5 radv: don't submit empty command buffers on encoder ring.
the vcn enc/unified rings don't do nop packets, and hang with 0 sized
cmd buffers. This just stops submitting 0 sized cmd buffers to the hw.

Fixes hangs with dEQP-VK.video.decode.h264_i on navi3x

Cc: mesa-stable
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25932>
(cherry picked from commit f33683e4da)
2024-01-18 13:07:57 +00:00
Dave Airlie
74ee323c17 radv/video: refactor sq start/end code to avoid decode hangs.
The extra cmd buffer layer was done wrong, need to emit the
sq start and ends around every reset/decode packet.

Fixes dEQP-VK.video.decode.h264_i on navi3x

Fixes: d8f3060bd9 ("radv/video: start adding gfx11 vcn decoder")
Acked-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25932>
(cherry picked from commit d32f2ee7b6)
2024-01-18 13:07:56 +00:00
Faith Ekstrand
2ff9219359 nvk: Unref shaders on pipeline free
Fixes: d6a1e29ccd ("nvk: pipeline shader cache")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27130>
(cherry picked from commit be0f04f5bd)
2024-01-18 13:07:54 +00:00
Ryan Neph
ed75400a50 venus: fix shmem leak on vn_ring_destroy
Missed shmem unref when moving ring internals out of vn_instance.c.

Fixes: d1e29b7557 ("venus: move ring shmem into vn_ring")
Signed-off-by: Ryan Neph <ryanneph@google.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27125>
(cherry picked from commit 6e4bb8253e)
2024-01-18 13:07:51 +00:00
Eric Engestrom
22c416e1c8 .pick_status.json: Update to d2b08f9437 2024-01-18 13:07:49 +00:00
David Heidelberg
a062b0432a ci/deqp: uprev deqp-runner for Linux too to 0.18.0
Previous commit upreved deqp only for the Android

Fixes: 1ff4687e86 ("ci: uprev deqp-runner from 0.16.1 to 0.18.0")

Signed-off-by: David Heidelberg <david.heidelberg@collabora.com>

[Eric]
- rename the deqp-runner version to DEQP_RUNNER_VERSION instead of DEQP_VERSION
- update image tags
- fix expectations lists

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27062>
(cherry picked from commit 4ff77f08e4)
2024-01-17 23:29:18 +00:00
Eric Engestrom
01b374ecaf ci/deqp: ensure that in default builds, wayland + x11 + xcb are all built
If someone were to remove the libraries that are needed for these,
`default` would simply not enable these tests, and the only thing we
could notice is that test jobs would suddenly take less time to run.

Instead, let's have a check to make sure dEQP's cmake has detected
everything and enabled these platforms.

Reviewed-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27041>
(cherry picked from commit 27a1b4e4f3)
2024-01-17 23:28:12 +00:00
Eric Engestrom
e716b08f86 VERSION: bump for 24.0.0-rc2 2024-01-17 22:28:20 +00:00
Friedrich Vock
9d1a064663 radv/rt: Add workaround to make leaves always active
DOOM Eternal builds acceleration structures with inactive primitives and
tries to make them active in later AS updates. This is disallowed by the
spec and triggers a GPU hang. Fix the hang by working around the bug.

Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27034>
(cherry picked from commit a9831caa14)
2024-01-17 21:42:02 +00:00
Boris Brezillon
f7f823c787 panvk: Fix access to unitialized panvk_pipeline_layout::num_sets field
Commit 73eecffabd ("panvk: Use the vk_pipeline_layout base struct")
reworked the panvk logic to use vk_pipeline_layout, which contains the
number of descriptor set layout referenced by a pipeline layout, thus
deprecating panvk_pipeline_layout::num_sets.

Make panvk_fill_non_vs_attribs() use vk_pipeline_layout::set_count
instead of panvk_pipeline_layout::num_sets and kill the latter so we
can't introduce new users.

Fixes: 73eecffabd ("panvk: Use the vk_pipeline_layout base struct")
Cc: mesa-stable
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Constantine Shablya <constantine.shablya@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27107>
(cherry picked from commit b18bfed2c5)
2024-01-17 21:41:44 +00:00
Boris Brezillon
b65d7520f6 panvk: Fix tracing
pandecode_next_frame() take a decode context. Passing NULL leads to a
NULL deref.

Fixes: 56be9a55be ("pan/decode: handle more than one panfrost_device")
Cc: mesa-stable
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Constantine Shablya <constantine.shablya@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27107>
(cherry picked from commit 35a02560c8)
2024-01-17 21:39:08 +00:00
Sviatoslav Peleshko
1246e54f1c nir: Use alu source components count in nir_alu_srcs_negative_equal
When we use source from ALU instruction directly, the default swizzle array
should be populated with the same amount of components as the src has.

Otherwise, if we use nir_ssa_alu_instr_src_components, it can return
the destination components count that is lower than component index
actually used in that source. This can lead to false equality
between 0 (uninitialized) and 0 (.x) in swizzle comparison below.

Fixes: c6ee46a7 ("nir: Add nir_alu_srcs_negative_equal")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/8704
Signed-off-by: Sviatoslav Peleshko <sviatoslav.peleshko@globallogic.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22655>
(cherry picked from commit 6b0bfdfa9e)
2024-01-17 21:39:06 +00:00
Erico Nunes
4175b4d547 Revert "ci: lima farm is down"
This reverts commit 601b826a5e.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26905>
(cherry picked from commit 8bd4cae768)
2024-01-17 21:39:02 +00:00
Yonggang Luo
9732d1bdcd compiler/spirv: The spirv shader is binary, should write in binary mode
Fixes: 53265c8798 ("spirv: Add a mechanism for dumping failing shaders")

Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26775>
(cherry picked from commit fd11818828)
2024-01-17 21:39:00 +00:00
Yiwei Zhang
8974222433 vulkan/wsi/wayland: fix returns and avoid leaks for failed swapchain
Cc: mesa-stable
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Tested-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Ryan Neph <ryanneph@google.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27080>
(cherry picked from commit dc5725ee29)
2024-01-17 21:38:56 +00:00
Eric Engestrom
ce34ec41cd ci: fix job dependency error in MRs for bin/ci/* scripts
'debian/x86_64_build' job needs 'debian/x86_64_build-base' job, but 'debian/x86_64_build-base' is not in any previous stage

Fixes: f298a0e709 ("ci: make sure we evaluate the python-test rules first")
Fixes: 2c9fdaa830 ("ci: fix python-test dependency error on merge requests")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27042>
(cherry picked from commit 2ce0b5ab0a)
2024-01-17 21:38:53 +00:00
Eric Engestrom
3dabc03b58 .pick_status.json: Update to 10e2dbb63b 2024-01-17 21:36:44 +00:00
David Rosca
25ae9134dd radeonsi/vcn: Fix H264 slice header when encoding I frames
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27029>
(cherry picked from commit 865abfde63)
2024-01-16 18:41:37 +00:00
Patrick Lerda
43a00ad0fa glsl/nir: fix gl_nir_cross_validate_outputs_to_inputs() memory leak
For instance, this issue is triggered with
vs-to-fs-overlap.shader_test -auto -fbo:
Direct leak of 24 byte(s) in 1 object(s) allocated from:
    #0 0x7fe64f58e9a7 in calloc (/usr/lib64/libasan.so.6+0xb19a7)
    #1 0x7fe642ca2839 in _mesa_symbol_table_ctor ../src/mesa/program/symbol_table.c:286
    #2 0x7fe642ff003d in gl_nir_cross_validate_outputs_to_inputs ../src/compiler/glsl/gl_nir_link_varyings.c:728
    #3 0x7fe642d7c7d8 in gl_nir_link_glsl ../src/compiler/glsl/gl_nir_linker.c:1357
    #4 0x7fe642be6931 in st_link_glsl_to_nir ../src/mesa/state_tracker/st_glsl_to_nir.cpp:562
    #5 0x7fe642be6931 in st_link_shader ../src/mesa/state_tracker/st_glsl_to_nir.cpp:944
    #6 0x7fe642acab55 in link_program ../src/mesa/main/shaderapi.c:1336
    #7 0x7fe642acab55 in link_program_error ../src/mesa/main/shaderapi.c:1447
    #8 0x7fe6424aa389 in _mesa_unmarshal_LinkProgram src/mapi/glapi/gen/marshal_generated2.c:1911
    #9 0x7fe641fd912b in glthread_unmarshal_batch ../src/mesa/main/glthread.c:139
    #10 0x7fe641f48d48 in util_queue_thread_func ../src/util/u_queue.c:309
    #11 0x7fe641fa442a in impl_thrd_routine ../src/c11/impl/threads_posix.c:67

Fixes: 7d1948e9b5 ("glsl: implement cross_validate_outputs_to_inputs() in nir linker")
Signed-off-by: Patrick Lerda <patrick9876@free.fr>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27071>
(cherry picked from commit bacace8634)
2024-01-16 18:41:36 +00:00
Karol Herbst
78fd14d938 rusticl/kernel: run opt/lower_memcpy later to fix a crash
nir_opt_memcpy requires explicit types to function properly. So run them
after lowering vars to explicit types.

Cc: mesa-stable
Signed-off-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27068>
(cherry picked from commit f896659894)
2024-01-16 18:41:35 +00:00
Tatsuyuki Ishi
c5b8590e6d radv: never set DISABLE_WR_CONFIRM for CP DMA clears and copies
This mirrors the changes in 69ff9c16bb ("radeonsi: never set
DISABLE_WR_CONFIRM for CP DMA clears and copies").

Cc: mesa-stable
Suggested-by: Vitaliy Triang3l Kuzmin <triang3l@yandex.ru>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27053>
(cherry picked from commit 43fb43ba2c)
2024-01-16 18:41:34 +00:00
Lucas Stach
9888a95130 etnaviv: disable 64bpp render/sampler formats
Vivante hardware handles 64bpp render targets and samplers in a odd way
by splitting the buffer and using a pair of texture samplers or a pair
of MRT outputs to access those resources. This isn't implemented in the
driver right now, so we should not advertise support for those formats.

CC: mesa-stable
Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Reviewed-by: Christian Gmeiner <cgmeiner@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26982>
(cherry picked from commit e481c1269c)
2024-01-16 18:41:33 +00:00
Eric Engestrom
05ff891088 .pick_status.json: Update to ff84aef116 2024-01-16 18:41:30 +00:00
Tapani Pälli
fc4180339c anv: check for wa 16013994831 in emit_so_memcpy_end
We are toggling preemption on/off during streamout, this is also
happening on gfx12 platforms, not just dg2.

Cc: mesa-stable
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/27002>
(cherry picked from commit 36f428f1de)
2024-01-15 21:57:32 +00:00
Vinson Lee
b39ee4d766 intel/disasm: Remove duplicate variable reg_file
Fix defects reported by Coverity Scan.

Evaluation order violation (EVALUATION_ORDER)
write_write_typo: In reg_file = reg_file = brw_inst_dpas_3src_dst_reg_file(devinfo, inst),
reg_file is written twice with the same value.

Fixes: 1c92dad5cb ("intel/disasm: Disassembly support for DPAS")
Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27056>
(cherry picked from commit 73835874a8)
2024-01-15 21:57:31 +00:00
Lionel Landwerlin
5b8984f32f anv: hide vendor ID for The Finals
XeSS workaround.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10436
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27057>
(cherry picked from commit a34a113059)
2024-01-15 21:57:30 +00:00
Lionel Landwerlin
eb3d73073f intel/aux_map: fix fallback unmapping range on failure
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: 7c6faa1efe ("intel/aux_map: introduce ref count of L1 entries")
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27057>
(cherry picked from commit ff6041afdf)
2024-01-15 21:57:29 +00:00
Jesse Natalie
f19b7d8dfc mesa: Consider mesa format in addition to internal format for mip/cube completeness
Prior to 06b526de, the mesa format was used for these completeness checks.
That was to address the case where a *different* internal format selected
the *same* mesa format, and the texture shouldn't be considered compatible.
But this didn't address the case where the *same* internal format selected
a *different* mesa format, e.g. because the type passed to the TexImage
API was different.

An old WGL demo app called TexFilter.exe tries to redefine a mipped RGBA16
texture as RGBA8. This incorrect logic caused Mesa to try to copy the RGBA16
data from the smaller mips into the newly created RGBA8 data, because it
thought that the texture was still mip-complete, despite the format changing.

Cc: mesa-stable
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27023>
(cherry picked from commit 4cb9c77e8e)
2024-01-15 21:57:28 +00:00
José Roberto de Souza
04ffe4771e anv: Fix PAT entry for userptr in integrated GPUs
Fixes: 060439bdf0 ("anv: Add ANV_BO_ALLOC_IMPORTED")
Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27040>
(cherry picked from commit 49fe060b5f)
2024-01-15 21:57:27 +00:00
Yiwei Zhang
0ebdd39d85 venus: populate oom from ring submit alloc failures
ring_seqno_valid indicates a successful ring cmd submission, and can be
used to avoid invalid reply decoding due to failed submit alloc.
Otherwise, the garbled VkResult will mislead into initialization failure
instead of oom.

Below cts failure is fixed:
dEQP-VK.api.device_init.create_instance_device_intentional_alloc_fail.basic

Fixes: ec131c6e55 ("venus: use instance allocator for ring allocs")
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27026>
(cherry picked from commit ecd50e70d4)
2024-01-15 21:57:24 +00:00
Matt Turner
fcd78c5281 util/tests: Disable half-float NaN test on hppa/old-mips
Bug: https://bugs.gentoo.org/908079
Fixes: 067023dce2 ("util: Add some unit tests of the half-float conversions.")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26991>
(cherry picked from commit 5b7c733902)
2024-01-15 21:56:38 +00:00
Matt Turner
97ebcff41c util: Add DETECT_ARCH_HPPA macro
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26991>
(cherry picked from commit 0540c9de44)
2024-01-15 21:56:37 +00:00
Pierre-Eric Pelloux-Prayer
6febac5c96 Revert "ci/radeonsi: disable VA-API testing on raven"
This reverts commit 9017852de4.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26947>
(cherry picked from commit e2f39e8aca)
2024-01-15 21:56:36 +00:00
Pierre-Eric Pelloux-Prayer
ab960ee0bf radeonsi: compute epitch when modifying surf_pitch
In the linear case with no mipmaps addrlib sets epitch to surf_pitch - 1
so lets do the same thing here.

The change in si_descriptors.c looks like it's papering over a bug but I
couldn't find any other changes that wouldn't break at least one use case.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10375
Fixes: 115b61e51f ("ac/surface: don't oversize surf_size")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26947>
(cherry picked from commit 4e76c4ecb4)
2024-01-15 21:56:10 +00:00
Tatsuyuki Ishi
fc11cbb37e radv: Recompute max_waves after postprocessing RT config
The max waves for RT prolog need to be recalculated after merging the
resource usage of all shaders invoked from it.

Note that there is no need to panic, as the info was only used to
calculate maximum scratch size and with the RT prolog being low
footprint, this likely only caused overestimation rather than
underestimation.

Fixes: 533ec9843e ("radv: Precompute shader max_waves.")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26998>
(cherry picked from commit 63827751e1)
2024-01-15 21:56:09 +00:00
Mike Blumenkrantz
1f5604ed45 zink: fix separate shader patch variable location adjustment
in spirv, these start at location 0, not location 32

fixes #10414

Fixes: d9942442f2 ("zink: handle patch variable locations for separate shaders better")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26981>
(cherry picked from commit 565ee4fafc)
2024-01-15 21:56:07 +00:00
Lionel Landwerlin
cc677d7c30 anv: fix disabled Wa_14017076903/18022508906
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: d0669f3ede ("intel/dev: switch defect identifiers to use lineage numbers")
Reviewed-by: José Roberto de Souza <jose.souza@intel.com>
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27008>
(cherry picked from commit 695b4a2992)
2024-01-15 21:56:05 +00:00
Eric Engestrom
f575e2b9f1 ci: make sure we evaluate the python-test rules first
Fixes: 2c9fdaa830 ("ci: fix python-test dependency error on merge requests")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26984>
(cherry picked from commit f298a0e709)
2024-01-15 21:56:02 +00:00
Timur Kristóf
3753919715 radv: Correctly select SDMA support for PRIME blit.
Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10317
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27015>
(cherry picked from commit 436b89e838)
2024-01-15 21:56:00 +00:00
Pavel Ondračka
757192b046 r300: fix reusing of color varying slots for generic ones
This was broken when I added texcoord support, the problem is that we
failed to properly count the number of used fs inputs and thus we failed
to make the proper decision when to reuse the color varying slot
Also fix the error messages, they were incorrect after the rewrite as
well. This fixes a bunch of piglits.

Fixes: d4b8e8a481

Signed-off-by: Pavel Ondračka <pavel.ondracka@gmail.com>
Reviewed-by: Filip Gawin <filip.gawin@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27003>
(cherry picked from commit 53c17d85ab)
2024-01-15 21:55:56 +00:00
Mike Blumenkrantz
02b5a2348d lavapipe: fix devenv icd filename
fixes #10408

cc: mesa-stable

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26985>
(cherry picked from commit 465e26dd98)
2024-01-15 21:55:52 +00:00
Mike Blumenkrantz
3c36933195 lavapipe: use pushconstants2 for dgc
Fixes: ec656e1984 ("lavapipe: maint6")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26977>
(cherry picked from commit bf729063c3)
2024-01-15 21:55:51 +00:00
Mike Blumenkrantz
ae5c0e6600 vk/cmdbuf: add back deleted maint6 workgraph bits
this otherwise breaks workgraph support in lavapipe

Fixes: ec656e1984 ("lavapipe: maint6")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26977>
(cherry picked from commit b6bfa73dc7)
2024-01-15 21:22:38 +00:00
Eric Engestrom
f1064107e9 .pick_status.json: Mark 0557f0d59c as denominated 2024-01-15 09:44:39 +00:00
Eric Engestrom
6b4f639474 .pick_status.json: Update to 4fe5f06d40 2024-01-15 09:43:41 +00:00
Eric Engestrom
26a96af808 VERSION: bump for 24.0.0-rc1 2024-01-11 14:19:21 +00:00
3301 changed files with 99180 additions and 234771 deletions

View File

@@ -2,7 +2,6 @@
# enforcement in the CI.
src/gallium/drivers/i915
src/gallium/targets/teflon/**/*
src/amd/vulkan/**/*
src/amd/compiler/**/*
src/egl/**/*

1
.gitignore vendored
View File

@@ -3,4 +3,3 @@
*.pyo
*.out
/build
.venv/

View File

@@ -160,7 +160,25 @@ include:
- local: '.gitlab-ci/farm-rules.yml'
- local: '.gitlab-ci/test-source-dep.yml'
- local: 'docs/gitlab-ci.yml'
- local: 'src/**/ci/gitlab-ci.yml'
- local: 'src/amd/ci/gitlab-ci.yml'
- local: 'src/broadcom/ci/gitlab-ci.yml'
- local: 'src/etnaviv/ci/gitlab-ci.yml'
- local: 'src/freedreno/ci/gitlab-ci.yml'
- local: 'src/gallium/drivers/crocus/ci/gitlab-ci.yml'
- local: 'src/gallium/drivers/d3d12/ci/gitlab-ci.yml'
- local: 'src/gallium/drivers/i915/ci/gitlab-ci.yml'
- local: 'src/gallium/drivers/r300/ci/gitlab-ci.yml'
- local: 'src/gallium/drivers/lima/ci/gitlab-ci.yml'
- local: 'src/gallium/drivers/llvmpipe/ci/gitlab-ci.yml'
- local: 'src/gallium/drivers/nouveau/ci/gitlab-ci.yml'
- local: 'src/gallium/drivers/softpipe/ci/gitlab-ci.yml'
- local: 'src/gallium/drivers/virgl/ci/gitlab-ci.yml'
- local: 'src/gallium/drivers/zink/ci/gitlab-ci.yml'
- local: 'src/gallium/frontends/lavapipe/ci/gitlab-ci.yml'
- local: 'src/intel/ci/gitlab-ci.yml'
- local: 'src/microsoft/ci/gitlab-ci.yml'
- local: 'src/panfrost/ci/gitlab-ci.yml'
- local: 'src/virtio/ci/gitlab-ci.yml'
# YAML anchors for rule conditions
@@ -276,32 +294,6 @@ sanity:
script:
# ci-fairy check-commits --junit-xml=check-commits.xml
- ci-fairy check-merge-request --require-allow-collaboration --junit-xml=check-merge-request.xml
- |
set -eu
image_tags=(
DEBIAN_BASE_TAG
DEBIAN_BUILD_TAG
DEBIAN_X86_64_TEST_ANDROID_TAG
DEBIAN_X86_64_TEST_GL_TAG
DEBIAN_X86_64_TEST_VK_TAG
ALPINE_X86_64_BUILD_TAG
ALPINE_X86_64_LAVA_SSH_TAG
FEDORA_X86_64_BUILD_TAG
KERNEL_ROOTFS_TAG
KERNEL_TAG
PKG_REPO_REV
WINDOWS_X64_MSVC_TAG
WINDOWS_X64_BUILD_TAG
WINDOWS_X64_TEST_TAG
)
for var in "${image_tags[@]}"
do
if [ "$(echo -n "${!var}" | wc -c)" -gt 20 ]
then
echo "$var is too long; please make sure it is at most 20 chars."
exit 1
fi
done
artifacts:
when: on_failure
reports:

View File

@@ -9,9 +9,6 @@
# submission, so skip it in the regular CI.
dEQP-VK.api.driver_properties.conformance_version
# Exclude this test which might fail when a new extension is implemented.
dEQP-VK.info.device_extensions
# These are tremendously slow (pushing toward a minute), and aren't
# reliable to be run in parallel with other tests due to CPU-side timing.
dEQP-GLES[0-9]*.functional.flush_finish.*

View File

@@ -74,11 +74,10 @@ debian-testing:
-D platforms=x11,wayland
GALLIUM_ST: >
-D dri3=enabled
-D gallium-nine=true
-D gallium-va=enabled
-D gallium-rusticl=true
GALLIUM_DRIVERS: "swrast,virgl,radeonsi,zink,crocus,iris,i915,r300"
VULKAN_DRIVERS: "swrast,amd,intel,intel_hasvk,virtio,nouveau"
VULKAN_DRIVERS: "swrast,amd,intel,intel_hasvk,virtio,nouveau-experimental"
BUILDTYPE: "debugoptimized"
EXTRA_OPTION: >
-D spirv-to-dxil=true
@@ -104,22 +103,8 @@ debian-testing-asan:
-D b_sanitize=address
-D valgrind=disabled
-D tools=dlclose-skip
-D intel-clc=system
S3_ARTIFACT_NAME: ""
ARTIFACTS_DEBUG_SYMBOLS: 1
# Do a host build for intel-clc (asan complains not being loaded
# as the first library)
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=
-D glx=disabled
-D platforms=
-D intel-clc=enabled
-D install-intel-clc=true
debian-testing-msan:
# https://github.com/google/sanitizers/wiki/MemorySanitizerLibcxxHowTo
@@ -131,7 +116,6 @@ debian-testing-msan:
EXTRA_OPTION:
-D b_sanitize=memory
-D b_lundef=false
-D intel-clc=system
S3_ARTIFACT_NAME: ""
ARTIFACTS_DEBUG_SYMBOLS: 1
# Don't run all the tests yet:
@@ -140,19 +124,6 @@ debian-testing-msan:
MESON_TEST_ARGS: "--suite glcpp --suite format"
GALLIUM_DRIVERS: "freedreno,iris,nouveau,kmsro,r300,r600,swrast,svga,v3d,vc4,virgl,etnaviv,panfrost,lima,zink,radeonsi,tegra,d3d12,crocus"
VULKAN_DRIVERS: intel,amd,broadcom,virtio
# Do a host build for intel-clc (msan complains about
# uninitialized values in the LLVM libs)
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=
-D glx=disabled
-D platforms=
-D intel-clc=enabled
-D install-intel-clc=true
debian-build-testing:
extends: .meson-build
@@ -224,7 +195,6 @@ debian-release:
-D osmesa=true
-D tools=all
-D intel-clc=enabled
-D intel-rt=enabled
-D imagination-srv=true
BUILDTYPE: "release"
S3_ARTIFACT_NAME: "mesa-x86_64-default-${BUILDTYPE}"
@@ -249,7 +219,7 @@ alpine-build-testing:
-D egl=enabled
-D glvnd=false
-D platforms=wayland
LLVM_VERSION: "16"
LLVM_VERSION: ""
GALLIUM_DRIVERS: "crocus,etnaviv,freedreno,iris,kmsro,lima,nouveau,panfrost,r300,r600,radeonsi,svga,swrast,tegra,v3d,vc4,virgl,zink"
GALLIUM_ST: >
-D dri3=enabled
@@ -295,9 +265,8 @@ fedora-release:
-D selinux=true
-D tools=drm-shim,etnaviv,freedreno,glsl,intel,nir,nouveau,lima,panfrost,imagination
-D vulkan-layers=device-select,overlay
-D intel-rt=enabled
-D intel-clc=enabled
-D imagination-srv=true
-D teflon=true
GALLIUM_DRIVERS: "crocus,etnaviv,freedreno,i915,iris,kmsro,lima,nouveau,panfrost,r300,r600,radeonsi,svga,swrast,tegra,v3d,vc4,virgl,zink"
GALLIUM_ST: >
-D dri3=enabled
@@ -347,7 +316,6 @@ debian-android:
-D platform-sdk-version=33
-D valgrind=disabled
-D android-libbacktrace=disabled
-D intel-clc=system
GALLIUM_ST: >
-D dri3=disabled
-D gallium-vdpau=disabled
@@ -356,19 +324,8 @@ debian-android:
-D gallium-xa=disabled
-D gallium-nine=false
-D gallium-rusticl=false
LLVM_VERSION: "15"
LLVM_VERSION: ""
PKG_CONFIG_LIBDIR: "/disable/non/android/system/pc/files"
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=
-D glx=disabled
-D platforms=
-D intel-clc=enabled
-D install-intel-clc=true
ARTIFACTS_DEBUG_SYMBOLS: 1
S3_ARTIFACT_NAME: mesa-x86_64-android-${BUILDTYPE}
script:
@@ -459,7 +416,6 @@ debian-arm64:
-D imagination-srv=true
-D perfetto=true
-D freedreno-kmds=msm,virtio
-D teflon=true
S3_ARTIFACT_NAME: mesa-arm64-default-${BUILDTYPE}
script:
- .gitlab-ci/meson/build.sh
@@ -540,7 +496,7 @@ debian-clang:
-D opencl-spirv=true
-D shared-glapi=enabled
GALLIUM_DRIVERS: "iris,nouveau,kmsro,r300,r600,freedreno,swrast,svga,v3d,vc4,virgl,etnaviv,panfrost,lima,zink,radeonsi,tegra,d3d12,crocus,i915,asahi"
VULKAN_DRIVERS: intel,amd,freedreno,broadcom,virtio,swrast,panfrost,imagination-experimental,microsoft-experimental,nouveau
VULKAN_DRIVERS: intel,amd,freedreno,broadcom,virtio,swrast,panfrost,imagination-experimental,microsoft-experimental,nouveau-experimental
EXTRA_OPTION:
-D spirv-to-dxil=true
-D osmesa=true
@@ -549,9 +505,7 @@ debian-clang:
-D vulkan-layers=device-select,overlay
-D build-aco-tests=true
-D intel-clc=enabled
-D intel-rt=enabled
-D imagination-srv=true
-D teflon=true
CC: clang-${LLVM_VERSION}
CXX: clang++-${LLVM_VERSION}
@@ -618,11 +572,11 @@ debian-vulkan:
-D c_args=-fno-sanitize-recover=all
-D cpp_args=-fno-sanitize-recover=all
UBSAN_OPTIONS: "print_stacktrace=1"
VULKAN_DRIVERS: amd,broadcom,freedreno,intel,intel_hasvk,panfrost,virtio,imagination-experimental,microsoft-experimental,nouveau
VULKAN_DRIVERS: amd,broadcom,freedreno,intel,intel_hasvk,virtio,imagination-experimental,microsoft-experimental
EXTRA_OPTION: >
-D vulkan-layers=device-select,overlay
-D build-aco-tests=true
-D intel-rt=disabled
-D intel-clc=disabled
-D imagination-srv=true
debian-x86_32:
@@ -637,18 +591,6 @@ debian-x86_32:
LLVM_VERSION: 15
EXTRA_OPTION: >
-D vulkan-layers=device-select,overlay
-D intel-clc=system
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=
-D glx=disabled
-D platforms=
-D intel-clc=enabled
-D install-intel-clc=true
debian-s390x:
extends:

View File

@@ -39,6 +39,7 @@ for var in \
DEQP_RUNNER_OPTIONS \
DEQP_SUITE \
DEQP_TEMP_DIR \
DEQP_VARIANT \
DEQP_VER \
DEQP_WIDTH \
DEVICE_NAME \
@@ -120,7 +121,6 @@ for var in \
VK_ICD_FILENAMES \
VKD3D_PROTON_RESULTS \
VKD3D_CONFIG \
VKD3D_TEST_EXCLUDE \
ZINK_DESCRIPTORS \
ZINK_DEBUG \
LVP_POISON_MEMORY \

View File

@@ -7,8 +7,6 @@
# Second-stage init, used to set up devices and our job environment before
# running tests.
shopt -s extglob
# Make sure to kill itself and all the children process from this script on
# exiting, since any console output may interfere with LAVA signals handling,
# which based on the log console.
@@ -108,13 +106,6 @@ export XDG_CACHE_HOME=/tmp
# Make sure Python can find all our imports
export PYTHONPATH=$(python3 -c "import sys;print(\":\".join(sys.path))")
# If we need to specify a driver, it means several drivers could pick up this gpu;
# ensure that the other driver can't accidentally be used
if [ -n "$MESA_LOADER_DRIVER_OVERRIDE" ]; then
rm /install/lib/dri/!($MESA_LOADER_DRIVER_OVERRIDE)_dri.so
fi
ls -1 /install/lib/dri/*_dri.so
if [ "$HWCI_FREQ_MAX" = "true" ]; then
# Ensure initialization of the DRM device (needed by MSM)
head -0 /dev/dri/renderD128

View File

@@ -8,8 +8,6 @@
set -e
set -o xtrace
export LLVM_VERSION="${LLVM_VERSION:=16}"
EPHEMERAL=(
)
@@ -18,7 +16,6 @@ DEPS=(
bash
bison
ccache
clang16-dev
cmake
clang-dev
coreutils
@@ -30,7 +27,6 @@ DEPS=(
gettext
glslang
linux-headers
llvm16-static
llvm16-dev
meson
expat-dev
@@ -52,10 +48,6 @@ DEPS=(
apk --no-cache add "${DEPS[@]}" "${EPHEMERAL[@]}"
. .gitlab-ci/container/build-llvm-spirv.sh
. .gitlab-ci/container/build-libclc.sh
. .gitlab-ci/container/container_pre_build.sh

View File

@@ -6,13 +6,13 @@ set -ex
git config --global user.email "mesa@example.com"
git config --global user.name "Mesa CI"
CROSVM_VERSION=1641c55bcc922588e24de73e9cca7b5e4005bd6d
CROSVM_VERSION=e3815e62d675ef436956a992e0ed58b7309c759d
git clone --single-branch -b main --no-checkout https://chromium.googlesource.com/crosvm/crosvm /platform/crosvm
pushd /platform/crosvm
git checkout "$CROSVM_VERSION"
git submodule update --init
VIRGLRENDERER_VERSION=d9c002fac153b834a2c17731f2b85c36e333e102
VIRGLRENDERER_VERSION=747c6ae5b194ca551a79958a9a86c42bddcc4553
rm -rf third_party/virglrenderer
git clone --single-branch -b main --no-checkout https://gitlab.freedesktop.org/virgl/virglrenderer.git third_party/virglrenderer
pushd third_party/virglrenderer
@@ -31,10 +31,10 @@ RUSTFLAGS='-L native=/usr/local/lib' cargo install \
--version 0.65.1 \
$EXTRA_CARGO_ARGS
CROSVM_USE_SYSTEM_MINIGBM=1 CROSVM_USE_SYSTEM_VIRGLRENDERER=1 RUSTFLAGS='-L native=/usr/local/lib' cargo install \
CROSVM_USE_SYSTEM_VIRGLRENDERER=1 RUSTFLAGS='-L native=/usr/local/lib' cargo install \
-j ${FDO_CI_CONCURRENT:-4} \
--locked \
--features 'default-no-sandbox gpu x virgl_renderer' \
--features 'default-no-sandbox gpu x virgl_renderer virgl_renderer_next' \
--path . \
--root /usr/local \
$EXTRA_CARGO_ARGS

View File

@@ -3,37 +3,31 @@
# When changing this file, you need to bump the following
# .gitlab-ci/image-tags.yml tags:
# DEBIAN_BASE_TAG
# DEBIAN_X86_64_TEST_ANDROID_TAG
# DEBIAN_X86_64_TEST_GL_TAG
# DEBIAN_X86_64_TEST_VK_TAG
# KERNEL_ROOTFS_TAG
set -ex
DEQP_RUNNER_VERSION=0.18.0
DEQP_RUNNER_GIT_URL="${DEQP_RUNNER_GIT_URL:-https://gitlab.freedesktop.org/mesa/deqp-runner.git}"
if [ -n "${DEQP_RUNNER_GIT_TAG}${DEQP_RUNNER_GIT_REV}" ]; then
# Build and install from source
DEQP_RUNNER_CARGO_ARGS="--git $DEQP_RUNNER_GIT_URL"
DEQP_RUNNER_CARGO_ARGS="--git ${DEQP_RUNNER_GIT_URL:-https://gitlab.freedesktop.org/anholt/deqp-runner.git}"
if [ -n "${DEQP_RUNNER_GIT_TAG}" ]; then
DEQP_RUNNER_CARGO_ARGS="--tag ${DEQP_RUNNER_GIT_TAG} ${DEQP_RUNNER_CARGO_ARGS}"
DEQP_RUNNER_GIT_CHECKOUT="$DEQP_RUNNER_GIT_TAG"
else
DEQP_RUNNER_CARGO_ARGS="--rev ${DEQP_RUNNER_GIT_REV} ${DEQP_RUNNER_CARGO_ARGS}"
DEQP_RUNNER_GIT_CHECKOUT="$DEQP_RUNNER_GIT_REV"
fi
DEQP_RUNNER_CARGO_ARGS="${DEQP_RUNNER_CARGO_ARGS} ${EXTRA_CARGO_ARGS}"
else
# Install from package registry
DEQP_RUNNER_CARGO_ARGS="--version ${DEQP_RUNNER_VERSION} ${EXTRA_CARGO_ARGS} -- deqp-runner"
DEQP_RUNNER_GIT_CHECKOUT="v$DEQP_RUNNER_VERSION"
fi
if [[ "$RUST_TARGET" != *-android ]]; then
if [ -z "$ANDROID_NDK_HOME" ]; then
cargo install --locked \
-j ${FDO_CI_CONCURRENT:-4} \
--root /usr/local \
@@ -41,7 +35,7 @@ if [[ "$RUST_TARGET" != *-android ]]; then
else
mkdir -p /deqp-runner
pushd /deqp-runner
git clone --branch "$DEQP_RUNNER_GIT_CHECKOUT" --depth 1 "$DEQP_RUNNER_GIT_URL" deqp-runner-git
git clone --branch v${DEQP_RUNNER_VERSION} --depth 1 https://gitlab.freedesktop.org/anholt/deqp-runner.git deqp-runner-git
pushd deqp-runner-git
cargo install --locked \
@@ -49,10 +43,10 @@ else
--root /usr/local --version 2.10.0 \
cargo-ndk
rustup target add $RUST_TARGET
RUSTFLAGS='-C target-feature=+crt-static' cargo ndk --target $RUST_TARGET build --release
rustup target add x86_64-linux-android
RUSTFLAGS='-C target-feature=+crt-static' cargo ndk --target x86_64-linux-android build
mv target/$RUST_TARGET/release/deqp-runner /deqp-runner
mv target/x86_64-linux-android/debug/deqp-runner /deqp-runner
cargo uninstall --locked \
--root /usr/local \

View File

@@ -10,15 +10,20 @@
set -ex -o pipefail
# See `deqp_build_targets` below for which release is used to produce which
# binary. Unless this comment has bitrotten:
# - the VK release produces `deqp-vk`,
# - the GL release produces `glcts`, and
# - the GLES release produces `deqp-gles*` and `deqp-egl`
DEQP_VERSION=vulkan-cts-1.3.7.0
DEQP_VK_VERSION=1.3.7.0
DEQP_GL_VERSION=4.6.4.0
DEQP_GLES_VERSION=3.2.10.0
git config --global user.email "mesa@example.com"
git config --global user.name "Mesa CI"
git clone \
https://github.com/KhronosGroup/VK-GL-CTS.git \
-b $DEQP_VERSION \
--depth 1 \
/VK-GL-CTS
pushd /VK-GL-CTS
mkdir -p /deqp
echo "dEQP base version $DEQP_VERSION" > /deqp/version-log
# Patches to VulkanCTS may come from commits in their repo (listed in
# cts_commits_to_backport) or patch files stored in our repo (in the patch
@@ -26,8 +31,7 @@ DEQP_GLES_VERSION=3.2.10.0
# Both list variables would have comments explaining the reasons behind the
# patches.
# shellcheck disable=SC2034
vk_cts_commits_to_backport=(
cts_commits_to_backport=(
# Take multiview into account for task shader inv. stats
22aa3f4c59f6e1d4daebd5a8c9c05bce6cd3b63b
@@ -39,106 +43,30 @@ vk_cts_commits_to_backport=(
# Fix several issues in dynamic rendering basic tests
c5453824b498c981c6ba42017d119f5de02a3e34
# Add setVisible for VulkanWindowDirectDrm
a8466bf6ea98f6cd6733849ad8081775318a3e3e
)
# shellcheck disable=SC2034
vk_cts_patch_files=(
# Derivate subgroup fix
# https://github.com/KhronosGroup/VK-GL-CTS/pull/442
build-deqp-vk_Use-subgroups-helper-in-derivate-tests.patch
build-deqp-vk_Add-missing-subgroup-support-checks-for-linear-derivate-tests.patch
)
if [ "${DEQP_TARGET}" = 'android' ]; then
vk_cts_patch_files+=(
build-deqp-vk_Allow-running-on-Android-from-the-command-line.patch
build-deqp-vk_Android-prints-to-stdout-instead-of-logcat.patch
)
fi
# shellcheck disable=SC2034
gl_cts_commits_to_backport=(
)
# shellcheck disable=SC2034
gl_cts_patch_files=(
)
if [ "${DEQP_TARGET}" = 'android' ]; then
gl_cts_patch_files+=(
build-deqp-gl_Allow-running-on-Android-from-the-command-line.patch
build-deqp-gl_Android-prints-to-stdout-instead-of-logcat.patch
)
fi
# shellcheck disable=SC2034
# GLES builds also EGL
gles_cts_commits_to_backport=(
# Implement support for the EGL_EXT_config_select_group extension
88ba9ac270db5be600b1ecacbc6d9db0c55d5be4
)
# shellcheck disable=SC2034
gles_cts_patch_files=(
)
if [ "${DEQP_TARGET}" = 'android' ]; then
gles_cts_patch_files+=(
build-deqp-gles_Allow-running-on-Android-from-the-command-line.patch
build-deqp-gles_Android-prints-to-stdout-instead-of-logcat.patch
)
fi
### Careful editing anything below this line
git config --global user.email "mesa@example.com"
git config --global user.name "Mesa CI"
# shellcheck disable=SC2153
case "${DEQP_API}" in
VK) DEQP_VERSION="vulkan-cts-$DEQP_VK_VERSION";;
GL) DEQP_VERSION="opengl-cts-$DEQP_GL_VERSION";;
GLES) DEQP_VERSION="opengl-es-cts-$DEQP_GLES_VERSION";;
esac
git clone \
https://github.com/KhronosGroup/VK-GL-CTS.git \
-b $DEQP_VERSION \
--depth 1 \
/VK-GL-CTS
pushd /VK-GL-CTS
mkdir -p /deqp
# shellcheck disable=SC2153
deqp_api=${DEQP_API,,}
cts_commits_to_backport="${deqp_api}_cts_commits_to_backport[@]"
for commit in "${!cts_commits_to_backport}"
for commit in "${cts_commits_to_backport[@]}"
do
PATCH_URL="https://github.com/KhronosGroup/VK-GL-CTS/commit/$commit.patch"
echo "Apply patch to ${DEQP_API} CTS from $PATCH_URL"
echo "Apply patch to VK-GL-CTS from $PATCH_URL"
curl -L --retry 4 -f --retry-all-errors --retry-delay 60 $PATCH_URL | \
git am -
done
cts_patch_files="${deqp_api}_cts_patch_files[@]"
for patch in "${!cts_patch_files}"
cts_patch_files=(
# Android specific patches.
build-deqp_Allow-running-on-Android-from-the-command-line.patch
build-deqp_Android-prints-to-stdout-instead-of-logcat.patch
)
for patch in "${cts_patch_files[@]}"
do
echo "Apply patch to ${DEQP_API} CTS from $patch"
echo "Apply patch to VK-GL-CTS from $patch"
git am < $OLDPWD/.gitlab-ci/container/patches/$patch
done
{
echo "dEQP base version $DEQP_VERSION"
echo "The following local patches are applied on top:"
git log --reverse --oneline $DEQP_VERSION.. --format=%s | sed 's/^/- /'
} > /deqp/version-$deqp_api
echo "The following local patches are applied on top:" >> /deqp/version-log
git log --reverse --oneline $DEQP_VERSION.. --format=%s | sed 's/^/- /' >> /deqp/version-log
# --insecure is due to SSL cert failures hitting sourceforge for zlib and
# libpng (sigh). The archives get their checksums checked anyway, and git
@@ -151,35 +79,26 @@ popd
pushd /deqp
if [ "${DEQP_API}" = 'GLES' ]; then
if [ "${DEQP_TARGET}" = 'android' ]; then
cmake -S /VK-GL-CTS -B . -G Ninja \
-DDEQP_TARGET=android \
-DCMAKE_BUILD_TYPE=Release \
$EXTRA_CMAKE_ARGS
mold --run ninja modules/egl/deqp-egl
mv /deqp/modules/egl/deqp-egl /deqp/modules/egl/deqp-egl-android
else
if [ "${DEQP_TARGET}" != 'android' ]; then
# When including EGL/X11 testing, do that build first and save off its
# deqp-egl binary.
cmake -S /VK-GL-CTS -B . -G Ninja \
-DDEQP_TARGET=x11_egl_glx \
-DCMAKE_BUILD_TYPE=Release \
$EXTRA_CMAKE_ARGS
mold --run ninja modules/egl/deqp-egl
ninja modules/egl/deqp-egl
mv /deqp/modules/egl/deqp-egl /deqp/modules/egl/deqp-egl-x11
cmake -S /VK-GL-CTS -B . -G Ninja \
-DDEQP_TARGET=wayland \
-DCMAKE_BUILD_TYPE=Release \
$EXTRA_CMAKE_ARGS
mold --run ninja modules/egl/deqp-egl
ninja modules/egl/deqp-egl
mv /deqp/modules/egl/deqp-egl /deqp/modules/egl/deqp-egl-wayland
fi
fi
cmake -S /VK-GL-CTS -B . -G Ninja \
-DDEQP_TARGET=${DEQP_TARGET} \
-DDEQP_TARGET=${DEQP_TARGET:-default} \
-DCMAKE_BUILD_TYPE=Release \
$EXTRA_CMAKE_ARGS
@@ -190,58 +109,35 @@ if [ "${DEQP_TARGET}" = 'default' ]; then
grep -q DEQP_SUPPORT_XCB=1 build.ninja
fi
deqp_build_targets=()
case "${DEQP_API}" in
VK)
deqp_build_targets+=(deqp-vk)
;;
GL)
deqp_build_targets+=(glcts)
;;
GLES)
deqp_build_targets+=(deqp-gles{2,3,31})
# deqp-egl also comes from this build, but it is handled separately above.
;;
esac
if [ "${DEQP_TARGET}" != 'android' ]; then
deqp_build_targets+=(testlog-to-xml)
deqp_build_targets+=(testlog-to-csv)
deqp_build_targets+=(testlog-to-junit)
mold --run ninja
if [ "${DEQP_TARGET}" = 'android' ]; then
mv /deqp/modules/egl/deqp-egl /deqp/modules/egl/deqp-egl-android
fi
mold --run ninja "${deqp_build_targets[@]}"
# Copy out the mustpass lists we want.
mkdir /deqp/mustpass
for mustpass in $(< /VK-GL-CTS/external/vulkancts/mustpass/main/vk-default.txt) ; do
cat /VK-GL-CTS/external/vulkancts/mustpass/main/$mustpass \
>> /deqp/mustpass/vk-master.txt
done
if [ "${DEQP_TARGET}" != 'android' ]; then
# Copy out the mustpass lists we want.
mkdir -p /deqp/mustpass
if [ "${DEQP_API}" = 'VK' ]; then
for mustpass in $(< /VK-GL-CTS/external/vulkancts/mustpass/main/vk-default.txt) ; do
cat /VK-GL-CTS/external/vulkancts/mustpass/main/$mustpass \
>> /deqp/mustpass/vk-master.txt
done
fi
if [ "${DEQP_API}" = 'GL' ]; then
cp \
/VK-GL-CTS/external/openglcts/data/mustpass/gl/khronos_mustpass/4.6.1.x/*-main.txt \
/deqp/mustpass/
cp \
/VK-GL-CTS/external/openglcts/data/mustpass/gl/khronos_mustpass_single/4.6.1.x/*-single.txt \
/deqp/mustpass/
fi
if [ "${DEQP_API}" = 'GLES' ]; then
cp \
/VK-GL-CTS/external/openglcts/data/mustpass/gles/aosp_mustpass/3.2.6.x/*.txt \
/deqp/mustpass/
cp \
/VK-GL-CTS/external/openglcts/data/mustpass/egl/aosp_mustpass/3.2.6.x/egl-main.txt \
/deqp/mustpass/
cp \
/VK-GL-CTS/external/openglcts/data/mustpass/gles/khronos_mustpass/3.2.6.x/*-main.txt \
/deqp/mustpass/
fi
cp \
/deqp/external/openglcts/modules/gl_cts/data/mustpass/gles/aosp_mustpass/3.2.6.x/*.txt \
/deqp/mustpass/.
cp \
/deqp/external/openglcts/modules/gl_cts/data/mustpass/egl/aosp_mustpass/3.2.6.x/egl-master.txt \
/deqp/mustpass/.
cp \
/deqp/external/openglcts/modules/gl_cts/data/mustpass/gles/khronos_mustpass/3.2.6.x/*-master.txt \
/deqp/mustpass/.
cp \
/deqp/external/openglcts/modules/gl_cts/data/mustpass/gl/khronos_mustpass/4.6.1.x/*-master.txt \
/deqp/mustpass/.
cp \
/deqp/external/openglcts/modules/gl_cts/data/mustpass/gl/khronos_mustpass_single/4.6.1.x/*-single.txt \
/deqp/mustpass/.
# Save *some* executor utils, but otherwise strip things down
# to reduct deqp build size:
@@ -252,7 +148,7 @@ if [ "${DEQP_TARGET}" != 'android' ]; then
fi
# Remove other mustpass files, since we saved off the ones we wanted to conventient locations above.
rm -rf /deqp/external/**/mustpass/
rm -rf /deqp/external/openglcts/modules/gl_cts/data/mustpass
rm -rf /deqp/external/vulkancts/modules/vulkan/vk-master*
rm -rf /deqp/external/vulkancts/modules/vulkan/vk-default
@@ -261,15 +157,9 @@ rm -rf /deqp/modules/internal
rm -rf /deqp/execserver
rm -rf /deqp/framework
find . -depth \( -iname '*cmake*' -o -name '*ninja*' -o -name '*.o' -o -name '*.a' \) -exec rm -rf {} \;
if [ "${DEQP_API}" = 'VK' ]; then
${STRIP_CMD:-strip} external/vulkancts/modules/vulkan/deqp-vk
fi
if [ "${DEQP_API}" = 'GL' ]; then
${STRIP_CMD:-strip} external/openglcts/modules/glcts
fi
if [ "${DEQP_API}" = 'GLES' ]; then
${STRIP_CMD:-strip} modules/*/deqp-*
fi
${STRIP_CMD:-strip} external/vulkancts/modules/vulkan/deqp-vk
${STRIP_CMD:-strip} external/openglcts/modules/glcts
${STRIP_CMD:-strip} modules/*/deqp-*
du -sh ./*
rm -rf /VK-GL-CTS
popd

View File

@@ -2,14 +2,7 @@
set -ex
# When changing this file, you need to bump the following
# .gitlab-ci/image-tags.yml tags:
# DEBIAN_BASE_TAG
# DEBIAN_BUILD_TAG
# FEDORA_X86_64_BUILD_TAG
# KERNEL_ROOTFS_TAG
MOLD_VERSION="2.4.1"
MOLD_VERSION="1.11.0"
git clone -b v"$MOLD_VERSION" --single-branch --depth 1 https://github.com/rui314/mold.git
pushd mold

View File

@@ -1,25 +0,0 @@
#!/usr/bin/env bash
# When changing this file, you need to bump the following
# .gitlab-ci/image-tags.yml tags:
# DEBIAN_X86_64_TEST_GL_TAG
set -ex -o pipefail
### Careful editing anything below this line
git config --global user.email "mesa@example.com"
git config --global user.name "Mesa CI"
git clone https://github.com/axeldavy/Xnine.git /Xnine
mkdir /Xnine/build
pushd /Xnine/build
git checkout c64753d224c08006bcdcfa7880ada826f27164b1
cmake .. -DBUILD_TESTS=1 -DWITH_DRI3=1 -DD3DADAPTER9_LOCATION=/install/lib/d3d/d3dadapter9.so
make
mkdir -p /NineTests/
mv NineTests/NineTests /NineTests/
popd
rm -rf /Xnine

View File

@@ -8,7 +8,7 @@ set -ex
# DEBIAN_X86_64_TEST_VK_TAG
# KERNEL_ROOTFS_TAG
REV="1e631479c0b477006dd7561c55e06269d2878d8d"
REV="f7db20b03de6896d013826c0a731bc4417c1a5a0"
git clone https://gitlab.freedesktop.org/mesa/piglit.git --single-branch --no-checkout /piglit
pushd /piglit

View File

@@ -7,7 +7,7 @@
set -ex
VALIDATION_TAG="snapshot-2024wk06"
VALIDATION_TAG="v1.3.269"
git clone -b "$VALIDATION_TAG" --single-branch --depth 1 https://github.com/KhronosGroup/Vulkan-ValidationLayers.git
pushd Vulkan-ValidationLayers

View File

@@ -52,8 +52,7 @@ if [[ $arch != "armhf" ]]; then
# We don't need clang-format for the crossbuilds, but the installed amd64
# package will conflict with libclang. Uninstall clang-format (and its
# problematic dependency) to fix.
apt-get remove -y "clang-format-${LLVM_VERSION}" "libclang-cpp${LLVM_VERSION}" \
"llvm-${LLVM_VERSION}-runtime" "llvm-${LLVM_VERSION}-linker-tools"
apt-get remove -y "clang-format-${LLVM_VERSION}" "libclang-cpp${LLVM_VERSION}"
# llvm-*-tools:$arch conflicts with python3:amd64. Install dependencies only
# with apt-get, then force-install llvm-*-{dev,tools}:$arch with dpkg to get

View File

@@ -27,7 +27,6 @@ DEPS=(
cmake
curl
fastboot
flatbuffers-compiler
flex
g++
git
@@ -37,7 +36,6 @@ DEPS=(
libdrm-dev
libelf-dev
libexpat1-dev
libflatbuffers-dev
libvulkan-dev
libx11-dev
libx11-xcb-dev
@@ -52,7 +50,6 @@ DEPS=(
libxext-dev
libxrandr-dev
libxshmfence-dev
libxtensor-dev
libxxf86vm-dev
libwayland-dev
libwayland-egl-backend-dev

View File

@@ -25,12 +25,10 @@ DEPS=(
bison
ccache
curl
"clang-${LLVM_VERSION}"
"clang-format-${LLVM_VERSION}"
dpkg-cross
findutils
flex
flatbuffers-compiler
g++
cmake
gcc
@@ -43,7 +41,6 @@ DEPS=(
libelf-dev
libepoxy-dev
libexpat1-dev
libflatbuffers-dev
libgtk-3-dev
"libllvm${LLVM_VERSION}"
libomxil-bellagio-dev
@@ -59,7 +56,6 @@ DEPS=(
libxrandr-dev
libxrender-dev
libxshmfence-dev
libxtensor-dev
libxxf86vm-dev
libwayland-egl-backend-dev
make
@@ -87,10 +83,6 @@ apt-get update
apt-get install -y --no-remove "${DEPS[@]}" "${EPHEMERAL[@]}" \
$EXTRA_LOCAL_PACKAGES
. .gitlab-ci/container/build-llvm-spirv.sh
. .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

View File

@@ -75,6 +75,10 @@ tar -xvf $XORGMACROS_VERSION.tar.bz2 && rm $XORGMACROS_VERSION.tar.bz2
cd $XORGMACROS_VERSION; ./configure; make install; cd ..
rm -rf $XORGMACROS_VERSION
. .gitlab-ci/container/build-llvm-spirv.sh
. .gitlab-ci/container/build-libclc.sh
. .gitlab-ci/container/build-wayland.sh
. .gitlab-ci/container/build-shader-db.sh

View File

@@ -41,7 +41,6 @@ rm "$ndk.zip"
############### Build dEQP runner
export ANDROID_NDK_HOME=/$ndk
export RUST_TARGET=x86_64-linux-android
. .gitlab-ci/container/build-rust.sh
. .gitlab-ci/container/build-deqp-runner.sh
@@ -50,12 +49,6 @@ rm -rf /root/.rustup
############### Build dEQP GL
DEQP_API=GL \
DEQP_TARGET="android" \
EXTRA_CMAKE_ARGS="-DDEQP_TARGET_TOOLCHAIN=ndk-modern -DANDROID_NDK_PATH=/$ndk -DANDROID_ABI=x86_64 -DDE_ANDROID_API=28" \
. .gitlab-ci/container/build-deqp.sh
DEQP_API=GLES \
DEQP_TARGET="android" \
EXTRA_CMAKE_ARGS="-DDEQP_TARGET_TOOLCHAIN=ndk-modern -DANDROID_NDK_PATH=/$ndk -DANDROID_ABI=x86_64 -DDE_ANDROID_API=28" \
. .gitlab-ci/container/build-deqp.sh
@@ -80,14 +73,8 @@ popd
############### Building and installing Debian package ...
ANDROID_CUTTLEFISH_VERSION=f6494d9fbeaa9974b56923e3029909e5d5f440dd
mkdir android-cuttlefish
git clone --depth 1 https://github.com/google/android-cuttlefish.git
pushd android-cuttlefish
git init
git remote add origin https://github.com/google/android-cuttlefish.git
git fetch --depth 1 origin "$ANDROID_CUTTLEFISH_VERSION"
git checkout FETCH_HEAD
pushd base
dpkg-buildpackage -uc -us

View File

@@ -22,7 +22,6 @@ EPHEMERAL=(
"libclang-cpp${LLVM_VERSION}-dev"
libdrm-dev
libgles2-mesa-dev
libgtest-dev
libpciaccess-dev
libpng-dev
libudev-dev
@@ -31,9 +30,6 @@ EPHEMERAL=(
libwayland-dev
libx11-xcb-dev
libxcb-dri2-0-dev
libxcb-dri3-dev
libxcb-present-dev
libxfixes-dev
libxkbcommon-dev
libxrandr-dev
libxrender-dev
@@ -50,7 +46,6 @@ EPHEMERAL=(
DEPS=(
clinfo
iptables
kmod
"libclang-common-${LLVM_VERSION}-dev"
"libclang-cpp${LLVM_VERSION}"
libcap2
@@ -65,7 +60,6 @@ DEPS=(
spirv-tools
sysvinit-core
weston
xwayland
)
apt-get update
@@ -82,13 +76,7 @@ PIGLIT_OPTS="-DPIGLIT_BUILD_GLX_TESTS=ON -DPIGLIT_BUILD_CL_TESTS=ON -DPIGLIT_BUI
############### Build dEQP GL
DEQP_API=GL \
DEQP_TARGET=surfaceless \
. .gitlab-ci/container/build-deqp.sh
DEQP_API=GLES \
DEQP_TARGET=surfaceless \
. .gitlab-ci/container/build-deqp.sh
DEQP_TARGET=surfaceless . .gitlab-ci/container/build-deqp.sh
############### Build apitrace
@@ -98,10 +86,6 @@ DEQP_TARGET=surfaceless \
. .gitlab-ci/container/build-vulkan-validation.sh
############### Build nine tests
. .gitlab-ci/container/build-ninetests.sh
############### Uninstall the build software
apt-get purge -y "${EPHEMERAL[@]}"

View File

@@ -103,8 +103,6 @@ PIGLIT_BUILD_TARGETS="piglit_replayer" . .gitlab-ci/container/build-piglit.sh
############### Build dEQP VK
DEQP_API=VK \
DEQP_TARGET=default \
. .gitlab-ci/container/build-deqp.sh
############### Build apitrace

View File

@@ -30,7 +30,6 @@ DEPS=(
ccache
clang-devel
flex
flatbuffers-compiler
gcc
gcc-c++
gettext
@@ -42,7 +41,6 @@ DEPS=(
"pkgconfig(SPIRV-Tools)"
"pkgconfig(dri2proto)"
"pkgconfig(expat)"
"pkgconfig(flatbuffers)"
"pkgconfig(glproto)"
"pkgconfig(libclc)"
"pkgconfig(libelf)"
@@ -68,7 +66,6 @@ DEPS=(
"pkgconfig(xfixes)"
"pkgconfig(xrandr)"
"pkgconfig(xshmfence)"
"pkgconfig(xtensor)"
"pkgconfig(xxf86vm)"
"pkgconfig(zlib)"
procps-ng

View File

@@ -316,6 +316,7 @@ fedora/x86_64_build:
.kernel+rootfs:
timeout: 2h # 24.0-only change
extends:
- .container+build-rules
- .debian-container

View File

@@ -272,17 +272,7 @@ mv /usr/local/bin/*-runner $ROOTFS/usr/bin/.
############### Build dEQP
DEQP_API=GL \
DEQP_TARGET=surfaceless \
. .gitlab-ci/container/build-deqp.sh
DEQP_API=GLES \
DEQP_TARGET=surfaceless \
. .gitlab-ci/container/build-deqp.sh
DEQP_API=VK \
DEQP_TARGET=default \
. .gitlab-ci/container/build-deqp.sh
DEQP_TARGET=surfaceless . .gitlab-ci/container/build-deqp.sh
mv /deqp $ROOTFS/.

View File

@@ -1,182 +0,0 @@
From dc97ee83a813f6b170079ddf2a04bbb06221a5a7 Mon Sep 17 00:00:00 2001
From: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Date: Fri, 26 Aug 2022 18:24:27 +0200
Subject: [PATCH 1/2] Allow running on Android from the command line
For testing the Android EGL platform without having to go via the
Android activity manager, build deqp-egl.
Tests that render to native windows are unsupported, as command line
programs cannot create windows on Android.
$ cmake -S . -B build/ -DDEQP_TARGET=android -DDEQP_TARGET_TOOLCHAIN=ndk-modern -DCMAKE_C_FLAGS=-Werror -DCMAKE_CXX_FLAGS=-Werror -DANDROID_NDK_PATH=./android-ndk-r21d -DANDROID_ABI=x86_64 -DDE_ANDROID_API=28 -DGLCTS_GTF_TARGET=gles32 -G Ninja
$ ninja -C build modules/egl/deqp-egl
Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
---
CMakeLists.txt | 38 ++-----------------
.../android/tcuAndroidNativeActivity.cpp | 36 +++++++++---------
.../platform/android/tcuAndroidPlatform.cpp | 12 +++++-
3 files changed, 34 insertions(+), 52 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index eb58cc7ba..98b8fc6cc 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -272,7 +272,7 @@ include_directories(
external/vulkancts/framework/vulkan
)
-if (DE_OS_IS_ANDROID OR DE_OS_IS_IOS)
+if (DE_OS_IS_IOS)
# On Android deqp modules are compiled as libraries and linked into final .so
set(DEQP_MODULE_LIBRARIES )
set(DEQP_MODULE_ENTRY_POINTS )
@@ -316,7 +316,7 @@ macro (add_deqp_module MODULE_NAME SRCS LIBS EXECLIBS ENTRY)
set(DEQP_MODULE_LIBRARIES ${DEQP_MODULE_LIBRARIES} PARENT_SCOPE)
set(DEQP_MODULE_ENTRY_POINTS ${DEQP_MODULE_ENTRY_POINTS} PARENT_SCOPE)
- if (NOT DE_OS_IS_ANDROID AND NOT DE_OS_IS_IOS)
+ if (NOT DE_OS_IS_IOS)
# Executable target
add_executable(${MODULE_NAME} ${PROJECT_SOURCE_DIR}/framework/platform/tcuMain.cpp ${ENTRY})
target_link_libraries(${MODULE_NAME} PUBLIC "${EXECLIBS}" "${MODULE_NAME}${MODULE_LIB_TARGET_POSTFIX}")
@@ -338,7 +338,7 @@ macro (add_deqp_module_skip_android MODULE_NAME SRCS LIBS EXECLIBS ENTRY)
add_library("${MODULE_NAME}${MODULE_LIB_TARGET_POSTFIX}" STATIC ${SRCS})
target_link_libraries("${MODULE_NAME}${MODULE_LIB_TARGET_POSTFIX}" ${LIBS})
- if (NOT DE_OS_IS_ANDROID AND NOT DE_OS_IS_IOS)
+ if (NOT DE_OS_IS_IOS)
# Executable target
add_executable(${MODULE_NAME} ${PROJECT_SOURCE_DIR}/framework/platform/tcuMain.cpp ${ENTRY})
target_link_libraries(${MODULE_NAME} PUBLIC "${EXECLIBS}" "${MODULE_NAME}${MODULE_LIB_TARGET_POSTFIX}")
@@ -390,37 +390,7 @@ add_subdirectory(external/vulkancts/vkscpc ${MAYBE_EXCLUDE_FROM_ALL})
add_subdirectory(external/openglcts ${MAYBE_EXCLUDE_FROM_ALL})
# Single-binary targets
-if (DE_OS_IS_ANDROID)
- include_directories(executor)
- include_directories(${PROJECT_BINARY_DIR}/external/vulkancts/framework/vulkan)
-
- set(DEQP_SRCS
- framework/platform/android/tcuAndroidMain.cpp
- framework/platform/android/tcuAndroidJNI.cpp
- framework/platform/android/tcuAndroidPlatformCapabilityQueryJNI.cpp
- framework/platform/android/tcuTestLogParserJNI.cpp
- ${DEQP_MODULE_ENTRY_POINTS}
- )
-
- set(DEQP_LIBS
- tcutil-platform
- xecore
- ${DEQP_MODULE_LIBRARIES}
- )
-
- add_library(deqp SHARED ${DEQP_SRCS})
- target_link_libraries(deqp ${DEQP_LIBS})
-
- # Separate out the debug information because it's enormous
- add_custom_command(TARGET deqp POST_BUILD
- COMMAND ${CMAKE_STRIP} --only-keep-debug -o $<TARGET_FILE:deqp>.debug $<TARGET_FILE:deqp>
- COMMAND ${CMAKE_STRIP} -g $<TARGET_FILE:deqp>)
-
- # Needed by OpenGL CTS that defines its own activity but depends on
- # common Android support code.
- target_include_directories(deqp PRIVATE framework/platform/android)
-
-elseif (DE_OS_IS_IOS)
+if (DE_OS_IS_IOS)
# Code sign identity
set(DEQP_IOS_CODE_SIGN_IDENTITY "drawElements" CACHE STRING "Code sign identity for iOS build")
diff --git a/framework/platform/android/tcuAndroidNativeActivity.cpp b/framework/platform/android/tcuAndroidNativeActivity.cpp
index 6f8cd8fc5..b83e30f41 100644
--- a/framework/platform/android/tcuAndroidNativeActivity.cpp
+++ b/framework/platform/android/tcuAndroidNativeActivity.cpp
@@ -116,23 +116,25 @@ namespace Android
NativeActivity::NativeActivity (ANativeActivity* activity)
: m_activity(activity)
{
- activity->instance = (void*)this;
- activity->callbacks->onStart = onStartCallback;
- activity->callbacks->onResume = onResumeCallback;
- activity->callbacks->onSaveInstanceState = onSaveInstanceStateCallback;
- activity->callbacks->onPause = onPauseCallback;
- activity->callbacks->onStop = onStopCallback;
- activity->callbacks->onDestroy = onDestroyCallback;
- activity->callbacks->onWindowFocusChanged = onWindowFocusChangedCallback;
- activity->callbacks->onNativeWindowCreated = onNativeWindowCreatedCallback;
- activity->callbacks->onNativeWindowResized = onNativeWindowResizedCallback;
- activity->callbacks->onNativeWindowRedrawNeeded = onNativeWindowRedrawNeededCallback;
- activity->callbacks->onNativeWindowDestroyed = onNativeWindowDestroyedCallback;
- activity->callbacks->onInputQueueCreated = onInputQueueCreatedCallback;
- activity->callbacks->onInputQueueDestroyed = onInputQueueDestroyedCallback;
- activity->callbacks->onContentRectChanged = onContentRectChangedCallback;
- activity->callbacks->onConfigurationChanged = onConfigurationChangedCallback;
- activity->callbacks->onLowMemory = onLowMemoryCallback;
+ if (activity) {
+ activity->instance = (void*)this;
+ activity->callbacks->onStart = onStartCallback;
+ activity->callbacks->onResume = onResumeCallback;
+ activity->callbacks->onSaveInstanceState = onSaveInstanceStateCallback;
+ activity->callbacks->onPause = onPauseCallback;
+ activity->callbacks->onStop = onStopCallback;
+ activity->callbacks->onDestroy = onDestroyCallback;
+ activity->callbacks->onWindowFocusChanged = onWindowFocusChangedCallback;
+ activity->callbacks->onNativeWindowCreated = onNativeWindowCreatedCallback;
+ activity->callbacks->onNativeWindowResized = onNativeWindowResizedCallback;
+ activity->callbacks->onNativeWindowRedrawNeeded = onNativeWindowRedrawNeededCallback;
+ activity->callbacks->onNativeWindowDestroyed = onNativeWindowDestroyedCallback;
+ activity->callbacks->onInputQueueCreated = onInputQueueCreatedCallback;
+ activity->callbacks->onInputQueueDestroyed = onInputQueueDestroyedCallback;
+ activity->callbacks->onContentRectChanged = onContentRectChangedCallback;
+ activity->callbacks->onConfigurationChanged = onConfigurationChangedCallback;
+ activity->callbacks->onLowMemory = onLowMemoryCallback;
+ }
}
NativeActivity::~NativeActivity (void)
diff --git a/framework/platform/android/tcuAndroidPlatform.cpp b/framework/platform/android/tcuAndroidPlatform.cpp
index b8a35898c..cf02e6b70 100644
--- a/framework/platform/android/tcuAndroidPlatform.cpp
+++ b/framework/platform/android/tcuAndroidPlatform.cpp
@@ -22,6 +22,7 @@
*//*--------------------------------------------------------------------*/
#include "tcuAndroidPlatform.hpp"
+#include "tcuAndroidNativeActivity.hpp"
#include "tcuAndroidUtil.hpp"
#include "gluRenderContext.hpp"
#include "egluNativeDisplay.hpp"
@@ -170,7 +171,7 @@ eglu::NativeWindow* NativeWindowFactory::createWindow (const eglu::WindowParams&
Window* window = m_windowRegistry.tryAcquireWindow();
if (!window)
- throw ResourceError("Native window is not available", DE_NULL, __FILE__, __LINE__);
+ throw NotSupportedError("Native window is not available", DE_NULL, __FILE__, __LINE__);
return new NativeWindow(window, params.width, params.height, format);
}
@@ -292,6 +293,9 @@ static size_t getTotalSystemMemory (ANativeActivity* activity)
try
{
+ if (!activity)
+ throw tcu::InternalError("No activity (running from command line?");
+
const size_t totalMemory = getTotalAndroidSystemMemory(activity);
print("Device has %.2f MiB of system memory\n", static_cast<double>(totalMemory) / static_cast<double>(MiB));
return totalMemory;
@@ -388,3 +392,9 @@ bool Platform::hasDisplay (vk::wsi::Type wsiType) const
} // Android
} // tcu
+
+tcu::Platform* createPlatform (void)
+{
+ tcu::Android::NativeActivity activity(NULL);
+ return new tcu::Android::Platform(activity);
+}
--
2.42.0

View File

@@ -1,182 +0,0 @@
From dc97ee83a813f6b170079ddf2a04bbb06221a5a7 Mon Sep 17 00:00:00 2001
From: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Date: Fri, 26 Aug 2022 18:24:27 +0200
Subject: [PATCH 1/2] Allow running on Android from the command line
For testing the Android EGL platform without having to go via the
Android activity manager, build deqp-egl.
Tests that render to native windows are unsupported, as command line
programs cannot create windows on Android.
$ cmake -S . -B build/ -DDEQP_TARGET=android -DDEQP_TARGET_TOOLCHAIN=ndk-modern -DCMAKE_C_FLAGS=-Werror -DCMAKE_CXX_FLAGS=-Werror -DANDROID_NDK_PATH=./android-ndk-r21d -DANDROID_ABI=x86_64 -DDE_ANDROID_API=28 -DGLCTS_GTF_TARGET=gles32 -G Ninja
$ ninja -C build modules/egl/deqp-egl
Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
---
CMakeLists.txt | 38 ++-----------------
.../android/tcuAndroidNativeActivity.cpp | 36 +++++++++---------
.../platform/android/tcuAndroidPlatform.cpp | 12 +++++-
3 files changed, 34 insertions(+), 52 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index eb58cc7ba..98b8fc6cc 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -272,7 +272,7 @@ include_directories(
external/vulkancts/framework/vulkan
)
-if (DE_OS_IS_ANDROID OR DE_OS_IS_IOS)
+if (DE_OS_IS_IOS)
# On Android deqp modules are compiled as libraries and linked into final .so
set(DEQP_MODULE_LIBRARIES )
set(DEQP_MODULE_ENTRY_POINTS )
@@ -316,7 +316,7 @@ macro (add_deqp_module MODULE_NAME SRCS LIBS EXECLIBS ENTRY)
set(DEQP_MODULE_LIBRARIES ${DEQP_MODULE_LIBRARIES} PARENT_SCOPE)
set(DEQP_MODULE_ENTRY_POINTS ${DEQP_MODULE_ENTRY_POINTS} PARENT_SCOPE)
- if (NOT DE_OS_IS_ANDROID AND NOT DE_OS_IS_IOS)
+ if (NOT DE_OS_IS_IOS)
# Executable target
add_executable(${MODULE_NAME} ${PROJECT_SOURCE_DIR}/framework/platform/tcuMain.cpp ${ENTRY})
target_link_libraries(${MODULE_NAME} PUBLIC "${EXECLIBS}" "${MODULE_NAME}${MODULE_LIB_TARGET_POSTFIX}")
@@ -338,7 +338,7 @@ macro (add_deqp_module_skip_android MODULE_NAME SRCS LIBS EXECLIBS ENTRY)
add_library("${MODULE_NAME}${MODULE_LIB_TARGET_POSTFIX}" STATIC ${SRCS})
target_link_libraries("${MODULE_NAME}${MODULE_LIB_TARGET_POSTFIX}" ${LIBS})
- if (NOT DE_OS_IS_ANDROID AND NOT DE_OS_IS_IOS)
+ if (NOT DE_OS_IS_IOS)
# Executable target
add_executable(${MODULE_NAME} ${PROJECT_SOURCE_DIR}/framework/platform/tcuMain.cpp ${ENTRY})
target_link_libraries(${MODULE_NAME} PUBLIC "${EXECLIBS}" "${MODULE_NAME}${MODULE_LIB_TARGET_POSTFIX}")
@@ -390,37 +390,7 @@ add_subdirectory(external/vulkancts/vkscpc ${MAYBE_EXCLUDE_FROM_ALL})
add_subdirectory(external/openglcts ${MAYBE_EXCLUDE_FROM_ALL})
# Single-binary targets
-if (DE_OS_IS_ANDROID)
- include_directories(executor)
- include_directories(${PROJECT_BINARY_DIR}/external/vulkancts/framework/vulkan)
-
- set(DEQP_SRCS
- framework/platform/android/tcuAndroidMain.cpp
- framework/platform/android/tcuAndroidJNI.cpp
- framework/platform/android/tcuAndroidPlatformCapabilityQueryJNI.cpp
- framework/platform/android/tcuTestLogParserJNI.cpp
- ${DEQP_MODULE_ENTRY_POINTS}
- )
-
- set(DEQP_LIBS
- tcutil-platform
- xecore
- ${DEQP_MODULE_LIBRARIES}
- )
-
- add_library(deqp SHARED ${DEQP_SRCS})
- target_link_libraries(deqp ${DEQP_LIBS})
-
- # Separate out the debug information because it's enormous
- add_custom_command(TARGET deqp POST_BUILD
- COMMAND ${CMAKE_STRIP} --only-keep-debug -o $<TARGET_FILE:deqp>.debug $<TARGET_FILE:deqp>
- COMMAND ${CMAKE_STRIP} -g $<TARGET_FILE:deqp>)
-
- # Needed by OpenGL CTS that defines its own activity but depends on
- # common Android support code.
- target_include_directories(deqp PRIVATE framework/platform/android)
-
-elseif (DE_OS_IS_IOS)
+if (DE_OS_IS_IOS)
# Code sign identity
set(DEQP_IOS_CODE_SIGN_IDENTITY "drawElements" CACHE STRING "Code sign identity for iOS build")
diff --git a/framework/platform/android/tcuAndroidNativeActivity.cpp b/framework/platform/android/tcuAndroidNativeActivity.cpp
index 6f8cd8fc5..b83e30f41 100644
--- a/framework/platform/android/tcuAndroidNativeActivity.cpp
+++ b/framework/platform/android/tcuAndroidNativeActivity.cpp
@@ -116,23 +116,25 @@ namespace Android
NativeActivity::NativeActivity (ANativeActivity* activity)
: m_activity(activity)
{
- activity->instance = (void*)this;
- activity->callbacks->onStart = onStartCallback;
- activity->callbacks->onResume = onResumeCallback;
- activity->callbacks->onSaveInstanceState = onSaveInstanceStateCallback;
- activity->callbacks->onPause = onPauseCallback;
- activity->callbacks->onStop = onStopCallback;
- activity->callbacks->onDestroy = onDestroyCallback;
- activity->callbacks->onWindowFocusChanged = onWindowFocusChangedCallback;
- activity->callbacks->onNativeWindowCreated = onNativeWindowCreatedCallback;
- activity->callbacks->onNativeWindowResized = onNativeWindowResizedCallback;
- activity->callbacks->onNativeWindowRedrawNeeded = onNativeWindowRedrawNeededCallback;
- activity->callbacks->onNativeWindowDestroyed = onNativeWindowDestroyedCallback;
- activity->callbacks->onInputQueueCreated = onInputQueueCreatedCallback;
- activity->callbacks->onInputQueueDestroyed = onInputQueueDestroyedCallback;
- activity->callbacks->onContentRectChanged = onContentRectChangedCallback;
- activity->callbacks->onConfigurationChanged = onConfigurationChangedCallback;
- activity->callbacks->onLowMemory = onLowMemoryCallback;
+ if (activity) {
+ activity->instance = (void*)this;
+ activity->callbacks->onStart = onStartCallback;
+ activity->callbacks->onResume = onResumeCallback;
+ activity->callbacks->onSaveInstanceState = onSaveInstanceStateCallback;
+ activity->callbacks->onPause = onPauseCallback;
+ activity->callbacks->onStop = onStopCallback;
+ activity->callbacks->onDestroy = onDestroyCallback;
+ activity->callbacks->onWindowFocusChanged = onWindowFocusChangedCallback;
+ activity->callbacks->onNativeWindowCreated = onNativeWindowCreatedCallback;
+ activity->callbacks->onNativeWindowResized = onNativeWindowResizedCallback;
+ activity->callbacks->onNativeWindowRedrawNeeded = onNativeWindowRedrawNeededCallback;
+ activity->callbacks->onNativeWindowDestroyed = onNativeWindowDestroyedCallback;
+ activity->callbacks->onInputQueueCreated = onInputQueueCreatedCallback;
+ activity->callbacks->onInputQueueDestroyed = onInputQueueDestroyedCallback;
+ activity->callbacks->onContentRectChanged = onContentRectChangedCallback;
+ activity->callbacks->onConfigurationChanged = onConfigurationChangedCallback;
+ activity->callbacks->onLowMemory = onLowMemoryCallback;
+ }
}
NativeActivity::~NativeActivity (void)
diff --git a/framework/platform/android/tcuAndroidPlatform.cpp b/framework/platform/android/tcuAndroidPlatform.cpp
index b8a35898c..cf02e6b70 100644
--- a/framework/platform/android/tcuAndroidPlatform.cpp
+++ b/framework/platform/android/tcuAndroidPlatform.cpp
@@ -22,6 +22,7 @@
*//*--------------------------------------------------------------------*/
#include "tcuAndroidPlatform.hpp"
+#include "tcuAndroidNativeActivity.hpp"
#include "tcuAndroidUtil.hpp"
#include "gluRenderContext.hpp"
#include "egluNativeDisplay.hpp"
@@ -170,7 +171,7 @@ eglu::NativeWindow* NativeWindowFactory::createWindow (const eglu::WindowParams&
Window* window = m_windowRegistry.tryAcquireWindow();
if (!window)
- throw ResourceError("Native window is not available", DE_NULL, __FILE__, __LINE__);
+ throw NotSupportedError("Native window is not available", DE_NULL, __FILE__, __LINE__);
return new NativeWindow(window, params.width, params.height, format);
}
@@ -292,6 +293,9 @@ static size_t getTotalSystemMemory (ANativeActivity* activity)
try
{
+ if (!activity)
+ throw tcu::InternalError("No activity (running from command line?");
+
const size_t totalMemory = getTotalAndroidSystemMemory(activity);
print("Device has %.2f MiB of system memory\n", static_cast<double>(totalMemory) / static_cast<double>(MiB));
return totalMemory;
@@ -388,3 +392,9 @@ bool Platform::hasDisplay (vk::wsi::Type wsiType) const
} // Android
} // tcu
+
+tcu::Platform* createPlatform (void)
+{
+ tcu::Android::NativeActivity activity(NULL);
+ return new tcu::Android::Platform(activity);
+}
--
2.42.0

View File

@@ -1,26 +0,0 @@
From a602822c53e22e985f942f843ccadbfb64613212 Mon Sep 17 00:00:00 2001
From: Helen Koike <helen.koike@collabora.com>
Date: Tue, 27 Sep 2022 12:35:22 -0300
Subject: [PATCH 2/2] Android prints to stdout instead of logcat
Signed-off-by: Helen Koike <helen.koike@collabora.com>
---
framework/qphelper/qpDebugOut.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/framework/qphelper/qpDebugOut.c b/framework/qphelper/qpDebugOut.c
index 6579e9f48..c200c6f6b 100644
--- a/framework/qphelper/qpDebugOut.c
+++ b/framework/qphelper/qpDebugOut.c
@@ -98,7 +98,7 @@ void qpDiev (const char* format, va_list args)
}
/* print() implementation. */
-#if (DE_OS == DE_OS_ANDROID)
+#if (0)
#include <android/log.h>
--
2.42.0

View File

@@ -1,29 +0,0 @@
From 7c9aa6f846f9f2f0d70b5c4a8e7c99a3d31b3b1a Mon Sep 17 00:00:00 2001
From: Rob Clark <robdclark@chromium.org>
Date: Sat, 27 Jan 2024 10:59:00 -0800
Subject: [PATCH] Add missing subgroup support checks for linear derivate tests
Some of these tests require subgroup ops support, but didn't bother
checking whether they were supported. Add this missing checks.
---
.../vulkan/shaderrender/vktShaderRenderDerivateTests.cpp | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/external/vulkancts/modules/vulkan/shaderrender/vktShaderRenderDerivateTests.cpp b/external/vulkancts/modules/vulkan/shaderrender/vktShaderRenderDerivateTests.cpp
index 3253505958..709044f2e8 100644
--- a/external/vulkancts/modules/vulkan/shaderrender/vktShaderRenderDerivateTests.cpp
+++ b/external/vulkancts/modules/vulkan/shaderrender/vktShaderRenderDerivateTests.cpp
@@ -1145,6 +1145,13 @@ LinearDerivateCase::~LinearDerivateCase (void)
TestInstance* LinearDerivateCase::createInstance (Context& context) const
{
DE_ASSERT(m_uniformSetup != DE_NULL);
+ if (m_fragmentTmpl.find("gl_SubgroupInvocationID") != std::string::npos) {
+ if (!subgroups::areQuadOperationsSupportedForStages(context, VK_SHADER_STAGE_FRAGMENT_BIT))
+ throw tcu::NotSupportedError("test requires VK_SUBGROUP_FEATURE_QUAD_BIT");
+
+ if (subgroups::getSubgroupSize(context) < 4)
+ throw tcu::NotSupportedError("test requires subgroupSize >= 4");
+ }
return new LinearDerivateCaseInstance(context, *m_uniformSetup, m_definitions, m_values);
}

View File

@@ -1,26 +0,0 @@
From a602822c53e22e985f942f843ccadbfb64613212 Mon Sep 17 00:00:00 2001
From: Helen Koike <helen.koike@collabora.com>
Date: Tue, 27 Sep 2022 12:35:22 -0300
Subject: [PATCH 2/2] Android prints to stdout instead of logcat
Signed-off-by: Helen Koike <helen.koike@collabora.com>
---
framework/qphelper/qpDebugOut.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/framework/qphelper/qpDebugOut.c b/framework/qphelper/qpDebugOut.c
index 6579e9f48..c200c6f6b 100644
--- a/framework/qphelper/qpDebugOut.c
+++ b/framework/qphelper/qpDebugOut.c
@@ -98,7 +98,7 @@ void qpDiev (const char* format, va_list args)
}
/* print() implementation. */
-#if (DE_OS == DE_OS_ANDROID)
+#if (0)
#include <android/log.h>
--
2.42.0

View File

@@ -1,56 +0,0 @@
From ed3794c975d284a5453ae33ae59dd1541a9eb804 Mon Sep 17 00:00:00 2001
From: Rob Clark <robdclark@chromium.org>
Date: Sat, 27 Jan 2024 10:57:28 -0800
Subject: [PATCH] Use subgroups helper in derivate tests
For the tests that need subgroup ops, use the existing subgroups helper,
rather than open-coding the same checks.
---
.../vktShaderRenderDerivateTests.cpp | 23 ++++---------------
1 file changed, 5 insertions(+), 18 deletions(-)
diff --git a/external/vulkancts/modules/vulkan/shaderrender/vktShaderRenderDerivateTests.cpp b/external/vulkancts/modules/vulkan/shaderrender/vktShaderRenderDerivateTests.cpp
index a8bb5a3ba7..3253505958 100644
--- a/external/vulkancts/modules/vulkan/shaderrender/vktShaderRenderDerivateTests.cpp
+++ b/external/vulkancts/modules/vulkan/shaderrender/vktShaderRenderDerivateTests.cpp
@@ -31,6 +31,7 @@
#include "vktShaderRenderDerivateTests.hpp"
#include "vktShaderRender.hpp"
+#include "subgroups/vktSubgroupsTestsUtils.hpp"
#include "vkImageUtil.hpp"
#include "vkQueryUtil.hpp"
@@ -707,28 +708,14 @@ tcu::TestStatus TriangleDerivateCaseInstance::iterate (void)
{
const std::string errorPrefix = m_definitions.inNonUniformControlFlow ? "Derivatives in dynamic control flow" :
"Manual derivatives with subgroup operations";
- if (!m_context.contextSupports(vk::ApiVersion(0, 1, 1, 0)))
- throw tcu::NotSupportedError(errorPrefix + " require Vulkan 1.1");
-
- vk::VkPhysicalDeviceSubgroupProperties subgroupProperties;
- deMemset(&subgroupProperties, 0, sizeof(subgroupProperties));
- subgroupProperties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES;
-
- vk::VkPhysicalDeviceProperties2 properties2;
- deMemset(&properties2, 0, sizeof(properties2));
- properties2.sType = vk::VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2;
- properties2.pNext = &subgroupProperties;
-
- m_context.getInstanceInterface().getPhysicalDeviceProperties2(m_context.getPhysicalDevice(), &properties2);
+ if (!subgroups::areQuadOperationsSupportedForStages(m_context, VK_SHADER_STAGE_FRAGMENT_BIT))
+ throw tcu::NotSupportedError(errorPrefix + " tests require VK_SUBGROUP_FEATURE_QUAD_BIT");
- if (subgroupProperties.subgroupSize < 4)
+ if (subgroups::getSubgroupSize(m_context) < 4)
throw tcu::NotSupportedError(errorPrefix + " require subgroupSize >= 4");
- if ((subgroupProperties.supportedOperations & VK_SUBGROUP_FEATURE_BALLOT_BIT) == 0)
+ if (!subgroups::isSubgroupFeatureSupportedForDevice(m_context, VK_SUBGROUP_FEATURE_BALLOT_BIT))
throw tcu::NotSupportedError(errorPrefix + " tests require VK_SUBGROUP_FEATURE_BALLOT_BIT");
-
- if (isSubgroupFunc(m_definitions.func) && (subgroupProperties.supportedOperations & VK_SUBGROUP_FEATURE_QUAD_BIT) == 0)
- throw tcu::NotSupportedError(errorPrefix + " tests require VK_SUBGROUP_FEATURE_QUAD_BIT");
}
setup();

View File

@@ -48,7 +48,7 @@ $ADB shell setenforce 0
# deqp
$ADB push /deqp/modules/egl/deqp-egl-android /data/.
$ADB push /deqp/assets/gl_cts/data/mustpass/egl/aosp_mustpass/3.2.6.x/egl-main.txt /data/
$ADB push /deqp/assets/gl_cts/data/mustpass/egl/aosp_mustpass/3.2.6.x/egl-master.txt /data/.
$ADB push /deqp-runner/deqp-runner /data/.
# download Android Mesa from S3

View File

@@ -46,6 +46,7 @@ if [ -z "$DEQP_SUITE" ]; then
DEQP_WIDTH=${DEQP_WIDTH:-256}
DEQP_HEIGHT=${DEQP_HEIGHT:-256}
DEQP_CONFIG=${DEQP_CONFIG:-rgba8888d24s8ms0}
DEQP_VARIANT=${DEQP_VARIANT:-master}
DEQP_OPTIONS="$DEQP_OPTIONS --deqp-surface-width=$DEQP_WIDTH --deqp-surface-height=$DEQP_HEIGHT"
DEQP_OPTIONS="$DEQP_OPTIONS --deqp-surface-type=${DEQP_SURFACE_TYPE:-pbuffer}"
@@ -59,16 +60,16 @@ if [ -z "$DEQP_SUITE" ]; then
# Generate test case list file.
if [ "$DEQP_VER" = "vk" ]; then
MUSTPASS=/deqp/mustpass/vk-master.txt
MUSTPASS=/deqp/mustpass/vk-$DEQP_VARIANT.txt
DEQP=/deqp/external/vulkancts/modules/vulkan/deqp-vk
elif [ "$DEQP_VER" = "gles2" ] || [ "$DEQP_VER" = "gles3" ] || [ "$DEQP_VER" = "gles31" ] || [ "$DEQP_VER" = "egl" ]; then
MUSTPASS=/deqp/mustpass/$DEQP_VER-main.txt
MUSTPASS=/deqp/mustpass/$DEQP_VER-$DEQP_VARIANT.txt
DEQP=/deqp/modules/$DEQP_VER/deqp-$DEQP_VER
elif [ "$DEQP_VER" = "gles2-khr" ] || [ "$DEQP_VER" = "gles3-khr" ] || [ "$DEQP_VER" = "gles31-khr" ] || [ "$DEQP_VER" = "gles32-khr" ]; then
MUSTPASS=/deqp/mustpass/$DEQP_VER-main.txt
MUSTPASS=/deqp/mustpass/$DEQP_VER-$DEQP_VARIANT.txt
DEQP=/deqp/external/openglcts/modules/glcts
else
MUSTPASS=/deqp/mustpass/$DEQP_VER-main.txt
MUSTPASS=/deqp/mustpass/$DEQP_VER-$DEQP_VARIANT.txt
DEQP=/deqp/external/openglcts/modules/glcts
fi
@@ -168,13 +169,7 @@ fi
uncollapsed_section_switch deqp "deqp: deqp-runner"
# Print the detailed version with the list of backports and local patches
for api in vk gl; do
deqp_version_log=/deqp/version-$api
if [ -r "$deqp_version_log" ]; then
cat "$deqp_version_log"
fi
done
cat /deqp/version-log
set +e
if [ -z "$DEQP_SUITE" ]; then

View File

@@ -1,22 +1,16 @@
# Keep the tags below under 20 chars each, as they end up combined into
# Keep the tags below under 25-30 chars each, as they end up combined into
# docker image tags, and docker has a length limit of 128 chars total in tags.
#
# The word after the date doesn't need to be overly descriptive, it exists
# purely to avoid the risk of two people updating an image tag on the same day
# while working on different changes, so it doesn't matter whether that word
# will make sense to someone else. Aim for "nobody else will pick that word
# for their change".
#
# If you update a tag and you get an error like this:
# cannot parse input: "$image:$tag": invalid reference format
# check the length of $tag; if it's > 128 chars you need to shorten your tag.
variables:
DEBIAN_X86_64_BUILD_BASE_IMAGE: "debian/x86_64_build-base"
DEBIAN_BASE_TAG: "20240307-virglcrosvm"
DEBIAN_BASE_TAG: "2024-01-14-runner24"
DEBIAN_X86_64_BUILD_IMAGE_PATH: "debian/x86_64_build"
DEBIAN_BUILD_TAG: "20240301-mold"
DEBIAN_BUILD_TAG: "2024-01-04-find"
DEBIAN_X86_64_TEST_BASE_IMAGE: "debian/x86_64_test-base"
@@ -24,23 +18,23 @@ variables:
DEBIAN_X86_64_TEST_IMAGE_VK_PATH: "debian/x86_64_test-vk"
DEBIAN_X86_64_TEST_ANDROID_IMAGE_PATH: "debian/x86_64_test-android"
DEBIAN_X86_64_TEST_ANDROID_TAG: "20240311-runner"
DEBIAN_X86_64_TEST_GL_TAG: "20240313-ninetests"
DEBIAN_X86_64_TEST_VK_TAG: "20240317-direct_drm"
KERNEL_ROOTFS_TAG: "20240317-direct_drm"
DEBIAN_X86_64_TEST_ANDROID_TAG: "2024-01-14-runner24"
DEBIAN_X86_64_TEST_GL_TAG: "2024-01-14-check24"
DEBIAN_X86_64_TEST_VK_TAG: "2024-01-14-check24"
ALPINE_X86_64_BUILD_TAG: "20240208-libclc-5"
ALPINE_X86_64_LAVA_SSH_TAG: "20230626-v1"
FEDORA_X86_64_BUILD_TAG: "20240301-mold"
KERNEL_TAG: "v6.6.21-mesa-19fc"
ALPINE_X86_64_BUILD_TAG: "2023-01-07-libdrm2_4_119"
ALPINE_X86_64_LAVA_SSH_TAG: "2023-06-26-first-version"
FEDORA_X86_64_BUILD_TAG: "2024-01-06-libdrm"
KERNEL_ROOTFS_TAG: "2024-01-14-runner24"
KERNEL_TAG: "v6.6.4-for-mesa-ci-e4f4c500f7fb"
KERNEL_REPO: "gfx-ci/linux"
PKG_REPO_REV: "3cc12a2a"
PKG_REPO_REV: "67f2c46b"
WINDOWS_X64_MSVC_PATH: "windows/x86_64_msvc"
WINDOWS_X64_MSVC_TAG: "20231222-msvc"
WINDOWS_X64_MSVC_TAG: "2023-12-22-msvc"
WINDOWS_X64_BUILD_PATH: "windows/x86_64_build"
WINDOWS_X64_BUILD_TAG: "20240117-vulkan-sdk"
WINDOWS_X64_BUILD_TAG: "2023-12-22-msvc"
WINDOWS_X64_TEST_PATH: "windows/x86_64_test"
WINDOWS_X64_TEST_TAG: "20240117-vulkan-sdk"
WINDOWS_X64_TEST_TAG: "2023-12-22-msvc"

View File

@@ -12,14 +12,3 @@ JOB_PRIORITY = int(getenv("JOB_PRIORITY", 75))
# Use UART over the default SSH mechanism to follow logs.
# Caution: this can lead to device silence in some devices in Mesa CI.
FORCE_UART = bool(getenv("LAVA_FORCE_UART", False))
# How many times the r8152 error may happen to consider it a known issue.
KNOWN_ISSUE_R8152_MAX_CONSECUTIVE_COUNTER: int = 10
KNOWN_ISSUE_R8152_PATTERNS: tuple[str, ...] = (
r"r8152 \S+ eth0: Tx status -71",
r"nfs: server \d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3} not responding, still trying",
)
# This is considered noise, since LAVA produces this log after receiving a package of feedback
# messages.
LOG_DEBUG_FEEDBACK_NOISE = "Listened to connection for namespace 'dut' done"

View File

@@ -2,78 +2,42 @@ from __future__ import annotations
import re
from dataclasses import dataclass, field
from typing import TYPE_CHECKING, Any, Sequence
from typing import TYPE_CHECKING, Any
if TYPE_CHECKING:
from lava.utils import LogFollower
from lava.exceptions import MesaCIKnownIssueException
from lava.utils.console_format import CONSOLE_LOG
from lava.utils.constants import (
KNOWN_ISSUE_R8152_MAX_CONSECUTIVE_COUNTER,
LOG_DEBUG_FEEDBACK_NOISE,
KNOWN_ISSUE_R8152_PATTERNS,
)
from lava.utils.log_section import LogSectionType
def search_known_issue_patterns(patterns: Sequence[str], line: str) -> str:
for pattern in patterns:
if re.search(pattern, line):
return pattern
return ""
@dataclass
class LAVALogHints:
log_follower: LogFollower
r8152_issue_consecutive_counter: int = field(default=0, init=False)
reboot_counter: int = field(default=0, init=False)
def raise_known_issue(self, message) -> None:
raise MesaCIKnownIssueException(
"Found known issue: "
f"{CONSOLE_LOG['FG_MAGENTA']}"
f"{message}"
f"{CONSOLE_LOG['RESET']}"
)
has_r8152_issue_history: bool = field(default=False, init=False)
def detect_failure(self, new_lines: list[dict[str, Any]]):
for line in new_lines:
if line["msg"] == LOG_DEBUG_FEEDBACK_NOISE:
continue
self.detect_r8152_issue(line)
self.detect_forced_reboot(line)
def detect_r8152_issue(self, line):
if self.log_follower.phase in (
LogSectionType.LAVA_BOOT,
LogSectionType.TEST_CASE,
) and line["lvl"] in ("feedback", "target"):
if search_known_issue_patterns(KNOWN_ISSUE_R8152_PATTERNS, line["msg"]):
if (
self.r8152_issue_consecutive_counter
< KNOWN_ISSUE_R8152_MAX_CONSECUTIVE_COUNTER
):
self.r8152_issue_consecutive_counter += 1
return
self.raise_known_issue(
"Probable network issue failure encountered, retrying the job"
)
# Reset the status, as the `nfs... still trying` complaint was not detected
self.r8152_issue_consecutive_counter = 0
def detect_forced_reboot(self, line: dict[str, Any]) -> None:
if (
self.log_follower.phase == LogSectionType.TEST_CASE
and line["lvl"] == "feedback"
and line["lvl"] == "target"
):
if re.search(r"^Reboot requested", line["msg"]):
self.reboot_counter += 1
if re.search(r"r8152 \S+ eth0: Tx status -71", line["msg"]):
self.has_r8152_issue_history = True
return
if self.reboot_counter > 0:
self.raise_known_issue(
"Forced reboot detected during test phase, failing the job..."
)
if self.has_r8152_issue_history and re.search(
r"nfs: server \d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3} not responding, still trying",
line["msg"],
):
raise MesaCIKnownIssueException(
f"{CONSOLE_LOG['FG_MAGENTA']}"
"Probable network issue failure encountered, retrying the job"
f"{CONSOLE_LOG['RESET']}"
)
self.has_r8152_issue_history = False

View File

@@ -187,25 +187,6 @@ class LogFollower:
return False
def ignore_dut_feedback_lines(self, line: dict[str, str]) -> bool:
"""
Ignores feedback lines from LAVA.
If we only receive this level of message for some time, it means that the job is
misbehaving. E.g Rebooting.
Args:
line: A dictionary representing a single log line.
Returns:
A boolean indicating whether the current line is a feedback line.
"""
if line["lvl"] == "feedback" and line["ns"] == "dut":
return True
if line["lvl"] == "debug":
# This message happens after LAVA end receiving the feedback from the DUT
if line["msg"] == "Listened to connection for namespace 'dut' done":
return True
return False
def feed(self, new_lines: list[dict[str, str]]) -> bool:
"""Input data to be processed by LogFollower instance
@@ -226,9 +207,6 @@ class LogFollower:
if self.merge_carriage_return_lines(line):
continue
if self.ignore_dut_feedback_lines(line):
continue
# At least we are fed with a non-kernel dump log, it seems that the
# job is progressing
is_job_healthy = True

View File

@@ -2,7 +2,7 @@
# shellcheck disable=SC1003 # works for us now...
# shellcheck disable=SC2086 # we want word splitting
section_switch meson-cross-file "meson: cross file generate"
section_switch meson-configure "meson: configure"
set -e
set -o xtrace
@@ -49,38 +49,6 @@ if [ -n "$CROSS" ]; then
fi
fi
if [ -n "$HOST_BUILD_OPTIONS" ]; then
section_switch meson-host-configure "meson: host configure"
# Stash the PKG_CONFIG_LIBDIR so that we can use the base x86_64 image
# libraries.
tmp_pkg_config_libdir=$PKG_CONFIG_LIBDIR
unset PKG_CONFIG_LIBDIR
# Compile a host version for the few tools we need for a cross build (for
# now just intel-clc)
rm -rf _host_build
meson setup _host_build \
--native-file=native.file \
-D prefix=/usr \
-D libdir=lib \
${HOST_BUILD_OPTIONS}
pushd _host_build
section_switch meson-host-build "meson: host build"
meson configure
ninja
ninja install
popd
# Restore PKG_CONFIG_LIBDIR
if [ -n "$tmp_pkg_config_libdir" ]; then
export PKG_CONFIG_LIBDIR=$tmp_pkg_config_libdir
fi
fi
# Only use GNU time if available, not any shell built-in command
case $CI_JOB_NAME in
# ASAN leak detection is incompatible with strace
@@ -98,8 +66,6 @@ case $CI_JOB_NAME in
;;
esac
section_switch meson-configure "meson: configure"
rm -rf _build
meson setup _build \
--native-file=native.file \

View File

@@ -15,10 +15,6 @@ mkdir -p "$RESULTS"
export PIGLIT_REPLAY_DESCRIPTION_FILE="$INSTALL/$PIGLIT_TRACES_FILE"
# FIXME: guess why /usr/local/bin is not included in all runners PATH.
# Needed because yq and ci-fairy are installed there.
PATH="/usr/local/bin:$PATH"
if [ "$PIGLIT_REPLAY_SUBCOMMAND" = "profile" ]; then
yq -iY 'del(.traces[][] | select(.label[]? == "no-perf"))' \
"$PIGLIT_REPLAY_DESCRIPTION_FILE"

View File

@@ -238,3 +238,25 @@
- changes: *rust_file_list
when: on_success
allow_failure: true
.lint-clang-format-rules:
rules:
- !reference [.never-post-merge-rules, rules]
- !reference [.core-rules, rules]
# in merge pipeline, formatting checks are not allowed to fail
- if: $GITLAB_USER_LOGIN == "marge-bot" && $CI_PIPELINE_SOURCE == "merge_request_event"
changes: &clang_format_file_list
- .clang-format
- .clang-format-include
- .clang-format-ignore
- src/**/.clang-format
- src/egl/**/*
- src/amd/vulkan/**/*
- src/amd/compiler/**/*
- src/etnaviv/isa/**/*
when: on_success
allow_failure: false
# in other pipelines, formatting checks are allowed to fail
- changes: *clang_format_file_list
when: on_success
allow_failure: true

View File

@@ -43,6 +43,20 @@ rustfmt:
- rustfmt --verbose src/**/lib.rs
- rustfmt --verbose src/**/main.rs
.clang-format:
extends:
- .formatting-check
- .lint-clang-format-rules
variables:
LLVM_VERSION: 15
before_script:
- shopt -s globstar
# We need a meson build dir, but its config doesn't actually matter, so
# let's just use the default.
- meson setup build
- clang-format-${LLVM_VERSION} --version
- ninja -C build clang-format
.test-check:
# Cancel job if a newer commit is pushed to the same branch
interruptible: true
@@ -171,6 +185,12 @@ python-test:
reports:
junit: results/junit.xml
.deqp-test-vk:
extends:
- .deqp-test
variables:
DEQP_VER: vk
.fossilize-test:
script:
- ./install/fossilize-runner.sh

View File

@@ -9,9 +9,8 @@ import os
import xmlrpc.client
from contextlib import nullcontext as does_not_raise
from datetime import datetime
from itertools import islice, repeat
from itertools import chain, repeat
from pathlib import Path
from typing import Generator
from unittest.mock import MagicMock, patch
import pytest
@@ -342,15 +341,13 @@ def test_full_yaml_log(mock_proxy, frozen_time, lava_job_submitter):
if not data_chunk:
return
first_log = lava_yaml.load(data_chunk[0])[0]
first_log_time = first_log["dt"]
first_log_time = data_chunk[0]["dt"]
frozen_time.move_to(first_log_time)
yield
last_log = lava_yaml.load(data_chunk[-1])[0]
last_log_time = last_log["dt"]
last_log_time = data_chunk[-1]["dt"]
frozen_time.move_to(last_log_time)
yield
return
def time_travel_to_test_time():
# Suppose that the first message timestamp of the entire LAVA job log is
@@ -360,31 +357,22 @@ def test_full_yaml_log(mock_proxy, frozen_time, lava_job_submitter):
first_log_time = lava_yaml.load(first_log)[0]["dt"]
frozen_time.move_to(first_log_time)
def load_lines() -> Generator[tuple[bool, str], None, None]:
def load_lines() -> list:
with open("/tmp/log.yaml", "r") as f:
# data = yaml.safe_load(f)
log_lines = f.readlines()
serial_message: str = ""
chunk_start_line = 0
chunk_end_line = 0
chunk_max_size = 100
data = f.readlines()
stream = chain(data)
try:
while True:
chunk_end_line = chunk_start_line + random.randint(1, chunk_max_size)
# split the log in chunks of random size
log_chunk = list(islice(log_lines, chunk_start_line, chunk_end_line))
chunk_start_line = chunk_end_line + 1
serial_message = "".join(log_chunk)
# time_traveller_gen will make the time trave according to the timestamp from
# the message
time_traveller_gen = time_travel_from_log_chunk(log_chunk)
data_chunk = [next(stream) for _ in range(random.randint(0, 50))]
serial_message = "".join(data_chunk)
# Suppose that the first message timestamp is the same of
# log fetch RPC call
next(time_traveller_gen)
time_travel_from_log_chunk(data_chunk)
yield False, "[]"
# Travel to the same datetime of the last fetched log line
# in the chunk
next(time_traveller_gen)
time_travel_from_log_chunk(data_chunk)
yield False, serial_message
except StopIteration:
yield True, serial_message
@@ -396,20 +384,11 @@ def test_full_yaml_log(mock_proxy, frozen_time, lava_job_submitter):
proxy.scheduler.jobs.logs.side_effect = load_lines()
proxy.scheduler.jobs.submit = reset_logs
try:
with pytest.raises(MesaCIRetryError):
time_travel_to_test_time()
start_time = datetime.now()
lava_job_submitter.submit()
retriable_follow_job(proxy, "")
finally:
try:
# If the job fails, maybe there will be no structured log
print(lava_job_submitter.structured_log_file.read_text())
finally:
end_time = datetime.now()
print("---- Reproduction log stats ----")
print(f"Start time: {start_time}")
print(f"End time: {end_time}")
print(f"Duration: {end_time - start_time}")
print(lava_job_submitter.structured_log_file.read_text())
@pytest.mark.parametrize(

View File

@@ -16,15 +16,8 @@ from lava.utils import (
fix_lava_gitlab_section_log,
hide_sensitive_data,
)
from lava.utils.constants import KNOWN_ISSUE_R8152_MAX_CONSECUTIVE_COUNTER
from ..lava.helpers import (
create_lava_yaml_msg,
does_not_raise,
lava_yaml,
mock_lava_signal,
yaml_dump,
)
from ..lava.helpers import create_lava_yaml_msg, does_not_raise, lava_yaml, yaml_dump
GITLAB_SECTION_SCENARIOS = {
"start collapsed": (
@@ -318,56 +311,47 @@ def test_gitlab_section_id(case_name, expected_id):
assert gl.id == expected_id
def a618_network_issue_logs(level: str = "target") -> list:
net_error = create_lava_yaml_msg(
msg="[ 1733.599402] r8152 2-1.3:1.0 eth0: Tx status -71", lvl=level)
nfs_error = create_lava_yaml_msg(
msg="[ 1733.604506] nfs: server 192.168.201.1 not responding, still trying",
lvl=level,
)
return [
*(KNOWN_ISSUE_R8152_MAX_CONSECUTIVE_COUNTER*[net_error]),
nfs_error
]
TEST_PHASE_LAVA_SIGNAL = mock_lava_signal(LogSectionType.TEST_CASE)
A618_NET_ISSUE_BOOT = a618_network_issue_logs(level="feedback")
A618_NET_ISSUE_TEST = [TEST_PHASE_LAVA_SIGNAL, *a618_network_issue_logs(level="target")]
A618_NETWORK_ISSUE_LOGS = [
create_lava_yaml_msg(
msg="[ 1733.599402] r8152 2-1.3:1.0 eth0: Tx status -71", lvl="target"
),
create_lava_yaml_msg(
msg="[ 1733.604506] nfs: server 192.168.201.1 not responding, still trying",
lvl="target",
),
]
TEST_PHASE_LAVA_SIGNAL = create_lava_yaml_msg(
msg="Received signal: <STARTTC> mesa-ci_a618_vk", lvl="debug"
)
A618_NETWORK_ISSUE_SCENARIOS = {
"Fail - R8152 kmsg during boot phase": (
A618_NET_ISSUE_BOOT,
pytest.raises(MesaCIKnownIssueException),
),
"Pass - R8152 kmsg during boot": (A618_NETWORK_ISSUE_LOGS, does_not_raise()),
"Fail - R8152 kmsg during test phase": (
A618_NET_ISSUE_TEST,
[TEST_PHASE_LAVA_SIGNAL, *A618_NETWORK_ISSUE_LOGS],
pytest.raises(MesaCIKnownIssueException),
),
"Pass - Partial (1) R8152 kmsg during test phase": (
A618_NET_ISSUE_TEST[:1],
[TEST_PHASE_LAVA_SIGNAL, A618_NETWORK_ISSUE_LOGS[0]],
does_not_raise(),
),
"Pass - Partial (2) R8152 kmsg during test phase": (
A618_NET_ISSUE_TEST[:2],
[TEST_PHASE_LAVA_SIGNAL, A618_NETWORK_ISSUE_LOGS[1]],
does_not_raise(),
),
"Pass - Partial (3) subsequent R8152 kmsg during test phase": (
"Pass - Partial subsequent (3) R8152 kmsg during test phase": (
[
TEST_PHASE_LAVA_SIGNAL,
A618_NET_ISSUE_TEST[1],
A618_NET_ISSUE_TEST[1],
A618_NETWORK_ISSUE_LOGS[0],
A618_NETWORK_ISSUE_LOGS[0],
],
does_not_raise(),
),
"Pass - Partial (4) subsequent nfs kmsg during test phase": (
"Pass - Partial subsequent (4) R8152 kmsg during test phase": (
[
TEST_PHASE_LAVA_SIGNAL,
A618_NET_ISSUE_TEST[-1],
A618_NET_ISSUE_TEST[-1],
A618_NETWORK_ISSUE_LOGS[1],
A618_NETWORK_ISSUE_LOGS[1],
],
does_not_raise(),
),
@@ -380,13 +364,6 @@ A618_NETWORK_ISSUE_SCENARIOS = {
ids=A618_NETWORK_ISSUE_SCENARIOS.keys(),
)
def test_detect_failure(messages, expectation):
boot_section = GitlabSection(
id="lava_boot",
header="LAVA boot",
type=LogSectionType.LAVA_BOOT,
start_collapsed=True,
)
boot_section.start()
lf = LogFollower(starting_section=boot_section)
lf = LogFollower()
with expectation:
lf.feed(messages)

View File

@@ -59,6 +59,7 @@ meson setup `
-Dopencl-spirv=true `
-Dmicrosoft-clc=enabled `
-Dstatic-libclc=all `
-Dopencl-external-clang-headers=disabled `
-Dspirv-to-dxil=true `
-Dbuild-tests=true `
-Dwerror=true `

View File

@@ -158,12 +158,12 @@ Remove-Item -Recurse -Force -ErrorAction SilentlyContinue -Path $llvm_build
Get-Date
Write-Host "Cloning SPIRV-Tools"
git clone -b "vulkan-sdk-$env:VULKAN_SDK_VERSION" --depth=1 https://github.com/KhronosGroup/SPIRV-Tools deps/SPIRV-Tools
git clone -b "sdk-$env:VULKAN_SDK_VERSION" --depth=1 https://github.com/KhronosGroup/SPIRV-Tools deps/SPIRV-Tools
if (!$?) {
Write-Host "Failed to clone SPIRV-Tools repository"
Exit 1
}
git clone -b "vulkan-sdk-$env:VULKAN_SDK_VERSION" --depth=1 https://github.com/KhronosGroup/SPIRV-Headers deps/SPIRV-Tools/external/SPIRV-Headers
git clone -b "sdk-$env:VULKAN_SDK_VERSION" --depth=1 https://github.com/KhronosGroup/SPIRV-Headers deps/SPIRV-Tools/external/SPIRV-Headers
if (!$?) {
Write-Host "Failed to clone SPIRV-Headers repository"
Exit 1

View File

@@ -18,7 +18,7 @@ Remove-Item -Recurse 'C:\agility'
Write-Host "Downloading Updated WARP at:"
Get-Date
Invoke-WebRequest -Uri https://www.nuget.org/api/v2/package/Microsoft.Direct3D.WARP/1.0.9 -OutFile 'warp.zip'
Invoke-WebRequest -Uri https://www.nuget.org/api/v2/package/Microsoft.Direct3D.WARP/1.0.7.1 -OutFile 'warp.zip'
Expand-Archive -Path 'warp.zip' -DestinationPath 'C:\warp'
# Copy WARP into mesa-deps\bin
Copy-Item 'C:\warp\build\native\amd64\d3d10warp.dll' -Destination $depsInstallPath\bin

View File

@@ -53,7 +53,7 @@ New-Item -ItemType Directory -Path "$piglit_source" | Out-Null
Push-Location -Path $piglit_source
git init
git remote add origin https://gitlab.freedesktop.org/mesa/piglit.git
git fetch --depth 1 origin 814046fe6942eac660ee4a6cc5fcc54011a49945 # of branch main
git fetch --depth 1 origin b41accc83689966f91217fc5b57dbe06202b8c8c # of branch main
if (!$?) {
Write-Host "Failed to fetch Piglit repository"
Pop-Location

View File

@@ -2,7 +2,7 @@
# Touch this file needs update both WINDOWS_X64_BUILD_TAG WINDOWS_X64_TEST_TAG
# This file needs run in administrator mode
$env:VULKAN_SDK_VERSION="1.3.275.0"
$env:VULKAN_SDK_VERSION="1.3.211.0"
$ProgressPreference = "SilentlyContinue"

View File

@@ -1,5 +1,4 @@
$env:PIGLIT_NO_FAST_SKIP = 1
$env:PIGLIT_SPIRV_AS_BINARY = "C:\VulkanSDK\$env:VULKAN_SDK_VERSION\Bin\spirv-as.exe"
Copy-Item -Path _install\bin\opengl32.dll -Destination C:\Piglit\bin\opengl32.dll
Copy-Item -Path _install\bin\libgallium_wgl.dll -Destination C:\Piglit\bin\libgallium_wgl.dll

View File

@@ -1,279 +0,0 @@
# version field is required
version: 1
project:
name: 'mesa'
id: 176
instance: https://gitlab.freedesktop.org
issues:
topics: &topics
'aco': 'ACO'
'anv': 'ANV'
'asahi': 'asahi'
'blorp': 'blorp'
'ci': 'CI'
'clc': 'OpenCL'
'clover': 'clover'
'crocus': 'crocus'
'd3d12': 'd3d12'
'docs': 'docs'
'dozen': 'dozen'
'drirc': 'drirc'
'dzn': 'dozen'
'egl': 'EGL'
'etnaviv': 'etnaviv'
'freedreno': 'freedreno'
'freedreno/ir3': ['freedreno', 'ir3']
'gallium': 'gallium'
'gbm': 'gbm'
'gitlab-ci': 'CI'
'glsl': 'GLSL'
'glvnd': 'GLVND'
'glx': 'GLX'
'hasvk': 'hasvk'
'i915': 'i915'
'i965': 'i965'
'intel/compiler': 'intel-compiler'
'intel/brw': 'intel-brw'
'intel/elk': 'intel-elk'
'intel/tools': 'intel-tools'
'iris': 'iris'
'isl': 'ISL'
'lima': 'lima'
'lima/ppir' : 'lima'
'llvmpipe': 'llvmpipe'
'mesa' : 'mesa'
'meson' : 'meson'
'microsoft/compiler': 'd3d12'
'nak' : 'NAK'
'nine' : 'nine'
'nir': 'NIR'
'nir2dxil': 'd3d12'
'nouveau' : 'nouveau'
'nv30' : ['nouveau', 'nv30']
'nv50' : ['nouveau', 'nv50']
'nv50/ir' : 'nouveau'
'nvc0' : ['nouveau', 'nvc0']
'nvk' : 'NVK'
'panfrost' : 'panfrost'
'pan/midgard' : 'panfrost'
'pvr' : 'powervr'
'r100' : 'r100'
'r200' : 'r200'
'r300' : 'r300'
'r600' : 'r600'
'radeonsi' : 'radeonsi'
'radv': 'RADV'
'radv/aco': ['RADV', 'ACO']
'rusticl': 'Rusticl'
'softpipe' : 'softpipe'
'spirv' : 'SPIR-V'
'swr' : 'swr'
'swrast' : 'swrast'
'tegra' : 'tegra'
'tgsi' : 'TGSI'
'turnip': 'turnip'
'util' : 'util'
'v3d': 'v3d'
'vaapi' : 'VA-API'
'vc4' : 'vc4'
'vdpau' : 'VDPAU'
'vieux' : 'vieux'
'virgl' : 'virgl'
'vmwgfx' : 'vmwgfx'
'zink': 'zink'
titles: &titles
'android': 'android'
'bisected': 'bisected'
'coverity': 'coverity'
'deqp': 'deqp'
'feature request': 'feature_request'
'haiku' : 'haiku'
'regression': 'regression'
'i915_dri.so' : 'i915'
'i965_dri.so' : 'i965'
'iris_dri.so' : 'iris'
'nouveau_dri.so' : 'nouveau'
'nouveau_vieux_dri.so' : 'vieux'
'r200_dri.so' : 'r200'
'r300_dri.so' : 'r300'
'r600_dri.so' : 'r600'
'radeonsi_dri.so' : 'radeonsi'
'swrast_dri.so' : 'swrast'
'vmwgfx_dri.so' : 'vmwgfx'
merge_requests:
topics:
*topics
titles:
*titles
paths:
'^.gitlab/issue_templates/' : ['docs']
'^.gitlab-ci' : ['CI']
'^.*/gitlab-ci.yml' : ['CI']
'^.*/ci/' : ['CI']
'^.gitlab-ci/windows/' : ['Windows']
'^bin/__init__.py$' : ['maintainer-scripts']
'^bin/gen_release_notes' : ['maintainer-scripts']
'^bin/git_sha1_gen.py$' : ['meson', 'android']
'^bin/install_megadrivers.py$' : ['meson']
'^bin/meson-cmd-extract.py$' : ['meson']
'^bin/meson.build$' : ['meson']
'^bin/pick-ui' : ['maintainer-scripts']
'^bin/pick/' : ['maintainer-scripts']
'^bin/post_version' : ['maintainer-scripts']
'^bin/symbols-check.py$' : ['meson']
'^docs/' : ['docs']
'^include/drm-uapi/i915_drm.h' : ['intel']
'^include/drm-uapi/xe_drm.h' : ['intel']
'^include/vulkan/' : ['vulkan']
'^meson_options.txt' : ['meson']
'^README.rst' : ['docs']
'^src/amd/addrlib/' : ['AMD common']
'^src/amd/common/' : ['AMD common']
'^src/amd/compiler/' : ['ACO']
'^src/amd/llvm/' : ['AMD common']
'^src/amd/registers/' : ['AMD common']
'^src/amd/vulkan/' : ['RADV']
'^src/asahi/' : ['asahi']
'^src/broadcom/drm-shim/v3d' : ['v3d']
'^src/broadcom/vulkan/' : ['v3dv']
'^src/compiler/clc' : ['OpenCL']
'^src/compiler/glsl' : ['GLSL']
'^src/compiler/nir' : ['NIR']
'^src/compiler/spirv/' : ['SPIR-V']
'^src/egl/' : ['EGL']
'^src/egl/drivers/wgl/' : ['wgl']
'^src/etnaviv/' : ['etnaviv']
'^src/freedreno/' : ['freedreno']
'^src/freedreno/ir3/' : ['ir3']
'^src/freedreno/vulkan/' : ['turnip']
'^src/gallium/auxiliary/' : ['gallium']
'^src/gallium/auxiliary/nir/' : ['NIR']
'^src/gallium/auxiliary/nir/.*tgsi.*' : ['TGSI']
'^src/gallium/auxiliary/tgsi/' : ['TGSI']
'^src/gallium/docs/' : ['gallium']
'^src/gallium/drivers/asahi/' : ['asahi']
'^src/gallium/drivers/crocus/' : ['crocus']
'^src/gallium/drivers/d3d12/' : ['d3d12']
'^src/gallium/drivers/etnaviv/' : ['etnaviv']
'^src/gallium/drivers/freedreno/' : ['freedreno']
'^src/gallium/drivers/grate/' : ['tegra']
'^src/gallium/drivers/i915/' : ['i915g']
'^src/gallium/drivers/iris/' : ['iris']
'^src/gallium/drivers/lima/' : ['lima']
'^src/gallium/drivers/llvmpipe/' : ['llvmpipe']
'^src/gallium/drivers/nouveau/' : ['nouveau']
'^src/gallium/drivers/nouveau/nv30' : ['nv30']
'^src/gallium/drivers/nouveau/nv50' : ['nv50']
'^src/gallium/drivers/nouveau/nvc0' : ['nvc0']
'^src/gallium/drivers/panfrost/' : ['panfrost']
'^src/gallium/drivers/r300/' : ['r300']
'^src/gallium/drivers/r600/' : ['r600']
'^src/gallium/drivers/radeonsi' : ['radeonsi']
'^src/gallium/drivers/softpipe' : ['softpipe']
'^src/gallium/drivers/svga/' : ['svga']
'^src/gallium/drivers/swr/' : ['swr']
'^src/gallium/drivers/tegra/' : ['tegra']
'^src/gallium/drivers/v3d/' : ['v3d']
'^src/gallium/drivers/vc4/' : ['vc4']
'^src/gallium/drivers/virgl/' : ['virgl']
'^src/gallium/drivers/zink/' : ['zink']
'^src/gallium/frontends/clover/' : ['clover']
'^src/gallium/frontends/dri/' : ['gallium']
'^src/gallium/frontends/glx/' : ['GLX']
'^src/gallium/frontends/hgl/' : ['haiku']
'^src/gallium/frontends/lavapipe/' : ['lavapipe']
'^src/gallium/frontends/nine/' : ['nine']
'^src/gallium/frontends/omx/' : ['omx']
'^src/gallium/frontends/osmesa/' : ['osmesa']
'^src/gallium/frontends/rusticl/' : ['Rusticl']
'^src/gallium/frontends/va/' : ['VA-API']
'^src/gallium/frontends/vdpau/' : ['VDPAU']
'^src/gallium/frontends/wgl/' : ['wgl']
# '^src/gallium/frontends/xa/' : ['']
'^src/gallium/include/' : ['gallium']
'^src/gallium/targets/' : ['gallium']
'^src/gallium/targets/opencl/' : ['clover']
'^src/gallium/targets/osmesa/' : ['osmesa']
'^src/gallium/targets/rusticl/' : ['Rusticl']
'^src/gallium/tests/' : ['gallium']
'^src/gallium/tools/' : ['gallium']
# '^src/gallium/winsys/amdgpu/' : ['']
'^src/gallium/winsys/crocus/' : ['crocus']
'^src/gallium/winsys/d3d12/' : ['d3d12']
'^src/gallium/winsys/etnaviv/' : ['etnaviv']
'^src/gallium/winsys/freedreno/' : ['freedreno']
'^src/gallium/winsys/grate/' : ['tegra']
'^src/gallium/winsys/i915/' : ['i915g']
'^src/gallium/winsys/iris/' : ['iris']
# '^src/gallium/winsys/kmsro/' : ['']
'^src/gallium/winsys/lima/' : ['lima']
'^src/gallium/winsys/nouveau/' : ['nouveau']
'^src/gallium/winsys/panfrost/' : ['panfrost']
# '^src/gallium/winsys/radeon/' : ['radeon']
'^src/gallium/winsys/svga/' : ['svga']
# '^src/gallium/winsys/sw/' : ['']
'^src/gallium/winsys/sw/gdi/' : ['wgl']
'^src/gallium/winsys/tegra/' : ['tegra']
'^src/gallium/winsys/v3d/' : ['v3d']
'^src/gallium/winsys/vc4/' : ['vc4']
'^src/gallium/winsys/virgl/' : ['virgl']
'^src/gbm/' : ['gbm']
'^src/glx/' : ['GLX']
'^src/imagination/' : ['powervr']
'^src/intel/blorp/' : ['blorp']
'^src/intel/common/' : ['intel']
'^src/intel/compiler/' : ['intel-compiler']
'^src/intel/compiler/brw' : ['intel-brw']
'^src/intel/compiler/elk' : ['intel-elk']
'^src/intel/dev/' : ['intel']
'^src/intel/ds/' : ['intel']
'^src/intel/genxml/' : ['intel']
'^src/intel/isl/' : ['ISL']
'^src/intel/nullhw-layer/' : ['intel']
'^src/intel/perf/' : ['intel']
'^src/intel/tools/' : ['intel-tools']
'^src/intel/vulkan/' : ['ANV']
'^src/intel/vulkan_hasvk/' : ['hasvk']
'^src/loader/' : ['loader']
'^src/mapi/' : ['mapi']
'^src/mesa/drivers/dri/i915/' : ['i915']
'^src/mesa/drivers/dri/i965/' : ['i965']
'^src/mesa/drivers/dri/nouveau/' : ['vieux']
'^src/mesa/drivers/dri/r200/' : ['r200']
'^src/mesa/drivers/dri/radeon/' : ['radeon']
'^src/mesa/drivers/dri/swrast/' : ['swrast']
'^src/mesa/drivers/osmesa' : ['osmesa']
'^src/mesa/main/' : ['mesa']
'^src/mesa/state_tracker/.*glsl.*' : ['GLSL']
'^src/mesa/state_tracker/.*tgsi.*' : ['TGSI']
'^src/mesa/state_tracker/.*nir.*' : ['NIR']
'^src/microsoft/clc/' : ['d3d12']
'^src/microsoft/compiler/' : ['d3d12']
'^src/microsoft/spirv_to_dxil/' : ['dozen']
'^src/microsoft/vulkan/' : ['dozen']
'^src/nouveau/codegen/' : ['nouveau']
'^src/nouveau/compiler/' : ['NAK']
'^src/nouveau/drm-shim/' : ['nouveau']
'^src/nouveau/mme/' : ['NVK']
'^src/nouveau/nil/' : ['NVK']
'^src/nouveau/nvidia-headers/' : ['NVK']
'^src/nouveau/vulkan/' : ['NVK']
'^src/nouveau/winsys/' : ['NVK']
'^src/panfrost/' : ['panfrost']
'^src/virtio/vulkan/' : ['venus']
'^src/virtio/venus-protocol/' : ['venus']
'^src/virtio/ci/' : ['venus']
'^src/util/' : ['util']
'^src/util/00-mesa-defaults.conf' : ['drirc']
'^src/vulkan/' : ['vulkan']
'^VERSION$' : ['maintainer-scripts']
'Android' : ['android']
'EGL' : ['EGL']
'meson.build' : ['meson']
'wayland' : ['wayland']

22432
.pick_status.json Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -29,7 +29,7 @@ meson.build @dbaker @eric
# Compatibility headers
/include/c99* @xexaxo
/src/c11/ @lygstate
/src/c11/ @eric @lygstate
# Documentation
/docs/ @eric @xexaxo
@@ -43,8 +43,8 @@ meson.build @dbaker @eric
/src/compiler/nir/ @gfxstrand
# Vulkan
/src/vulkan/ @gfxstrand
/include/vulkan/ @gfxstrand
/src/vulkan/ @eric @gfxstrand
/include/vulkan/ @eric @gfxstrand
#############
@@ -99,10 +99,6 @@ meson.build @dbaker @eric
# CI #
######
/.gitlab-ci.yml @eric
/.gitlab-ci/ @eric
gitlab-ci*.yml @eric
# Broadcom
/src/broadcom/ci/ @jasuarez @chema
@@ -124,8 +120,8 @@ gitlab-ci*.yml @eric
/src/gallium/drivers/freedreno/ @robclark
# Imagination
/include/drm-uapi/pvr_drm.h @aashishc @frankbinns @luigi.santivetti
/src/imagination/ @aashishc @frankbinns @luigi.santivetti
/include/drm-uapi/pvr_drm.h @CreativeCylon @frankbinns @MTCoster
/src/imagination/ @CreativeCylon @frankbinns @MTCoster
/src/imagination/rogue/ @simon-perretta-img
# Intel

View File

@@ -1 +1 @@
24.1.0-devel
24.0.2

View File

@@ -79,6 +79,11 @@ LOCAL_SHARED_LIBRARIES += libdrm_radeon
MESON_GEN_PKGCONFIGS += libdrm_radeon:$(LIBDRM_VERSION)
endif
ifneq ($(filter nouveau,$(BOARD_MESA3D_GALLIUM_DRIVERS)),)
LOCAL_SHARED_LIBRARIES += libdrm_nouveau
MESON_GEN_PKGCONFIGS += libdrm_nouveau:$(LIBDRM_VERSION)
endif
ifneq ($(filter d3d12,$(BOARD_MESA3D_GALLIUM_DRIVERS)),)
LOCAL_HEADER_LIBRARIES += DirectX-Headers
LOCAL_STATIC_LIBRARIES += DirectX-Guids
@@ -123,21 +128,23 @@ endif
#-------------------------------------------------------------------------------
# $1: name
# $2: subdir
# $3: source prebuilt
# $4: export headers
# $2: symlink suffix
# $3: subdir
# $4: source prebuilt
# $5: export headers
define mesa3d-lib
include $(CLEAR_VARS)
LOCAL_MODULE_CLASS := SHARED_LIBRARIES
LOCAL_MODULE := $1
LOCAL_VENDOR_MODULE := true
LOCAL_MODULE_RELATIVE_PATH := $2
LOCAL_PREBUILT_MODULE_FILE := $($3)
LOCAL_MODULE_RELATIVE_PATH := $3
LOCAL_PREBUILT_MODULE_FILE := $($4)
LOCAL_MULTILIB := first
LOCAL_CHECK_ELF_FILES := false
LOCAL_MODULE_SUFFIX := .so
LOCAL_MODULE_SYMLINKS := $1$2
LOCAL_SHARED_LIBRARIES := $(__MY_SHARED_LIBRARIES)
LOCAL_EXPORT_C_INCLUDE_DIRS := $4
LOCAL_EXPORT_C_INCLUDE_DIRS := $5
include $(BUILD_PREBUILT)
ifdef TARGET_2ND_ARCH
@@ -145,13 +152,14 @@ include $(CLEAR_VARS)
LOCAL_MODULE_CLASS := SHARED_LIBRARIES
LOCAL_MODULE := $1
LOCAL_VENDOR_MODULE := true
LOCAL_MODULE_RELATIVE_PATH := $2
LOCAL_PREBUILT_MODULE_FILE := $(2ND_$3)
LOCAL_MODULE_RELATIVE_PATH := $3
LOCAL_PREBUILT_MODULE_FILE := $(2ND_$4)
LOCAL_MULTILIB := 32
LOCAL_CHECK_ELF_FILES := false
LOCAL_MODULE_SUFFIX := .so
LOCAL_MODULE_SYMLINKS := $1$2
LOCAL_SHARED_LIBRARIES := $(__MY_SHARED_LIBRARIES)
LOCAL_EXPORT_C_INCLUDE_DIRS := $4
LOCAL_EXPORT_C_INCLUDE_DIRS := $5
include $(BUILD_PREBUILT)
endif
endef
@@ -159,25 +167,25 @@ endef
ifneq ($(strip $(BOARD_MESA3D_GALLIUM_DRIVERS)),)
# Module 'libgallium_dri', produces '/vendor/lib{64}/dri/libgallium_dri.so'
# This module also trigger DRI symlinks creation process
$(eval $(call mesa3d-lib,libgallium_dri,dri,MESA3D_GALLIUM_DRI_BIN))
$(eval $(call mesa3d-lib,libgallium_dri,.so.0,dri,MESA3D_GALLIUM_DRI_BIN))
# Module 'libglapi', produces '/vendor/lib{64}/libglapi.so'
$(eval $(call mesa3d-lib,libglapi,,MESA3D_LIBGLAPI_BIN))
$(eval $(call mesa3d-lib,libglapi,.so.0,,MESA3D_LIBGLAPI_BIN))
# Module 'libEGL_mesa', produces '/vendor/lib{64}/egl/libEGL_mesa.so'
$(eval $(call mesa3d-lib,libEGL_mesa,egl,MESA3D_LIBEGL_BIN))
$(eval $(call mesa3d-lib,libEGL_mesa,.so.1,egl,MESA3D_LIBEGL_BIN))
# Module 'libGLESv1_CM_mesa', produces '/vendor/lib{64}/egl/libGLESv1_CM_mesa.so'
$(eval $(call mesa3d-lib,libGLESv1_CM_mesa,egl,MESA3D_LIBGLESV1_BIN))
$(eval $(call mesa3d-lib,libGLESv1_CM_mesa,.so.1,egl,MESA3D_LIBGLESV1_BIN))
# Module 'libGLESv2_mesa', produces '/vendor/lib{64}/egl/libGLESv2_mesa.so'
$(eval $(call mesa3d-lib,libGLESv2_mesa,egl,MESA3D_LIBGLESV2_BIN))
$(eval $(call mesa3d-lib,libGLESv2_mesa,.so.2,egl,MESA3D_LIBGLESV2_BIN))
endif
# Modules 'vulkan.{driver_name}', produces '/vendor/lib{64}/hw/vulkan.{driver_name}.so' HAL
$(foreach driver,$(BOARD_MESA3D_VULKAN_DRIVERS), \
$(eval $(call mesa3d-lib,vulkan.$(MESA_VK_LIB_SUFFIX_$(driver)),hw,MESA3D_VULKAN_$(driver)_BIN)))
$(eval $(call mesa3d-lib,vulkan.$(MESA_VK_LIB_SUFFIX_$(driver)),.so.0,hw,MESA3D_VULKAN_$(driver)_BIN)))
ifneq ($(filter true, $(BOARD_MESA3D_BUILD_LIBGBM)),)
# Modules 'libgbm', produces '/vendor/lib{64}/libgbm.so'
$(eval $(call mesa3d-lib,$(MESA_LIBGBM_NAME),,MESA3D_LIBGBM_BIN,$(MESA3D_TOP)/src/gbm/main))
$(eval $(call mesa3d-lib,$(MESA_LIBGBM_NAME),.so.1,,MESA3D_LIBGBM_BIN,$(MESA3D_TOP)/src/gbm/main))
endif
#-------------------------------------------------------------------------------

View File

@@ -65,11 +65,11 @@ MESON_GEN_FILES_TARGET := $(MESON_GEN_DIR)/.timestamp
MESA3D_GALLIUM_DRI_DIR := $(MESON_OUT_DIR)/install/usr/local/lib/dri
$(M_TARGET_PREFIX)MESA3D_GALLIUM_DRI_BIN := $(MESON_OUT_DIR)/install/usr/local/lib/libgallium_dri.so
$(M_TARGET_PREFIX)MESA3D_LIBEGL_BIN := $(MESON_OUT_DIR)/install/usr/local/lib/libEGL.so
$(M_TARGET_PREFIX)MESA3D_LIBGLESV1_BIN := $(MESON_OUT_DIR)/install/usr/local/lib/libGLESv1_CM.so
$(M_TARGET_PREFIX)MESA3D_LIBGLESV2_BIN := $(MESON_OUT_DIR)/install/usr/local/lib/libGLESv2.so
$(M_TARGET_PREFIX)MESA3D_LIBGLAPI_BIN := $(MESON_OUT_DIR)/install/usr/local/lib/libglapi.so
$(M_TARGET_PREFIX)MESA3D_LIBGBM_BIN := $(MESON_OUT_DIR)/install/usr/local/lib/$(MESA_LIBGBM_NAME).so
$(M_TARGET_PREFIX)MESA3D_LIBEGL_BIN := $(MESON_OUT_DIR)/install/usr/local/lib/libEGL.so.1.0.0
$(M_TARGET_PREFIX)MESA3D_LIBGLESV1_BIN := $(MESON_OUT_DIR)/install/usr/local/lib/libGLESv1_CM.so.1.1.0
$(M_TARGET_PREFIX)MESA3D_LIBGLESV2_BIN := $(MESON_OUT_DIR)/install/usr/local/lib/libGLESv2.so.2.0.0
$(M_TARGET_PREFIX)MESA3D_LIBGLAPI_BIN := $(MESON_OUT_DIR)/install/usr/local/lib/libglapi.so.0.0.0
$(M_TARGET_PREFIX)MESA3D_LIBGBM_BIN := $(MESON_OUT_DIR)/install/usr/local/lib/$(MESA_LIBGBM_NAME).so.1.0.0
MESA3D_GLES_BINS := \
@@ -256,7 +256,7 @@ $(MESON_GEN_FILES_TARGET): $(sort $(shell find -L $(MESA3D_TOP) -not -path '*/\.
"pkgconfig = ['env', 'PKG_CONFIG_LIBDIR=' + '$(call relative-to-absolute,$(MESON_GEN_DIR))', '/usr/bin/pkg-config']\n\n" \
"llvm-config = '/dev/null'\n" \
"[host_machine]\n" \
"system = 'android'\n" \
"system = 'linux'\n" \
"cpu_family = '$(MESON_CPU_FAMILY)'\n" \
"cpu = '$(MESON_CPU_FAMILY)'\n" \
"endian = 'little'" > $(dir $@)/aosp_cross

View File

@@ -1,162 +0,0 @@
#!/usr/bin/env python3
# Copyright © 2023 Collabora Ltd.
# Authors:
# Helen Koike <helen.koike@collabora.com>
#
# For the dependencies, see the requirements.txt
# SPDX-License-Identifier: MIT
import argparse
import gitlab
import plotly.express as px
from gitlab_common import pretty_duration
from datetime import datetime, timedelta
from gitlab_common import read_token, GITLAB_URL, get_gitlab_pipeline_from_url
def calculate_queued_at(job):
# we can have queued_duration without started_at when a job is canceled
if not job.queued_duration or not job.started_at:
return None
started_at = job.started_at.replace("Z", "+00:00")
return datetime.fromisoformat(started_at) - timedelta(seconds=job.queued_duration)
def calculate_time_difference(time1, time2):
if not time1 or not time2:
return None
if type(time1) is str:
time1 = datetime.fromisoformat(time1.replace("Z", "+00:00"))
if type(time2) is str:
time2 = datetime.fromisoformat(time2.replace("Z", "+00:00"))
diff = time2 - time1
return pretty_duration(diff.seconds)
def create_task_name(job):
status_color = {"success": "green", "failed": "red"}.get(job.status, "grey")
return f"{job.name}\t(<span style='color: {status_color}'>{job.status}</span>,<a href='{job.web_url}'>{job.id}</a>)"
def add_gantt_bar(job, tasks):
queued_at = calculate_queued_at(job)
task_name = create_task_name(job)
tasks.append(
{
"Job": task_name,
"Start": job.created_at,
"Finish": queued_at,
"Duration": calculate_time_difference(job.created_at, queued_at),
"Phase": "Waiting dependencies",
}
)
tasks.append(
{
"Job": task_name,
"Start": queued_at,
"Finish": job.started_at,
"Duration": calculate_time_difference(queued_at, job.started_at),
"Phase": "Queued",
}
)
tasks.append(
{
"Job": task_name,
"Start": job.started_at,
"Finish": job.finished_at,
"Duration": calculate_time_difference(job.started_at, job.finished_at),
"Phase": "Running",
}
)
def generate_gantt_chart(pipeline):
if pipeline.yaml_errors:
raise ValueError("Pipeline YAML errors detected")
# Convert the data into a list of dictionaries for plotly
tasks = []
for job in pipeline.jobs.list(all=True, include_retried=True):
add_gantt_bar(job, tasks)
# Make it easier to see retried jobs
tasks.sort(key=lambda x: x["Job"])
title = f"Gantt chart of jobs in pipeline <a href='{pipeline.web_url}'>{pipeline.web_url}</a>."
title += (
f" Total duration {str(timedelta(seconds=pipeline.duration))}"
if pipeline.duration
else ""
)
# Create a Gantt chart
fig = px.timeline(
tasks,
x_start="Start",
x_end="Finish",
y="Job",
color="Phase",
title=title,
hover_data=["Duration"],
)
# Calculate the height dynamically
fig.update_layout(height=len(tasks) * 10, yaxis_tickfont_size=14)
# Add a deadline line to the chart
created_at = datetime.fromisoformat(pipeline.created_at.replace("Z", "+00:00"))
timeout_at = created_at + timedelta(hours=1)
fig.add_vrect(
x0=timeout_at,
x1=timeout_at,
annotation_text="1h Timeout",
fillcolor="gray",
line_width=2,
line_color="gray",
line_dash="dash",
annotation_position="top left",
annotation_textangle=90,
)
return fig
def parse_args() -> None:
parser = argparse.ArgumentParser(
description="Generate the Gantt chart from a given pipeline."
)
parser.add_argument("pipeline_url", type=str, help="URLs to the pipeline.")
parser.add_argument(
"-o",
"--output",
type=str,
help="Output file name. Use html ou image suffixes to choose the format.",
)
parser.add_argument(
"--token",
metavar="token",
help="force GitLab token, otherwise it's read from ~/.config/gitlab-token",
)
return parser.parse_args()
if __name__ == "__main__":
args = parse_args()
token = read_token(args.token)
gl = gitlab.Gitlab(url=GITLAB_URL, private_token=token, retry_transient_errors=True)
pipeline, _ = get_gitlab_pipeline_from_url(gl, args.pipeline_url)
fig = generate_gantt_chart(pipeline)
if args.output and "htm" in args.output:
fig.write_html(args.output)
elif args.output:
fig.update_layout(width=1000)
fig.write_image(args.output)
else:
fig.show()

View File

@@ -1,10 +0,0 @@
#!/usr/bin/env bash
set -eu
this_dir=$(dirname -- "$(readlink -f -- "${BASH_SOURCE[0]}")")
readonly this_dir
exec \
"$this_dir/../python-venv.sh" \
"$this_dir/requirements.txt" \
"$this_dir/ci_gantt_chart.py" "$@"

View File

@@ -1,178 +0,0 @@
#!/usr/bin/env python3
# Copyright © 2023 Collabora Ltd.
# Authors:
# Helen Koike <helen.koike@collabora.com>
#
# For the dependencies, see the requirements.txt
# SPDX-License-Identifier: MIT
import argparse
import gitlab
import re
import os
import pytz
import traceback
from datetime import datetime, timedelta
from gitlab_common import (
read_token,
GITLAB_URL,
get_gitlab_pipeline_from_url,
)
from ci_gantt_chart import generate_gantt_chart
MARGE_USER_ID = 9716 # Marge
LAST_MARGE_EVENT_FILE = os.path.expanduser("~/.config/last_marge_event")
def read_last_event_date_from_file():
try:
with open(LAST_MARGE_EVENT_FILE, "r") as f:
last_event_date = f.read().strip()
except FileNotFoundError:
# 3 days ago
last_event_date = (datetime.now() - timedelta(days=3)).isoformat()
return last_event_date
def pretty_time(time_str):
"""Pretty print time"""
local_timezone = datetime.now().astimezone().tzinfo
time_d = datetime.fromisoformat(time_str.replace("Z", "+00:00")).astimezone(
local_timezone
)
return f'{time_str} ({time_d.strftime("%d %b %Y %Hh%Mm%Ss")} {local_timezone})'
def compose_message(file_name, attachment_url):
return f"""
Here is the Gantt chart for the referred pipeline, I hope it helps 😄 (tip: click on the "Pan" button on the top right bar):
[{file_name}]({attachment_url})
<details>
<summary>more info</summary>
This message was generated by the ci_post_gantt.py script, which is running on a server at Collabora.
</details>
"""
def gitlab_upload_file_get_url(gl, project_id, filepath):
project = gl.projects.get(project_id)
uploaded_file = project.upload(filepath, filepath=filepath)
return uploaded_file["url"]
def gitlab_post_reply_to_note(gl, event, reply_message):
"""
Post a reply to a note in thread based on a GitLab event.
:param gl: The GitLab connection instance.
:param event: The event object containing the note details.
:param reply_message: The reply message.
"""
try:
note_id = event.target_id
merge_request_iid = event.note["noteable_iid"]
project = gl.projects.get(event.project_id)
merge_request = project.mergerequests.get(merge_request_iid)
# Find the discussion to which the note belongs
discussions = merge_request.discussions.list(as_list=False)
target_discussion = next(
(
d
for d in discussions
if any(n["id"] == note_id for n in d.attributes["notes"])
),
None,
)
if target_discussion is None:
raise ValueError("Discussion for the note not found.")
# Add a reply to the discussion
reply = target_discussion.notes.create({"body": reply_message})
return reply
except gitlab.exceptions.GitlabError as e:
print(f"Failed to post a reply to '{event.note['body']}': {e}")
return None
def parse_args() -> None:
parser = argparse.ArgumentParser(description="Monitor rejected pipelines by Marge.")
parser.add_argument(
"--token",
metavar="token",
help="force GitLab token, otherwise it's read from ~/.config/gitlab-token",
)
parser.add_argument(
"--since",
metavar="since",
help="consider only events after this date (ISO format), otherwise it's read from ~/.config/last_marge_event",
)
return parser.parse_args()
if __name__ == "__main__":
args = parse_args()
token = read_token(args.token)
gl = gitlab.Gitlab(url=GITLAB_URL, private_token=token, retry_transient_errors=True)
user = gl.users.get(MARGE_USER_ID)
last_event_at = args.since if args.since else read_last_event_date_from_file()
print(f"Retrieving Marge messages since {pretty_time(last_event_at)}\n")
# the "after" only considers the "2023-10-24" part, it doesn't consider the time
events = user.events.list(
all=True,
target_type="note",
after=(datetime.now() - timedelta(days=3)).isoformat(),
sort="asc",
)
last_event_at_date = datetime.fromisoformat(
last_event_at.replace("Z", "+00:00")
).replace(tzinfo=pytz.UTC)
for event in events:
created_at_date = datetime.fromisoformat(
event.created_at.replace("Z", "+00:00")
).replace(tzinfo=pytz.UTC)
if created_at_date <= last_event_at_date:
continue
last_event_at = event.created_at
match = re.search(r"https://[^ ]+", event.note["body"])
if match:
try:
print("Found message:", event.note["body"])
pipeline_url = match.group(0)[:-1]
pipeline, _ = get_gitlab_pipeline_from_url(gl, pipeline_url)
print("Generating gantt chart...")
fig = generate_gantt_chart(pipeline)
file_name = "Gantt.html"
fig.write_html(file_name)
print("Uploading gantt file...")
file_url = gitlab_upload_file_get_url(gl, event.project_id, file_name)
print("Posting reply ...\n")
message = compose_message(file_name, file_url)
gitlab_post_reply_to_note(gl, event, message)
except Exception as e:
print(f"Failed to generate gantt chart, not posting reply.{e}")
traceback.print_exc()
if not args.since:
print(
f"Updating last event date to {pretty_time(last_event_at)} on {LAST_MARGE_EVENT_FILE}\n"
)
with open(LAST_MARGE_EVENT_FILE, "w") as f:
f.write(last_event_at)

View File

@@ -1,10 +0,0 @@
#!/usr/bin/env bash
set -eu
this_dir=$(dirname -- "$(readlink -f -- "${BASH_SOURCE[0]}")")
readonly this_dir
exec \
"$this_dir/../python-venv.sh" \
"$this_dir/requirements.txt" \
"$this_dir/ci_post_gantt.py" "$@"

View File

@@ -20,27 +20,24 @@ from collections import defaultdict
from concurrent.futures import ThreadPoolExecutor
from functools import partial
from itertools import chain
from subprocess import check_output, CalledProcessError
from subprocess import check_output
from typing import TYPE_CHECKING, Iterable, Literal, Optional
import gitlab
import gitlab.v4.objects
from colorama import Fore, Style
from gitlab_common import (
GITLAB_URL,
TOKEN_DIR,
get_gitlab_pipeline_from_url,
get_gitlab_project,
get_token_from_default_dir,
pretty_duration,
read_token,
wait_for_pipeline,
pretty_duration,
)
from gitlab_gql import GitlabGQL, create_job_needs_dag, filter_dag, print_dag
if TYPE_CHECKING:
from gitlab_gql import Dag
GITLAB_URL = "https://gitlab.freedesktop.org"
REFRESH_WAIT_LOG = 10
REFRESH_WAIT_JOBS = 6
@@ -66,9 +63,6 @@ def print_job_status(job, new_status=False) -> None:
if job.status == "canceled":
return
if new_status and job.status == "created":
return
if job.duration:
duration = job.duration
elif job.started_at:
@@ -120,10 +114,10 @@ def monitor_pipeline(
stress < 0
or sum(stress_status_counter[job.name].values()) < stress
):
job = enable_job(project, pipeline, job, "retry", force_manual)
enable_job(project, job, "retry", force_manual)
stress_status_counter[job.name][job.status] += 1
else:
job = enable_job(project, pipeline, job, "target", force_manual)
enable_job(project, job, "target", force_manual)
print_job_status(job, job.status not in target_statuses[job.name])
target_statuses[job.name] = job.status
@@ -136,7 +130,7 @@ def monitor_pipeline(
# run dependencies and cancel the rest
if job.name in dependencies:
job = enable_job(project, pipeline, job, "dep", True)
enable_job(project, job, "dep", True)
if job.status == "failed":
deps_failed.append(job.name)
else:
@@ -191,37 +185,23 @@ def monitor_pipeline(
pretty_wait(REFRESH_WAIT_JOBS)
def get_pipeline_job(
pipeline: gitlab.v4.objects.ProjectPipeline,
id: int,
) -> gitlab.v4.objects.ProjectPipelineJob:
pipeline_jobs = pipeline.jobs.list(all=True)
return [j for j in pipeline_jobs if j.id == id][0]
def enable_job(
project: gitlab.v4.objects.Project,
pipeline: gitlab.v4.objects.ProjectPipeline,
job: gitlab.v4.objects.ProjectPipelineJob,
action_type: Literal["target", "dep", "retry"],
force_manual: bool,
) -> gitlab.v4.objects.ProjectPipelineJob:
project, job, action_type: Literal["target", "dep", "retry"], force_manual: bool
) -> None:
"""enable job"""
if (
(job.status in ["success", "failed"] and action_type != "retry")
or (job.status == "manual" and not force_manual)
or job.status in ["skipped", "running", "created", "pending"]
):
return job
return
pjob = project.jobs.get(job.id, lazy=True)
if job.status in ["success", "failed", "canceled"]:
new_job = pjob.retry()
job = get_pipeline_job(pipeline, new_job["id"])
pjob.retry()
else:
pjob.play()
job = get_pipeline_job(pipeline, pjob.id)
if action_type == "target":
jtype = "🞋 "
@@ -232,8 +212,6 @@ def enable_job(
print(Fore.MAGENTA + f"{jtype} job {job.name} manually enabled" + Style.RESET_ALL)
return job
def cancel_job(project, job) -> None:
"""Cancel GitLab job"""
@@ -267,7 +245,7 @@ def print_log(project, job_id) -> None:
job = project.jobs.get(job_id)
# GitLab's REST API doesn't offer pagination for logs, so we have to refetch it all
lines = job.trace().decode().splitlines()
lines = job.trace().decode("raw_unicode_escape").splitlines()
for line in lines[printed_lines:]:
print(line)
printed_lines = len(lines)
@@ -291,15 +269,11 @@ def parse_args() -> None:
metavar="target-job",
help="Target job regex. For multiple targets, separate with pipe | character",
required=True,
nargs=argparse.ONE_OR_MORE,
)
parser.add_argument(
"--token",
metavar="token",
type=str,
default=get_token_from_default_dir(),
help="Use the provided GitLab token or token file, "
f"otherwise it's read from {TOKEN_DIR / 'gitlab-token'}",
help="force GitLab token, otherwise it's read from ~/.config/gitlab-token",
)
parser.add_argument(
"--force-manual", action="store_true", help="Force jobs marked as manual"
@@ -360,31 +334,8 @@ def print_detected_jobs(
print_job_set(Fore.BLUE, "target", target_jobs)
def find_dependencies(token: str | None,
target_jobs_regex: re.Pattern,
project_path: str,
iid: int) -> set[str]:
"""
Find the dependencies of the target jobs in a GitLab pipeline.
This function uses the GitLab GraphQL API to fetch the job dependency graph
of a pipeline, filters the graph to only include the target jobs and their
dependencies, and returns the names of these jobs.
Args:
token (str | None): The GitLab API token. If None, the API is accessed without
authentication.
target_jobs_regex (re.Pattern): A regex pattern to match the names of the target jobs.
project_path (str): The path of the GitLab project.
iid (int): The internal ID of the pipeline.
Returns:
set[str]: A set of the names of the target jobs and their dependencies.
Raises:
SystemExit: If no target jobs are found in the pipeline.
"""
gql_instance = GitlabGQL(token=token)
def find_dependencies(target_jobs_regex: re.Pattern, project_path: str, iid: int) -> set[str]:
gql_instance = GitlabGQL()
dag = create_job_needs_dag(
gql_instance, {"projectPath": project_path.path_with_namespace, "iid": iid}
)
@@ -415,7 +366,15 @@ if __name__ == "__main__":
REV: str = args.rev
if args.pipeline_url:
pipe, cur_project = get_gitlab_pipeline_from_url(gl, args.pipeline_url)
assert args.pipeline_url.startswith(GITLAB_URL)
url_path = args.pipeline_url[len(GITLAB_URL):]
url_path_components = url_path.split("/")
project_name = "/".join(url_path_components[1:3])
assert url_path_components[3] == "-"
assert url_path_components[4] == "pipelines"
pipeline_id = int(url_path_components[5])
cur_project = gl.projects.get(project_name)
pipe = cur_project.pipelines.get(pipeline_id)
REV = pipe.sha
else:
mesa_project = gl.projects.get("mesa/mesa")
@@ -424,58 +383,20 @@ if __name__ == "__main__":
REV = mesa_project.mergerequests.get(args.mr).sha
else:
REV = check_output(['git', 'rev-parse', REV]).decode('ascii').strip()
if args.rev == 'HEAD':
try:
branch_name = check_output([
'git', 'symbolic-ref', '-q', 'HEAD',
]).decode('ascii').strip()
except CalledProcessError:
branch_name = ""
# Ignore detached heads
if branch_name:
tracked_remote = check_output([
'git', 'for-each-ref', '--format=%(upstream)',
branch_name,
]).decode('ascii').strip()
# Ignore local branches that do not track any remote
if tracked_remote:
remote_rev = check_output([
'git', 'rev-parse', tracked_remote,
]).decode('ascii').strip()
if REV != remote_rev:
print(
f"Local HEAD commit {REV[:10]} is different than "
f"tracked remote HEAD commit {remote_rev[:10]}"
)
print("Did you forget to `git push` ?")
projects.append(get_gitlab_project(gl, args.project))
(pipe, cur_project) = wait_for_pipeline(projects, REV)
print(f"Revision: {REV}")
print(f"Pipeline: {pipe.web_url}")
target = '|'.join(args.target)
target = target.strip()
target_jobs_regex = re.compile(args.target.strip())
deps = set()
print("🞋 job: " + Fore.BLUE + target + Style.RESET_ALL)
# Implicitly include `parallel:` jobs
target = f'({target})' + r'( \d+/\d+)?'
target_jobs_regex = re.compile(target)
deps = find_dependencies(
token=token,
target_jobs_regex=target_jobs_regex,
iid=pipe.iid,
project_path=cur_project
)
if args.target:
print("🞋 job: " + Fore.BLUE + args.target + Style.RESET_ALL)
deps = find_dependencies(
target_jobs_regex=target_jobs_regex, iid=pipe.iid, project_path=cur_project
)
target_job_id, ret = monitor_pipeline(
cur_project, pipe, target_jobs_regex, deps, args.force_manual, args.stress
)

View File

@@ -3,33 +3,13 @@
# Authors:
# Tomeu Vizoso <tomeu.vizoso@collabora.com>
# David Heidelberg <david.heidelberg@collabora.com>
# Guilherme Gallo <guilherme.gallo@collabora.com>
#
# SPDX-License-Identifier: MIT
'''Shared functions between the scripts.'''
import logging
import os
import re
import time
from pathlib import Path
GITLAB_URL = "https://gitlab.freedesktop.org"
TOKEN_DIR = Path(os.getenv("XDG_CONFIG_HOME") or Path.home() / ".config")
# Known GitLab token prefixes: https://docs.gitlab.com/ee/security/token_overview.html#token-prefixes
TOKEN_PREFIXES: dict[str, str] = {
"Personal access token": "glpat-",
"OAuth Application Secret": "gloas-",
"Deploy token": "gldt-",
"Runner authentication token": "glrt-",
"CI/CD Job token": "glcbt-",
"Trigger token": "glptt-",
"Feed token": "glft-",
"Incoming mail token": "glimt-",
"GitLab Agent for Kubernetes token": "glagent-",
"SCIM Tokens": "glsoat-"
}
from typing import Optional
def pretty_duration(seconds):
@@ -43,19 +23,6 @@ def pretty_duration(seconds):
return f"{seconds:0.0f}s"
def get_gitlab_pipeline_from_url(gl, pipeline_url):
assert pipeline_url.startswith(GITLAB_URL)
url_path = pipeline_url[len(GITLAB_URL) :]
url_path_components = url_path.split("/")
project_name = "/".join(url_path_components[1:3])
assert url_path_components[3] == "-"
assert url_path_components[4] == "pipelines"
pipeline_id = int(url_path_components[5])
cur_project = gl.projects.get(project_name)
pipe = cur_project.pipelines.get(pipeline_id)
return pipe, cur_project
def get_gitlab_project(glab, name: str):
"""Finds a specified gitlab project for given user"""
if "/" in name:
@@ -67,81 +34,15 @@ def get_gitlab_project(glab, name: str):
return glab.projects.get(project_path)
def get_token_from_default_dir() -> str:
"""
Retrieves the GitLab token from the default directory.
Returns:
str: The path to the GitLab token file.
Raises:
FileNotFoundError: If the token file is not found.
"""
token_file = TOKEN_DIR / "gitlab-token"
try:
return str(token_file.resolve())
except FileNotFoundError as ex:
print(
f"Could not find {token_file}, please provide a token file as an argument"
)
raise ex
def validate_gitlab_token(token: str) -> bool:
token_suffix = token.split("-")[-1]
# Basic validation of the token suffix based on:
# https://gitlab.com/gitlab-org/gitlab/-/blob/master/gems/gitlab-secret_detection/lib/gitleaks.toml
if not re.match(r"(\w+-)?[0-9a-zA-Z_\-]{20,64}", token_suffix):
return False
for token_type, token_prefix in TOKEN_PREFIXES.items():
if token.startswith(token_prefix):
logging.info(f"Found probable token type: {token_type}")
return True
# If the token type is not recognized, return False
return False
def get_token_from_arg(token_arg: str | Path | None) -> str | None:
if not token_arg:
logging.info("No token provided.")
return None
token_path = Path(token_arg)
if token_path.is_file():
return read_token_from_file(token_path)
return handle_direct_token(token_path, token_arg)
def read_token_from_file(token_path: Path) -> str:
token = token_path.read_text().strip()
logging.info(f"Token read from file: {token_path}")
return token
def handle_direct_token(token_path: Path, token_arg: str | Path) -> str | None:
if token_path == Path(get_token_from_default_dir()):
logging.warning(
f"The default token file {token_path} was not found. "
"Please provide a token file or a token directly via --token arg."
)
return None
logging.info("Token provided directly as an argument.")
return str(token_arg)
def read_token(token_arg: str | Path | None) -> str | None:
token = get_token_from_arg(token_arg)
if token and not validate_gitlab_token(token):
logging.warning("The provided token is either an old token or does not seem to "
"be a valid token.")
logging.warning("Newer tokens are the ones created from a Gitlab 14.5+ instance.")
logging.warning("See https://about.gitlab.com/releases/2021/11/22/"
"gitlab-14-5-released/"
"#new-gitlab-access-token-prefix-and-detection")
return token
def read_token(token_arg: Optional[str]) -> str:
"""pick token from args or file"""
if token_arg:
return token_arg
return (
open(os.path.expanduser("~/.config/gitlab-token"), encoding="utf-8")
.readline()
.rstrip()
)
def wait_for_pipeline(projects, sha: str, timeout=None):

View File

@@ -9,6 +9,7 @@ from collections import OrderedDict
from copy import deepcopy
from dataclasses import dataclass, field
from itertools import accumulate
from os import getenv
from pathlib import Path
from subprocess import check_output
from textwrap import dedent
@@ -16,7 +17,6 @@ from typing import Any, Iterable, Optional, Pattern, TypedDict, Union
import yaml
from filecache import DAY, filecache
from gitlab_common import get_token_from_default_dir
from gql import Client, gql
from gql.transport.requests import RequestsHTTPTransport
from graphql import DocumentNode
@@ -34,6 +34,18 @@ Dag = dict[str, DagNode]
StageSeq = OrderedDict[str, set[str]]
TOKEN_DIR = Path(getenv("XDG_CONFIG_HOME") or Path.home() / ".config")
def get_token_from_default_dir() -> str:
token_file = TOKEN_DIR / "gitlab-token"
try:
return str(token_file.resolve())
except FileNotFoundError as ex:
print(
f"Could not find {token_file}, please provide a token file as an argument"
)
raise ex
def get_project_root_dir():
@@ -229,7 +241,7 @@ def traverse_dag_needs(jobs_metadata: Dag) -> None:
partial = True
while partial:
next_depth: set[str] = {n for dn in final_needs if dn in jobs_metadata for n in jobs_metadata[dn]["needs"]}
next_depth: set[str] = {n for dn in final_needs for n in jobs_metadata[dn]["needs"]}
partial: bool = not final_needs.issuperset(next_depth)
final_needs = final_needs.union(next_depth)
@@ -343,12 +355,8 @@ def fetch_merged_yaml(gl_gql: GitlabGQL, params) -> dict[str, Any]:
- local: .gitlab-ci.yml
""")
raw_response = gl_gql.query("job_details.gql", params)
ci_config = raw_response["ciConfig"]
if merged_yaml := ci_config["mergedYaml"]:
if merged_yaml := raw_response["ciConfig"]["mergedYaml"]:
return yaml.safe_load(merged_yaml)
if "errors" in ci_config:
for error in ci_config["errors"]:
print(error)
gl_gql.invalidate_query_cache()
raise ValueError(

View File

@@ -1,10 +1,7 @@
colorama==0.4.5
filecache==0.81
gql==3.4.0
kaleido==0.2.1
python-dateutil==2.8.2
pandas==2.1.1
plotly==5.17.0
python-gitlab==3.5.0
PyYAML==6.0.1
ruamel.yaml.clib==0.2.8

View File

@@ -177,8 +177,6 @@ SOURCES = [
Source('include/vulkan/vulkan_xlib.h', 'https://github.com/KhronosGroup/Vulkan-Headers/raw/main/include/vulkan/vulkan_xlib.h'),
Source('include/vulkan/vulkan_xlib_xrandr.h', 'https://github.com/KhronosGroup/Vulkan-Headers/raw/main/include/vulkan/vulkan_xlib_xrandr.h'),
Source('include/vulkan/vk_android_native_buffer.h', 'https://android.googlesource.com/platform/frameworks/native/+/master/vulkan/include/vulkan/vk_android_native_buffer.h?format=TEXT'),
Source('include/vk_video/vulkan_video_codec_av1std.h', 'https://github.com/KhronosGroup/Vulkan-Headers/raw/main/include/vk_video/vulkan_video_codec_av1std.h'),
Source('include/vk_video/vulkan_video_codec_av1std_decode.h', 'https://github.com/KhronosGroup/Vulkan-Headers/raw/main/include/vk_video/vulkan_video_codec_av1std_decode.h'),
Source('include/vk_video/vulkan_video_codec_h264std.h', 'https://github.com/KhronosGroup/Vulkan-Headers/raw/main/include/vk_video/vulkan_video_codec_h264std.h'),
Source('include/vk_video/vulkan_video_codec_h264std_decode.h', 'https://github.com/KhronosGroup/Vulkan-Headers/raw/main/include/vk_video/vulkan_video_codec_h264std_decode.h'),
Source('include/vk_video/vulkan_video_codec_h264std_encode.h', 'https://github.com/KhronosGroup/Vulkan-Headers/raw/main/include/vk_video/vulkan_video_codec_h264std_encode.h'),

View File

@@ -41,7 +41,7 @@ Then, create your Meson cross file to use it, something like this
Now, use that cross file for your Android build directory (as in this
one cross-compiling the turnip driver for a stock Pixel phone)
.. code-block:: sh
.. code-block:: console
meson setup build-android-aarch64 \
--cross-file android-aarch64 \
@@ -61,7 +61,7 @@ read-only disk image on ``/vendor``. To be able to replace them for
driver development, we need to unlock the device and remount
``/vendor`` read/write.
.. code-block:: sh
.. code-block:: console
adb disable-verity
adb reboot
@@ -69,7 +69,7 @@ driver development, we need to unlock the device and remount
Now you can replace drivers as in:
.. code-block:: sh
.. code-block:: console
adb push build-android-aarch64/src/freedreno/vulkan/libvulkan_freedreno.so /vendor/lib64/hw/vulkan.sdm710.so
@@ -91,7 +91,7 @@ using scp from outside the container.
On your device, you'll want to make ``/`` read-write. ssh in as root
and run:
.. code-block:: sh
.. code-block:: console
crossystem dev_boot_signed_only=0
/usr/share/vboot/bin/make_dev_ssd.sh --remove_rootfs_verification --partitions 4
@@ -100,7 +100,7 @@ and run:
Then, we'll switch Android from using an image for ``/vendor`` to using a
bind-mount from a directory we control.
.. code-block:: sh
.. code-block:: console
cd /opt/google/containers/android/
mkdir vendor-ro
@@ -123,7 +123,7 @@ change it to::
Now, restart the UI to do a full reload:
.. code-block:: sh
.. code-block:: console
restart ui
@@ -136,7 +136,7 @@ then the ``mount`` command should show::
Now, replacing your DRI driver with a new one built for Android should
be a matter of:
.. code-block:: sh
.. code-block:: console
scp msm_dri.so $HOST:/opt/google/containers/android/vendor-rw/lib64/dri/
@@ -149,7 +149,7 @@ available to the NDK, assuming you're building anything but the
Freedreno Vulkan driver for KGSL. You can mostly put things in place
with:
.. code-block:: sh
.. code-block:: console
scp $HOST:/opt/google/containers/android/vendor-rw/lib64/libdrm.so \
NDKDIR/sysroot/usr/lib/aarch64-linux-android/lib/
@@ -166,6 +166,6 @@ find you need to reload the whole Android container. To do so without
having to log in to Chrome again every time, you can just kill the
container and let it restart:
.. code-block:: sh
.. code-block:: console
kill $(cat /run/containers/android-run_oci/container.pid )

View File

@@ -35,7 +35,7 @@ than the given year.
For example, if the game was released in 2001, do
.. code-block:: sh
.. code-block:: console
export MESA_EXTENSION_MAX_YEAR=2001

View File

@@ -138,7 +138,7 @@ Setup
Each board will be registered in freedesktop.org GitLab. You'll want
something like this to register a fastboot board:
.. code-block:: sh
.. code-block:: console
sudo gitlab-runner register \
--url https://gitlab.freedesktop.org \
@@ -194,7 +194,7 @@ 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
.. code-block:: console
sudo apt install nginx libnginx-mod-http-lua
@@ -213,7 +213,7 @@ your devices are on.
Enable the site and restart nginx:
.. code-block:: sh
.. code-block:: console
sudo rm /etc/nginx/sites-enabled/default
sudo ln -s /etc/nginx/sites-available/fdo-cache /etc/nginx/sites-enabled/fdo-cache

View File

@@ -64,13 +64,13 @@ Farm management
When the farm starts failing for any reason (power, network, out-of-space), it needs to be disabled by pushing separate MR with
.. code-block:: sh
.. code-block:: console
git mv .ci-farms{,-disabled}/$farm_name
After farm restore functionality can be enabled by pushing a new merge request, which contains
.. code-block:: sh
.. code-block:: console
git mv .ci-farms{-disabled,}/$farm_name
@@ -279,7 +279,7 @@ command`` instead of ``run -it $IMAGE bash`` (which you may also find
useful for debug). Extract your build setup variables from
.gitlab-ci.yml and run the CI meson build script:
.. code-block:: sh
.. code-block:: console
IMAGE=registry.freedesktop.org/anholt/mesa/debian/android_build:2020-09-11
sudo docker pull $IMAGE
@@ -288,7 +288,7 @@ useful for debug). Extract your build setup variables from
All you have left over from the build is its output, and a _build
directory. You can hack on mesa and iterate testing the build with:
.. code-block:: sh
.. code-block:: console
sudo docker run --rm -v `pwd`:/mesa $IMAGE meson compile -C /mesa/_build

View File

@@ -12,7 +12,7 @@ Running single trace
--------------------
A simple run to see the output of the trace can be done with
.. code-block:: sh
.. code-block:: console
apitrace replay -w name_of_trace.trace
@@ -20,7 +20,7 @@ For more information, look into the `Apitrace documentation <https://github.com/
For comparing checksums use:
.. code-block:: sh
.. code-block:: console
cd piglit/replayer
export PIGLIT_SOURCE_DIR="../"
@@ -34,7 +34,7 @@ Sometimes it's useful to be able to test traces on your local machine instead of
Download the YAML file from your driver's ``ci/`` directory and then change the path in the YAML file from local proxy or MinIO to the local directory (url-like format ``file://``)
.. code-block:: sh
.. code-block:: console
# The PIGLIT_REPLAY_DEVICE_NAME has to match name in the YAML file.
export PIGLIT_REPLAY_DEVICE_NAME='your_device_name'

View File

@@ -126,7 +126,7 @@ Basic formatting guidelines
- This GNU indent command generally does the right thing for
formatting:
.. code-block:: sh
.. code-block:: console
indent -br -i3 -npcs --no-tabs infile.c -o outfile.c

View File

@@ -28,13 +28,13 @@ Mesa releases are available in two formats: ``.tar.xz`` and ``.tar.gz``.
To unpack the tarball:
.. code-block:: sh
.. code-block:: console
tar xf mesa-Y.N.P.tar.xz
or
.. code-block:: sh
.. code-block:: console
tar xf mesa-Y.N.P.tar.gz

View File

@@ -388,13 +388,3 @@ executed :
"main-command-buffer":f1 -> "ring-buffer":f1 [color="#0000ff"];
"main-command-buffer":f1 -> "ring-buffer":f2 [color="#0000ff"];
}
Runtime dependencies
--------------------
Starting with Intel 12th generation/Alder Lake-P and Intel Arc Alchemist, the Intel 3D driver stack requires GuC firmware for proper operation. You have two options to install the firmware:
- Distro package: Install the pre-packaged firmware included in your Linux distribution's repositories.
- Manual download: You can download the firmware from the official repository: https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/i915. Place the downloaded files in the /lib/firmware/i915 directory.
Important: For optimal performance, we recommend updating the GuC firmware to version 70.6.3 or later.

View File

@@ -205,7 +205,8 @@ Strided linear images have numerous limitations:
- Strides must be a multiple of 16 bytes.
- Strides must be nonzero. For 1D images where the stride is logically
irrelevant, ail will internally select the minimal stride.
- Only 1D, 2D, and 2D Array images may be linear. In particular, no 3D or cubemaps.
- Only 1D and 2D images may be linear. In particular, no 3D or cubemaps.
- Array texture may not be linear. No 2D arrays or cubemap arrays.
- 2D images must not be mipmapped.
- Block-compressed formats and multisampled images are unsupported. Elements of
a strided linear image are simply pixels.
@@ -306,14 +307,14 @@ useful for exercising the compiler. To build, use options:
Then run an OpenGL workload with environment variable:
.. code-block:: sh
.. code-block:: console
LD_PRELOAD=~/mesa/build/src/asahi/drm-shim/libasahi_noop_drm_shim.so
For example to compile a shader with shaderdb and print some statistics along
with the IR:
.. code-block:: sh
.. code-block:: console
~/shader-db$ AGX_MESA_DEBUG=shaders,shaderdb ASAHI_MESA_DEBUG=precompile LIBGL_DRIVERS_PATH=~/lib/dri/ LD_PRELOAD=~/mesa/build/src/asahi/drm-shim/libasahi_noop_drm_shim.so ./run shaders/glmark/1-12.shader_test

View File

@@ -308,7 +308,7 @@ the GPU (including its internal hang detection). If a fault in GPU address
space happened, you should expect to find a message from the iommu, with the
faulting address and a hardware unit involved:
.. code-block:: text
.. code-block:: console
*** gpu fault: ttbr0=000000001c941000 iova=000000010066a000 dir=READ type=TRANSLATION source=TP|VFD (0,0,0,1)
@@ -346,7 +346,7 @@ though going here is the last resort and likely won't be helpful.
The ``PC`` value is an instruction address in the current firmware.
You would need to disassemble the firmware (/lib/firmware/qcom/aXXX_sqe.fw) via:
.. code-block:: sh
.. code-block:: console
afuc-disasm -v a650_sqe.fw > a650_sqe.fw.disasm
@@ -369,17 +369,18 @@ Command Stream Capture
^^^^^^^^^^^^^^^^^^^^^^
During Mesa development, it's often useful to look at the command streams we
send to the kernel. We have an interface for the kernel to capture all
submitted command streams:
send to the kernel. Mesa itself doesn't implement a way to stream them out
(though it maybe should!). Instead, we have an interface for the kernel to
capture all submitted command streams:
.. code-block:: sh
.. code-block:: console
cat /sys/kernel/debug/dri/0/rd > cmdstream &
By default, command stream capture does not capture texture/vertex/etc. data.
You can enable capturing all the BOs with:
.. code-block:: sh
.. code-block:: console
echo Y > /sys/module/msm/parameters/rd_full
@@ -390,28 +391,6 @@ probably want to cause a crash in the GPU during a frame of interest so that a
single GPU core dump is generated. Emitting ``0xdeadbeef`` in the CS should be
enough to cause a fault.
``fd_rd_output`` facilities provide support for generating the command stream
capture from inside Mesa. Different ``FD_RD_DUMP`` options are available:
- ``enable`` simply enables dumping the command stream on each submit for a
given logical device. When a more advanced option is specified, ``enable`` is
implied as specified.
- ``combine`` will combine all dumps into a single file instead of writing the
dump for each submit into a standalone file.
- ``full`` will dump every buffer object, which is necessary for replays of
command streams (see below).
- ``trigger`` will establish a trigger file through which dumps can be better
controlled. Writing a positive integer value into the file will enable dumping
of that many subsequent submits. Writing -1 will enable dumping of submits
until disabled. Writing 0 (or any other value) will disable dumps.
Output dump files and trigger file (when enabled) are hard-coded to be placed
under ``/tmp``, or ``/data/local/tmp`` under Android.
Functionality is generic to any Freedreno-based backend, but is currently only
integrated in the MSM backend of Turnip. Using the existing ``TU_DEBUG=rd``
option will translate to ``FD_RD_DUMP=enable``.
Capturing Hang RD
+++++++++++++++++
@@ -421,7 +400,7 @@ Additionally it is geared towards analyzing the GPU state at the moment of the c
Alternatively, it's possible to obtain the whole submission with all command
streams via ``/sys/kernel/debug/dri/0/hangrd``:
.. code-block:: sh
.. code-block:: console
sudo cat /sys/kernel/debug/dri/0/hangrd > logfile.rd // Do the cat _before_ the expected hang
@@ -442,17 +421,17 @@ Dumping rendering results or even just memory is currently unsupported.
Replaying is done via `replay` tool:
.. code-block:: sh
.. code-block:: console
./replay test_replay.rd
More examples:
.. code-block:: sh
.. code-block:: console
./replay --first=start_submit_n --last=last_submit_n test_replay.rd
.. code-block:: sh
.. code-block:: console
./replay --override=0 --generator=./generate_rd test_replay.rd
@@ -474,7 +453,7 @@ The workflow would look like this:
1. Find the cmdstream № you want to edit;
2. Decompile it:
.. code-block:: sh
.. code-block:: console
./rddecompiler -s %cmd_stream_n% example.rd > generate_rd.c
@@ -482,7 +461,7 @@ The workflow would look like this:
4. Compile it back, see rdcompiler-meson.build for the instructions;
5. Plug the generator into cmdstream replay:
.. code-block:: sh
.. code-block:: console
./replay --override=%cmd_stream_№% --generator=~/generate_rd
@@ -550,7 +529,7 @@ because it would require much less breadcrumb writes and syncs.
Breadcrumbs settings:
.. code-block:: sh
.. code-block:: console
TU_BREADCRUMBS=%IP%:%PORT%,break=%BREAKPOINT%:%BREAKPOINT_HITS%
@@ -565,26 +544,26 @@ A typical work flow would be:
- Start listening for breadcrumbs on a remote host:
.. code-block:: sh
.. code-block:: console
nc -lvup $PORT | stdbuf -o0 xxd -pc -c 4 | awk -Wposix '{printf("%u:%u\n", "0x" $0, a[$0]++)}'
- Start capturing command stream;
- Replay the hanging trace with:
.. code-block:: sh
.. code-block:: console
TU_BREADCRUMBS=$IP:$PORT,break=-1:0
- Increase hangcheck period:
.. code-block:: sh
.. code-block:: console
echo -n 60000 > /sys/kernel/debug/dri/0/hangcheck_period_ms
- After GPU hang note the last breadcrumb and relaunch trace with:
.. code-block:: sh
.. code-block:: console
TU_BREADCRUMBS=%IP%:%PORT%,break=%LAST_BREADCRUMB%:%HITS%
@@ -610,7 +589,7 @@ Finding instances of stale reg reads
Turnip has a debug option to stomp the registers with invalid values to catch
the cases where stale data is read.
.. code-block:: sh
.. code-block:: console
MESA_VK_ABORT_ON_DEVICE_LOSS=1 \
TU_DEBUG_STALE_REGS_RANGE=0x00000c00,0x0000be01 \

View File

@@ -55,7 +55,6 @@ These are some display drivers that have been tested with Lima:
- Exynos: ``exynos``
- Rockchip: ``rockchip``
- Tiny DRM: ``tinydrm``
- Xilinx ZynqMP: ``zynqmp-dpsub``
Environment variables
---------------------

View File

@@ -31,7 +31,7 @@ Requirements
For Linux, on a recent Debian based distribution do:
.. code-block:: sh
.. code-block:: console
aptitude install llvm-dev
@@ -42,7 +42,7 @@ Requirements
For a RPM-based distribution do:
.. code-block:: sh
.. code-block:: console
yum install llvm-devel
@@ -76,7 +76,7 @@ Building
To build everything on Linux invoke meson as:
.. code-block:: sh
.. code-block:: console
mkdir build
cd build

View File

@@ -18,8 +18,9 @@ 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 not currently conformant on any hardware. As of the writing of this
documentation, it was failing about 2000 tests with the current feature
set.
Debugging
---------
@@ -27,35 +28,16 @@ Debugging
Here are a few environment variable debug environment variables
specific to NVK:
:envvar:`NAK_DEBUG`:
a comma-separated list of named flags affecting the NVK back-end shader
compiler:
``print``
Prints the shader at various stages of the compile pipeline
``serial``
Forces serial instruction execution; this is often useful for
debugging or working around dependency bugs
``spill``
Forces the GPR file to a minimal size to test the spilling code
``annotate``
Adds extra annotation instructions to the IR to track information
from various compile passes
:envvar:`NVK_DEBUG`:
a comma-separated list of named flags, which do various things:
``push``
``push_dump``
Dumps all pusbufs to stderr on submit. This requires that
``push_sync`` also be set.
``push_sync``
Waits for submit to complete before continuing
``zero_memory``
Zeros all VkDeviceMemory objects upon creation
``vm``
Logs VM binds and unbinds
``no_cbuf``
Disables automatic promotion of UBOs to constant buffers
:envvar:`NVK_I_WANT_A_BROKEN_VULKAN_DRIVER`
If defined to ``1`` or ``true``, this will enable enumeration of all

View File

@@ -6,28 +6,25 @@ GPUs based on the Midgard and Bifrost microarchitectures. It is **conformant**
on Mali-G52 and Mali-G57 but **non-conformant** on other GPUs. The following
hardware is currently supported:
========= ============= ============ =======
Product Architecture OpenGL ES OpenGL
========= ============= ============ =======
Mali T600 Midgard (v4) 2.0 2.1
Mali T620 Midgard (v4) 2.0 2.1
Mali T720 Midgard (v4) 2.0 2.1
Mali T760 Midgard (v5) 3.1 3.1
Mali T820 Midgard (v5) 3.1 3.1
Mali T830 Midgard (v5) 3.1 3.1
Mali T860 Midgard (v5) 3.1 3.1
Mali T880 Midgard (v5) 3.1 3.1
Mali G72 Bifrost (v6) 3.1 3.1
Mali G31 Bifrost (v7) 3.1 3.1
Mali G51 Bifrost (v7) 3.1 3.1
Mali G52 Bifrost (v7) 3.1 3.1
Mali G76 Bifrost (v7) 3.1 3.1
Mali G57 Valhall (v9) 3.1 3.1
Mali G310 Valhall (v10) 3.1 3.1
Mali G610 Valhall (v10) 3.1 3.1
========= ============= ============ =======
========= ============ ============ =======
Product Architecture OpenGL ES OpenGL
========= ============ ============ =======
Mali T620 Midgard (v4) 2.0 2.1
Mali T720 Midgard (v4) 2.0 2.1
Mali T760 Midgard (v5) 3.1 3.1
Mali T820 Midgard (v5) 3.1 3.1
Mali T830 Midgard (v5) 3.1 3.1
Mali T860 Midgard (v5) 3.1 3.1
Mali T880 Midgard (v5) 3.1 3.1
Mali G72 Bifrost (v6) 3.1 3.1
Mali G31 Bifrost (v7) 3.1 3.1
Mali G51 Bifrost (v7) 3.1 3.1
Mali G52 Bifrost (v7) 3.1 3.1
Mali G76 Bifrost (v7) 3.1 3.1
Mali G57 Valhall (v9) 3.1 3.1
========= ============ ============ =======
Other Midgard and Bifrost chips (e.g. G71) are not yet supported.
Other Midgard and Bifrost chips (T604, G71) are not yet supported.
Older Mali chips based on the Utgard architecture (Mali 400, Mali 450) are
supported in the :doc:`Lima <lima>` driver, not Panfrost. Lima is also
@@ -105,16 +102,15 @@ was installed.
By default, drm-shim mocks a Mali-G52 system. To select a specific Mali GPU,
set the ``PAN_GPU_ID`` environment variable to the desired GPU ID:
========= ============= =======
Product Architecture GPU ID
========= ============= =======
Mali-T720 Midgard (v4) 720
Mali-T860 Midgard (v5) 860
Mali-G72 Bifrost (v6) 6221
Mali-G52 Bifrost (v7) 7212
Mali-G57 Valhall (v9) 9093
Mali-G610 Valhall (v10) a867
========= ============= =======
========= ============ =======
Product Architecture GPU ID
========= ============ =======
Mali-T720 Midgard (v4) 720
Mali-T860 Midgard (v5) 860
Mali-G72 Bifrost (v6) 6221
Mali-G52 Bifrost (v7) 7212
Mali-G57 Valhall (v9) 9093
========= ============ =======
Additional GPU IDs are enumerated in the ``panfrost_model_list`` list in
``src/panfrost/lib/pan_props.c``.
@@ -122,7 +118,7 @@ Additional GPU IDs are enumerated in the ``panfrost_model_list`` list in
As an example: assuming Mesa is installed to a local path ``~/lib`` and Mesa's
build directory is ``~/mesa/build``, a shader can be compiled for Mali-G52 as:
.. code-block:: sh
.. code-block:: console
~/shader-db$ BIFROST_MESA_DEBUG=shaders \
LIBGL_DRIVERS_PATH=~/lib/dri/ \
@@ -132,7 +128,7 @@ build directory is ``~/mesa/build``, a shader can be compiled for Mali-G52 as:
The same shader can be compiled for Mali-T720 as:
.. code-block:: sh
.. code-block:: console
~/shader-db$ MIDGARD_MESA_DEBUG=shaders \
LIBGL_DRIVERS_PATH=~/lib/dri/ \
@@ -152,7 +148,7 @@ and various flags to dEQP mimic the surfaceless environment that our
continuous integration (CI) uses. This eliminates window system dependencies,
although it requires a specially built CTS:
.. code-block:: sh
.. code-block:: console
~/VK-GL-CTS/build/external/openglcts/modules$ PAN_MESA_DEBUG=trace,dump \
LIBGL_DRIVERS_PATH=~/lib/dri/ \

View File

@@ -51,7 +51,7 @@ vtest
The simplest way to test Venus is to use virglrenderer's vtest server. To
build virglrenderer with Venus support and to start the vtest server,
.. code-block:: sh
.. code-block:: console
$ git clone https://gitlab.freedesktop.org/virgl/virglrenderer.git
$ cd virglrenderer
@@ -63,7 +63,7 @@ build virglrenderer with Venus support and to start the vtest server,
In another shell,
.. code-block:: sh
.. code-block:: console
$ export VK_ICD_FILENAMES=<path-to-virtio_icd.x86_64.json>
$ export VN_DEBUG=vtest
@@ -84,7 +84,7 @@ driver, which was upstreamed in kernel 5.16.
crosvm is written in Rust. To build crosvm, make sure Rust has been installed
and
.. code-block:: sh
.. code-block:: console
$ git clone --recurse-submodules \
https://chromium.googlesource.com/chromiumos/platform/crosvm
@@ -97,7 +97,7 @@ Note that crosvm must be built with ``default-no-sandbox`` or started with
This is how one might want to start crosvm
.. code-block:: sh
.. code-block:: console
$ sudo LD_LIBRARY_PATH=<...> VK_ICD_FILENAMES=<...> ./target/debug/crosvm run \
--gpu vulkan=true \
@@ -126,7 +126,7 @@ the `Chrome OS kernel
To build minigbm and to enable minigbm support in virglrenderer,
.. code-block:: sh
.. code-block:: console
$ git clone https://chromium.googlesource.com/chromiumos/platform/minigbm
$ cd minigbm
@@ -141,7 +141,7 @@ Make sure a host Wayland compositor is running. Replace
In the guest, build and start sommelier, the special Wayland compositor,
.. code-block:: sh
.. code-block:: console
$ git clone https://chromium.googlesource.com/chromiumos/platform2
$ cd platform2/vm_tools/sommelier

View File

@@ -18,7 +18,7 @@ Build EGL
#. Configure your build with the desired client APIs and enable the
driver for your hardware. For example:
.. code-block:: sh
.. code-block:: console
$ meson configure \
-D egl=enabled \

View File

@@ -349,9 +349,6 @@ Core Mesa environment variables
* - ``rra``
- Radeon Raytracing Analyzer
- ``RADV``
* - ``ctxroll``
- Context rolls
- ``RADV``
- Creating RMV captures requires the ``scripts/setup.sh`` script in the
Radeon Developer Tools folder to be run beforehand
@@ -1067,7 +1064,6 @@ Rusticl environment variables
- ``clc`` dumps all OpenCL C source being compiled
- ``program`` dumps compilation logs to stderr
- ``sync`` waits on the GPU to complete after every event
- ``validate`` validates any internally generated SPIR-Vs, e.g. through compiling OpenCL C code
.. _clc-env-var:
@@ -1269,8 +1265,6 @@ RADV driver environment variables
disable FMASK compression on MSAA images (GFX6-GFX10.3)
``nogpl``
disable VK_EXT_graphics_pipeline_library
``nogsfastlaunch2``
disable GS_FAST_LAUNCH=2 for Mesh shaders (GFX11 only)
``nohiz``
disable HIZ for depthstencil images
``noibs``
@@ -1282,9 +1276,7 @@ RADV driver environment variables
``nongg``
disable NGG for GFX10 and GFX10.3
``nonggc``
disable NGG culling on GPUs where it's enabled by default (GFX10.3 only).
``nongg_gs``
disable NGG GS for GFX10 and GFX10.3
disable NGG culling on GPUs where it's enabled by default (GFX10.3+ only).
``nort``
skip executing vkCmdTraceRays and ray queries (RT extensions will still be
advertised)
@@ -1350,26 +1342,22 @@ RADV driver environment variables
enable wave32 for vertex/tess/geometry shaders (GFX10+)
``localbos``
enable local BOs
``nggc``
enable NGG culling on GPUs where it's not enabled by default (GFX10.1 only).
``nircache``
cache per-stage NIR for graphics pipelines
``nosam``
disable optimizations that get enabled when all VRAM is CPU visible.
``pswave32``
enable wave32 for pixel shaders (GFX10+)
``rtwave32``
enable wave32 for ray tracing shaders (GFX11+)
``rtwave64``
enable wave64 for ray tracing shaders (GFX10-10.3)
``nggc``
enable NGG culling on GPUs where it's not enabled by default (GFX10.1 only).
``sam``
enable optimizations to move more driver internal objects to VRAM.
``shader_object``
enable experimental implementation of VK_EXT_shader_object
``rtwave64``
enable wave64 for ray tracing shaders (GFX10+)
``transfer_queue``
enable experimental transfer queue support (GFX9+, not yet spec compliant)
``video_decode``
enable experimental video decoding support
``gsfastlaunch2``
use GS_FAST_LAUNCH=2 for Mesh shaders (GFX11+ dGPUs only)
.. envvar:: RADV_TEX_ANISO
@@ -1397,16 +1385,6 @@ RADV driver environment variables
enable validation of captured acceleration structures. Can be
useful if RRA crashes upon opening a trace.
.. envvar:: RADV_RRA_TRACE_HISTORY_SIZE
set the ray history buffer size when capturing RRA traces (default value is 100MiB,
small buffers may result in incomplete traces)
.. envvar:: RADV_RRA_TRACE_RESOLUTION_SCALE
decrease the resolution used for dumping the ray history resolution when capturing
RRA traces. This allows for dumping every Nth invocation along each dispatch dimension.
.. envvar:: ACO_DEBUG
a comma-separated list of named flags, which do various things:

View File

@@ -91,7 +91,7 @@ GL 3.2, GLSL 1.50 --- all DONE: freedreno, nv50, nvc0, r600, radeonsi, llvmpipe,
GL_ARB_fragment_coord_conventions (Frag shader coord) DONE (v3d, vc4, panfrost, lima, crocus)
GL_ARB_provoking_vertex (Provoking vertex) DONE (v3d, vc4, panfrost, lima, crocus)
GL_ARB_seamless_cube_map (Seamless cubemaps) DONE (panfrost, crocus)
GL_ARB_texture_multisample (Multisample textures) DONE (freedreno/a5xx+, v3d, vc4, panfrost)
GL_ARB_texture_multisample (Multisample textures) DONE (freedreno/a5xx+, v3d, vc4, panfrost, asahi)
GL_ARB_depth_clamp (Frag depth clamp) DONE (panfrost, crocus)
GL_ARB_sync (Fence objects) DONE (v3d, vc4, panfrost, lima, crocus)
GLX_ARB_create_context_profile DONE
@@ -111,43 +111,43 @@ GL 3.3, GLSL 3.30 --- all DONE: freedreno, nv50, nvc0, r600, radeonsi, llvmpipe,
GL_ARB_vertex_type_2_10_10_10_rev DONE (v3d, panfrost)
GL 4.0, GLSL 4.00 --- all DONE: freedreno/a6xx, nvc0, r600, radeonsi, llvmpipe, virgl, zink, d3d12, iris, crocus/gen7+, asahi
GL 4.0, GLSL 4.00 --- all DONE: freedreno/a6xx, nvc0, r600, radeonsi, llvmpipe, virgl, zink, d3d12, iris, crocus/gen7+
GL_ARB_draw_buffers_blend DONE (freedreno, nv50, softpipe, panfrost, v3d, crocus/gen6+)
GL_ARB_draw_indirect DONE (freedreno, softpipe, v3d)
GL_ARB_gpu_shader5 DONE (freedreno/a6xx)
- 'precise' qualifier DONE (softpipe)
- Dynamically uniform sampler array indices DONE (softpipe)
- Dynamically uniform UBO array indices DONE (freedreno, softpipe)
- Implicit signed -> unsigned conversions DONE (softpipe)
- Fused multiply-add DONE (softpipe)
- Packing/bitfield/conversion functions DONE (freedreno, softpipe, panfrost)
- Enhanced textureGather DONE (freedreno, softpipe, panfrost)
- Geometry shader instancing DONE (softpipe)
- Geometry shader multiple streams DONE (softpipe)
- Enhanced per-sample shading DONE ()
- Interpolation functions DONE (softpipe)
- New overload resolution rules DONE (softpipe)
GL_ARB_draw_buffers_blend DONE (freedreno, nv50, softpipe, panfrost, v3d, asahi, crocus/gen6+)
GL_ARB_draw_indirect DONE (freedreno, softpipe, v3d, asahi)
GL_ARB_gpu_shader5 DONE (freedreno/a6xx, asahi)
- 'precise' qualifier DONE (softpipe, asahi)
- Dynamically uniform sampler array indices DONE (softpipe, asahi)
- Dynamically uniform UBO array indices DONE (freedreno, softpipe, asahi)
- Implicit signed -> unsigned conversions DONE (softpipe, asahi)
- Fused multiply-add DONE (softpipe, asahi)
- Packing/bitfield/conversion functions DONE (freedreno, softpipe, panfrost, asahi)
- Enhanced textureGather DONE (freedreno, softpipe, panfrost, asahi)
- Geometry shader instancing DONE (softpipe, asahi)
- Geometry shader multiple streams DONE (softpipe, asahi)
- Enhanced per-sample shading DONE (asahi)
- Interpolation functions DONE (softpipe, asahi)
- New overload resolution rules DONE (softpipe, asahi)
GL_ARB_gpu_shader_fp64 DONE (freedreno/a6xx, softpipe)
GL_ARB_sample_shading DONE (freedreno/a6xx, nv50, panfrost, crocus/gen6+)
GL_ARB_sample_shading DONE (freedreno/a6xx, nv50, panfrost, crocus/gen6+, asahi)
GL_ARB_shader_subroutine DONE (freedreno, nv50, softpipe, crocus/gen6+)
GL_ARB_tessellation_shader DONE (freedreno/a6xx)
GL_ARB_texture_buffer_object_rgb32 DONE (freedreno, softpipe, panfrost, crocus/gen6+)
GL_ARB_texture_cube_map_array DONE (freedreno/a4xx+, nv50, softpipe, v3d, crocus/gen6+)
GL_ARB_texture_gather DONE (freedreno, nv50, softpipe, v3d, panfrost)
GL_ARB_texture_buffer_object_rgb32 DONE (freedreno, softpipe, panfrost, asahi, crocus/gen6+)
GL_ARB_texture_cube_map_array DONE (freedreno/a4xx+, nv50, softpipe, v3d, crocus/gen6+, asahi)
GL_ARB_texture_gather DONE (freedreno, nv50, softpipe, v3d, panfrost, asahi)
GL_ARB_texture_query_lod DONE (freedreno, nv50, softpipe, v3d, panfrost, crocus/gen5+)
GL_ARB_transform_feedback2 DONE (freedreno/a3xx+, nv50, softpipe, v3d, panfrost, crocus/gen6+)
GL_ARB_transform_feedback3 DONE (freedreno/a3xx+, softpipe)
GL_ARB_transform_feedback2 DONE (freedreno/a3xx+, nv50, softpipe, v3d, panfrost, asahi, crocus/gen6+)
GL_ARB_transform_feedback3 DONE (freedreno/a3xx+, softpipe, asahi)
GL 4.1, GLSL 4.10 --- all DONE: freedreno/a6xx, nvc0, r600, radeonsi, llvmpipe, virgl, zink, d3d12, iris, crocus/gen7+, asahi
GL 4.1, GLSL 4.10 --- all DONE: freedreno/a6xx, nvc0, r600, radeonsi, llvmpipe, virgl, zink, d3d12, iris, crocus/gen7+
GL_ARB_ES2_compatibility DONE (freedreno, nv50, softpipe, v3d, vc4, panfrost, lima, crocus)
GL_ARB_get_program_binary DONE (freedreno, v3d, 0 or 1 binary formats)
GL_ARB_ES2_compatibility DONE (freedreno, nv50, softpipe, v3d, vc4, panfrost, lima, asahi, crocus)
GL_ARB_get_program_binary DONE (freedreno, v3d, asahi, 0 or 1 binary formats)
GL_ARB_separate_shader_objects DONE (all drivers)
GL_ARB_shader_precision DONE (freedreno/a6xx, all drivers that support GLSL 4.10)
GL_ARB_shader_precision DONE (freedreno/a6xx, all drivers that support GLSL 4.10, asahi)
GL_ARB_vertex_attrib_64bit DONE (freedreno/a6xx, softpipe)
GL_ARB_viewport_array DONE (freedreno/a6xx, nv50, softpipe, crocus/gen6+)
GL_ARB_viewport_array DONE (freedreno/a6xx, nv50, softpipe, crocus/gen6+, asahi)
GL 4.2, GLSL 4.20 -- all DONE: freedreno/a6xx, nvc0, r600, radeonsi, llvmpipe, virgl, zink, d3d12, iris, crocus/gen7+, asahi
@@ -166,38 +166,38 @@ GL 4.2, GLSL 4.20 -- all DONE: freedreno/a6xx, nvc0, r600, radeonsi, llvmpipe, v
GL_ARB_map_buffer_alignment DONE (all drivers)
GL 4.3, GLSL 4.30 -- all DONE: freedreno/a6xx, nvc0, r600, radeonsi, llvmpipe, virgl, zink, d3d12, iris, crocus/gen7.5+, asahi
GL 4.3, GLSL 4.30 -- all DONE: freedreno/a6xx, nvc0, r600, radeonsi, llvmpipe, virgl, zink, d3d12, iris, crocus/gen7.5+
GL_ARB_arrays_of_arrays DONE (all drivers that support GLSL 1.30)
GL_ARB_ES3_compatibility DONE (all drivers that support GLSL 3.30)
GL_ARB_clear_buffer_object DONE (all drivers)
GL_ARB_compute_shader DONE (freedreno/a5xx+, softpipe, v3d, panfrost, crocus/gen7+)
GL_ARB_compute_shader DONE (freedreno/a5xx+, softpipe, v3d, panfrost, crocus/gen7+, asahi)
GL_ARB_copy_image DONE (freedreno/a6xx, nv50, softpipe, v3d, crocus)
GL_KHR_debug DONE (all drivers)
GL_ARB_explicit_uniform_location DONE (all drivers that support GLSL)
GL_ARB_fragment_layer_viewport DONE (freedreno/a6xx, nv50, softpipe, crocus/gen6+)
GL_ARB_framebuffer_no_attachments DONE (freedreno, softpipe, v3d, crocus/gen7+)
GL_ARB_fragment_layer_viewport DONE (freedreno/a6xx, nv50, softpipe, crocus/gen6+, asahi)
GL_ARB_framebuffer_no_attachments DONE (freedreno, softpipe, v3d, asahi, crocus/gen7+)
GL_ARB_internalformat_query2 DONE (all drivers)
GL_ARB_invalidate_subdata DONE (all drivers)
GL_ARB_multi_draw_indirect DONE (freedreno, softpipe, v3d, crocus/gen7+)
GL_ARB_multi_draw_indirect DONE (freedreno, softpipe, v3d, crocus/gen7+, asahi)
GL_ARB_program_interface_query DONE (all drivers)
GL_ARB_robust_buffer_access_behavior DONE (freedreno)
GL_ARB_shader_image_size DONE (freedreno/a5xx+, softpipe, v3d, panfrost, crocus/gen7+)
GL_ARB_shader_storage_buffer_object DONE (freedreno/a5xx+, softpipe, v3d, panfrost, crocus/gen7+)
GL_ARB_stencil_texturing DONE (freedreno, nv50, softpipe, v3d, panfrost)
GL_ARB_shader_image_size DONE (freedreno/a5xx+, softpipe, v3d, panfrost, crocus/gen7+, asahi)
GL_ARB_shader_storage_buffer_object DONE (freedreno/a5xx+, softpipe, v3d, panfrost, crocus/gen7+, asahi)
GL_ARB_stencil_texturing DONE (freedreno, nv50, softpipe, v3d, panfrost, asahi)
GL_ARB_texture_buffer_range DONE (freedreno, nv50, softpipe, v3d, crocus)
GL_ARB_texture_query_levels DONE (all drivers that support GLSL 1.30)
GL_ARB_texture_storage_multisample DONE (all drivers that support GL_ARB_texture_multisample)
GL_ARB_texture_view DONE (freedreno, nv50, softpipe, v3d, crocus/gen7+)
GL_ARB_texture_view DONE (freedreno, nv50, softpipe, v3d, asahi, crocus/gen7+)
GL_ARB_vertex_attrib_binding DONE (all drivers)
GL 4.4, GLSL 4.40 -- all DONE: freedreno/a6xx, nvc0, r600, radeonsi, llvmpipe, virgl, zink, iris, crocus/gen7.5+, d3d12, asahi
GL 4.4, GLSL 4.40 -- all DONE: freedreno/a6xx, nvc0, r600, radeonsi, llvmpipe, virgl, zink, iris, crocus/gen7.5+, d3d12
GL_MAX_VERTEX_ATTRIB_STRIDE DONE (all drivers)
GL_ARB_buffer_storage DONE (freedreno, nv50, v3d, vc4, lima, panfrost, softpipe, etnaviv, crocus)
GL_ARB_buffer_storage DONE (freedreno, nv50, v3d, vc4, lima, panfrost, asahi, softpipe, etnaviv, crocus)
GL_ARB_clear_texture DONE (all drivers)
GL_ARB_enhanced_layouts DONE (freedreno/a3xx+, nv50, softpipe, crocus)
GL_ARB_enhanced_layouts DONE (freedreno/a3xx+, nv50, softpipe, crocus, asahi)
- compile-time constant expressions DONE
- explicit byte offsets for blocks DONE
- forced alignment within blocks DONE
@@ -206,37 +206,37 @@ GL 4.4, GLSL 4.40 -- all DONE: freedreno/a6xx, nvc0, r600, radeonsi, llvmpipe, v
- input/output block locations DONE
GL_ARB_multi_bind DONE (all drivers)
GL_ARB_query_buffer_object DONE (freedreno/a6xx)
GL_ARB_texture_mirror_clamp_to_edge DONE (freedreno, nv50, softpipe, v3d, panfrost, crocus)
GL_ARB_texture_stencil8 DONE (freedreno, nv50, softpipe, v3d, panfrost)
GL_ARB_vertex_type_10f_11f_11f_rev DONE (freedreno, nv50, softpipe, panfrost, crocus)
GL_ARB_texture_mirror_clamp_to_edge DONE (freedreno, nv50, softpipe, v3d, panfrost, asahi, crocus)
GL_ARB_texture_stencil8 DONE (freedreno, nv50, softpipe, v3d, panfrost, asahi)
GL_ARB_vertex_type_10f_11f_11f_rev DONE (freedreno, nv50, softpipe, panfrost, asahi, crocus)
GL 4.5, GLSL 4.50 -- all DONE: freedreno/a6xx, nvc0, r600, radeonsi, llvmpipe, virgl, zink, iris, crocus/gen7.5+, d3d12, asahi
GL 4.5, GLSL 4.50 -- all DONE: freedreno/a6xx, nvc0, r600, radeonsi, llvmpipe, virgl, zink, iris, crocus/gen7.5+, d3d12
GL_ARB_ES3_1_compatibility DONE (freedreno/a6xx, softpipe)
GL_ARB_clip_control DONE (freedreno, nv50, softpipe, lima, crocus)
GL_ARB_conditional_render_inverted DONE (freedreno, nv50, softpipe, panfrost, crocus/gen6+)
GL_ARB_cull_distance DONE (freedreno/a6xx, nv50, softpipe, crocus/gen6+)
GL_ARB_derivative_control DONE (freedreno/a3xx+, nv50, softpipe, crocus/gen7+)
GL_ARB_clip_control DONE (freedreno, nv50, softpipe, lima, crocus, asahi)
GL_ARB_conditional_render_inverted DONE (freedreno, nv50, softpipe, panfrost, asahi, crocus/gen6+)
GL_ARB_cull_distance DONE (freedreno/a6xx, nv50, softpipe, crocus/gen6+, asahi)
GL_ARB_derivative_control DONE (freedreno/a3xx+, nv50, softpipe, asahi, crocus/gen7+)
GL_ARB_direct_state_access DONE (all drivers)
GL_ARB_get_texture_sub_image DONE (all drivers)
GL_ARB_shader_texture_image_samples DONE (freedreno/a3xx+, nv50, crocus/gen7+)
GL_ARB_texture_barrier DONE (freedreno, nv50, v3d, vc4, lima, crocus)
GL_ARB_shader_texture_image_samples DONE (freedreno/a3xx+, nv50, crocus/gen7+, asahi)
GL_ARB_texture_barrier DONE (freedreno, nv50, vc4, lima, crocus)
GL_KHR_context_flush_control DONE (all - but needs GLX/EGL extension to be useful)
GL_KHR_robustness DONE (freedreno)
GL_EXT_shader_integer_mix DONE (all drivers that support GLSL)
GL 4.6, GLSL 4.60 -- all DONE: radeonsi, virgl, zink, iris, crocus/gen7+, d3d12, asahi
GL 4.6, GLSL 4.60 -- all DONE: radeonsi, virgl, zink, iris, crocus/gen7+, d3d12
GL_ARB_gl_spirv DONE (freedreno, llvmpipe)
GL_ARB_indirect_parameters DONE (freedreno/a6xx+, nvc0, llvmpipe, virgl)
GL_ARB_indirect_parameters DONE (freedreno/a6xx+, nvc0, llvmpipe, virgl, asahi)
GL_ARB_pipeline_statistics_query DONE (freedreno/a6xx+, nvc0, r600, llvmpipe, softpipe, crocus/gen6+)
GL_ARB_polygon_offset_clamp DONE (freedreno, nv50, nvc0, r600, llvmpipe, v3d, panfrost, crocus)
GL_ARB_shader_atomic_counter_ops DONE (freedreno/a5xx+, nvc0, r600, llvmpipe, softpipe, v3d)
GL_ARB_shader_draw_parameters DONE (freedreno/a6xx+, llvmpipe, nvc0, crocus/gen6+)
GL_ARB_shader_group_vote DONE (freedreno/a6xx, nvc0, llvmpipe, crocus)
GL_ARB_spirv_extensions DONE (freedreno, llvmpipe)
GL_ARB_texture_filter_anisotropic DONE (etnaviv/HALTI0, freedreno, nv50, nvc0, r600, softpipe, llvmpipe, v3d, panfrost/g72+, crocus)
GL_ARB_transform_feedback_overflow_query DONE (freedreno/a6xx+, nvc0, llvmpipe, softpipe, crocus/gen6+)
GL_ARB_texture_filter_anisotropic DONE (etnaviv/HALTI0, freedreno, nv50, nvc0, r600, softpipe, llvmpipe, v3d, panfrost/g72+, asahi, crocus)
GL_ARB_transform_feedback_overflow_query DONE (freedreno/a6xx+, nvc0, llvmpipe, softpipe, crocus/gen6+, asahi)
GL_KHR_no_error DONE (all drivers)
These are the extensions cherry-picked to make GLES 3.1
@@ -246,7 +246,7 @@ GLES3.1, GLSL ES 3.1 -- all DONE: freedreno/a5xx+, nvc0, r600, radeonsi, virgl,
GL_ARB_compute_shader DONE (freedreno/a5xx+, crocus/gen7+)
GL_ARB_draw_indirect DONE (freedreno, crocus/gen7+)
GL_ARB_explicit_uniform_location DONE (all drivers that support GLSL)
GL_ARB_framebuffer_no_attachments DONE (freedreno, softpipe, crocus/gen7+)
GL_ARB_framebuffer_no_attachments DONE (freedreno, softpipe, asahi, crocus/gen7+)
GL_ARB_program_interface_query DONE (all drivers)
GL_ARB_shader_atomic_counters DONE (freedreno/a5xx+, crocus/gen7+)
GL_ARB_shader_image_load_store DONE (freedreno/a5xx+, crocus/gen7+)
@@ -268,28 +268,28 @@ GLES3.1, GLSL ES 3.1 -- all DONE: freedreno/a5xx+, nvc0, r600, radeonsi, virgl,
glGetBooleani_v - restrict to GLES enums
gl_HelperInvocation support DONE (r600, panfrost, crocus)
GLES3.2, GLSL ES 3.2 -- all DONE: freedreno/a6xx, radeonsi, virgl, llvmpipe, zink, iris, crocus/gen7.5+, asahi
GLES3.2, GLSL ES 3.2 -- all DONE: freedreno/a6xx, radeonsi, virgl, llvmpipe, zink, iris, crocus/gen7.5+
GL_EXT_color_buffer_float DONE (all drivers)
GL_KHR_blend_equation_advanced DONE (freedreno/a6xx, nvc0, panfrost, crocus/gen4.5+)
GL_KHR_blend_equation_advanced DONE (freedreno/a6xx, nvc0, panfrost, asahi, crocus/gen4.5+)
GL_KHR_debug DONE (all drivers)
GL_KHR_robustness DONE (freedreno, nvc0, r600)
GL_KHR_texture_compression_astc_ldr DONE (freedreno, r600, v3d, vc4, panfrost, softpipe, lima, crocus/gen6+)
GL_KHR_texture_compression_astc_ldr DONE (freedreno, r600, v3d, vc4, panfrost, softpipe, lima, asahi, crocus/gen6+)
GL_OES_copy_image DONE (all drivers)
GL_OES_draw_buffers_indexed DONE (all drivers that support GL_ARB_draw_buffers_blend)
GL_OES_draw_elements_base_vertex DONE (all drivers)
GL_OES_geometry_shader DONE (freedreno/a6xx, nvc0, r600, softpipe, v3d)
GL_OES_gpu_shader5 DONE (freedreno/a6xx, all drivers that support GL_ARB_gpu_shader5)
GL_OES_geometry_shader DONE (freedreno/a6xx, nvc0, r600, softpipe, v3d, asahi)
GL_OES_gpu_shader5 DONE (freedreno/a6xx, asahi, all drivers that support GL_ARB_gpu_shader5)
GL_OES_primitive_bounding_box DONE (freedreno/a5xx+, nvc0, r600, softpipe, v3d)
GL_OES_sample_shading DONE (freedreno/a6xx, nvc0, r600, panfrost, d3d12)
GL_OES_sample_variables DONE (freedreno/a6xx, nvc0, r600, panfrost/bifrost, crocus/gen7+)
GL_OES_shader_image_atomic DONE (v3d, all drivers that support GL_ARB_shader_image_load_store)
GL_OES_sample_shading DONE (freedreno/a6xx, asahi, nvc0, r600, panfrost, d3d12)
GL_OES_sample_variables DONE (freedreno/a6xx, asahi, nvc0, r600, panfrost/bifrost, crocus/gen7+)
GL_OES_shader_image_atomic DONE (asahi, v3d, all drivers that support GL_ARB_shader_image_load_store)
GL_OES_shader_io_blocks DONE (All drivers that support GLES 3.1)
GL_OES_shader_multisample_interpolation DONE (freedreno/a6xx, nvc0, r600)
GL_OES_shader_multisample_interpolation DONE (freedreno/a6xx, nvc0, r600, asahi)
GL_OES_tessellation_shader DONE (freedreno/a6xx, all drivers that support GL_ARB_tessellation_shader)
GL_OES_texture_border_clamp DONE (all drivers)
GL_OES_texture_buffer DONE (freedreno, nvc0, r600, softpipe, panfrost, crocus/gen6+)
GL_OES_texture_cube_map_array DONE (freedreno/a4xx+, nvc0, r600, softpipe)
GL_OES_texture_buffer DONE (freedreno, nvc0, r600, softpipe, panfrost, asahi, crocus/gen6+)
GL_OES_texture_cube_map_array DONE (freedreno/a4xx+, nvc0, r600, softpipe, asahi)
GL_OES_texture_stencil8 DONE (all drivers that support GL_ARB_texture_stencil8)
GL_OES_texture_storage_multisample_2d_array DONE (all drivers that support GL_ARB_texture_multisample)
@@ -297,19 +297,19 @@ Khronos, ARB, and OES extensions that are not part of any OpenGL or OpenGL ES ve
GL_ARB_bindless_texture DONE (nvc0, radeonsi, zink)
GL_ARB_cl_event not started
GL_ARB_compute_variable_group_size DONE (freedreno/a4xx+, nvc0, radeonsi, zink, iris, crocus/gen7+, asahi)
GL_ARB_ES3_2_compatibility DONE (freedreno/a6xx, radeonsi, virgl, zink, iris, crocus/gen7.5+, asahi)
GL_ARB_compute_variable_group_size DONE (freedreno/a4xx+, nvc0, radeonsi, zink, iris, crocus/gen7+)
GL_ARB_ES3_2_compatibility DONE (freedreno/a6xx, radeonsi, virgl, zink, iris, crocus/gen7.5+)
GL_ARB_fragment_shader_interlock DONE (zink, iris/gen9+)
GL_ARB_gpu_shader_int64 DONE (freedreno/a6xx, nvc0, radeonsi, softpipe, llvmpipe, zink, d3d12, iris, crocus/gen8, asahi)
GL_ARB_parallel_shader_compile DONE (freedreno, radeonsi, etnaviv, zink, iris, crocus/gen6+, asahi)
GL_ARB_gpu_shader_int64 DONE (freedreno/a6xx, nvc0, radeonsi, softpipe, llvmpipe, zink, d3d12, iris, crocus/gen8)
GL_ARB_parallel_shader_compile DONE (freedreno, radeonsi, etnaviv, zink, iris, crocus/gen6+)
GL_ARB_post_depth_coverage DONE (freedreno/a6xx, nvc0, radeonsi, llvmpipe, zink, iris/gen9+)
GL_ARB_robustness_isolation not started
GL_ARB_sample_locations DONE (freedreno/a6xx, nvc0, zink)
GL_ARB_seamless_cubemap_per_texture DONE (etnaviv/SEAMLESS_CUBE_MAP, freedreno, nvc0, r600, radeonsi, softpipe, virgl, zink, asahi, iris, crocus)
GL_ARB_shader_ballot DONE (nvc0, radeonsi, zink, iris, crocus/gen8, d3d12, asahi)
GL_ARB_shader_ballot DONE (nvc0, radeonsi, zink, iris, crocus/gen8)
GL_ARB_shader_clock DONE (nv50, nvc0, r600, radeonsi, llvmpipe, virgl, zink, iris, crocus/gen7+)
GL_ARB_shader_stencil_export DONE (r600, radeonsi, softpipe, llvmpipe, virgl, panfrost, zink, asahi, iris/gen9+)
GL_ARB_shader_viewport_layer_array DONE (freedreno/a6xx, nvc0, radeonsi, zink, iris, crocus/gen6+, asahi)
GL_ARB_shader_viewport_layer_array DONE (freedreno/a6xx, nvc0, radeonsi, zink, iris, crocus/gen6+)
GL_ARB_shading_language_include DONE
GL_ARB_sparse_buffer DONE (radeonsi/gfx9+, zink)
GL_ARB_sparse_texture DONE (radeonsi/gfx9+, zink)
@@ -319,13 +319,13 @@ Khronos, ARB, and OES extensions that are not part of any OpenGL or OpenGL ES ve
GL_ARM_shader_framebuffer_fetch_depth_stencil DONE (llvmpipe)
GL_EXT_shader_framebuffer_fetch DONE (freedreno/a6xx, iris/gen9+, llvmpipe, panfrost, virgl, zink, asahi)
GL_EXT_shader_framebuffer_fetch_non_coherent DONE (freedreno/a6xx, iris, llvmpipe, panfrost, virgl, zink, asahi)
GL_EXT_color_buffer_half_float DONE (freedreno, iris, llvmpipe, nv50, nvc0, radeonsi, zink, crocus, asahi)
GL_EXT_color_buffer_half_float DONE (freedreno, iris, llvmpipe, nv50, nvc0, radeonsi, zink, crocus)
GL_EXT_depth_bounds_test DONE (freedreno/a6xx, nv50, nvc0, radeonsi, softpipe, zink, iris/gen12+)
GL_EXT_memory_object DONE (freedreno, radeonsi, llvmpipe, zink, d3d12, iris, crocus/gen7+)
GL_EXT_memory_object_fd DONE (freedreno, radeonsi, llvmpipe, zink, iris, crocus/gen7+)
GL_EXT_memory_object_win32 DONE (zink, d3d12)
GL_EXT_multisampled_render_to_texture DONE (freedreno/a6xx, panfrost, zink, lima)
GL_EXT_render_snorm DONE (freedreno/a6xx, r600, radeonsi, softpipe, zink, panfrost/bifrost+, iris, asahi)
GL_EXT_render_snorm DONE (freedreno/a6xx, r600, radeonsi, softpipe, zink, panfrost/bifrost+, iris)
GL_EXT_semaphore DONE (radeonsi, zink, d3d12, iris, crocus)
GL_EXT_semaphore_fd DONE (radeonsi, zink, iris, crocus)
GL_EXT_semaphore_win32 DONE (zink, d3d12)
@@ -400,7 +400,7 @@ GL_EXT_direct_state_access additions from other extensions (complete list):
GL_EXT_external_buffer n/a
GL_EXT_separate_shader_objects n/a
GL_EXT_sparse_texture n/a
GL_EXT_texture_storage DONE
GL_EXT_texture_storage n/a
GL_EXT_vertex_attrib_64bit DONE
GL_EXT_EGL_image_storage n/a
GL_NV_bindless_texture n/a
@@ -420,9 +420,9 @@ we DO NOT WANT implementations of these extensions for Mesa.
Vulkan 1.0 -- all DONE: anv, dzn, lvp, nvk, radv, tu, v3dv, vn
Vulkan 1.1 -- all DONE: anv, lvp, nvk, radv, tu, vn
Vulkan 1.1 -- all DONE: anv, lvp, radv, tu, vn
VK_KHR_16bit_storage DONE (anv, dzn, hasvk, lvp, nvk, radv, tu/a650, v3dv, vn)
VK_KHR_16bit_storage DONE (anv/gen8+, dzn, hasvk, lvp, nvk, radv, tu/a650, v3dv, vn)
VK_KHR_bind_memory2 DONE (anv, dzn, hasvk, lvp, nvk, pvr, radv, tu, v3dv, vn)
VK_KHR_dedicated_allocation DONE (anv, dzn, hasvk, lvp, nvk, radv, tu, v3dv, vn)
VK_KHR_descriptor_update_template DONE (anv, dzn, hasvk, lvp, nvk, panvk, radv, tu, v3dv, vn)
@@ -446,10 +446,10 @@ Vulkan 1.1 -- all DONE: anv, lvp, nvk, radv, tu, vn
VK_KHR_storage_buffer_storage_class DONE (anv, dzn, hasvk, lvp, nvk, panvk, radv, tu, v3dv, vn)
VK_KHR_variable_pointers DONE (anv, hasvk, lvp, nvk, panvk, radv, tu, v3dv, vn)
Vulkan 1.2 -- all DONE: anv, nvk, tu, vn
Vulkan 1.2 -- all DONE: anv, tu, vn
VK_KHR_8bit_storage DONE (anv, dzn, hasvk, lvp, nvk, radv, v3dv, vn)
VK_KHR_buffer_device_address DONE (anv, hasvk, lvp, nvk, radv, tu, v3dv, vn)
VK_KHR_8bit_storage DONE (anv/gen8+, dzn, hasvk, lvp, nvk, radv, v3dv, vn)
VK_KHR_buffer_device_address DONE (anv/gen8+, hasvk, lvp, nvk, radv, tu, v3dv, vn)
VK_KHR_create_renderpass2 DONE (anv, dzn, hasvk, lvp, nvk, radv, tu, v3dv, vn)
VK_KHR_depth_stencil_resolve DONE (anv, dzn, hasvk, lvp, nvk, radv, tu, v3dv, vn)
VK_KHR_draw_indirect_count DONE (anv, dzn, hasvk, lvp, nvk, radv, tu, vn)
@@ -458,32 +458,32 @@ Vulkan 1.2 -- all DONE: anv, nvk, tu, vn
VK_KHR_imageless_framebuffer DONE (anv, dzn, hasvk, lvp, nvk, radv, tu, v3dv, vn)
VK_KHR_sampler_mirror_clamp_to_edge DONE (anv, dzn, hasvk, lvp, nvk, radv, tu, v3dv, vn)
VK_KHR_separate_depth_stencil_layouts DONE (anv, dzn, hasvk, lvp, nvk, radv, tu, v3dv, vn)
VK_KHR_shader_atomic_int64 DONE (anv, lvp, nvk, radv, vn)
VK_KHR_shader_float16_int8 DONE (anv, dzn, hasvk, lvp, radv, tu, vn)
VK_KHR_shader_float_controls DONE (anv, dzn, hasvk, lvp, nvk, radv, tu, v3dv, vn)
VK_KHR_shader_subgroup_extended_types DONE (anv, hasvk, lvp, nvk, radv, tu, vn)
VK_KHR_shader_atomic_int64 DONE (anv/gen9+, lvp, nvk, radv, vn)
VK_KHR_shader_float16_int8 DONE (anv/gen8+, dzn, hasvk, lvp, radv, tu, vn)
VK_KHR_shader_float_controls DONE (anv/gen8+, dzn, hasvk, lvp, nvk, radv, tu, v3dv, vn)
VK_KHR_shader_subgroup_extended_types DONE (anv/gen8+, hasvk, lvp, radv, tu, vn)
VK_KHR_spirv_1_4 DONE (anv, dzn, hasvk, lvp, nvk, radv, tu, v3dv, vn)
VK_KHR_timeline_semaphore DONE (anv, dzn, hasvk, lvp, nvk, pvr, radv, tu, v3dv, vn)
VK_KHR_uniform_buffer_standard_layout DONE (anv, dzn, hasvk, lvp, nvk, pvr, radv, tu, v3dv, vn)
VK_KHR_vulkan_memory_model DONE (anv, hasvk, lvp, nvk, radv, tu, v3dv, vn)
VK_EXT_descriptor_indexing DONE (anv, dzn, lvp, nvk, radv, tu, vn)
VK_EXT_descriptor_indexing DONE (anv/gen9+, dzn, lvp, nvk, radv, tu, vn)
VK_EXT_host_query_reset DONE (anv, hasvk, lvp, nvk, pvr, radv, tu, v3dv, vn)
VK_EXT_sampler_filter_minmax DONE (anv, lvp, nvk, radv, tu, vn)
VK_EXT_sampler_filter_minmax DONE (anv/gen9+, lvp, nvk, radv, tu, vn)
VK_EXT_scalar_block_layout DONE (anv, dzn, hasvk, lvp, nvk, pvr, radv/gfx7+, tu, vn)
VK_EXT_separate_stencil_usage DONE (anv, dzn, hasvk, lvp, nvk, radv, tu, v3dv, vn)
VK_EXT_shader_viewport_index_layer DONE (anv, hasvk, lvp, nvk, radv, tu, vn)
Vulkan 1.3 -- all DONE: anv, lvp, nvk, radv, tu, vn
Vulkan 1.3 -- all DONE: anv, radv, tu, lvp, vn
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, radv, tu, v3dv, vn)
VK_KHR_dynamic_rendering DONE (anv, dzn, hasvk, lvp, nvk, radv, tu, vn)
VK_KHR_format_feature_flags2 DONE (anv, hasvk, lvp, nvk, 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_shader_non_semantic_info DONE (anv, hasvk, nvk, radv, tu, v3dv, vn)
VK_KHR_shader_terminate_invocation DONE (anv, hasvk, lvp, nvk, 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, radv, tu, v3dv, vn)
VK_KHR_zero_initialize_workgroup_memory DONE (anv, hasvk, lvp, radv, tu, v3dv, vn)
VK_EXT_4444_formats DONE (anv, hasvk, lvp, nvk, radv, tu, v3dv, vn)
VK_EXT_extended_dynamic_state DONE (anv, hasvk, lvp, nvk, radv, tu, vn)
VK_EXT_extended_dynamic_state2 DONE (anv, hasvk, lvp, nvk, radv, tu, vn)
@@ -501,14 +501,13 @@ Vulkan 1.3 -- all DONE: anv, lvp, nvk, radv, tu, vn
Khronos extensions that are not part of any Vulkan version:
VK_KHR_acceleration_structure DONE (anv/gfx12.5+, lvp, radv/gfx10.3+)
VK_KHR_acceleration_structure DONE (anv/gfx12.5+, radv/gfx10.3+)
VK_KHR_android_surface not started
VK_KHR_calibrated_timestamps DONE (anv, radv)
VK_KHR_cooperative_matrix DONE (anv, radv/gfx11+)
VK_KHR_deferred_host_operations DONE (anv, hasvk, lvp, radv)
VK_KHR_display DONE (anv, nvk, pvr, radv, tu, v3dv)
VK_KHR_calibrated_timestamps DONE (radv)
VK_KHR_cooperative_matrix DONE (radv/gfx11+)
VK_KHR_deferred_host_operations DONE (anv, hasvk, radv)
VK_KHR_display DONE (anv, pvr, radv, tu, v3dv)
VK_KHR_display_swapchain not started
VK_KHR_dynamic_rendering_local_read DONE (lvp)
VK_KHR_external_fence_fd DONE (anv, hasvk, nvk, pvr, radv, tu, v3dv, vn)
VK_KHR_external_fence_win32 not started
VK_KHR_external_memory_fd DONE (anv, dzn, hasvk, lvp, nvk, pvr, radv, tu, v3dv, vn)
@@ -516,37 +515,30 @@ Khronos extensions that are not part of any Vulkan version:
VK_KHR_external_semaphore_fd DONE (anv, dzn, hasvk, nvk, pvr, radv, tu, v3dv, vn)
VK_KHR_external_semaphore_win32 DONE (dzn)
VK_KHR_fragment_shader_barycentric DONE (nvk/Turing+, radv/gfx10.3+)
VK_KHR_fragment_shading_rate DONE (anv/gen11+, radv/gfx10.3+, vn)
VK_KHR_get_display_properties2 DONE (anv, nvk, pvr, radv, tu, v3dv)
VK_KHR_fragment_shading_rate DONE (anv/gen11+, radv/gfx10.3+)
VK_KHR_get_display_properties2 DONE (anv, pvr, radv, tu, v3dv)
VK_KHR_get_surface_capabilities2 DONE (anv, lvp, nvk, pvr, radv, tu, v3dv, vn)
VK_KHR_global_priority DONE (anv, radv, tu)
VK_KHR_incremental_present DONE (anv, hasvk, lvp, nvk, radv, tu, v3dv, vn)
VK_KHR_index_type_uint8 DONE (anv, nvk, radv, tu, v3dv)
VK_KHR_line_rasterization DONE (anv, nvk, radv, tu, v3dv)
VK_KHR_load_store_op_none DONE (anv, nvk, radv, tu, v3dv)
VK_KHR_maintenance5 DONE (anv, lvp, nvk, radv, tu)
VK_KHR_maintenance6 DONE (anv, lvp)
VK_KHR_performance_query DONE (anv, radv/gfx10.3+, tu, v3dv)
VK_KHR_global_priority DONE (radv, tu)
VK_KHR_incremental_present DONE (anv, hasvk, lvp, radv, tu, v3dv, vn)
VK_KHR_maintenance5 DONE (anv, lvp, radv, tu)
VK_KHR_maintenance6 DONE (lvp)
VK_KHR_performance_query DONE (anv/gen8+, radv/gfx10.3+, tu, v3dv)
VK_KHR_pipeline_executable_properties DONE (anv, nvk, hasvk, radv, tu, v3dv)
VK_KHR_pipeline_library DONE (anv, lvp, nvk, radv, tu, vn)
VK_KHR_present_wait DONE (anv, nvk, radv, tu, x11/display)
VK_KHR_pipeline_library DONE (anv, lvp, radv, tu, vn)
VK_KHR_present_wait DONE (anv, radv, tu, x11/display)
VK_KHR_push_descriptor DONE (anv, hasvk, lvp, nvk, radv, tu, vn)
VK_KHR_ray_query DONE (anv/gfx12.5+, lvp, radv/gfx10.3+)
VK_KHR_ray_query DONE (anv/gfx12.5+, radv/gfx10.3+)
VK_KHR_ray_tracing_maintenance1 DONE (anv/gfx12.5+, radv/gfx10.3+)
VK_KHR_ray_tracing_pipeline DONE (anv/gfx12.5+, radv/gfx10.3+)
VK_KHR_ray_tracing_position_fetch DONE (anv, radv/gfx10.3+)
VK_KHR_ray_tracing_position_fetch DONE (radv/gfx10.3+)
VK_KHR_shader_clock DONE (anv, hasvk, lvp, nvk, radv, vn)
VK_KHR_shader_expect_assume DONE (anv, dzn, hasvk, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn)
VK_KHR_shader_maximal_reconvergence DONE (lvp, radv)
VK_KHR_shader_subgroup_rotate DONE (anv, radv)
VK_KHR_shader_subgroup_uniform_control_flow DONE (anv, hasvk, radv)
VK_KHR_shader_quad_control DONE (radv)
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, v3dv, vn)
VK_KHR_swapchain DONE (anv, dzn, hasvk, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn)
VK_KHR_swapchain_mutable_format DONE (anv, hasvk, lvp, nvk, radv, tu, v3dv, vn)
VK_KHR_vertex_attribute_divisor DONE (anv, nvk, radv, tu, v3dv)
VK_KHR_vertex_attribute_divisor DONE (radv)
VK_KHR_wayland_surface DONE (anv, dzn, lvp, nvk, panvk, radv, tu, v3dv, vn)
VK_KHR_workgroup_memory_explicit_layout DONE (anv, nvk, hasvk, radv, v3dv)
VK_KHR_win32_keyed_mutex not started
@@ -554,39 +546,38 @@ Khronos extensions that are not part of any Vulkan version:
VK_KHR_xcb_surface DONE (anv, dzn, hasvk, lvp, nvk, radv, tu, v3dv, vn)
VK_KHR_xlib_surface DONE (anv, dzn, hasvk, lvp, nvk, radv, tu, v3dv, vn)
VK_EXT_acquire_xlib_display DONE (anv, lvp, nvk, radv, tu, v3dv)
VK_EXT_attachment_feedback_loop_dynamic_state DONE (anv, lvp, radv)
VK_EXT_attachment_feedback_loop_layout DONE (anv, lvp, nvk, radv, tu, v3dv, vn)
VK_EXT_attachment_feedback_loop_dynamic_state DONE (lvp, radv)
VK_EXT_attachment_feedback_loop_layout DONE (lvp, nvk, radv, tu, v3dv)
VK_EXT_border_color_swizzle DONE (anv, hasvk, lvp, nvk, radv/gfx10+, tu, v3dv, vn)
VK_EXT_buffer_device_address DONE (anv, hasvk, nvk, radv)
VK_EXT_buffer_device_address DONE (anv/gen8+, hasvk, nvk, radv)
VK_EXT_calibrated_timestamps DONE (anv, hasvk, lvp, radv, vn)
VK_EXT_color_write_enable DONE (anv, hasvk, lvp, nvk, radv, tu, v3dv, vn)
VK_EXT_conditional_rendering DONE (anv, hasvk, lvp, nvk, radv, tu, vn)
VK_EXT_conservative_rasterization DONE (anv, radv, vn)
VK_EXT_conservative_rasterization DONE (anv/gen9+, radv, vn)
VK_EXT_custom_border_color DONE (anv, hasvk, lvp, nvk, panvk, radv, tu, v3dv, vn)
VK_EXT_debug_marker DONE (radv)
VK_EXT_debug_report DONE (anv, dzn, lvp, nvk, pvr, radv, tu, v3dv)
VK_EXT_depth_bias_control DONE (anv, nvk, radv)
VK_EXT_depth_clip_control DONE (anv, hasvk, lvp, nvk, radv, tu, v3dv, vn)
VK_EXT_depth_clip_enable DONE (anv, hasvk, lvp, nvk, radv, tu, v3dv, vn)
VK_EXT_depth_clip_enable DONE (anv, hasvk, lvp, nvk, radv, tu, vn)
VK_EXT_depth_range_unrestricted DONE (anv/gen20+, radv, lvp)
VK_EXT_descriptor_buffer DONE (anv, lvp, radv, tu)
VK_EXT_descriptor_buffer DONE (lvp, radv, tu)
VK_EXT_device_fault DONE (radv)
VK_EXT_device_memory_report DONE (vn)
VK_EXT_direct_mode_display DONE (anv, lvp, nvk, radv, tu, v3dv)
VK_EXT_direct_mode_display DONE (anv, lvp, radv, tu, v3dv)
VK_EXT_discard_rectangles DONE (radv)
VK_EXT_display_control DONE (anv, hasvk, nvk, radv, tu)
VK_EXT_display_surface_counter DONE (anv, lvp, nvk, radv, tu)
VK_EXT_display_control DONE (anv, hasvk, radv, tu)
VK_EXT_display_surface_counter DONE (anv, lvp, radv, tu)
VK_EXT_dynamic_rendering_unused_attachments DONE (anv, nvk, radv, vn)
VK_EXT_extended_dynamic_state3 DONE (anv, lvp, nvk, radv, tu, vn)
VK_EXT_external_memory_acquire_unmodified DONE (radv)
VK_EXT_external_memory_dma_buf DONE (anv, hasvk, nvk, pvr, radv, tu, v3dv, vn)
VK_EXT_external_memory_host DONE (anv, hasvk, lvp, radv)
VK_EXT_filter_cubic DONE (tu/a650)
VK_EXT_fragment_shader_interlock DONE (anv, radv/gfx9+, vn)
VK_EXT_fragment_shader_interlock DONE (anv/gen9+, radv/gfx9+, vn)
VK_EXT_global_priority DONE (anv, hasvk, radv, tu)
VK_EXT_global_priority_query DONE (anv, hasvk, radv, tu)
VK_EXT_graphics_pipeline_library DONE (anv, lvp, nvk, radv, tu, vn)
VK_EXT_headless_surface DONE (anv, dzn, hasvk, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn)
VK_EXT_graphics_pipeline_library DONE (anv, lvp, radv, tu, vn)
VK_EXT_image_2d_view_of_3d DONE (anv, hasvk, lvp, nvk, radv, tu, vn)
VK_EXT_image_compression_control DONE (radv)
VK_EXT_image_drm_format_modifier DONE (anv, hasvk, radv/gfx9+, tu, v3dv, vn)
@@ -595,19 +586,19 @@ Khronos extensions that are not part of any Vulkan version:
VK_EXT_index_type_uint8 DONE (anv, hasvk, nvk, lvp, panvk, radv/gfx8+, tu, v3dv, vn)
VK_EXT_line_rasterization DONE (anv, hasvk, nvk, lvp, radv, tu, v3dv, vn)
VK_EXT_load_store_op_none DONE (anv, nvk, radv, tu, v3dv, vn)
VK_EXT_memory_budget DONE (anv, hasvk, lvp, nvk, pvr, radv, tu, v3dv, vn)
VK_EXT_memory_budget DONE (anv, hasvk, lvp, radv, tu, v3dv, vn)
VK_EXT_memory_priority DONE (lvp, radv)
VK_EXT_mesh_shader DONE (anv/gfx12.5+, lvp, radv)
VK_EXT_multi_draw DONE (anv, hasvk, lvp, nvk, radv, tu, vn, v3dv)
VK_EXT_multisampled_render_to_single_sampled DONE (lvp)
VK_EXT_nested_command_buffer DONE (anv, lvp)
VK_EXT_nested_command_buffer DONE (lvp)
VK_EXT_non_seamless_cube_map DONE (anv, hasvk, lvp, nvk, radv, tu, vn)
VK_EXT_pageable_device_local_memory DONE (lvp)
VK_EXT_pci_bus_info DONE (anv, hasvk, nvk, radv, vn)
VK_EXT_physical_device_drm DONE (anv, hasvk, nvk, radv, tu, v3dv, vn)
VK_EXT_pipeline_library_group_handles DONE (anv, radv)
VK_EXT_pipeline_robustness DONE (anv, radv, v3dv)
VK_EXT_post_depth_coverage DONE (anv/gfx11+, lvp, radv/gfx10+)
VK_EXT_post_depth_coverage DONE (anv/gfx10+, lvp, radv/gfx10+)
VK_EXT_primitive_topology_list_restart DONE (anv, hasvk, lvp, nvk, radv, tu, v3dv, vn)
VK_EXT_primitives_generated_query DONE (anv, hasvk, lvp, nvk, radv, tu, vn)
VK_EXT_provoking_vertex DONE (anv, hasvk, lvp, nvk, radv, tu, v3dv, vn)
@@ -616,15 +607,13 @@ Khronos extensions that are not part of any Vulkan version:
VK_EXT_robustness2 DONE (anv, hasvk, lvp, nvk, radv, tu, vn)
VK_EXT_sample_locations DONE (anv, hasvk, nvk, radv/gfx9-, tu/a650)
VK_EXT_shader_atomic_float DONE (anv, hasvk, lvp, radv)
VK_EXT_shader_atomic_float2 DONE (anv, lvp, radv)
VK_EXT_shader_atomic_float2 DONE (anv/gen9+, lvp, radv)
VK_EXT_shader_image_atomic_int64 DONE (nvk, radv)
VK_EXT_shader_object DONE (lvp, nvk)
VK_EXT_shader_stencil_export DONE (anv, lvp, radv, tu, vn)
VK_EXT_shader_object DONE (lvp)
VK_EXT_shader_stencil_export DONE (anv/gen9+, 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)
VK_EXT_shader_module_identifier DONE (anv, hasvk, nvk, radv, tu, v3dv)
VK_EXT_surface_maintenance1 DONE (nvk, radv)
VK_EXT_swapchain_maintenance1 DONE (nvk, radv)
VK_EXT_transform_feedback DONE (anv, hasvk, 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, radv, tu, vn)
@@ -636,9 +625,9 @@ Khronos extensions that are not part of any Vulkan version:
VK_GOOGLE_user_type DONE (anv, hasvk, radv)
VK_IMG_filter_cubic DONE (tu/a650)
VK_NV_compute_shader_derivatives DONE (anv, hasvk, radv)
VK_EXT_acquire_drm_display DONE (anv, nvk, radv, tu, v3dv)
VK_EXT_acquire_drm_display DONE (anv, radv, tu, v3dv)
VK_VALVE_mutable_descriptor_type DONE (anv, hasvk, radv, tu, vn)
VK_AMD_buffer_marker DONE (anv, radv, tu)
VK_AMD_buffer_marker DONE (radv, tu)
VK_AMD_device_coherent_memory DONE (radv)
VK_AMD_draw_indirect_count DONE (radv)
VK_AMD_gcn_shader DONE (radv)
@@ -655,13 +644,13 @@ Khronos extensions that are not part of any Vulkan version:
VK_AMD_shader_fragment_mask DONE (radv/gfx10.3-)
VK_AMD_shader_image_load_store_lod DONE (radv)
VK_AMD_shader_trinary_minmax DONE (radv)
VK_AMD_texture_gather_bias_lod DONE (anv, radv)
VK_AMD_texture_gather_bias_lod DONE (radv)
VK_ARM_rasterization_order_attachment_access DONE (lvp, tu)
VK_EXT_mutable_descriptor_type DONE (anv, lvp, nvk, radv, tu, vn)
VK_EXT_swapchain_colorspace DONE (anv, nvk, radv, tu)
VK_EXT_swapchain_colorspace DONE (radv, anv, tu)
VK_EXT_depth_clamp_zero_one DONE (anv, radv)
VK_INTEL_shader_integer_functions2 DONE (anv, hasvk, radv)
VK_KHR_map_memory2 DONE (anv, nvk, radv, tu)
VK_KHR_map_memory2 DONE (anv, nvk, radv)
@@ -964,7 +953,7 @@ Rusticl extensions that are not part of any OpenCL version:
cl_khr_subgroup_rotate not started
cl_khr_subgroup_shuffle DONE (iris, llvmpipe, radeonsi)
cl_khr_subgroup_shuffle_relative DONE (iris, llvmpipe, radeonsi)
cl_khr_suggested_local_work_size DONE
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

View File

@@ -20,7 +20,7 @@ Build
Beware: Most Direct3D games are 32-bit, and thus need a 32-bit version of Mesa.
.. code-block:: sh
.. code-block:: console
$ meson configure \
-D gallium-nine=true \
@@ -43,6 +43,6 @@ Run
Before running your application in Wine, verify that everything works as expected by running:
.. code-block:: sh
.. code-block:: console
$ wine ninewinecfg

View File

@@ -20,7 +20,7 @@ behavior.
Portal 2
========
.. code-block:: text
.. code-block:: console
1030842 glXSwapBuffers(dpy = 0x82a8000, drawable = 20971540)
1030876 glBufferDataARB(target = GL_ELEMENT_ARRAY_BUFFER, size = 65536, data = NULL, usage = GL_DYNAMIC_DRAW)
@@ -54,7 +54,7 @@ the GPU access from the previous frame has completed. This pattern of
incrementing ``glBufferSubData()`` offsets interleaved with draws from that data
is common among newer Valve games.
.. code-block:: text
.. code-block:: console
[ during setup ]
@@ -93,7 +93,7 @@ during setup.
Terraria
========
.. code-block:: text
.. code-block:: console
167581 glXSwapBuffers(dpy = 0x3004630, drawable = 25165844)
@@ -114,7 +114,7 @@ synchronization.
Don't Starve
============
.. code-block:: text
.. code-block:: console
7251917 glGenBuffers(n = 1, buffers = &115052)
7251918 glBindBuffer(target = GL_ARRAY_BUFFER, buffer = 115052)
@@ -142,7 +142,7 @@ always happen at the end of the next frame.
Euro Truck Simulator
====================
.. code-block:: text
.. code-block:: console
[usage of VBO 14,15]
[...]
@@ -199,7 +199,7 @@ different buffer.
Plague Inc
==========
.. code-block:: text
.. code-block:: console
1640732 glXSwapBuffers(dpy = 0xb218f20, drawable = 23068674)
1640733 glClientWaitSync(sync = 0xb4141430, flags = 0x0, timeout = 0) = GL_ALREADY_SIGNALED
@@ -246,7 +246,7 @@ ranges when in explicit mode.
Darkest Dungeon
===============
.. code-block:: text
.. code-block:: console
938384 glXSwapBuffers(dpy = 0x377fcd0, drawable = 23068692)
@@ -276,7 +276,7 @@ frame.
Tabletop Simulator
==================
.. code-block:: text
.. code-block:: console
1287594 glXSwapBuffers(dpy = 0x3e10810, drawable = 23068692)
1287595 glClientWaitSync(sync = 0x7abf554e37b0, flags = 0x0, timeout = 0) = GL_ALREADY_SIGNALED
@@ -306,7 +306,7 @@ the current frame, so the unsynchronized access to the buffers is safe.
Hollow Knight
=============
.. code-block:: text
.. code-block:: console
1873034 glXSwapBuffers(dpy = 0x28609d0, drawable = 23068692)
1873035 glClientWaitSync(sync = 0x7b1a5ca6e130, flags = 0x0, timeout = 0) = GL_ALREADY_SIGNALED
@@ -344,7 +344,7 @@ frame's buffer.
Borderlands 2
=============
.. code-block:: text
.. code-block:: console
3561998 glFlush()
3562004 glXSwapBuffers(dpy = 0xbaf0f90, drawable = 23068705)

View File

@@ -426,7 +426,6 @@ The integer capabilities:
* ``PIPE_CAP_LEGACY_MATH_RULES``: Whether NIR shaders support the
``shader_info.use_legacy_math_rules`` flag (see documentation there), and
TGSI shaders support the corresponding ``TGSI_PROPERTY_LEGACY_MATH_RULES``.
* ``PIPE_CAP_FP16``: Whether 16-bit float operations are supported.
* ``PIPE_CAP_DOUBLES``: Whether double precision floating-point operations
are supported.
* ``PIPE_CAP_INT64``: Whether 64-bit integer operations are supported.
@@ -564,8 +563,6 @@ The integer capabilities:
1. ``DRM_PRIME_CAP_IMPORT``: resource_from_handle is supported
2. ``DRM_PRIME_CAP_EXPORT``: resource_get_handle is supported
* ``PIPE_CAP_CL_GL_SHARING``: True if driver supports everything required by a frontend implementing the CL extension, and
also supports importing/exporting all of pipe_texture_target via dma buffers.
* ``PIPE_CAP_PREFER_COMPUTE_FOR_MULTIMEDIA``: Whether VDPAU, VAAPI, and
OpenMAX should use a compute-based blit instead of pipe_context::blit and compute pipeline for compositing images.
* ``PIPE_CAP_FRAGMENT_SHADER_INTERLOCK``: True if fragment shader interlock

View File

@@ -14,7 +14,7 @@ Any traces can be made with trace-cmd. The Gpuvis repository contains
`scripts <https://github.com/mikesart/gpuvis/tree/master/sample>`__ for
configuring the markers needed for GPU events. To start tracing:
.. code-block:: sh
.. code-block:: console
sh trace-cmd-setup.sh && sh trace-cmd-start-tracing.sh
# Start your game etc. Then to capture a trace
@@ -30,7 +30,7 @@ Run on Steamos
Steamos includes a script (`gpu-trace <https://github.com/lostgoat/gpu-trace>`__)
to capture traces.
.. code-block:: sh
.. code-block:: console
sudo gpu-trace
# Press Ctrl+C to stop capture and open report in gpuvis
@@ -39,7 +39,7 @@ Note that on Steamos gpuvis is actually not installed by default, but the
script does write a gpu-trace.zip file in the current working directory. To
open it you'll want to do the following on your development machine:
.. code-block:: sh
.. code-block:: console
scp sd-host:gpu-trace.zip ./
unzip gpu-trace.zip
@@ -60,7 +60,7 @@ PRESSURE_VESSEL_DEVEL=1 to set up the tracing filesystem so the trace marker
can be written. This can e.g. be done by going to the game properties in
Steam and setting the command line to
.. code-block:: sh
.. code-block:: console
PRESSURE_VESSEL_DEVEL=1 %command%

View File

@@ -76,7 +76,6 @@ Linux, FreeBSD, and other operating systems.
gallium-nine
viewperf
xlibdriver
teflon
.. toctree::
:maxdepth: 1

View File

@@ -46,7 +46,7 @@ Third party/extra tools.
respectively, (or later) should work. On Windows with MinGW, install
Flex and Bison with:
.. code-block:: sh
.. code-block:: console
mingw-get install msys-flex msys-bison
@@ -68,7 +68,7 @@ configure error message.
Here are some common ways to retrieve most/all of the dependencies based
on the packaging tool used by your distro.
.. code-block:: sh
.. code-block:: console
zypper source-install --build-deps-only Mesa # openSUSE/SLED/SLES
yum-builddep mesa # yum Fedora, OpenSuse(?)
@@ -84,7 +84,7 @@ for \*nix systems like Linux and BSD, macOS, Haiku, and Windows.
The general approach is:
.. code-block:: sh
.. code-block:: console
meson setup builddir/
meson compile -C builddir/
@@ -92,7 +92,7 @@ The general approach is:
On Windows you can also use the Visual Studio backend
.. code-block:: sh
.. code-block:: console
meson setup builddir --backend=vs
cd builddir
@@ -108,7 +108,7 @@ It's often necessary or useful when debugging driver issues or testing new
branches to run against a local build of Mesa without doing a system-wide
install. Meson has built-in support for this with its ``devenv`` subcommand:
.. code-block:: sh
.. code-block:: console
meson devenv -C builddir glxinfo
@@ -126,7 +126,7 @@ assume ``$MESA_INSTALLDIR`` is an absolute path to this location.
First, configure Mesa and install in the temporary location:
.. code-block:: sh
.. code-block:: console
meson setup builddir/ -Dprefix="$MESA_INSTALLDIR" OTHER_OPTIONS
meson install -C builddir/
@@ -135,7 +135,7 @@ where ``OTHER_OPTIONS`` is replaced by any meson configuration options you may
want. For instance, if you want to build the LLVMpipe drivers, it would look
like this:
.. code-block:: sh
.. code-block:: console
meson setup builddir/ -Dprefix="$MESA_INSTALLDIR" \
-Dgallium-drivers=swrast -Dvulkan-drivers=swrast
@@ -148,7 +148,7 @@ Which variable you have to set depends on the API.
OpenGL
~~~~~~
.. code-block:: sh
.. code-block:: console
LD_LIBRARY_PATH="$MESA_INSTALLDIR/lib64" glxinfo
@@ -159,7 +159,7 @@ contains ``libGL.so`` and use that one.
Vulkan
~~~~~~
.. code-block:: sh
.. code-block:: console
VK_ICD_FILENAMES="$MESA_INSTALLDIR/share/vulkan/icd/my_icd.json" vulkaninfo
@@ -170,7 +170,7 @@ is named ``lvp_icd.x86_64.json``.
OpenCL
~~~~~~
.. code-block:: sh
.. code-block:: console
OCL_ICD_VENDORS="$MESA_INSTALLDIR/etc/OpenCL/vendors" clinfo
@@ -212,7 +212,7 @@ When compilation has finished, look in the top-level ``lib/`` (or
``lib64/``) directory. You'll see a set of library files similar to
this:
.. code-block:: text
.. code-block:: console
lrwxrwxrwx 1 brian users 10 Mar 26 07:53 libGL.so -> libGL.so.1*
lrwxrwxrwx 1 brian users 19 Mar 26 07:53 libGL.so.1 -> libGL.so.1.5.060100*
@@ -226,7 +226,7 @@ the OSMesa (Off-Screen) interface library.
If you built the DRI hardware drivers, you'll also see the DRI drivers:
.. code-block:: text
.. code-block:: console
-rwxr-xr-x 1 brian users 16895413 Jul 21 12:11 i915_dri.so
-rwxr-xr-x 1 brian users 16895413 Jul 21 12:11 i965_dri.so
@@ -247,6 +247,6 @@ determine the proper compiler and linker flags.
For example, compiling and linking a GLUT application can be done with:
.. code-block:: sh
.. code-block:: console
gcc `pkg-config --cflags --libs glut` mydemo.c -o mydemo

View File

@@ -25,13 +25,13 @@ Unix-like OSes
If Meson is not already installed on your system, you can typically
install it with your package installer. For example:
.. code-block:: sh
.. code-block:: console
sudo apt-get install meson # Ubuntu
or
.. code-block:: sh
.. code-block:: console
sudo dnf install meson # Fedora
@@ -51,20 +51,20 @@ modules (Mako). You also need pkg-config (a hard dependency of Meson),
Flex, and Bison. The easiest way to install everything you need is with
`Chocolatey <https://chocolatey.org/>`__.
.. code-block:: sh
.. code-block:: console
choco install python3 winflexbison pkgconfiglite
You can even use Chocolatey to install MinGW and Ninja (Ninja can be
used with MSVC as well)
.. code-block:: sh
.. code-block:: console
choco install ninja mingw
Then install Meson using pip
.. code-block:: sh
.. code-block:: console
py -3 -m pip install meson packaging mako
@@ -87,7 +87,7 @@ for each configuration you might want to use.
Basic configuration is done with:
.. code-block:: sh
.. code-block:: console
meson setup build/
@@ -98,7 +98,7 @@ build options at the end.
To review the options which Meson chose, run:
.. code-block:: sh
.. code-block:: console
meson configure build/
@@ -112,7 +112,7 @@ With additional arguments ``meson configure`` can be used to change
options for a previously configured build directory. All options passed
to this command are in the form ``-D "option"="value"``. For example:
.. code-block:: sh
.. code-block:: console
meson configure build/ -Dprefix=/tmp/install -Dglx=true
@@ -125,7 +125,7 @@ an empty list (``-D platforms=[]``).
Once you've run the initial ``meson`` command successfully you can use
your configured backend to build the project in your build directory:
.. code-block:: sh
.. code-block:: console
ninja -C build/
@@ -133,7 +133,7 @@ The next step is to install the Mesa libraries, drivers, etc. This also
finishes up some final steps of the build process (such as creating
symbolic links for drivers). To install:
.. code-block:: sh
.. code-block:: console
ninja -C build/ install
@@ -168,7 +168,7 @@ Developers will often want to install Mesa to a testing directory rather
than the system library directory. This can be done with the --prefix
option. For example:
.. code-block:: sh
.. code-block:: console
meson --prefix="${PWD}/build/install" build/
@@ -191,7 +191,7 @@ they are guaranteed to persist across rebuilds and reconfigurations.
This example sets -fmax-errors for compiling C sources and -DMAGIC=123
for C++ sources:
.. code-block:: sh
.. code-block:: console
meson setup builddir/ -Dc_args=-fmax-errors=10 -Dcpp_args=-DMAGIC=123
@@ -206,7 +206,7 @@ a new build dir for a different compiler.
This is an example of specifying the Clang compilers and cleaning the
build directory before reconfiguring with an extra C option:
.. code-block:: sh
.. code-block:: console
CC=clang CXX=clang++ meson setup build-clang
ninja -C build-clang
@@ -230,7 +230,7 @@ CMake finder it will only find static libraries, it will never find
which points to the root of an alternative installation (the prefix).
For example:
.. code-block:: sh
.. code-block:: console
meson setup builddir -Dcmake_module_path=/home/user/mycmake/prefix
@@ -248,7 +248,7 @@ to find llvm-config:
Then configure Meson:
.. code-block:: sh
.. code-block:: console
meson setup builddir/ --native-file custom-llvm.ini
@@ -268,7 +268,7 @@ Obviously, only CMake or llvm-config is required.
Then configure Meson:
.. code-block:: sh
.. code-block:: console
meson setup builddir/ --cross-file cross-llvm.ini

View File

@@ -23,7 +23,7 @@ Building OSMesa
Configure and build Mesa with something like:
.. code-block:: sh
.. code-block:: console
meson setup builddir -Dosmesa=true -Dgallium-drivers=swrast -Dvulkan-drivers=[] -Dprefix=$PWD/builddir/install
meson install -C builddir

View File

@@ -61,7 +61,7 @@ To capture a trace with Perfetto you need to take the following steps:
`convenience script <https://perfetto.dev/docs/quickstart/linux-tracing#capturing-a-trace>`__
to start the tracing service:
.. code-block:: sh
.. code-block:: console
cd subprojects/perfetto
CONFIG=<path/to/gpu.cfg> OUT=out/linux_clang_release ./tools/tmux -n
@@ -83,7 +83,7 @@ To capture a trace with Perfetto you need to take the following steps:
To be a bit more explicit, here is a listing of commands reproducing
the steps above :
.. code-block:: sh
.. code-block:: console
# Configure Mesa with perfetto
mesa $ meson . build -Dperfetto=true -Dvulkan-drivers=intel,broadcom -Dgallium-drivers=
@@ -124,7 +124,7 @@ actually collecting traces.
This can be achieved by setting the :envvar:`MESA_GPU_TRACES`
environment variable before starting a Vulkan application :
.. code-block:: sh
.. code-block:: console
MESA_GPU_TRACES=perfetto ./build/my_vulkan_app
@@ -139,7 +139,7 @@ Freedreno / Turnip
The Freedreno PPS driver needs root access to read system-wide
performance counters, so you can simply run it with sudo:
.. code-block:: sh
.. code-block:: console
sudo ./build/src/tool/pps/pps-producer
@@ -150,13 +150,13 @@ The Intel PPS driver needs root access to read system-wide
`RenderBasic <https://www.intel.com/content/www/us/en/docs/vtune-profiler/user-guide/2023-0/gpu-metrics-reference.html>`__
performance counters, so you can simply run it with sudo:
.. code-block:: sh
.. code-block:: console
sudo ./build/src/tool/pps/pps-producer
Another option to enable access wide data without root permissions would be running the following:
.. code-block:: sh
.. code-block:: console
sudo sysctl dev.i915.perf_stream_paranoid=0
@@ -165,7 +165,7 @@ Alternatively using the ``CAP_PERFMON`` permission on the binary should work too
A particular metric set can also be selected to capture a different
set of HW counters :
.. code-block:: sh
.. code-block:: console
INTEL_PERFETTO_METRIC_SET=RasterizerAndPixelBackend ./build/src/tool/pps/pps-producer
@@ -173,7 +173,7 @@ Vulkan applications can also be instrumented to be Perfetto producers.
To enable this for given application, set the environment variable as
follow :
.. code-block:: sh
.. code-block:: console
PERFETTO_TRACE=1 my_vulkan_app
@@ -188,7 +188,7 @@ To run the producer, follow these two simple steps:
1. Enable Panfrost unstable ioctls via kernel parameter:
.. code-block:: sh
.. code-block:: console
modprobe panfrost unstable_ioctls=1
@@ -196,7 +196,7 @@ To run the producer, follow these two simple steps:
2. Run the producer:
.. code-block:: sh
.. code-block:: console
./build/pps-producer
@@ -210,7 +210,7 @@ If the convenience script ``tools/tmux`` keeps copying artifacts to your
``SSH_TARGET`` without starting the tmux session, make sure you have ``tmux``
installed in your system.
.. code-block:: sh
.. code-block:: console
apt install tmux

View File

@@ -1,9 +1,7 @@
24.0,2024-03-13,24.0.3,Eric Engestrom
,2024-03-27,24.0.4,Eric Engestrom
,2024-04-10,24.0.5,Eric Engestrom
,2024-04-24,24.0.6,Eric Engestrom
,2024-05-08,24.0.7,Eric Engestrom
24.1,2024-04-24,24.1.0-rc1,Eric Engestrom,24.1 branchpoint
,2024-05-01,24.1.0-rc2,Eric Engestrom
,2024-05-08,24.1.0-rc3,Eric Engestrom
,2024-05-15,24.1.0-rc4,Eric Engestrom,or 24.1.0 final
23.3,2024-01-24,23.3.4,Eric Engestrom
,2024-02-07,23.3.5,Eric Engestrom
,2024-02-21,23.3.6,Eric Engestrom
24.0,2024-01-10,24.0.0-rc1,Eric Engestrom,24.0 branchpoint
,2024-01-17,24.0.0-rc2,Eric Engestrom
,2024-01-24,24.0.0-rc3,Eric Engestrom
,2024-01-31,24.0.0-rc4,Eric Engestrom,or 24.0.0 final
1 24.0,2024-03-13,24.0.3,Eric Engestrom 23.3,2024-01-24,23.3.4,Eric Engestrom
2 ,2024-03-27,24.0.4,Eric Engestrom ,2024-02-07,23.3.5,Eric Engestrom
3 ,2024-04-10,24.0.5,Eric Engestrom ,2024-02-21,23.3.6,Eric Engestrom
4 ,2024-04-24,24.0.6,Eric Engestrom 24.0,2024-01-10,24.0.0-rc1,Eric Engestrom,24.0 branchpoint
5 ,2024-05-08,24.0.7,Eric Engestrom ,2024-01-17,24.0.0-rc2,Eric Engestrom
6 24.1,2024-04-24,24.1.0-rc1,Eric Engestrom,24.1 branchpoint ,2024-01-24,24.0.0-rc3,Eric Engestrom
7 ,2024-05-01,24.1.0-rc2,Eric Engestrom ,2024-01-31,24.0.0-rc4,Eric Engestrom,or 24.0.0 final
,2024-05-08,24.1.0-rc3,Eric Engestrom
,2024-05-15,24.1.0-rc4,Eric Engestrom,or 24.1.0 final

View File

@@ -112,7 +112,7 @@ good contact point.
then they should be squashed together. The commit messages and the
"``cherry picked from``"-tags must be preserved.
.. code-block:: text
.. code-block:: console
git show b10859ec41d09c57663a258f43fe57c12332698e
@@ -177,7 +177,7 @@ to stabilization and bugfixing.
Setup the branchpoint:
.. code-block:: sh
.. code-block:: console
# Make sure main can carry on at the new version
$EDITOR VERSION # bump the version number, keeping in mind the wrap around at the end of the year
@@ -194,7 +194,7 @@ Once it has been merged, note the last commit *before* your "VERSION:
bump to X.Y" as this is the branchpoint. This is ``$LAST_COMMIT`` in the
command below:
.. code-block:: sh
.. code-block:: console
VERSION=X.Y
@@ -206,7 +206,7 @@ command below:
Now that we have an official branchpoint, let's push the tag and create
the branches:
.. code-block:: sh
.. code-block:: console
git push origin $VERSION-branchpoint
git checkout $VERSION-branchpoint
@@ -220,7 +220,7 @@ and altered in way necessary, with the caveat that anything pushed to
the ``X.Y`` branch must not be altered anymore. A convenient command
to perform an interactive rebase over everything since the last release is:
.. code-block:: sh
.. code-block:: console
git rebase -i mesa-$(cat VERSION)
@@ -255,7 +255,7 @@ Most of the testing should already be done during the
Here is one solution:
.. code-block:: sh
.. code-block:: console
__glxgears_cmd='glxgears 2>&1 | grep -v "configuration file"'
__es2info_cmd='es2_info 2>&1 | egrep "GL_VERSION|GL_RENDERER|.*dri\.so"'
@@ -307,7 +307,7 @@ Use the release.sh script from X.Org `util-modular <https://gitlab.freedesktop.o
Start the release process.
.. code-block:: sh
.. code-block:: console
../relative/path/to/release.sh . # append --dist if you've already done distcheck above
@@ -329,7 +329,7 @@ in the ``mesa-X.Y.Z.announce`` template. Commit this change.
Don't forget to push the commits to both the ``staging/X.Y`` branch and
the ``X.Y`` branch:
.. code-block:: sh
.. code-block:: console
git push origin HEAD:staging/X.Y
git push origin HEAD:X.Y
@@ -340,14 +340,14 @@ Back on mesa main, add the new release notes into the tree
Something like the following steps will do the trick:
.. code-block:: sh
.. code-block:: console
git cherry-pick -x X.Y~1
git cherry-pick -x X.Y
Then run the
.. code-block:: sh
.. code-block:: console
./bin/post_version.py X.Y.Z
@@ -356,7 +356,7 @@ docs/relnotes.rst and docs/release-calendar.csv. It will then generate
a Git commit automatically. Check that everything looks correct and
push:
.. code-block:: sh
.. code-block:: console
git push origin main X.Y

View File

@@ -3,13 +3,9 @@ Release Notes
The release notes summarize what's new or changed in each Mesa release.
- :doc:`24.0.3 release notes <relnotes/24.0.3>`
- :doc:`24.0.2 release notes <relnotes/24.0.2>`
- :doc:`23.3.6 release notes <relnotes/23.3.6>`
- :doc:`24.0.1 release notes <relnotes/24.0.1>`
- :doc:`24.0.0 release notes <relnotes/24.0.0>`
- :doc:`23.3.5 release notes <relnotes/23.3.5>`
- :doc:`23.3.4 release notes <relnotes/23.3.4>`
- :doc:`23.3.3 release notes <relnotes/23.3.3>`
- :doc:`23.3.2 release notes <relnotes/23.3.2>`
- :doc:`23.3.1 release notes <relnotes/23.3.1>`
@@ -414,13 +410,9 @@ The release notes summarize what's new or changed in each Mesa release.
:maxdepth: 1
:hidden:
24.0.3 <relnotes/24.0.3>
24.0.2 <relnotes/24.0.2>
23.3.6 <relnotes/23.3.6>
24.0.1 <relnotes/24.0.1>
24.0.0 <relnotes/24.0.0>
23.3.5 <relnotes/23.3.5>
23.3.4 <relnotes/23.3.4>
23.3.3 <relnotes/23.3.3>
23.3.2 <relnotes/23.3.2>
23.3.1 <relnotes/23.3.1>

View File

@@ -1,199 +0,0 @@
Mesa 23.3.4 Release Notes / 2024-01-24
======================================
Mesa 23.3.4 is a bug fix release which fixes bugs found since the 23.3.3 release.
Mesa 23.3.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 23.3.4 implements the Vulkan 1.3 API, but the version reported by
the apiVersion property of the VkPhysicalDeviceProperties struct
depends on the particular driver being used.
SHA256 checksum
---------------
::
df12d765be4650fe532860b18aa18e6da1d0b07d1a21dfdfe04660e6b7bac39a mesa-23.3.4.tar.xz
New features
------------
- None
Bug fixes
---------
- [AMDGPU RDNA3] Antialiasing is broken in Blender
- Assassin's Creed Odyssey wrong colors on Arc A770
- The Finals fails to launch with DX12 on Intel Arc unless "force_vk_vendor" is set to -1.
- zink crashes on nvidia
- radv: games render with garbage output on RX5600M through PRIME with DCC
- radv: RGP reports for mesh shaders are confusing
- d3d10umd: Build failure regression with MSVC during 23.3 development cycle
- VA-API CI tests freeze
- Radeon: YUYV DMA BUF eglCreateImageKHR fails
Changes
-------
Alessandro Astone (1):
- zink: Fix resizable BAR detection logic
Boris Brezillon (3):
- panvk: Fix tracing
- panvk: Fix access to unitialized panvk_pipeline_layout::num_sets field
- panfrost: Clamp the render area to the damage region
Daniel Schürmann (1):
- aco: give spiller more room to assign spilled SGPRs to VGPRs
Dave Airlie (2):
- radv/video: refactor sq start/end code to avoid decode hangs.
- radv: don't submit empty command buffers on encoder ring.
David Rosca (1):
- radeonsi/vcn: Fix H264 slice header when encoding I frames
Eric Engestrom (7):
- docs: add sha256sum for 23.3.3
- .pick_status.json: Update to 68f5277887aae1cdc202f45ecd44df2c3c59ba7d
- .pick_status.json: Update to 4fe5f06d400a7310ffc280761c27b036aec86646
- .pick_status.json: Update to ff84aef116f9d0d13440fd13edf2ac0b69a8c132
- .pick_status.json: Update to 6e4bb8253ed36f911a0a45dfecf89c237a8cd362
- .pick_status.json: Update to d0a3bac163ca803eda03feb3afea80e516568caf
- .pick_status.json: Update to eca4f0f632b1e3e6e24bd12ee5f00522eb7d0fdb
Friedrich Vock (4):
- radv/rt: Add workaround to make leaves always active
- radv: Fix shader replay allocation condition
- nir: Make is_trivial_deref_cast public
- nir: Handle casts in nir_opt_copy_prop_vars
Georg Lehmann (1):
- aco: stop scheduling at p_logical_end
Hans-Kristian Arntzen (1):
- wsi/x11: Add workaround for Detroit Become Human.
Ian Romanick (1):
- intel/compiler: Track mue_compaction and mue_header_packing flags in brw_get_compiler_config_value
Jesse Natalie (1):
- mesa: Consider mesa format in addition to internal format for mip/cube completeness
Karol Herbst (3):
- rusticl/kernel: run opt/lower_memcpy later to fix a crash
- nir: rework and fix rotate lowering
- rusticl/kernel: check that local size on dispatch doesn't exceed limits
Konstantin Seurer (4):
- ac/llvm: Enable helper invocations for quad OPs
- lavapipe: Fix DGC vertex buffer handling
- lavapipe: Mark vertex elements dirty if the stride changed
- lavapipe: Report the correct preprocess buffer size
Lionel Landwerlin (4):
- anv: fix disabled Wa_14017076903/18022508906
- anv: hide vendor ID for The Finals
- anv: fix pipeline executable properties with graphics libraries
- anv: implement undocumented tile cache flush requirements
Lucas Stach (1):
- etnaviv: disable 64bpp render/sampler formats
Matt Turner (4):
- symbols-check: Add _GLOBAL_OFFSET_TABLE_
- nir: Fix cast
- util: Add DETECT_ARCH_HPPA macro
- util/tests: Disable half-float NaN test on hppa/old-mips
Max R (1):
- d3d10umd: Fix compilation
Mike Blumenkrantz (5):
- lavapipe: fix devenv icd filename
- zink: always force flushes when originating from api frontend
- zink: ignore tc buffer replacement info
- zink: fix buffer rebind early-out check
- zink: fix separate shader patch variable location adjustment
Patrick Lerda (1):
- glsl/nir: fix gl_nir_cross_validate_outputs_to_inputs() memory leak
Pavel Ondračka (1):
- r300: fix reusing of color varying slots for generic ones
Pierre-Eric Pelloux-Prayer (2):
- ac/surface: don't oversize surf_size
- radeonsi: compute epitch when modifying surf_pitch
Rhys Perry (3):
- radv: do nir_shader_gather_info after radv_nir_lower_rt_abi
- nir/lower_non_uniform: set non_uniform=false when lowering is not needed
- nir/lower_shader_calls: remove CF before nir_opt_if
Samuel Pitoiset (2):
- radv: do not issue SQTT marker with DISPATCH_MESH_INDIRECT_MULTI
- radv: fix indirect dispatches on the compute queue on GFX7
Sviatoslav Peleshko (1):
- nir: Use alu source components count in nir_alu_srcs_negative_equal
Tapani Pälli (4):
- anv: check for wa 16013994831 in emit_so_memcpy_end
- iris: expand pre-hiz data cache flush to gfx >= 125
- anv: expand pre-hiz data cache flush to gfx >= 125
- iris: replace constant cache invalidate with hdc flush
Tatsuyuki Ishi (1):
- radv: never set DISABLE_WR_CONFIRM for CP DMA clears and copies
Timur Kristóf (1):
- radv: Correctly select SDMA support for PRIME blit.
Yiwei Zhang (4):
- vulkan/wsi/wayland: fix returns and avoid leaks for failed swapchain
- venus: fix pipeline layout lifetime
- venus: fix pipeline derivatives
- venus: fix to respect the final pipeline layout
Yonggang Luo (1):
- compiler/spirv: The spirv shader is binary, should write in binary mode

View File

@@ -1,154 +0,0 @@
Mesa 23.3.5 Release Notes / 2024-01-31
======================================
Mesa 23.3.5 is a bug fix release which fixes bugs found since the 23.3.4 release.
Mesa 23.3.5 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 23.3.5 implements the Vulkan 1.3 API, but the version reported by
the apiVersion property of the VkPhysicalDeviceProperties struct
depends on the particular driver being used.
SHA256 checksum
---------------
::
69ccb1278641ff5bad71ca0f866188aeb1a92aadc4dbb9d35f50aebec5b8b50f mesa-23.3.5.tar.xz
New features
------------
- None
Bug fixes
---------
- [radeonsi] Regression: graphical artifacting on water texture in OpenGOAL
- VAAPI: EFC on VCN2 produces broken H264 video and crashes the HEVC encoder
Changes
-------
Antoine Coutant (1):
- clc: retrieve libclang path at runtime.
Daniel Schürmann (1):
- aco/insert_exec_mask: Fix unconditional demote at top-level control flow.
David Heidelberg (1):
- ci/freedreno: timestamp-get no longer fails on Adreno
Dmitry Baryshkov (1):
- freedreno/drm: don't crash for unsupported devices
Eric Engestrom (8):
- docs: add sha256sum for 23.3.4
- .pick_status.json: Update to b75ee1a0670a3207dfd99917e4f47d064a44197f
- .pick_status.json: Update to 4cd5b2b5426e8d670fc3657eee040a79e3f9df1e
- util: rename __check_suid() to __normal_user()
- tree-wide: use __normal_user() everywhere instead of writing the check manually
- util: simplify logic in __normal_user()
- util: check for setgid() as well in __normal_user()
- .pick_status.json: Mark 321e2cee5315e94c050f8659a8cd55e0e7cd9076 as denominated
Faith Ekstrand (1):
- nvk: Don't exnore ExternalImageFormatInfo
Friedrich Vock (7):
- util: Provide a secure_getenv fallback for platforms without it
- aux/trace: Guard triggers behind __normal_user
- mesa/main: Use secure_getenv for shader dumping
- radv: Use secure_getenv in radv_builtin_cache_path
- radv: Use secure_getenv for RADV_THREAD_TRACE_TRIGGER
- util/disk_cache: Use secure_getenv to determine cache directories
- vulkan: Use secure_getenv for trigger files
Gert Wollny (5):
- r600: lower dround_even also on hardware that supports fp64
- virgl: Use better reporting for mirror_clamp features
- radv: Fix compilation with gcc-13 and tsan enabled
- nir/lower_int64: Fix compilation with gcc-13 and tsan enabled
- nir/builder: Fix compilation with gcc-13 when tsan is enabled
Haihao Xiang (1):
- anv: Fix typo in transition_color_buffer
Hyunjun Ko (1):
- anv/video: fix out-of-bounds read
Iago Toral Quiroga (3):
- broadcom/compiler: fix incorrect flags setup in non-uniform if path
- broadcom/compiler: fix incorrect flags update for subgroup elect
- broadcom/compiler: be more careful with unifa in non-uniform control flow
Karol Herbst (1):
- clc: force fPIC for every user when using shared LLVM
Lionel Landwerlin (2):
- anv: don't prevent L1 untyped cache flush in 3D mode
- anv: fix transfer barriers flushes with compute queue
Louis-Francis Ratté-Boulianne (4):
- panfrost: factor out method to check whether we can discard resource
- panfrost: add copy_resource flag to pan_resource_modifier_convert
- panfrost: add can_discard flag to pan_legalize_afbc_format
- panfrost: Legalize before updating part of a AFBC-packed texture
Mike Blumenkrantz (3):
- zink: set more dynamic states when using shader objects
- zink: always map descriptor buffers as COHERENT
- zink: fix descriptor buffer unmaps on screen destroy
Pierre-Eric Pelloux-Prayer (1):
- radeonsi: emit cache flushes before draw registers
Rhys Perry (1):
- aco: fix labelling of s_not with constant
Rob Clark (3):
- freedreno: De-duplicate 19.2MHz RBBM tick conversion
- freedreno: Fix timestamp conversion
- freedreno: Implement PIPE_CAP_TIMER_RESOLUTION
Rohan Garg (1):
- anv: untyped data port flush required when a pipeline sets the VK_ACCESS_2_SHADER_STORAGE_READ_BIT
Sebastian Wick (1):
- radeonsi: Destroy queues before the aux contexts
Tapani Pälli (1):
- anv: move \*bits_for_access_flags to genX_cmd_buffer
Thong Thai (1):
- radeonsi/vcn: remove EFC support for renoir

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