Commit graph

211971 commits

Author SHA1 Message Date
Qiang Yu
41cde01b0b gallium: add PIPE_RESOURCE_PARAM_DISJOINT_PLANES
To query if a DRI_IMAGE has separate plane buffer handle.

radeonsi's DCC compressed dri image has multiple planes
(compressed data and metadata). But they share the same
buffer with different offsets, so we only need one buffer
handle for them.

This attribute is used to distinguish single buffer multi
plane image from multi buffer multi plane image.

Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Acked-by: Daniel Stone <daniels@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31658>
2025-09-15 09:39:19 +00:00
Qiang Yu
310cfda034 ac/surface: add ac_compute_surface_modifier
Used by radeonsi to export existing texture modifier.

Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Acked-by: Daniel Stone <daniels@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31658>
2025-09-15 09:39:19 +00:00
Qiang Yu
98cd68ec05 ac/surface: add radeonsi exported modifiers to supported list
radeonsi will export texture with these modifiers.

piglit tests:
spec@ext_image_dma_buf_import@ext_image_dma_buf_import-export-tex
spec@ext_image_dma_buf_import@ext_image_dma_buf_import-tex-modifier

Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Acked-by: Daniel Stone <daniels@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31658>
2025-09-15 09:39:19 +00:00
Qiang Yu
1b0ec56c40 ac/surface: refine supported modifier list for multi block size
Reference KMD convert_tiling_flags_to_modifier(). And we are
going to add 4K block size.

Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Acked-by: Daniel Stone <daniels@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31658>
2025-09-15 09:39:19 +00:00
Valentine Burley
c00bb4c1fe zink/ci: Disable ASan leak detection and re-enable zink-anv-cml-asan
The CML job runs into leaks in various tests, and the only way to
re-enable the job is to disable leak detection for now.

Signed-off-by: Valentine Burley <valentine.burley@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37330>
2025-09-15 09:20:14 +00:00
Jose Maria Casanova Crespo
72d7864c6b v3d: Don't enable Early-z with discards when stencil updates are enabled
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
This fixes font rendering artifacts when Chromium/Firefox use Office365
PowerPoint set into fullscreen presentation mode.

Fixes: 5b951bcdd7 ("v3d: Enable Early-Z with discards when depth updates are disabled")
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37349>
2025-09-15 09:06:25 +00:00
Valentine Burley
d1ff7cf445 ci/crosvm: Add log sections for crosvm
Clean up the GitLab job logs for crosvm jobs by adding a few collapsed
log section.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/13882
Signed-off-by: Valentine Burley <valentine.burley@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37327>
2025-09-15 08:06:11 +00:00
Qiang Yu
ea5e190b91 panfrost: fix lowered multi plane resource offset/stride param get
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
EGL is going to really export each plane's offset/stride, panfrost
need to fix for passing the piglit test:
  spec@ext_image_dma_buf_import@ext_image_dma_buf_import-export

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/13853
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Eric R. Smith <eric.smith@collabora.com>
Acked-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37247>
2025-09-15 06:39:43 +00:00
Qiang Yu
95579b7af6 panfrost: fix image plane array copy
Reference the original code, each plane resource have
the same image plane array.

Fixes: 53e5e07c4b ("pan: Add the concept of modifier handler")
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Eric R. Smith <eric.smith@collabora.com>
Acked-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37247>
2025-09-15 06:39:43 +00:00
Georg Lehmann
5962659c85 radv: remove uses_rt from radv_shader_info
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37294>
2025-09-14 13:21:21 +00:00
Georg Lehmann
a2d3cbac2a radv: determine subgroup/wave size early
This means we can actually implement varying subgroup size correctly.
It also means that we implement the implicit SPIR-V 1.6 full subgroups
requirement in compute shaders with cswave32/rtwave32.

In the future it will also allow more optimizations that use the subgroup size.

Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>

