Dylan Baker
46644ba371
meson: use glslang --depfile argument when possible
...
This reduces the amount of manual dependency tracking developers need to
do. This is turned on if glslang >= 11.3.0 is used, or 11.9.0 on
Windows, but otherwise the status quo is maintained. This means I have
not removed any use of `depend_files`. We could make make these hard
requirements and remove the use of `depend_files` too.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28329 >
2024-05-20 17:34:17 +00:00
Roman Stratiienko
7ae4a2ae34
u_gralloc/fallback: Extract modifier from QCOM native_handle
...
After Turnip moved to u_gralloc, some users started complaining
about issues. It turns out that modern platforms do not have
grallocs{0,1} but have gralloc4 only. There's no
known way to build mesa3d with gralloc4 support using NDK.
So we add this workaround to fallback gralloc to mimic the original
behavior of the Turnip driver before switching to u_gralloc.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/11171
Fixes: 1373b0966c ("turnip: ANB/AHB support")
Signed-off-by: Roman Stratiienko <r.stratiienko@gmail.com >
Reviewed-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29260 >
2024-05-17 15:03:53 +00:00
Danylo Piliaiev
4510350d55
util/u_trace: Pass explicit frame_nr argument to delimit frames
...
Otherwise u_trace has to think that each submission is a frame,
and that's not great if we want to gather statistics on per real
frame basis.
Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29220 >
2024-05-16 18:12:30 +00:00
Danylo Piliaiev
57a3f0f949
util/u_trace: Allow mixing of ArgStruct and Arg
...
Would allow to define such arguments:
args=[ArgStruct(type='const struct tu_framebuffer *', var='fb'),
ArgStruct(type='const struct tu_tiling_config *', var='tiling'),
Arg(type='uint8_t', var='maxSamples', c_format='%u'),
Arg(type='uint8_t', var='clearCPP', c_format='%u'),
Arg(type='uint8_t', var='loadCPP', c_format='%u'),
Arg(type='uint8_t', var='storeCPP', c_format='%u'),],
Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com >
Reviewed-by: Karmjit Mahil <karmjit.mahil@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29222 >
2024-05-16 15:57:10 +00:00
Marek Olšák
5502ecd771
util: shift the mask in BITSET_TEST_RANGE_INSIDE_WORD to be relative to b
...
so that users don't have to shift it at every use. It was supposed to be
like this from the beginning.
Fixes: fb994f44d9 - util: make BITSET_TEST_RANGE_INSIDE_WORD take a value to compare with
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29187 >
2024-05-14 10:13:15 +00:00
Eric Engestrom
8c22112a7d
util/format: add missing null check in util_format_is_srgb()
...
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/11137
Fixes: ff6cf60cb8 ("gallium/util: add util_format_is_srgb() helper")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29160 >
2024-05-14 07:16:02 +00:00
Bas Nieuwenhuizen
79cb884275
radv: Use zerovram for Enshrouded.
...
Two users now reporting that zerovram fixes hangs.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10500
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29149 >
2024-05-12 09:13:01 +00:00
Sathishkumar S
afd15f481b
util/format: add planar3 y8_u8_v8_440 pipe format
...
add pipe format to represent yuv440 surface
Signed-off-by: Sathishkumar S <sathishkumar.sundararaju@amd.com >
Reviewed-by: Leo Liu <leo.liu@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28866 >
2024-05-09 20:43:02 +00:00
Saroj Kumar
7c0b0e660a
mesa: Add functions to print blake3
...
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Acked-by: David Heidelberg <david.heidelberg@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28156 >
2024-05-09 20:08:17 +00:00
Derek Foreman
e9596149cf
perfetto: Add some functions for timestamped events
...
This can be useful if we know when an event happened, but our code isn't
running at that time (such as reporting when an image was presented in
the wayland wsi).
We can't really mix these with events that we log at the current time,
because there could be overlap, so also add a function for creating
custom tracks.
Signed-off-by: Derek Foreman <derek.foreman@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28634 >
2024-05-02 19:37:26 +00:00
Derek Foreman
60eb27591f
perfetto: Add simple support for counters
...
Perfetto can report time varying numberic values (counters) in tracks.
Add some simple functions to use this.
Signed-off-by: Derek Foreman <derek.foreman@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28634 >
2024-05-02 19:37:26 +00:00
Derek Foreman
16b8dbedfa
perfetto: Add flows
...
Perfetto can assign flow ids to events, which can be used to connect
related events in tracks when they share the same id.
Signed-off-by: Derek Foreman <derek.foreman@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28634 >
2024-05-02 19:37:26 +00:00
Marek Olšák
e5f133ccc4
util: import pipe_box and its helpers
...
We'll use them. There are also new helpers that we'll use.
Reviewed-by: Yonggang Luo <luoyonggang@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28733 >
2024-04-22 01:42:52 +00:00
Marek Olšák
959891e33f
util: add new format helpers
...
we'll use them
Reviewed-by: Yonggang Luo <luoyonggang@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28733 >
2024-04-22 01:42:52 +00:00
Manuel Stoeckl
04f232ed99
util/disk_cache: try getenv(HOME) before getpwuid->pw_dir
...
getenv("HOME") is significantly faster than getpwuid_r(...)->pw_dir,
because the latter may require loading NSS libraries, reading
/etc/passwd, etc.
Furthermore, the Linux man pages for getpwuid_r recommend using
getenv("HOME") instead of getpwuid_r, because the user may wish to
change the value of HOME after logging in.
Signed-off-by: Manuel Stoeckl <code@mstoeckl.com >
Reviewed-by: Zoltán Böszörményi <zboszor@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13614 >
2024-04-20 13:43:50 +00:00
Eric Engestrom
f008f6a33b
util/futex: replace double-cast check with a simple sign check
...
We want to know whether the signed int can be represented by an unsigned int
of the same size (no down-cast); for that, all we need is for it to be `>= 0`,
so let's check that.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28804 >
2024-04-19 06:38:58 +00:00
Eric Engestrom
b3e6ef964f
util: simplify loop logic in util_format_get_first_non_void_channel()
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28800 >
2024-04-18 14:26:37 +00:00
Lionel Landwerlin
c94cd1235f
anv: implement VK_EXT_image_compression_control
...
Limited to vkd3d right now, there are specific use cases there.
We don't want any app to disable compression, it should be mostly
transparent and we better be aware of potential bugs.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: José Roberto de Souza <jose.souza@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28632 >
2024-04-16 05:56:12 +00:00
Lionel Landwerlin
0e5c44a609
drirc: rename hasvk only option
...
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: José Roberto de Souza <jose.souza@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28632 >
2024-04-16 05:56:12 +00:00
Gert Wollny
7dc19d941e
util/u_queue: read fence->signalled locked with TSAN
...
When TSAN is enabled we use standard mutexes instead of futexes. With
futexes the fence->signalled is read using an atomic operation, to best
mimic this let's protect the read with a locked mutex.
This avoids TSAN reporting a race condition (false positive with
futexes) with Zink when accessing the pipeline cache.
Signed-off-by: Gert Wollny <gert.wollny@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28650 >
2024-04-11 13:52:36 +00:00
Gert Wollny
aa347029da
futex: disable futexes when compiling with tsan
...
Thread sanitizer doesn't support futexes, so don't use them in this case
and fall back to standard mutexes. With that we can avoid tsan reporting
a large number of false positives.
v2: use #if instead of #ifdef to test the value of the define
Signed-off-by: Gert Wollny <gert.wollny@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28650 >
2024-04-11 13:52:36 +00:00
Paul Gofman
27dba224d3
driconf: add a workaround for Joe Danger
...
CC: mesa-stable
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28439 >
2024-04-09 01:29:24 +00:00
Paul Gofman
2abb72f512
driconf: add a workaround for Joe Danger 2
...
CC: mesa-stable
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28439 >
2024-04-09 01:29:23 +00:00
Samuel Pitoiset
81e3c46d06
util: add util_is_aligned()
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28568 >
2024-04-04 21:57:46 +00:00
Yonggang Luo
3114917986
util: Turn futex_wake parameter to int32_t for consistence across platforms
...
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28473 >
2024-04-03 00:55:24 +00:00
Yonggang Luo
ca9738cd7a
util: futex_wait use TIME_MONOTONIC on win32 for consistence with other platform
...
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28473 >
2024-04-03 00:55:24 +00:00
Yonggang Luo
54e3fde5ca
util: Fixes futex_wait on win32
...
The timeout compute is invalid
Fixes: 095dfc6caa ("util: Move the implementation of futex_wake and futex_wait from futex.h to futex.c")
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28473 >
2024-04-03 00:55:24 +00:00
Samuel Pitoiset
a535425fb6
radv: enable radv_zero_vram for Red Dead Redemption 2
...
This fixes some very rare glitches that are unrelated to DCC.
Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/8719
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28393 >
2024-04-02 21:31:46 +00:00
Danylo Piliaiev
df3ba95a24
util/vma: Add function to get max continuous free size
...
Useful to find out what's the biggest allocation we could make.
Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28276 >
2024-03-28 08:50:38 +00:00
Jan Beich
2b76284635
util: mimic KCMP_FILE via KERN_FILE on DragonFly and FreeBSD
...
Iterate over all file descriptors and compare their kernel addresses.
Reviewed-by: Emmanuel Vadot <manu@FreeBSD.org >
Reviewed-by: Val Packett <val@packett.cool >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6881 >
2024-03-26 20:53:36 +00:00
Paulo Zanoni
72e1e6e120
driconf/anv: set fp64_workaround_enabled to DIRT 5
...
Otherwise the game refuses to launch. With it, it's playable on my
DG2.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/9882
Reviewed-by: José Roberto de Souza <jose.souza@intel.com >
Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28213 >
2024-03-23 17:01:17 +00:00
Yonggang Luo
1ac1c0843f
treewide: Replace usage of macro DEBUG with MESA_DEBUG when possible
...
This is achieved by the following steps:
#ifndef DEBUG => #if !MESA_DEBUG
defined(DEBUG) => MESA_DEBUG
#ifdef DEBUG => #if MESA_DEBUG
This is done by replace in vscode
excludes
docs,*.rs,addrlib,src/imgui,*.sh,src/intel/vulkan/grl/gpu
These are safe because those files should keep DEBUG macro is already excluded;
and not directly replace DEBUG, as we have some symbols around it.
Use debug or NDEBUG instead of DEBUG in comments when proper
This for reduce the usage of DEBUG,
so it's easier migrating to MESA_DEBUG
These are found when migrating DEBUG to MESA_DEBUG,
these are all comment update, so it's safe
Replace comment /* DEBUG */ and /* !DEBUG */ with proper /* MESA_DEBUG */ or /* !MESA_DEBUG */ manually
DEBUG || !NDEBUG -> MESA_DEBUG || !NDEBUG
!DEBUG && NDEBUG -> !(MESA_DEBUG || !NDEBUG)
Replace the DEBUG present in comment with proper new MESA_DEBUG manually
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com >
Acked-by: David Heidelberg <david.heidelberg@collabora.com >
Reviewed-by: Eric Engestrom <eric@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28092 >
2024-03-22 18:22:34 +00:00
Thomas H.P. Andersen
5532f13566
driconf: override vendor id for X4 Foundations on NVK
...
The game will refuse to start if the driver version is tool old.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27784 >
2024-03-22 11:18:55 +00:00
David Heidelberg
d8f53f698c
util: move gen_zipped_file into generic util and rename to gen_zipped_xml_file
...
Make the filename more descriptive and since the file is used by
multiple drivers, move it into appropriate util/ directory.
Cosmetics:
- use SPDX license tag
- add newline before main function
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27804 >
2024-03-21 20:48:41 +00:00
Rhys Perry
f88922e816
radv: use dual_color_blend_by_location with Half-Life Alyx
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Tested-by: Ethan Lee <flibitijibibo@gmail.com >
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10462
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28269 >
2024-03-20 11:40:18 +00:00
Samuel Pitoiset
4d4b1820ca
radv: add radv_force_pstate_peak_gfx11_dgpu and enable it for Helldivers 2
...
This seems to definitely improve stability issues (random GPU hangs)
with Helldivers 2 on RDNA3 dGPUs. RDNA3 APUs and other generations
shouldn't be affected.
This is a workaround.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10584
Cc: mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28260 >
2024-03-19 09:06:43 +00:00
Yonggang Luo
d17779430f
util: Cleanup strtod.(h|c) by introduce _mesa_get_locale
...
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28174 >
2024-03-19 04:05:08 +00:00
Marek Olšák
4ed3418a43
Unbreak Viewperf by reverting "util: use crc32_z instead of crc32 and bump zlib dep to 1.2.9"
...
It breaks apps shipping their own copy of zlib, such as Viewperf.
If we use crc32_z, Viewperf is unable to start because it's an undefined
symbol.
This reverts commit 010272b62e .
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28233 >
2024-03-19 03:08:10 +00:00
Kenneth Graunke
8573e9bf47
ra: Add debug functions for printing spill costs and benefits
...
These have been incredibly useful when debugging regressions and weird
behavior in the Intel backend when trying to spill multiple registers
before retrying allocation. With them, we can print out not only what
register was chosen, but the benefit and cost. Seeing lists of chosen
registers where the benefit/cost was not sorted, and poor options were
chosen before better ones, led me to investigate a number of issues.
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28257 >
2024-03-19 00:40:52 +00:00
duncan.hopkins
fcd0b4c94a
util: Updated util/libdrm.h stubs with drmGetMagic()
...
Update adds in missing items that MacOS code needs to compile and run the DRI2 code.
New code is copied from the public repository: https://gitlab.freedesktop.org/mesa/drm/-/blob/main/xf86drm.h
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28130 >
2024-03-15 10:50:12 +00:00
Alyssa Rosenzweig
93879b1920
util/hash_table: add DERIVE macro
...
we typically use a hash table with a fixed struct key, but this requires tedious
boilerplate. add a macro that generates all the boilerplate for you so you can
just create a table and go.
naming inspired by Rust #![derive].
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28056 >
2024-03-12 19:41:49 +00:00
Alyssa Rosenzweig
ec9b6b5cfa
util: add _mesa_hash_table_u64_num_entries
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27925 >
2024-03-12 19:00:26 +00:00
Friedrich Vock
4c35828933
radv,driconf: Remove active accel struct workaround
...
Now unused and enabled by default.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28077 >
2024-03-11 17:08:09 +00:00
Mike Blumenkrantz
9a57b1df53
driconf: add radv_zero_vram for Crystal Project (1637730)
...
fixes #10666
cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28079 >
2024-03-11 14:14:52 +00:00
Samuel Pitoiset
433a3c262a
util/u_debug: fix parsing of "all" again
...
The current implementation is incorrect if the string starts with "all"
like "RADV_DEBUG=allbos".
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10741
Fixes: 0c42c79edf ("utils/u_debug: Fix parse of "all,<something else>")
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28051 >
2024-03-11 10:44:12 +00:00
Felix DeGrood
a2bd99f521
driconf: add SotTR DX12 to Intel XeSS workaround
...
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27610 >
2024-03-06 01:12:54 +00:00
Samuel Pitoiset
570ebe1b37
radv: enable radv_zero_vram for RAGE2
...
Another native Vulkan game which doesn't properly initialize memory.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10701
Cc: mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27845 >
2024-03-01 16:49:16 +00:00
Sebastian Wick
df801bec1e
util: Add timespec_sub_saturate to avoid negative time for deadlines
...
Signed-off-by: Sebastian Wick <sebastian.wick@redhat.com >
Reviewed-by: Daniel Stone <daniels@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27511 >
2024-02-27 13:10:13 +00:00
Daniel Stone
d3ed00f38a
util: Add util_format_get_component_shift
...
Similar to util_format_get_component_bits, get the bit offset for a
particular channel in a given format.
Use this to calculate the shift/mask sets for formats when creating DRI
configs, as a prelude to ripping out and replacing the hardcoded table.
Signed-off-by: Daniel Stone <daniels@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27709 >
2024-02-27 10:51:03 +00:00
Alyssa Rosenzweig
66b00e2966
util/ralloc: add memdup
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27762 >
2024-02-26 15:37:58 +00:00