Boris Brezillon
a909e1e6ff
pan/image: Provide two helpers to check image viability
...
pan_image_test_props() checks all the image properties at once, and
pan_image_test_modifier_with_format() just a <modifier,format> pair.
This will allow us to use the check done in pan_mod instead of
duplicating the same set of rules in panvk/panfrost and possibly having
one that's ahead of the other.
There are still checks we can't do at the pan_mod/image level, like
anything involving format lowering, but that's okay.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Lars-Ivar Hesselberg Simonsen <lars-ivar.simonsen@arm.com >
Reviewed-by: Eric R. Smith <eric.smith@collabora.com >
Acked-by: Daniel Stone <daniels@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35761 >
2025-08-21 07:27:05 +00:00
Boris Brezillon
d818700dba
pan/mod: Replace ::supports_format() by ::test_props()
...
pan_mod_handler::supports_format() is not used yet, and will be too
limited for panvk, so let's provide a callback that will check all
image properties at once instead of just the <modifier,format> pair.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Lars-Ivar Hesselberg Simonsen <lars-ivar.simonsen@arm.com >
Reviewed-by: Eric R. Smith <eric.smith@collabora.com >
Acked-by: Daniel Stone <daniels@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35761 >
2025-08-21 07:27:04 +00:00
Boris Brezillon
0812e945e1
pan/mod: Add a pan_mod_get_handler() implementation when PAN_ARCH is defined
...
This allows us to call pan_mod_get_handler() from static inline
functions defined in headers that are included from per-gen and
gen-agnostic source files.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Lars-Ivar Hesselberg Simonsen <lars-ivar.simonsen@arm.com >
Reviewed-by: Eric R. Smith <eric.smith@collabora.com >
Acked-by: Daniel Stone <daniels@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35761 >
2025-08-21 07:27:04 +00:00
Valentine Burley
7ea1da4af4
iris/ci: Add a new iris deqp job on Alder Lake
...
Signed-off-by: Valentine Burley <valentine.burley@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36880 >
2025-08-21 07:05:27 +00:00
Valentine Burley
e0220c6e71
anv/ci: Add a job replaying traces with ANGLE
...
The new anv-adl-traces-restricted job runs 10 ANGLE traces on Alder Lake,
using ANGLE's Vulkan backend.
Signed-off-by: Valentine Burley <valentine.burley@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36880 >
2025-08-21 07:05:27 +00:00
Valentine Burley
1fce16d33f
anv/ci: Run full anv-adl-angle job pre-merge
...
We have enough devices to run the full job without a fraction, which also
allows deleting the nightly job.
Signed-off-by: Valentine Burley <valentine.burley@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36880 >
2025-08-21 07:05:26 +00:00
Samuel Pitoiset
04de9356fa
zink/ci: update list of flakes for GFX1201
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36868 >
2025-08-21 06:47:42 +00:00
Samuel Pitoiset
2a1ca824f9
zink/ci: make zink-radv-gfx1201-valve a pre-merge job
...
Quite a big achievement.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36868 >
2025-08-21 06:47:42 +00:00
Marek Olšák
f34fa80f0d
glsl_to_nir: don't allocate 0-sized arrays for Uniform/ShaderStorageBlocks
...
Reviewed-by: Gert Wollny <gert.wollny@collabora.com >
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36728 >
2025-08-21 06:13:49 +00:00
Marek Olšák
2ab6b275bd
glsl_to_nir: don't allocate 0-sized num_params & subroutine_types
...
It still allocates the ralloc header, which is wasteful.
Reviewed-by: Gert Wollny <gert.wollny@collabora.com >
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36728 >
2025-08-21 06:13:49 +00:00
Marek Olšák
deac7cf1a2
glsl/ir_variable_refcount: don't ralloc the hash table
...
Reviewed-by: Gert Wollny <gert.wollny@collabora.com >
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36728 >
2025-08-21 06:13:49 +00:00
Marek Olšák
44d9d4d06b
glsl/ir_constant_expression: don't ralloc the hash table
...
Reviewed-by: Gert Wollny <gert.wollny@collabora.com >
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36728 >
2025-08-21 06:13:49 +00:00
Marek Olšák
a1b645caec
glsl/opt_function_inlining: don't ralloc the hash table
...
Reviewed-by: Gert Wollny <gert.wollny@collabora.com >
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36728 >
2025-08-21 06:13:49 +00:00
Marek Olšák
33a076789c
nir/gather_info: don't allocate the ralloc context
...
It's only used by the set, so we can just free the set directly.
Reviewed-by: Gert Wollny <gert.wollny@collabora.com >
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36728 >
2025-08-21 06:13:49 +00:00
Marek Olšák
390631e30a
nir/opt_dead_write_vars: don't use ralloc context, share dynarray among blocks
...
Instead of allocating the ralloc context, which is useless because it's
only used by the dynarray, we can free the dynarray directly.
Also share the same dynarray among all blocks instead of allocating
a new one for every block. This eliminates realloc invocations.
Reviewed-by: Gert Wollny <gert.wollny@collabora.com >
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36728 >
2025-08-21 06:13:49 +00:00
Marek Olšák
c601308615
nir: convert nir_instr_worklist to init/fini semantics w/out allocation
...
This removes the malloc overhead.
Reviewed-by: Gert Wollny <gert.wollny@collabora.com >
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36728 >
2025-08-21 06:13:49 +00:00
Marek Olšák
4efdf247ab
nir/opt_load_store_vectorize: don't allocate 0-sized offset_defs
...
It still allocates the ralloc header, which is wasteful.
Reviewed-by: Gert Wollny <gert.wollny@collabora.com >
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36728 >
2025-08-21 06:13:48 +00:00
Marek Olšák
604584383d
nir/serialize: don't allocate the hash tables
...
Reviewed-by: Gert Wollny <gert.wollny@collabora.com >
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36728 >
2025-08-21 06:13:48 +00:00
Marek Olšák
8d2acfdeee
nir/split_vars: don't allocate the hash tables
...
Reviewed-by: Gert Wollny <gert.wollny@collabora.com >
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36728 >
2025-08-21 06:13:48 +00:00
Marek Olšák
ba56b7940b
nir/opt_find_array_copies: don't allocate the hash tables
...
Reviewed-by: Gert Wollny <gert.wollny@collabora.com >
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36728 >
2025-08-21 06:13:48 +00:00
Marek Olšák
316dc7b163
nir/lower_vars_to_ssa: don't ralloc the hash table
...
Reviewed-by: Gert Wollny <gert.wollny@collabora.com >
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36728 >
2025-08-21 06:13:48 +00:00
Marek Olšák
639c0106bd
nir/opt_copy_prop_vars: don't allocate copies::ht hash table
...
Reviewed-by: Gert Wollny <gert.wollny@collabora.com >
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36728 >
2025-08-21 06:13:48 +00:00
Marek Olšák
f131efbe92
nir/opt_copy_prop_vars: don't allocate vars_written_map hash table
...
Reviewed-by: Gert Wollny <gert.wollny@collabora.com >
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36728 >
2025-08-21 06:13:48 +00:00
Marek Olšák
0ebe788203
nir/opt_copy_prop_vars: don't allocate vars_written::derefs hash table
...
Reviewed-by: Gert Wollny <gert.wollny@collabora.com >
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36728 >
2025-08-21 06:13:48 +00:00
Marek Olšák
d87bde4abf
nir/search: don't ralloc the hash table
...
Reviewed-by: Gert Wollny <gert.wollny@collabora.com >
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36728 >
2025-08-21 06:13:48 +00:00
Marek Olšák
9c118c9936
nir/gather_info: don't ralloc the set
...
Reviewed-by: Gert Wollny <gert.wollny@collabora.com >
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36728 >
2025-08-21 06:13:48 +00:00
Marek Olšák
0e0cc12de6
nir/opt_vectorize: don't ralloc the set
...
Reviewed-by: Gert Wollny <gert.wollny@collabora.com >
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36728 >
2025-08-21 06:13:48 +00:00
Marek Olšák
f7ca848ad5
nir/remove_dead_variables: don't ralloc the set
...
Reviewed-by: Gert Wollny <gert.wollny@collabora.com >
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36728 >
2025-08-21 06:13:48 +00:00
Marek Olšák
68b80e4d25
nir/instr_set: don't ralloc the set
...
Reviewed-by: Gert Wollny <gert.wollny@collabora.com >
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36728 >
2025-08-21 06:13:48 +00:00
Marek Olšák
c1ae58d479
nir/lower_vars_to_ssa: don't ralloc sets
...
reducing ralloc overhead
Reviewed-by: Gert Wollny <gert.wollny@collabora.com >
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36728 >
2025-08-21 06:13:48 +00:00
Marek Olšák
3aadae22ad
nir: make nir_block::predecessors & dom_frontier sets non-malloc'd
...
We can just place the set structures inside nir_block.
This reduces the number of ralloc calls by 6.7% when compiling Heaven
shaders with radeonsi+ACO using a release build (i.e. not including
nir_validate set allocations, which are also removed).
Reviewed-by: Gert Wollny <gert.wollny@collabora.com >
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36728 >
2025-08-21 06:13:48 +00:00
Marek Olšák
81cb571642
nir/dominance: eliminate ralloc overhead for allocating dom_children
...
This is only 1% of all ralloc calls of Unigine Heaven with the gallium noop
driver, but it's an easy one to get rid of.
Reviewed-by: Gert Wollny <gert.wollny@collabora.com >
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36728 >
2025-08-21 06:13:48 +00:00
Marek Olšák
aeed2cc19d
nir/dominance: don't allocate 0-sized dom_children
...
86% of all ralloc calls for dom_children in Unigine Heaven + Superposition
had size == 0. It was only allocating the ralloc header.
It was 6.1% of all ralloc calls with the gallium noop driver.
Reviewed-by: Gert Wollny <gert.wollny@collabora.com >
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36728 >
2025-08-21 06:13:48 +00:00
Marek Olšák
61c58fa0af
util/hash_table: add _mesa_hash_table_copy, a cloning helper without allocation
...
Reviewed-by: Gert Wollny <gert.wollny@collabora.com >
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36728 >
2025-08-21 06:13:48 +00:00
Marek Olšák
271a1d8dd9
util/hash_table: don't allocate hash_table_u64::table, declare it statically
...
We can use _mesa_hash_table_init instead of _mesa_hash_table_create.
It doesn't have to be allocated.
Reviewed-by: Gert Wollny <gert.wollny@collabora.com >
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36728 >
2025-08-21 06:13:48 +00:00
Marek Olšák
9724f7eeae
util/hash_table: set _mesa_hash_table_init return type to void
...
it always returns true because it no longer allocates anything
Reviewed-by: Gert Wollny <gert.wollny@collabora.com >
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36728 >
2025-08-21 06:13:48 +00:00
Marek Olšák
bcffade9af
util/hash_table: don't allocate the smallest table, declare it in the struct
...
When compiling Heaven shaders with radeonsi+ACO, this reduces the total
number of ralloc calls by 10.8% (same number as the sets, which also reduced
it by 10.8%). Apparently we like to create a lot of hash tables.
Reviewed-by: Gert Wollny <gert.wollny@collabora.com >
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36728 >
2025-08-21 06:13:48 +00:00
Marek Olšák
2028caad28
util/hash_table: improve support for usage without "hash_table" allocation
...
_mesa_hash_table_init & _mesa_hash_table_fini (and equivalents) is
the preferred way to set up hash tables.
This adds missing "init" and "fini" functions.
_mesa_string_hash_table_create is also changed to non-inline.
Reviewed-by: Gert Wollny <gert.wollny@collabora.com >
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36728 >
2025-08-21 06:13:48 +00:00
Marek Olšák
be5a15f11d
util/hash_table: start with 16 entries to reduce reallocations
...
Reviewed-by: Gert Wollny <gert.wollny@collabora.com >
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36728 >
2025-08-21 06:13:48 +00:00
Marek Olšák
06cef7bcc2
util/set: add _mesa_set_copy, a cloning helper without allocation
...
Reviewed-by: Gert Wollny <gert.wollny@collabora.com >
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36728 >
2025-08-21 06:13:48 +00:00
Marek Olšák
ed246aafd8
util/set: set _mesa_set_init return type to void
...
it always returns true because it no longer allocates anything
Reviewed-by: Gert Wollny <gert.wollny@collabora.com >
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36728 >
2025-08-21 06:13:48 +00:00
Marek Olšák
34cfc2600f
util/set: don't allocate the smallest table, declare it in the struct
...
When compiling Heaven shaders with radeonsi+ACO, this reduces the total
number of ralloc calls by 10.8%. _mesa_set_init was the biggest user
of ralloc (rzalloc_array) during shader compilation.
Reviewed-by: Gert Wollny <gert.wollny@collabora.com >
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36728 >
2025-08-21 06:13:48 +00:00
Marek Olšák
3ead244914
util/set: start with 16 entries to reduce reallocations when growing the set
...
The set originally started with just 2 entries.
Reviewed-by: Gert Wollny <gert.wollny@collabora.com >
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36728 >
2025-08-21 06:13:47 +00:00
Marek Olšák
c12118decf
radv,zink,st/mesa: use _mesa_set_fini instead of ralloc_free
...
This is the correct way to free the set.
Reviewed-by: Gert Wollny <gert.wollny@collabora.com >
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36728 >
2025-08-21 06:13:47 +00:00
Marek Olšák
9efee5f75f
util/set: improve support for usage without "set" structure allocation
...
The set can be used without allocating the "set" structure, so let's
add missing init and fini functions.
Reviewed-by: Gert Wollny <gert.wollny@collabora.com >
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36728 >
2025-08-21 06:13:47 +00:00
Job Noorman
b53682f41b
ir3: don't vectorize nir_op_sdot_4x8_iadd[_sat]
...
They don't support being repeated.
Fixes a compiler crash in Hogwarts Legacy.
Signed-off-by: Job Noorman <jnoorman@igalia.com >
Fixes: 58d18bc7a8 ("ir3: lower vectorized NIR instructions")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36886 >
2025-08-21 05:11:51 +00:00
Marek Olšák
ecbe35d878
egl,glx: allow OpenGL with old libx11, but disable glthread if it's unsafe
...
pass bool thread_safe to the dri frontend, and enable glthread accordingly
Reviewed-by: Eric Engestrom <eric@igalia.com >
Acked-by: Faith Ekstrand <faith.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36378 >
2025-08-21 02:05:26 +00:00
Iván Briano
20f546d6c1
anv: fix capture/replay of sparse images with descriptor buffer
...
We were not implementing vkGetImageOpaqueCaptureDescriptorDataEXT,
relying on the common implementation that does nothing. That works well
enough for regular images because the fixed address needed for
capture/replay is handled by the memory allocation path, but for sparse
images we initialize the sparse bindings at image creation time.
Here we implement the function to retrieve the addresses of all the
used bindings for the image, then use all of them at creation time.
Also, set the correct alloc_flags for this to work.
Fixes: 43b57ee8a5 ("anv: add capture/replay support for image with descriptor buffers")
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35872 >
2025-08-20 21:08:10 +00:00
Jesse Natalie
9a8daeb38b
winsys/d3d12: Use DComp swapchains to support transparency
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36861 >
2025-08-20 20:20:53 +00:00
Yonggang Luo
1f44a470b4
util: Always generate u_format_gen.h as docs 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/36891 >
2025-08-21 03:19:02 +08:00