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
Yonggang Luo
3f3bc4ece5
util/format: u_format_gen.h are using UTIL_ARCH_LITTLE_ENDIAN, include util/u_endian.h for 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:18:59 +08:00
Yonggang Luo
7ec55357a7
meson: Use build_always_stale instead of build_always
...
which was deprecated in 0.47. This doesn't change behavior, just shuts
up warnings.
meson.build:105: WARNING: Project targets '>= 1.4.0' but uses feature deprecated since '0.47.0': build_always arg in custom_target. combine build_by_default and build_always_stale instead.
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com >
Reviewed-by: Pohsiang (John) Hsu <pohhsu@microsoft.com >
Reviewed-by: Eric Engestrom <eric@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36891 >
2025-08-21 02:53:22 +08:00
Yonggang Luo
ca1d7ed3b3
d3d12: Fixes warning: format '%d' expects argument of type 'int', but argument 3 has type 'LONG'
...
../../src/gallium/drivers/d3d12/d3d12_video_proc.cpp:278:68: warning: format '%d' expects argument of type 'int', but argument 3 has type 'LONG' {aka 'long int'} [-Wformat=]
278 | debug_printf("ProcessFrame InArgs Orientation %d \n\tSrc top: %d left: %d right: %d bottom: %d\n\tDst top: %d left: %d right: %d bottom: %d\n", InputArguments.Transform.Orientation,
| ~^
| |
| int
| %ld
279 | InputArguments.Transform.SourceRectangle.top, InputArguments.Transform.SourceRectangle.left, InputArguments.Transform.SourceRectangle.right, InputArguments.Transform.SourceRectangle.bottom,
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| |
| LONG {aka long int}
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36864 >
2025-08-20 17:41:03 +00:00
Yonggang Luo
cf3fe3011f
d3d12: Fixes warnings: format '%x' expects argument of type 'unsigned int', but argument 2 has type 'HRESULT'
...
../../src/gallium/drivers/d3d12/d3d12_video_dec.cpp:839:114: warning: format '%x' expects argument of type 'unsigned int', but argument 2 has type 'HRESULT' {aka 'long int'} [-Wformat=]
839 | "[d3d12_video_decoder] d3d12_video_decoder_create_command_objects - Call to CreateFence failed with HR %x\n",
| ~^
| |
| unsigned int
| %lx
840 | hr);
| ~~
| |
| HRESULT {aka long int}
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36864 >
2025-08-20 17:41:03 +00:00
Yonggang Luo
608020c8c4
d3d12: Fixes warning: comparison of integer expressions of different signedness
...
../../src/gallium/winsys/d3d12/wgl/d3d12_wgl_framebuffer.cpp:86:22: warning: comparison of integer expressions of different signedness: 'int' and 'const uint32_t' {aka 'const unsigned int'} [-Wsign-compare]
86 | for (int i = 0; i < num_buffers; ++i) {
| ~~^~~~~~~~~~~~~
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36864 >
2025-08-20 17:41:02 +00:00
Yonggang Luo
b97ed64a91
d3d12: Fixes warning: enumeration value 'PIPE_FORMAT_NONE' not handled in switch
...
../../src/gallium/winsys/d3d12/wgl/d3d12_wgl_framebuffer.cpp:124:11: warning: enumeration value 'PIPE_FORMAT_NONE' not handled in switch [-Wswitch]
124 | switch (templ->format) {
| ^
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36864 >
2025-08-20 17:41:02 +00:00
Yonggang Luo
c9e9c6cfb6
microsoft/clc: Fixes gcc 14 compile warning about narrowing conversion
...
../../src/microsoft/clc/clc_compiler_test.cpp:1338:12: warning: narrowing conversion of 'log10(((double)0.0f))' from 'double' to 'float' [-Wnarrowing]
1338 | log10(0.0f), log10(1.0f), log10(2.0f), log10(3.0f)
| ~~~~~^~~~~~
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36864 >
2025-08-20 17:41:02 +00:00
Yonggang Luo
05f0f54e83
microsoft/clc: Fixes gcc 14 compile warning about sign-compare
...
Replace
for (int i = 0;
=>
for (size_t i = 0;
warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<unsigned int, std::allocator<unsigned int> >::size_type' {aka 'long long unsigned int'} [-Wsign-compare]
929 | for (int i = 0; i < output.size(); ++i)
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36864 >
2025-08-20 17:41:02 +00:00
Faith Ekstrand
70e7d72e7e
compiler/rust/cfg: Use slices instead of &Vec
...
Reviewed-by: Karol Herbst <kherbst@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36849 >
2025-08-20 17:06:50 +00:00
Faith Ekstrand
fcd6616624
compiler/rust/bitset: Don't use a vector for expected sets in tests
...
Reviewed-by: Karol Herbst <kherbst@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36849 >
2025-08-20 17:06:50 +00:00
Faith Ekstrand
0cdd37b5ff
compiler/rust: Stop using try_into() for u8 -> usize
...
Reviewed-by: Karol Herbst <kherbst@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36849 >
2025-08-20 17:06:50 +00:00
Faith Ekstrand
511f747fb8
compiler/rust: Add a bunch of clippy lints
...
Reviewed-by: Karol Herbst <kherbst@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36849 >
2025-08-20 17:06:50 +00:00
Faith Ekstrand
d3fc91d6c2
compiler/rust: Don't use assert_eq!() with booleans
...
Reviewed-by: Karol Herbst <kherbst@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36849 >
2025-08-20 17:06:50 +00:00
Faith Ekstrand
e5f4d36192
compiler/rust/nir: Drop a bunch of explicit lifetimes
...
Reviewed-by: Karol Herbst <kherbst@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36849 >
2025-08-20 17:06:50 +00:00
Faith Ekstrand
8324a14875
compiler/rust: Add Rust 2024 lints
...
Reviewed-by: Karol Herbst <kherbst@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36849 >
2025-08-20 17:06:50 +00:00
Faith Ekstrand
3d4b29a0f6
meson: Add --wrap-unsafe-ops to bindgen
...
Reviewed-by: Karol Herbst <kherbst@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36849 >
2025-08-20 17:06:50 +00:00
Faith Ekstrand
3b102368ac
compiler/rust: Stop using NonNull in the NIR bindings
...
Rust's core pointer type has an as_ref() which returns Option<&T>
already so there's no point in using NonNull.
Reviewed-by: Karol Herbst <kherbst@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36849 >
2025-08-20 17:06:50 +00:00
Faith Ekstrand
d9ceefdcb6
compiler/rust: Use .as_ref().unwrap() instead of &*
...
Reviewed-by: Karol Herbst <kherbst@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36849 >
2025-08-20 17:06:50 +00:00