Commit Graph

211959 Commits

Author SHA1 Message Date
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
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"
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
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
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
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
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
Robert Mader 306feaf3a4 sw_winsys: Add winsys_handle to displaytarget_create_mapped
The main intention is to allow to pass dmabuf handles, however as its
type differs depending on platform, just pass the whole whandle.

Also make use of it in llvmpipe_resource_from_handle(), in preparation
for the next commit.

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
Daniel Stone 5a7cc8843c ci/panfrost: Add wider EGL/multithread flakes
It seems like everything involving the multithreaded ES2 tests is prone
to flaking out with a segfault. Just wildcard the lot until we can
bottom out what's actually going on.

Signed-off-by: Daniel Stone <daniels@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37305>
2025-09-13 06:47:58 +00:00
Timur Kristóf c183eb5bc8 radv: Flush L2 before CP DMA copy/fill when CP DMA doesn't use L2
In case the source or destination were previously written
through L2, we need to writeback L2 to avoid the CP DMA accessing
stale data.

However, as the CP DMA doesn't write L2 either, an invalidation
is also needed to make sure other clients don't access stale data
when they read it through L2 after the CP DMA is complete.

Doing an invalidation before the CP DMA operation should take
care of both.

Additionally, radv_src_access_flush also invalidates L2 before
the copied data can be read.

Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36820>
2025-09-13 05:18:28 +00:00
Timur Kristóf 8ef2f492e2 radv: Add comment to document CP DMA prefetch
Explain which caches (MALL, L2) the prefetch works with.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36820>
2025-09-13 05:18:28 +00:00
Guilherme Gallo 66932a95b9 ci: Bump image tags to force recreation of s3 artifacts
This will enforce that the artifacts will be available at `gallo/mesa`
namespace, to get more info please check
https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36836

Signed-off-by: Guilherme Gallo <guilherme.gallo@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37273>
2025-09-12 23:10:19 -03:00
Collabora's Gfx CI Team db3501ec4f Uprev Piglit to 517270ccca11a795d2f29bd723c362eb6ef9ce8f
https://gitlab.freedesktop.org/mesa/piglit/-/compare/28d1349844eacda869f0f82f551bcd4ac0c4edfe...517270ccca11a795d2f29bd723c362eb6ef9ce8f

Signed-off-by: Guilherme Gallo <guilherme.gallo@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37273>
2025-09-12 23:09:46 -03:00
Collabora's Gfx CI Team b2e0f57be2 Uprev ANGLE to 1df3b59f8730b56b4770595d4d69f36d5283333f
https://github.com/google/angle/compare/995c4c4d89ed6a5c28b210e9c0f83eb4f8b6e2f5...1df3b59f8730b56b4770595d4d69f36d5283333f

Signed-off-by: Guilherme Gallo <guilherme.gallo@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37273>
2025-09-12 23:09:21 -03:00
Caterina Shablia 9ef1cbc16b pan/kmod,panvk: rewrite how alignment for an allocation is chosen
The current code assumes 2M and 4k pages. If an allocation request
is larger than 2M, allocation will be aligned to 2M, otherwise to
4k.

The new code is informed by pgsize_bitmap. The allocation is
aligned to a particular page boundary, if the request is at least
as large as that page boundary. Note that given

	pgsize_bitmap = PGSIZE_4K | PGSIZE_2M

2M requests will now be aligned to a 2M boundary, rather than 4k,
which is the case with the current code.

Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37288>
2025-09-13 01:00:26 +00:00
Caterina Shablia 2c5f88a074 panvk: introduce panvk_get_gpu_page_size
This function returns the page size of the VM that we're using. The
GPU page size might be different from what the host process uses.

Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37288>
2025-09-13 01:00:26 +00:00
Caterina Shablia 19daf0c4b1 pan/kmod: introduce pan_kmod_vm::pgsize_bitmap
pgsize_bitmap specifies the page sizes supported by the VM.

Aligning the mappings to huge-r pages can increase access perf.

Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37288>
2025-09-13 01:00:26 +00:00
Caterina Shablia 1a0e7d18a2 pan/kmod,panvk: use uint64_t and not size_t for device sizes
When the host process is 32-bit, size_t can not express all of the
device address space. Note that there's still a lot of code that
uses size_t for device sizes remaining. Cleaning that up is left
for future MRs.

Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37288>
2025-09-13 01:00:26 +00:00
Caterina Shablia e9f23edf17 panvk: adjust formatting in csf/panvk_queue.h
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37288>
2025-09-13 01:00:26 +00:00