The only somewhat complex case here is GFX10 geometry shaders, if gewave32 is
used. We then only know the subgroup size when is_ngg is decided, as legacy
GS doesn't support wave32.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37294>
2025-09-14 13:21:21 +00:00
Georg Lehmann
76a502d75a ac/nir: set subgroup size for gs copy shader
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37294>
2025-09-14 13:21:21 +00:00
Georg Lehmann
c4cdbee2e6 radv: remove unused ballot_bit_size from shader info
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37294>
2025-09-14 13:21:21 +00:00
Georg Lehmann
2cda56e8b7 ac/llvm: remove unused ballot size
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37294>
2025-09-14 13:21:20 +00:00
Georg Lehmann
f83a6e6389 radv: add varying subgroup size to shader stage key
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37294>
2025-09-14 13:21:20 +00:00
Mike Blumenkrantz
393958a02e zink: use a better array loop sizing for gfx descriptor program init
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
this will be more consistent if the array is ever resized

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37358>
2025-09-14 07:56:15 -04:00
Mike Blumenkrantz
a7c320e652 zink: some minor tweaks to descriptor template code
no functional changes

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37358>
2025-09-14 07:56:15 -04:00
Mike Blumenkrantz
b17235968e zink: break out setting draw-time dynamic state into separate function
no functional changes

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37358>
2025-09-14 07:56:15 -04:00
Mike Blumenkrantz
2712dc2179 zink: add enum zink_pipeline_idx to distinguish between types of pipelines
used for array indexing in many cases

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37358>
2025-09-14 07:56:15 -04:00
Mike Blumenkrantz
ea4d64531d zink: unify ntv code for loading shared/scratch memory
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37358>
2025-09-14 07:56:15 -04:00
Mike Blumenkrantz
d74eff651b zink: unify ntv code for storing shared/scratch memory
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37358>
2025-09-14 07:56:15 -04:00
Mike Blumenkrantz
b6f0826ce5 zink: make zink_descriptor_util_push_layouts_get() static
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37358>
2025-09-14 07:56:15 -04:00
Mike Blumenkrantz
4e50969e83 zink: delete weird prog->pipelines sizing
this was a tiny micro-optimization for not allocating hash tables, but
really it just makes the code more confusing for no reason

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37358>
2025-09-14 07:56:15 -04:00
Mike Blumenkrantz
308744e789 zink: mark dirty_gfx_stages using util function
more extensible for mesh

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37358>
2025-09-14 07:56:05 -04:00
Mike Blumenkrantz
dce29ae35f Revert "util/vbuf: stop nooping set_vertex_buffers calls"
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
This reverts commit cccca8d140.

did not mean for this to merge

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37353>
2025-09-13 11:18:09 -04:00
Mike Blumenkrantz
cccca8d140 util/vbuf: stop nooping set_vertex_buffers calls
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
this sucks, but if the gallium expectation is that changing vertex state
always requires a vb update, vbuf can no longer deduplicate repeated
calls

Fixes: 1638d486ff ("gallium/u_threaded,st/mesa: add a merged set_vertex_elements_and_buffers call")

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37277>
2025-09-13 12:20:31 +00:00
Mike Blumenkrantz
d63374498d zink: eliminate even more calls to sync functions
many times (especially in viewperf), vertex buffers and draw buffers
have no prior access, which means incurring a heavy call to the barrier
function which will just return a no-op anyway

instead, have an inline helper to no-op these cases and just add the
expected access

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37277>
2025-09-13 12:20:30 +00:00
Mike Blumenkrantz
58ed06ad68 zink: only remove buffer deferred sync on release
this is otherwise just a huge amount of overhead whenever
descriptors are unbound

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37277>
2025-09-13 12:20:29 +00:00
Mike Blumenkrantz
1abc337e94 zink: delete some function decls that no longer exist
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37277>
2025-09-13 12:20:28 +00:00
Mike Blumenkrantz
5ef8453228 zink: use memcpy for vbo bind
there's no more refcounting here so this is fine

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37277>
2025-09-13 12:20:28 +00:00
Mike Blumenkrantz
aee0379414 zink: rescope some zink_set_vertex_buffers_internal variables
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37277>
2025-09-13 12:20:27 +00:00
Mike Blumenkrantz
f8c96df9d2 zink: move vbo unbind to bind_vertex_state
set_vertex_buffers is required to be called after the bind_state call,
which means some code can be moved out of the higher frequency call site

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37277>
2025-09-13 12:20:27 +00:00
Mike Blumenkrantz
06a8e7b87e zink: move zink_bind_vertex_elements_state() to zink_context.c
needed in order to handle unbinding

