Nanley Chery
c62996796c
dri: Restrict glthread for CS:GO to radeonsi
...
Fixes a ~12% performance regression in iris.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8448 >
2021-01-13 00:29:40 +00:00
Pierre-Eric Pelloux-Prayer
6f2017205e
dri: enable glthread + radeonsi workaround for CS:GO
...
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4021
Reviewed-by: Zoltán Böszörményi <zboszor@gmail.com >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8383 >
2021-01-11 10:28:06 +00:00
X512
0b910cc019
util/u_thread: Disable pthread_barrier_t on Haiku
...
* Causes a lockup on SMP systems
Reviewed-by: Alexander von Gluck IV <kallisti5@unixzen.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8323 >
2021-01-09 20:51:39 -06:00
X512
97520d8d48
util/meson: Add libnetwork dependency for Haiku
...
Reviewed-by: Dylan Baker <dylan@pnwbakers.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8323 >
2021-01-09 20:51:08 -06:00
X512
71f4a74368
util: implement GET_PROGRAM_NAME for Haiku
...
Reviewed-by: Alexander von Gluck IV <kallisti5@unixzen.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8323 >
2021-01-09 20:51:03 -06:00
James Park
3fb4755d48
util: Disable memstream for Apple builds
...
Not all SDK versions support open_memstream. Maybe some other day.
Fixes: af8d488ea5 ("util,ac,aco,radv: Cross-platform memstream API")
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8269 >
2021-01-08 09:37:14 +00:00
Marek Olšák
a0467b7fa1
util: replace UTIL_MAX_CPUS by util_cpu_caps.num_cpu_mask_bits
...
to reduce overhead when setting thread affinity.
Reviewed-by: Eric Anholt <eric@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8017 >
2021-01-05 03:47:16 +00:00
Marek Olšák
e4fa7c440d
util: add AMD CPU family enums and enable L3 cache pinning on Zen3
...
Based on: https://en.wikichip.org/wiki/amd/cpuid
The only reason it's nominated as a fix is because Zen3 might underperform
because the CPU detection ignored it.
Fixes: 15fa2c5e35 - gallium/u_cpu_detect: get the number of cores per L3 cache for AMD Zen
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8225 >
2021-01-05 02:43:55 +00:00
Adam Jackson
dd05cbf5e0
mesa: Implement GL_EXT_texture_sRGB_RG8 for softpipe and llvmpipe
...
sRGB_RG8 is not registered for big-GL yet, see this Khronos issue
for updates on that:
https://github.com/KhronosGroup/OpenGL-Registry/issues/450
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8060 >
2021-01-04 21:19:35 +00:00
Dave Airlie
77b70fa35d
util: add printf specifier shared helper code.
...
clover needs to walk valid specifiers in C++, vtn needs
to find string specifiers in C, let's do both.
This writes the format walker in C++, and wraps it with C.
Acked-by: Jason Ekstrand <jason@jlekstrand.net >
Reviewed-by: Francisco Jerez <currojerez@riseup.net >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8254 >
2020-12-29 09:07:23 +10:00
Michael Tang
ecbb179c57
util: Implement os_read_file for Windows
...
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8043 >
2020-12-22 13:28:21 -08:00
Marcin Ślusarz
5f2166525f
util/list: use helper function in list_is_singular
...
Signed-off-by: Marcin Ślusarz <marcin.slusarz@intel.com >
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8110 >
2020-12-18 01:46:00 +00:00
Marcin Ślusarz
55a072cb16
util/list: add list_is_linked
...
v2: verify node is valid in list_is_linked (Timothy)
Signed-off-by: Marcin Ślusarz <marcin.slusarz@intel.com >
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8110 >
2020-12-18 01:46:00 +00:00
Pierre-Eric Pelloux-Prayer
1a4c4cd110
driconf: add workaround for Enter The Gungeon
...
Quoting a comment on the bug report:
I suspect the shader is incorrect.
When a (conditional) discard is executed then control flow
becomes non-uniform, meaning that subsequent implicit
derivatives required for the texture operation are not
computed correctly.
Using glsl_correct_derivatives_after_discard fixes it. Note
that for radeonsi this requires LLVM master to work properly.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/1386
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8005 >
2020-12-16 10:52:54 +01:00
Eric Anholt
26198e875a
driconf: Fix memory leak in the unit test.
...
Needed for meson test with asan enabled.
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7936 >
2020-12-15 19:39:29 +00:00
Eric Anholt
867e7f7cf4
util/vma: Fix leak of the heap in the unit test.
...
Needed for unit testing with asan enabled.
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com >
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7936 >
2020-12-15 19:39:29 +00:00
Eric Anholt
e640a9ca79
util: Fix memory leak in a hash table unit test.
...
Needed for unit testing with asan enabled.
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com >
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7936 >
2020-12-15 19:39:29 +00:00
James Park
2ffae5a439
xmlconfig: Disable WITH_XMLCONFIG on Windows
...
This change was stomped by recent refactor.
Fixes: 1618bd1bee ("xmlconfig: Add unit tests for recent bugs in the driconf rewrite.")
Reviewed-by: Eric Anholt <eric@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7975 >
2020-12-14 17:28:04 +00:00
Rob Clark
790144e65a
util+treewide: container_of() cleanup
...
Replace mesa's slightly different container_of() with one more aligned
to the linux kernel's version which takes a type as the 2nd param. This
avoids warnings like:
freedreno_context.c:396:44: warning: variable 'batch' is uninitialized when used within its own initialization [-Wuninitialized]
At the same time, we can add additional build-time type-checking asserts
Signed-off-by: Rob Clark <robdclark@chromium.org >
Acked-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7941 >
2020-12-10 16:48:36 +00:00
Rob Clark
6fe84c5dda
util: Allow STATIC_ASSERT() everywhere
...
Remove -Werror=vla from c_msvc_compat_args so we can use STATIC_ASSERT()
in core code. We have a CI job for this.
(And arguably we could probably just drop c_msvc_compat_args entirely.)
Signed-off-by: Rob Clark <robdclark@chromium.org >
Acked-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7941 >
2020-12-10 16:48:36 +00:00
Rob Clark
5a082911cd
util: Promote __builtin_types_compatible_p compat
...
Signed-off-by: Rob Clark <robdclark@chromium.org >
Acked-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7941 >
2020-12-10 16:48:36 +00:00
Juan A. Suarez Romero
b243ccb060
util: function to check for rgbX format
...
Function that checks if the format has its alpha component forced to 1.
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com >
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7816 >
2020-12-09 12:25:31 +00:00
Ian Romanick
445b4d13bd
util: Add cnd_monotonic to Makefile.sources
...
Fixes: 33a7894828 ("util,radv: Cross-platform monotonic condition variable")
Acked-by: Tapani Pälli <tapani.palli@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7980 >
2020-12-08 11:23:44 -08:00
Pierre-Eric Pelloux-Prayer
34b08a298d
driconf: add allow_incorrect_primitive_id option
...
And enable it for SPECviewperf.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7078 >
2020-12-08 10:17:32 +01:00
Pierre-Eric Pelloux-Prayer
ba67843dbd
util/hash_table: add _mesa_hash_data_with_seed function
...
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7078 >
2020-12-08 10:10:47 +01:00
Marijn Suijten
77dafaece3
android: util: Add libcutils to Android.mk shared libs
...
Otherwise:
external/mesa3d/src/util/os_misc.c:59:12: fatal error: 'cutils/properties.h' file not found
# include <cutils/properties.h>
^~~~~~~~~~~~~~~~~~~~~
And:
ld.lld: error: undefined symbol: property_get
>>> referenced by os_misc.c:193 (external/mesa3d/src/util/os_misc.c:193)
>>> os_misc.o:(os_get_option) in archive out/target/product/discovery/obj/STATIC_LIBRARIES/libmesa_util_intermediates/libmesa_util.a
Fixes: eeecc21d93 ("util: Add property_get() fallback for android")
Acked-by: Rob Clark <robclark@freedesktop.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7861 >
2020-12-07 23:27:03 +01:00
Eric Anholt
b4ae9e07cd
xmlconfig: Warn if parsing the engine/app versions fails.
...
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7048 >
2020-12-04 21:32:17 +00:00
Eric Anholt
1618bd1bee
xmlconfig: Add unit tests for recent bugs in the driconf rewrite.
...
This covers:
7fb4ab9ec1 ("driconf: Restore the ability to override driconf with the environment.")
2b977adff8 ("xmlconfig: fix scandir_filter")
and touches a bit more of drirc logic while I'm here.
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7048 >
2020-12-04 21:32:17 +00:00
Marijn Suijten
f173bf1be9
util: Do not insert uninitialized data if Android property is not set
...
This prevents funky segfaults in seemingly unrelated codepaths like:
pid: 20058, tid: 20086, name: Binder:20058_2 >>> /system/bin/surfaceflinger <<<
uid: 1000
signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x184
Cause: null pointer dereference
[...]
#00 pc 000000000020b078 /vendor/lib64/dri/gallium_dri.so (ir3_shader_variant+56)
#01 pc 00000000001dc168 /vendor/lib64/dri/gallium_dri.so (fd5_draw_vbo+920)
#02 pc 00000000001a30f8 /vendor/lib64/dri/gallium_dri.so (fd_draw_vbo+1264)
#03 pc 000000000077e714 /vendor/lib64/dri/gallium_dri.so (util_primconvert_draw_vbo+596)
#04 pc 00000000001a2d60 /vendor/lib64/dri/gallium_dri.so (fd_draw_vbo+344)
#05 pc 00000000007671e4 /vendor/lib64/dri/gallium_dri.so (dd_context_draw_vbo+300)
#06 pc 00000000007b6c9c /vendor/lib64/dri/gallium_dri.so (u_vbuf_draw_vbo+2268)
#07 pc 000000000074d230 /vendor/lib64/dri/gallium_dri.so (cso_draw_arrays+96)
#08 pc 00000000007a4258 /vendor/lib64/dri/gallium_dri.so (util_draw_user_vertex_buffer+96)
#09 pc 00000000007b0968 /vendor/lib64/dri/gallium_dri.so (util_run_tests+480)
#10 pc 000000000019e24c /vendor/lib64/dri/gallium_dri.so (pipe_msm_create_screen+68)
#11 pc 00000000006ada8c /vendor/lib64/dri/gallium_dri.so (pipe_loader_create_screen+60)
#12 pc 000000000020e958 /vendor/lib64/dri/gallium_dri.so (dri2_init_screen+120)
#13 pc 00000000006ad088 /vendor/lib64/dri/gallium_dri.so (driCreateNewScreen2+544)
Fixes: eeecc21d93 ("util: Add property_get() fallback for android")
Reviewed-by: Rob Clark <robclark@freedesktop.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7928 >
2020-12-04 19:14:45 +00:00
Vinson Lee
da16425690
util: Add os_get_page_size support for macOS.
...
Fix build error on macOS.
src/util/os_misc.c:352:2: error: unexpected platform in os_sysinfo.c
error unexpected platform in os_sysinfo.c
^
Fixes: ("cdf3a6a83b50 util: Add os_get_page_size query")
Signed-off-by: Vinson Lee <vlee@freedesktop.org >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7911 >
2020-12-03 19:47:58 -08:00
Rob Clark
a1440ec3da
util: Add helper to get FILE* options
...
Add a helper to get debug options that specify a file path, with
additional checking for suid to prevent unintended file access via
mesa's debug features.
Unlike other DEBUG_GET_ONCE_*, this returns a new file ptr each time
it is called (although it only does the lookup of the path once).
Signed-off-by: Rob Clark <robdclark@chromium.org >
Acked-by: Antonio Caggiano <antonio.caggiano@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7818 >
2020-12-03 21:19:57 +00:00
Jan Beich
18f6bd676d
util: unbreak on BSDs after MSVC changes
...
src/util/os_misc.c:352:2: error: unexpected platform in os_sysinfo.c
#error unexpected platform in os_sysinfo.c
^
Fixes: cdf3a6a83b ("util: Add os_get_page_size query")
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7887 >
2020-12-03 00:50:20 +00:00
James Park
7a57acad87
util: Disable [[fallthrough]] for C17
...
[[fallthrough]] is not a C17 feature, and MSVC does not support it.
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Reviewed-by: Tony Wasserka <tony.wasserka@gmx.de >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7862 >
2020-12-02 19:35:59 +00:00
Jesse Natalie
a5de2bc229
driconf: Avoid empty macro resulting in empty initializer braces
...
MSVC is unhappy with empty initializer braces while compiling C
Reviewed-by: Francisco Jerez <currojerez@riseup.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7680 >
2020-12-02 10:12:27 -08:00
Jesse Natalie
cdf3a6a83b
util: Add os_get_page_size query
...
No Apple/BSD implementation yet, I have no idea how to do that
Reviewed-by: Francisco Jerez <currojerez@riseup.net >
Reviewed-by: Karol Herbst <kherbst@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7680 >
2020-12-02 10:12:27 -08:00
Yevhenii Kharchenko
361d143f94
meson: Add build option to specify default shader disk cache max-size
...
Added an optional 'shader-cache-max-size' build option to meson,
which sets default value of max disk cache size for compiled
GLSL programs. Can be overriden by 'MESA_GLSL_CACHE_MAX_SIZE'
environment variable.
Syntax is the same as environment variable has: a number optionally
followed by K, M, G to specify a size in kilobytes, megabytes, or
gigabytes. By default, gigabytes will be assumed.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3572
Signed-off-by: Yevhenii Kharchenko <yevhenii.kharchenko@globallogic.com >
Reviewed-by: Eric Anholt <eric@anholt.net >
Reviewed-by: John Bates <jbates@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7217 >
2020-12-02 11:44:34 +00:00
Erik Faye-Lund
0471f83b07
util/slab: do not dereference NULL-pointer
...
This used to not be a problem, because these mutexes were the first
members of this array, meaning that we ended up trying to lock/unlock
NULL mutexes. But this isn't guaranteed to be allowed, so we were
relying on luck here.
Recently, this changed. We introduced asserts for NULL-pointers, and
changed the behavior in a way that leads to crashes in release-builds.
This means we can't rely on luck any longer.
Fixes: e317103753 ("c11/threads: Remove Win32 null checks")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3903
Reviewed-by: Eric Anholt <eric@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7853 >
2020-12-01 18:03:31 +00:00
Michel Zou
89b01cc025
util: fix mingw format-extra-args warning
...
Reviewed-by: Jose Fonseca <jfonseca@vmware.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7713 >
2020-12-01 16:51:01 +00:00
Marek Olšák
9c84ca574d
util: add a common ALIGN16 macro for m_matrix and u_threaded_context
...
to prevent conflicts in the next commit
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6946 >
2020-12-01 11:52:10 +00:00
Pierre-Eric Pelloux-Prayer
9b3e6014a9
xxhash: update fallthrough comments
...
clang doesn't support /* fallthrough */ so switch to fallthrough
attribute.
Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7747 >
2020-12-01 10:04:41 +01:00
Pierre-Eric Pelloux-Prayer
5e7c00aacb
util: add a FALLTROUGH macro
...
Not all compilers support __atttribute__((fallthrough)) so use a macro.
v2: use C++17 / C18 standard attribute (Tony Wasserka)
Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com > (v1)
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7747 >
2020-12-01 10:04:40 +01:00
James Park
116b6d135d
util: Add os_localtime
...
MSVC does not have localtime_r, so add abstraction.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7829 >
2020-12-01 07:11:44 +00:00
Rob Clark
eeecc21d93
util: Add property_get() fallback for android
...
Environment variables aren't the easiest thing to use on android. So
add a fallback to android's property mechanism for os_get_option().
This is slightly complicated by the fact that the assumption that the
return value of os_get_option() need not be freed.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Reviewed-by: Eric Anholt <eric@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7763 >
2020-11-30 22:21:13 +00:00
James Park
33a7894828
util,radv: Cross-platform monotonic condition variable
...
cnd_t operates on REALTIME clock, and isn't suitable for MONOTONIC use.
Clone the API, and implement using a monotonic clock.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7138 >
2020-11-26 07:58:56 +00:00
James Park
4a94527ca1
util/os_time: Safe os_time_get_nano for Windows
...
Avoid small possibility of reading torn write on 32-bit platforms.
If frequency caching is desired, it's probably better to initialize from
C++ and extern "C" instead. It's not a tremendous optimization though.
Reviewed-by: Jose Fonseca <jfonseca@vmware.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7138 >
2020-11-26 07:58:56 +00:00
Erik Faye-Lund
ecebc263f5
Revert "util: Add helpers for various one-time-init patters"
...
This reverts commit bda4d6e0d0 .
Acked-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7760 >
2020-11-25 09:44:11 +00:00
Erik Faye-Lund
410b651859
Revert "util: Fix helgrind complaint about one-time init"
...
This reverts commit f8c7a43f33 .
Acked-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7760 >
2020-11-25 09:44:11 +00:00
Rob Clark
f8c7a43f33
util: Fix helgrind complaint about one-time init
...
Signed-off-by: Rob Clark <robdclark@chromium.org >
Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7644 >
2020-11-24 21:03:34 +00:00
Rob Clark
bda4d6e0d0
util: Add helpers for various one-time-init patters
...
A fairly common pattern for debug envvars is something like:
static int should_print = -1;
if (should_print < 0)
should_print = env_var_as_unsigned("NIR_PRINT", 0);
Unfortunately helgrind doesn't realize that we expect to always get the
same return value, so we don't actually care about the race condition
here.
Add a helper get_once() and do_once macros, with extra locking to make
helgrind/drd happy. Note that other than the nir usages (which are
limited to debug builds), other usages are not in hot-paths.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7644 >
2020-11-24 21:03:34 +00:00
Rob Clark
53f7d539cd
util: Add helgrind support for simple_mtx
...
Annoyingly mtypes.h pulls in simple_mtx, which means we end up needing
to sprinkle a lot of idep_mesautil around.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3773
Signed-off-by: Rob Clark <robdclark@chromium.org >
Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7644 >
2020-11-24 21:03:34 +00:00