Commit Graph

193494 Commits

Author SHA1 Message Date
Alyssa Rosenzweig 22b37c16c8 nir: add nir_alu_src_rewrite_scalar helper
this is a little annoying.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Mel Henning <mhenning@darkrefraction.com>
Acked-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36147>
2025-07-22 23:17:01 +00:00
Alyssa Rosenzweig 59ffaf9222 util: make SWAP safe for MSVC
Jesse acked on irc.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36147>
2025-07-22 23:17:00 +00:00
Erico Nunes 92213f647e lima: fix array limit in texture mipmap descriptor
Fix an off-by-one error in the texture mipmap descriptor code.
This fixes a segfault in applications that acutually use all
available mipmap levels.

Fixes: a3f827319f ("lima: add genxml for texture descriptor")

Signed-off-by: Erico Nunes <nunes.erico@gmail.com>
Reviewed-by: Vasily Khoruzhick <anarsoul@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36300>
2025-07-22 22:55:17 +00:00
X512 e847d9920c NVK: report VK_KHR_unified_image_layouts extenstion support
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36298>
2025-07-22 22:41:09 +00:00
Faith Ekstrand efa9b872fb nvk: Move KHR_timeline_semaphore to the right spot in the list
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36298>
2025-07-22 22:41:09 +00:00
Yiwei Zhang 2553628369 u_gralloc/mapper4: properly expose ChromaSiting types based on api level
ChromaSiting::COSITED_VERTICAL and ChromaSiting::COSITED_BOTH only exist
in api level 35 and above.

Fixes: 64d18f84b0 ("u_gralloc/mapper4: fill u_gralloc_buffer_color_info properly")
Reported-by: Alessandro Astone <ales.astone@gmail.com>
Reviewed-by: Alessandro Astone <ales.astone@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36277>
2025-07-22 22:15:11 +00:00
Danylo Piliaiev 1e6af961ec util/u_trace: Add scripts for perf analysis based on u_trace results
The intent is to provide an easy way to measure the impact of an
optimization, not by measuring the whole workload completion time
but also by measuring certain chunks of the workload like command
buffers, renderpasses, or even separate draws.

A moderate perf win in a rare case may not translate into statistically
signifacant overall result. An optimization also may hurt perf in some
cases and help in other which is also hard to judge from overall perf.

For best results pin cpu/gpu frequencies and disable gpu suspend.
Exclude all unnecessary tracepoints via TU_GPU_TRACEPOINT.

Usage:
   u_trace_gather.py gather_all \
    --loops 1 --launcher "renderdoccmd replay --loops 12" \
    --traces-list /path/to/traces.txt \
    --traces-dir /path/to/dir/with/traces/ \
    --results /path/to/results/ \
    --alias new-shiny-opt

   u_trace_compare.py compare \
    --results /path/to/results/ \
    --loops-merged true \
    --alias-a default \
    --alias-b new-shiny-opt \
    --event-start start_render_pass \
    --event-end end_render_pass \
    --filter "int(params['drawCount']) > 10"

   u_trace_compare.py details \
    --results /path/to/results/ \
    --trace-name test.rdc \
    --alias default \
    --event-start start_render_pass \
    --event-end end_render_pass

Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16914>
2025-07-22 21:15:51 +00:00
Jianxun Zhang 8d98bf289d anv: Fix PAT entry in importing (xe2)
If a compressed bo is imported, we should set the corresponding
compressed PAT.

Fixes video corruption in gamescope:
gamescope --force-composition -- vkcube

Close: https://gitlab.freedesktop.org/mesa/mesa/-/issues/13442

Signed-off-by: Jianxun Zhang <jianxun.zhang@intel.com>
Reviewed-by: José Roberto de Souza <jose.souza@intel.com>
Reviewed-by: Nanley Chery <nanley.g.chery@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36275>
2025-07-22 20:18:44 +00:00
Jianxun Zhang c766586957 anv: No compression on host memory allocation (xe2)
The Xe kernel driver doesn't allow vm_bind on compressed bo
if it has user pointer. And we probably shouldn't enable CCS
compression on memory in any case.

This change is necessary to prevent failures once we adjust the
priority of compression PAT entries in a following commit:

Vulkan CTS:
dEQP-VK.api.buffer_marker.compute.external_host_mem.top_of_pipe.
memory_dep.buffer_copy

dEQP-VK.memory.external_memory_host.simple_allocation.
minImportedHostPointerAlignment_x3