no functional changes

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37277>
2025-09-13 12:20:26 +00:00
Mike Blumenkrantz
f99503faa2 zink: use velems buffer count in blitter instead of gfx mask
small simplification

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37277>
2025-09-13 12:20:26 +00:00
Mike Blumenkrantz
a730c83dd0 zink: split update_res_bind_count
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37277>
2025-09-13 12:20:26 +00:00
Mike Blumenkrantz
c96bb8d1c4 zink: ALWAYS_INLINE zink_set_vertex_buffers_internal
otherwise the specialization is useless

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37277>
2025-09-13 12:20:25 +00:00
Mike Blumenkrantz
26f4cc39b5 zink: add a fastpath for nooping vertex and draw buffer barriers
even doing this mechanism inside the barrier function doesn't yield
anywhere near the same gains (~15-20% in viewperf catia), mostly for
the draw buffers, so I'd assume it's just added register pressure
from the huge draw function

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37277>
2025-09-13 12:20:25 +00:00
Mike Blumenkrantz
efd8e46891 zink: support NV_representative_fragment_test
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37081>
2025-09-13 11:28:44 +00:00
Mike Blumenkrantz
34641b44c6 mesa: support GL_NV_representative_fragment test
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37081>
2025-09-13 11:28:44 +00:00
Yonggang Luo
57d273b55b meson: Getting symbols-check.py works for mingw
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
Reviewed-by: Eric Engestrom <eric@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37289>
2025-09-13 08:23:07 +00:00
Yonggang Luo
bd915eeb96 util: Fixes gcc warning: declaration of 'strndup' shadows a built-in function [-Wshadow]
../../src/util/strndup.h:37:1: warning: declaration of 'strndup' shadows a built-in function [-Wshadow]
   37 | strndup(const char *str, size_t max)
      | ^~~~~~~

Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
Reviewed-by: Eric Engestrom <eric@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37289>
2025-09-13 08:23:07 +00:00
Yonggang Luo
a01a110071 meson: Remove non-unused inc_d3d9
As nine is removed, the by-product inc_d3d9 also need removed

Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
Reviewed-by: Eric Engestrom <eric@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37289>
2025-09-13 08:23:07 +00:00
Yonggang Luo
bebd167d74 glsl: Fixes warning: deprecated directive: ‘%pure-parser’, ‘%error-verbose’
../../src/compiler/glsl/glcpp/glcpp-parse.y:179.1-12: warning: deprecated directive: ‘%pure-parser’, use ‘%define api.pure’ [-Wdeprecated]
  179 | %pure-parser
      | ^~~~~~~~~~~~
      | %define api.pure
../../src/compiler/glsl/glcpp/glcpp-parse.y:180.1-14: warning: deprecated directive: ‘%error-verbose’, use ‘%define parse.error verbose’ [-Wdeprecated]
  180 | %error-verbose
      | ^~~~~~~~~~~~~~
      | %define parse.error verbose

Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
Reviewed-by: Eric Engestrom <eric@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37289>
2025-09-13 08:23:07 +00:00
Yonggang Luo
7db518cfe4 aco: Fixes warning: function get_branch_target/to_clrx_device_name defined but not used
../../src/amd/compiler/aco_print_asm.cpp:156:1: warning: 'bool aco::{anonymous}::get_branch_target(char**, aco::Program*, const std::vector<bool>&, char**)' defined but not used [-Wunused-function]
  156 | get_branch_target(char** output, Program* program, const std::vector<bool>& referenced_blocks,
      | ^~~~~~~~~~~~~~~~~
../../src/amd/compiler/aco_print_asm.cpp:105:1: warning: 'const char* aco::{anonymous}::to_clrx_device_name(amd_gfx_level, radeon_family)' defined but not used [-Wunused-function]
  105 | to_clrx_device_name(amd_gfx_level gfx_level, radeon_family family)
      | ^~~~~~~~~~~~~~~~~~~

Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37289>
2025-09-13 08:23:07 +00:00
Yonggang Luo
1758bc32cc meson: For windows, the with_ld_version_script won't take effect
On windows, both msvc/gcc are using vs_module_defs to export symbols. So avoid use with_ld_version_script on win32

Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
Reviewed-by: Eric Engestrom <eric@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37289>
2025-09-13 08:23:07 +00:00
Yonggang Luo
3c8ea260d0 meson: Remove redundant '/wd4996' option for MSVC
It's not needed as we already have -D_CRT_SECURE_NO_WARNINGS
And use _CRT_NONSTDC_NO_DEPRECATE to disable other warnings

Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
Reviewed-by: Eric Engestrom <eric@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37289>
2025-09-13 08:23:07 +00:00
Yonggang Luo
64655a77a6 meson: Remove unused predefined macros for windows msvc/gcc
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
Reviewed-by: Eric Engestrom <eric@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37289>
2025-09-13 08:23:06 +00:00
Yonggang Luo
21b8e7604b meson: mingw do not need _USE_MATH_DEFINES, only MSVC need it
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
Reviewed-by: Eric Engestrom <eric@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37289>
2025-09-13 08:23:06 +00:00
Christian Gmeiner
5977c0026d nak: Move dataflow to compiler crate
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com>
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37348>
2025-09-13 07:30:50 +00:00
Robert Mader
5cc0d1b681 kms-dri-sw: Implement create_mapped()
Following the example of dri_sw_winsys, in order to support
importing client-allocated (u)dmabufs into GL renderers as well
as KMS.
This crucially allows Wayland compositors running on vkms + llvmpipe
to behave much more like on HW GPUs/display engines, making CI testing
more robust and intuitive.

Signed-off-by: Robert Mader <robert.mader@collabora.com>
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37305>
2025-09-13 06:47:58 +00:00