anv_kmd_backend.c:308: xe_vm_bind_op: Assertion
`errno_ != EINVAL' failed.

Signed-off-by: Jianxun Zhang <jianxun.zhang@intel.com>
Reviewed-by: José Roberto de Souza <jose.souza@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36275>
2025-07-22 20:18:44 +00:00
Mike Blumenkrantz 6570184201 zink: remove extra gfx prog unref during separable replacement
programs start with one reference per contained shader. the only other
places they can be referenced are:
* batch refs
* merged separable programs during compile

this unref did not match any of those cases and caused early deletion

caselist:
dEQP-GLES31.functional.atomic_counter.inc.8_counters_5_calls_10_threads
dEQP-GLES31.functional.texture.filtering.cube_array.combinations.linear_mipmap_linear_linear_mirror_repeat
dEQP-GLES31.functional.texture.specification.texsubimage3d_pbo.rgb32i_cube_array
dEQP-GLES31.functional.texture.specification.texsubimage3d_pbo.rgb8_image_height_cube_array
dEQP-GLES31.functional.texture.specification.texsubimage3d_depth.depth24_stencil8_cube_array
dEQP-GLES31.functional.sample_shading.min_sample_shading.multisample_texture_samples_2_color
dEQP-GLES31.functional.vertex_attribute_binding.usage.mixed_usage.mixed_attribs_instanced_binding

cc: mesa-stable

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36294>
2025-07-22 20:00:11 +00:00
Mike Blumenkrantz f83b36f956 zink: account for generated tcs when pruning programs
this otherwise doesn't remove programs from the ctx cache before deletion

caselist:
KHR-GL46.shader_image_size.advanced-ms-tes-float
KHR-GL46.es_31_compatibility.shader_image_load_store.basic-allTargets-atomicVS
KHR-GL46.es_31_compatibility.shader_storage_buffer_object.basic-std140Layout-case4-vs

OR:
KHR-GL46.shader_atomic_counters.basic-usage-tes
KHR-GL46.es_31_compatibility.shader_storage_buffer_object.basic-stdLayout-case1-vs

cc: mesa-stable

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36294>
2025-07-22 20:00:11 +00:00
Boyuan Zhang 2525fe07c2 radeonsi/vcn: adjust subsample size alignment
The total subsample size has to be equal to the aligned bitstream size.
Remove the previous subsample size alignment and make it always equal
to aligned bitstream size.

Signed-off-by: Boyuan Zhang <boyuan.zhang@amd.com>
Acked-by: Ruijing Dong <ruijing.dong@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36230>
2025-07-22 18:26:27 +00:00
Aaron Ruby 13e6fa4ba8 gfxstream: Remove duplicate/unnecessary frees in destroyDevice
Reviewed-by: Gurchetan Singh <gurchetansingh@google.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36273>
2025-07-22 18:12:35 +00:00
Ian Romanick 477c0cbbf9 nir/print: Don't segfault checking has_debug_info
For example, divergence analysis can call nir_print_instr with an
instruction that doesn't have a block set. When that happens,
print_state::shader will be NULL.

I stumbled on this while testing !36147.

v2: Use nir_instr::has_debug_info instead. Suggested by Konstantin.

Reviewed-by: Konstantin Seurer <konstantin.seurer@gmail.com>
Fixes: ce0f30b230 ("nir: Add variable debug info to instructions")
Fixes: 3aeab4ce40 ("nir/print: Do not print debug information when gathering it")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36267>
2025-07-22 17:41:38 +00:00
David Rosca 989dad7c3c radv/ci: Add dEQP-VK.video.formats.* fails for navi10 and vega10
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36288>
2025-07-22 16:19:54 +00:00
David Rosca ad11e826b7 radv/video: Don't allow DRM format modifier tiling on GFX < 9
Fixes: 566ea76d8e ("radv/video: Support DRM format modifier tiling")
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36288>
2025-07-22 16:19:54 +00:00
Lucas Fryzek b781ae57a5 lp: Don't allocate sampler functions if count is 0
This prevents memory being allocated with a size
of 0 as the sampler count will be 0.

Fixes: #13539
Co-authored-by: Stéphane Cerveau <scerveau@igalia.com>
Reviewed-by: Konstantin Seurer <konstantin.seurer@gmail.com>
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36165>
2025-07-22 16:00:25 +00:00
Valentine Burley a8c86cf73b zink/ci: Fix enabling VVL for RADV jobs
The validation settings file must be named
$GPU_VERSION-validation-settings.txt for deqp-runner.sh to use it.

Enable Vulkan Validation Layers for the two RADV jobs that commit 5fd0b634d4
("zink: add VVL for RADV jobs") attempted to enable, as well as the new
Cezanne job.

Also add filters for VUIDs that error due to unrecognized extensions when
the VVL version in CI is too old.

Signed-off-by: Valentine Burley <valentine.burley@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35717>
2025-07-22 15:02:29 +00:00
Valentine Burley 9e76475753 zink/ci: Only enable VVL for deqp on RADV
Don't try to enable Vulkan Validation Layers for piglit.

Signed-off-by: Valentine Burley <valentine.burley@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35717>
2025-07-22 15:02:29 +00:00
Konstantin Seurer e5af8152eb radv/rra/gfx12: Add validation
Reviewed-by: Natalie Vock <natalie.vock@gmx.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35166>
2025-07-22 14:40:33 +00:00
Konstantin Seurer a61f78b8f4 radv/rra/gfx12: Handle box nodes without children
Reviewed-by: Natalie Vock <natalie.vock@gmx.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35166>
2025-07-22 14:40:33 +00:00
Konstantin Seurer f33623ea5f radv/rra: Increase rra_validation_context::location
31 bytes aren't always enough for storing the string.

Reviewed-by: Natalie Vock <natalie.vock@gmx.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35166>
2025-07-22 14:40:33 +00:00
Konstantin Seurer e62c464e4e radv/rra: Only write used BLAS
Halves the size of cp2077 captures.

Reviewed-by: Natalie Vock <natalie.vock@gmx.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35166>
2025-07-22 14:40:33 +00:00
Christian Gmeiner 5dcd9b93b5 etnaviv: Fix vertex format normalization for signed integer formats
The NORMALIZE_SIGN_EXTEND flag is required for SINT vertex formats to
properly handle sign extension when reading signed integer data, not
just for traditional normalized formats.

Replace manual channel description checks with utility functions to
determine when NORMALIZE_SIGN_EXTEND is needed. This makes the code
more maintainable and less error-prone.

Fixes dEQP-GLES3.functional.vertex_arrays.single_attribute.output_types.*
tests with signed integer vertex data.

Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com>
Reviewed-by: Lucas Stach <l.stach@pengutronix.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36274>
2025-07-22 13:49:18 +00:00
Mike Blumenkrantz 3951125f98 egl/x11: don't leak device_name when choosing zink
cc: mesa-stable

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36268>
2025-07-22 13:23:56 +00:00
Christian Gmeiner 1946592e39 etnaviv: Handle 64-bit pixel formats in texture sampler TS setup
Set VIVS_TS_SAMPLER_CONFIG_64BPP_FORMAT when the texture format
has 64 bits per pixel to ensure proper tile status handling for
wide formats.

Fixes at least the following CTS tests:
- dEQP-GLES3.functional.fbo.color.repeated_clear.sample.tex2d.rg32i
- dEQP-GLES3.functional.fbo.color.repeated_clear.sample.tex2d.rg32ui
- dEQP-GLES3.functional.fbo.color.repeated_clear.sample.tex2d.rgba16i
- dEQP-GLES3.functional.fbo.color.repeated_clear.sample.tex2d.rgba16ui

Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com>
Reviewed-by: Lucas Stach <l.stach@pengutronix.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36270>
2025-07-22 12:32:58 +00:00
Christian Gmeiner 3f55070152 etnaviv: Update headers from rnndb
Update to rnndb commit 64aaa098786d

Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com>
Reviewed-by: Lucas Stach <l.stach@pengutronix.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36270>
2025-07-22 12:32:57 +00:00
Alyssa Rosenzweig bff6dff572 hk: support static vertex input state
prologs inflate register pressure, so this can help a lot in the monolithic case
(together with dynamic strides). eliminates spilling from some vertex shaders in
Control that read a ton of attributes per vertex.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36271>
2025-07-22 11:21:50 +00:00
Alyssa Rosenzweig 5403a52e4d nir: add vbo_stride_agx
for static VS input + dynamic strides.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36271>
2025-07-22 11:21:50 +00:00
Juan A. Suarez Romero a977e72c29 v3d/ci: unlock rusticl citron jobs
Run baremetal and ci-tron rusticl jobs in parallel for a while.

Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36283>
2025-07-22 09:04:42 +00:00
Juan A. Suarez Romero eca3a8f2cb broadcom/ci: disable baremetal jobs for ci-tron
After a while testing in parallel baremetal and ci-tron jobs, disable
baremetal ones and keep ci-tron jobs.

Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36283>
2025-07-22 09:04:42 +00:00
Samuel Pitoiset 2739cf5b65 zink/ci: remove old gfx1200 lists
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36210>
2025-07-22 08:43:17 +00:00
Martin Roukala (né Peres) 90bfe3b096 zink/ci: add post-merge jobs for gfx1201
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36210>
2025-07-22 08:43:17 +00:00
Martin Roukala (né Peres) e782201f5e radv/ci: add post-merge jobs for gfx1201
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36210>
2025-07-22 08:43:17 +00:00
Natalie Vock 87ebe6b31a radv/winsys: Support vm_always_valid in the NULL winsys
A few device features (most importantly bufferDeviceAddress) are behind
a check for has_vm_always_valid. When replaying fossilize captures using
SPIR-V capabilities like PhysicalStorageBuffer addresses (which itself
depends on bufferDeviceAddress) on a null device, these features will be
hidden and replay will fail. Claim vm_always_valid support in the null
winsys - it's not like we'll ever create any BOs anyway.

Fixes: df1224c8 ("radv: rework VM_ALWAYS_VALID handling")
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36221>
2025-07-22 07:38:25 +00:00
Samuel Pitoiset 8434109b0c zink/ci: update list of expected failures for NAVI31
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36280>
2025-07-22 06:54:15 +00:00
Samuel Pitoiset 9f725cf348 radv: reject 1D block-compresed formats with mips on GFX6
GFX6 has general issues with 1D BCn formats.

Fixes recent VKCTS coverage
dEQP-VK.api.copy_and_blit.*image_to_buffer.1d_images.mip_copies_*.

Cc: mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36259>
2025-07-22 06:09:54 +00:00
Samuel Pitoiset 1323a1194e radv: fix reporting instance/vertex_count for direct draws with RGP on GFX12
This is a cursed interaction with RGP...

Cc: mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36188>
2025-07-22 05:52:10 +00:00
Samuel Pitoiset aa80a08598 radv: simplify emitting SQTT shaders relocation for GFX6-GFX11.5
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36188>
2025-07-22 05:52:10 +00:00
Samuel Pitoiset 9965a344ae radv: fix SQTT shaders relocation on GFX12
This fixes reporting ISA and instruction timing with RGP.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/13525
Fixes: 098c15bfc9 ("radv: use paired shader registers for graphics on GFX12")
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36188>
2025-07-22 05:52:10 +00:00
Emma Anholt 055d5759a7 wsi/display: Add error messages to some shouldn't-be-hit paths.
Maybe we could see objects without our required set of properties, but we
definitely should never fail at drmModeObjectGetProperties().

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6173>
2025-07-21 22:53:54 +00:00
Emma Anholt 3c302d29a4 wsi/display: Add some comments about what's going on in the code.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6173>
2025-07-21 22:53:54 +00:00
Jonathan Marek 513ffea1d3 wsi/display: use atomic mode setting
Switch from legacy api to the atomic api.  Atomic support should be
standard at this point, and failing to get a KHR_display connector in its
absence seems reasonable (rather than retaining code that we don't expect
to use or test, as in
https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4176)

This is a prerequisite for modifiers support, where we need to be able to
pick a specific plane in order to see its supported modifiers list.

Signed-off-by: Jonathan Marek <jonathan@marek.ca>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6173>
2025-07-21 22:53:54 +00:00
Eric Engestrom baa9b4225b wsi/display: also select a plane when selecting a crtc
Signed-off-by: Eric Engestrom <eric.engestrom@intel.com>
Signed-off-by: Jonathan Marek <jonathan@marek.ca>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6173>
2025-07-21 22:53:54 +00:00
Eric Engestrom 09058ccbdb wsi/display: setup the connector earlier
Instead of setting it up when the swapchain is presented, set it up when
creating the swapchain. This means that multiple swapchains might use
the same crtc, but only one can be active at a time, and the connectors
are now refcounted.

This is necessary for the next commit.

Signed-off-by: Eric Engestrom <eric.engestrom@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6173>
2025-07-21 22:53:53 +00:00
Karol Herbst 15b4ecf104 rusticl/kernel: unbind trailing shader images
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36243>
2025-07-21 22:37:04 +00:00
Karol Herbst aa5f8b9d35 rusticl/queue: cache samplers
OpenCL doesn't really allow a wide range of different samplers, so the
cache hit rate is pretty high across all applications.

This also allows us to stop unbinding samplers after each kernel launch.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36243>
2025-07-21 22:37:04 +00:00
Karol Herbst eb904cd51c rusticl/kernel: stop clearing sampler views on kernel launches
Instead we just unbind on the next launch by using the
unbind_num_trailing_slots parameter.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36243>
2025-07-21 22:37:03 +00:00
Karol Herbst 2e54e8e89e rusticl/queue: remove RefCell<QueueKernelState>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36243>
2025-07-21 22:37:03 +00:00
Karol Herbst e6dc4ceaf1 rusticl/queue: commit lifetime crimes
For annoying reasons we need to add another layer of wrapping around the
queues PipeContext so that we can finally start to turn a few methods &mut
self.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36243>
2025-07-21 22:37:02 +00:00