Caio Oliveira
d27b135b3a
util: Fix bookkeeping of linear node sizes
...
When creating a new node, we were clobbering the original size
requested, and use that as offset, so the node would always be full.
Fixes: 591db9a9a5 ("util: Remove per-buffer header in linear alloc for release mode")
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25382 >
2023-09-26 02:53:27 +00:00
Caio Oliveira
1020cf8a82
util: Add a few basic tests for linear_alloc
...
Not comprehensive, but those were the ones used to work on the
previous linear_alloc changes. Also having a test already
set up lower the barrier to add more tests for future in case of
bugs.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25280 >
2023-09-25 17:26:17 +00:00
Caio Oliveira
591db9a9a5
util: Remove per-buffer header in linear alloc for release mode
...
There's only need to keep the offset and size of the latest buffer,
so rename linear_header into linear_ctx and change the code to
keep records there.
For debug mode we still keep a header, now called linear_node_canary,
to have a magic check. Since due to alignment we have a free space,
also keep the individual occupation of each node (offset), for
debugging.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25280 >
2023-09-25 17:26:17 +00:00
Caio Oliveira
c415da3dfc
util: Remove size information from child allocations
...
With linear_realloc() gone, there's no code that reads the size
in linear_size_chunk struct, so it can be removed. This removes
the 8-byte overhead per child allocation and simplifies the
allocation code.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25280 >
2023-09-25 17:26:17 +00:00
Caio Oliveira
8fc130783b
util: Remove linear_realloc()
...
Now that linear_realloc() is unused, remove it. It is not an actual
realloc, will always allocate new memory and copy data around -- and
had a big warning about it in the documentation.
In the couple of uses we had before, the client code knew the size,
so it could be changed to perform the allocation and the copy by
themselves. The client code keeping the size is the recommended
way here.
This will allow us remove linear_size_chunk later.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25280 >
2023-09-25 17:26:17 +00:00
Caio Oliveira
1486742b26
util: Remove usages of linear_realloc()
...
Note that for linear allocator, the realloc will always
allocate new memory. In both cases that realloc was used,
the existing size was known, so we can just allocate
and do the copy ourselves.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25280 >
2023-09-25 17:26:17 +00:00
Caio Oliveira
63ab985511
util: Use an opaque type for linear context
...
In the linear allocation only the parent (context) can be used
to allocate new children, so let's use an opaque type to identify
the linear context. This is similar to what's done in GC allocator.
Update the documentation and a couple of function names to
refer to linear context instead of linear parent.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25280 >
2023-09-25 17:26:17 +00:00
Caio Oliveira
b269cadf56
util: Make DECLARE_LINEAR_ALLOC_* macros assume no destructors
...
Linear allocator doesn't support calling custom destructors to
its child allocations nor freeing individual child allocations.
So the destructor callback and the delete operator don't apply
to objects using linear allocator.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25280 >
2023-09-25 17:26:17 +00:00
Caio Oliveira
aec516ead6
util: Remove size from linear_parent creation
...
None of the callsites took advantage of this, so remove
the feature. This will help to a next change that will
add an opaque type to represent a linear parent.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25280 >
2023-09-25 17:26:17 +00:00
Caio Oliveira
4519421db5
util: Use linear parent to (r)allocated extra nodes
...
Instead of making all the nodes children of the same original
ralloc_ctx, use that context just for the first node (which
is the linear parent). The remaining nodes are (r)allocated
using the first one.
With that change, to free/steal, it is sufficient to apply the
operation to the first node, which uses the underlying linked
list between the nodes at ralloc level. And we can remove
the 'next' pointer in linear_header, now unused.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25280 >
2023-09-25 17:26:17 +00:00
Caio Oliveira
6764689e0e
util: Remove ralloc_parent from linear_header
...
We can reach the ralloc parent from the linear parent, since
it is what was used to allocate the linear parent in the first
place.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25280 >
2023-09-25 17:26:17 +00:00
Lionel Landwerlin
64769bc5b2
util/u_trace: count number of tracepoints
...
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Acked-by: Emma Anholt <emma@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24744 >
2023-09-25 13:05:45 +00:00
Caio Oliveira
ae99a3d76c
util: Add more PRINTFLIKE and MALLOCLIKE annotations
...
Reviewed-by: Yonggang Luo <luoyonggang@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25230 >
2023-09-22 10:47:33 -07:00
Roman Stratiienko
8f513813b1
u_gralloc: Add a function that returns gralloc type
...
This is needed by some drivers to reject the fallback gralloc.
Signed-off-by: Roman Stratiienko <r.stratiienko@gmail.com >
Reviewed-by: Chia-I Wu <olvaffe@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25256 >
2023-09-21 10:50:34 +00:00
Roman Stratiienko
d923d6234d
Revert "util: Add NONNULL macro"
...
We agreed in [1] not to use it since it has little value,
but making a code less readable.
[1]: https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25256
This reverts commit 21dcde096f .
Signed-off-by: Roman Stratiienko <r.stratiienko@gmail.com >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Eric Engestrom <eric@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25256 >
2023-09-21 10:50:34 +00:00
Roman Stratiienko
3b6f14c4d3
u_gralloc: Remove usage of NONNULL macro
...
We agreed in [1] not to use it since it has little value,
but making a code less readable.
[1]: https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25256
Signed-off-by: Roman Stratiienko <r.stratiienko@gmail.com >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Eric Engestrom <eric@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25256 >
2023-09-21 10:50:34 +00:00
Roman Stratiienko
28b21fae6e
u_gralloc: Remove inline modifiers from the functions
...
Suggested-by: Chia-I Wu <olvaffe@gmail.com >
Signed-off-by: Roman Stratiienko <r.stratiienko@gmail.com >
Reviewed-by: Chia-I Wu <olvaffe@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25256 >
2023-09-21 10:50:34 +00:00
Samuel Pitoiset
67ed899cd6
radv: remove absolute_depth_bias workaround
...
This was only used with Path of Exile and the game bug seems fixed.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25198 >
2023-09-19 07:53:51 +00:00
Samuel Pitoiset
4475c400a1
radv: remove drirc workarounds for Path Of Exile
...
According to https://gitlab.freedesktop.org/mesa/mesa/-/issues/9798 ,
all game bugs should have been fixed.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/9798
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25198 >
2023-09-19 07:53:51 +00:00
Samuel Pitoiset
f3790959c8
drirc: remove Path of Exile workarounds
...
According to https://gitlab.freedesktop.org/mesa/mesa/-/issues/9798 ,
all game bugs should have been fixed.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25198 >
2023-09-19 07:53:51 +00:00
Ian Romanick
385f01c89b
util/rb-tree: Inline rb_tree_init
...
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25091 >
2023-09-14 22:31:22 +00:00
Ian Romanick
0f917d93bf
util/rb-tree: Work around C++'s dislike of offsetof
...
This is the same technique used in src/compiler/glsl/list.h.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25091 >
2023-09-14 22:31:22 +00:00
Caio Oliveira
3f1356bef5
util: Add convenience macros for linear allocator
...
Similar to the ones for ralloc.
Reviewed-by: Emma Anholt <emma@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25161 >
2023-09-12 00:26:06 +00:00
Alba Mendez
e3aab80d4f
meson: support installation tags
...
the only thing missing is to tag custom install targets, namely:
- ICDs (vulkan, glvnd, OpenCL, VA-API, VDPAU)
- Vulkan layers
- custom install script for megadrivers
- drirc file
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24911 >
2023-09-11 13:00:45 +00:00
Sil Vilerino
967133cc91
util/vl_vlc: Use UINT64_MAX instead of ~0UL with MSVC compiler
...
vl_vlc_removebits fails on MSVC where ~0UL is taken as 32 bits.
Use the UINT64_MAX constant instead in that case.
Reviewed-by: Ruijing Dong <ruijing.dong@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25059 >
2023-09-06 20:47:20 +00:00
Jordan Justen
6f30c980dd
util/u_cpu_detect: Detect clflushopt support
...
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22379 >
2023-09-06 01:39:53 +00:00
Jordan Justen
159c797362
util/u_cpu_detect: Drop unused has_tsc
...
This will allow us to add has_clflushopt without spilling into an new
unsigned.
Suggested-by: Kenneth Graunke <kenneth@whitecape.org >
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22379 >
2023-09-06 01:39:53 +00:00
antonino
1456cb9c0b
drirc: enable vk_wsi_force_swapchain_to_current_extent for "Serious Sam Fusion"
...
This game handles swapchain size incorrecly and can crash because of
it.
Enable this driconf as a workaround.
Fixes: 6139493ae3 ("vulkan/wsi: return VK_SUBOPTIMAL_KHR for sw/x11 on window resize")
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24818 >
2023-09-06 00:10:41 +00:00
antonino
142e317024
drirc: enable vk_wsi_force_swapchain_to_current_extent for "The Talos Principle"
...
This game handles swapchain size incorrecly and can crash because of
it.
Enable this driconf as a workaround.
Fixes: 6139493ae3 ("vulkan/wsi: return VK_SUBOPTIMAL_KHR for sw/x11 on window resize")
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24818 >
2023-09-06 00:10:41 +00:00
antonino
aa657247ce
vulkan/wsi: add vk_wsi_force_swapchain_to_current_extent driconf
...
Add a driconf to force the swapchain size to match
`VkSurfaceCapabilities2KHR::currentExtent` as a workaround for
misbehaved games
Fixes: 6139493ae3 ("vulkan/wsi: return VK_SUBOPTIMAL_KHR for sw/x11 on window resize")
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24818 >
2023-09-06 00:10:41 +00:00
Tapani Pälli
b6bd7107e6
driconf: use lower_depth_range_rate for The Spirit and The Mouse
...
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/9738
Signed-off-by: Tapani Pälli <tapani.palli@intel.com >
Acked-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25029 >
2023-09-05 22:40:36 +00:00
Asahi Lina
8781c448a4
driconf: Disable fp16 for browsers
...
There are way too many broken WebGL apps using the wrong precision
qualifiers, which causes anything from jittery geometry to complete
breakage (e.g. QuakeJS and other games).
In addition, a Firefox bug is breaking basic canvas rendering for the
same reason (mozilla bug #1845309 ).
Let's just disable fp16 for browsers. There is no hope of getting all
this broken stuff fixed.
Signed-off-by: Asahi Lina <lina@asahilina.net >
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Reviewed-by: Eric Engestrom <eric@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25052 >
2023-09-05 18:50:34 +00:00
Asahi Lina
025da70013
asahi: Add and support the no_fp16 driconf flag
...
This is the driconf equivalent of our debug no16 flag, which disables
fp16 support to work around apps using bad GLSL precision qualifiers.
Signed-off-by: Asahi Lina <lina@asahilina.net >
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Reviewed-by: Eric Engestrom <eric@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25052 >
2023-09-05 18:50:34 +00:00
Chris Spencer
574bdee19d
android: Add explanatory comment to u_gralloc
...
Signed-off-by: Chris Spencer <spencercw@gmail.com >
Reviewed-by: Roman Stratiienko <r.stratiienko@gmail.com >
Reviewed-by: Tapani Pälli <tapani.palli@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24941 >
2023-09-05 10:02:24 +00:00
Dmitry Osipenko
0ed4c86873
util/cache_test: Add test for get/put() with disabled cache
...
The disk_cache_create() now always returns valid cache even when disk
cache is disabled. In a case of disabled cache, the disk cache is NO-OP.
Test whether get/put() work as expected for the disabled cache.
Reviewed-by: Rob Clark <robdclark@chromium.org >
Signed-off-by: Dmitry Osipenko <dmitry.osipenko@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24985 >
2023-09-05 09:04:34 +00:00
Dmitry Osipenko
4547671fc3
util/cache_test: Fix disabled cache test using SHADER_CACHE_DISABLE_BY_DEFAULT
...
Previous commit decoupled EGL_ANDROID_blob_cache from the disk cache
and haven't updated the SHADER_CACHE_DISABLE_BY_DEFAULT test-case that
is failing because now cache is always created even if disk cache is
disabled, such cache is NO-OP in this case. Fix the failing test.
Fixes: 39f26642 ("util: Decouple disk cache from EGL_ANDROID_blob_cache")
Reviewed-by: Rob Clark <robdclark@chromium.org >
Signed-off-by: Dmitry Osipenko <dmitry.osipenko@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24985 >
2023-09-05 09:04:34 +00:00
Dmitry Osipenko
976fe1d77c
util/cache_test: Re-add test for disabled cache
...
Test for disabled cache was removed when we decoupled
EGL_ANDROID_blob_cache from the disk cache because test was failing
since it became outdated. Add the updated test.
Fixes: 39f26642 ("util: Decouple disk cache from EGL_ANDROID_blob_cache")
Reviewed-by: Rob Clark <robdclark@chromium.org >
Signed-off-by: Dmitry Osipenko <dmitry.osipenko@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24985 >
2023-09-05 09:04:34 +00:00
Roman Stratiienko
17f7ffcb36
android: Fix num_planes assignment in u_gralloc_fallback
...
That seems to be an uncaught porting issue from EGL code to a common.
Fixes: ee42e2166d ("android: Introduce the Android buffer info abstraction")
Signed-off-by: Roman Stratiienko <r.stratiienko@gmail.com >
Reviewed-by: Tapani Pälli <tapani.palli@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24953 >
2023-08-31 04:03:06 +00:00
Timothy Arceri
ddac37a8b3
util: add radeonsi workaround for Nowhere Patrol
...
Cc: mesa-stable
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24919 >
2023-08-29 10:15:16 +00:00
Paul Gofman
3e66eba59e
driconf: add a workaround for Rainbow Six Extraction
...
CC: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24784 >
2023-08-26 17:59:34 +00:00
Benjamin Cheng
1d2f7f068c
util/vl: extract gallium vl scanning data to shared code
...
Vulkan video on both ANV and RADV need these data to make converting
from zig-zag to raster order easier.
Reviewed-by: Lynne <dev@lynne.ee >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24572 >
2023-08-25 03:08:13 +00:00
twisted89
d3e796da6b
util/driconf: add workarounds for the Chronicles of Riddick
...
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24567 >
2023-08-24 22:38:56 +00:00
Ian Romanick
8852e9cb2e
util/rb-tree: Fix typo in comment
...
Trivial.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24856 >
2023-08-24 17:50:28 +00:00
Ian Romanick
2ff38260b9
util/rb-tree: Return the actual first node from rb_tree_search
...
Previously rb_tree_search would return the first node encountered, but
that may not be the first node that would be encoutnered by, say,
rb_tree_foreach.
Two test cases are added.
v2: Add more curly braces. Suggested by Faith.
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24856 >
2023-08-24 17:50:28 +00:00
Rob Clark
39f26642d6
util: Decouple disk cache from EGL_ANDROID_blob_cache
...
Just because the user / system-integrater doesn't want shader disk
cache, doesn't mean they don't want EGL_ANDROID_blob_cache to work.
We've kind of already solved this for the android case, so just
generalize that solution.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/9520
Signed-off-by: Rob Clark <robdclark@chromium.org >
Reviewed-by: Dmitry Osipenko <dmitry.osipenko@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24636 >
2023-08-23 00:04:16 +00:00
Bas Nieuwenhuizen
11198951e6
util/perf: Add gpuvis integration.
...
Initial integration, still needs the init functions to be changed
across the codebase.
For the context usage https://github.com/mikesart/gpuvis/pull/82 is
needed to display it correctly in gpuvis.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22505 >
2023-08-19 23:09:45 +02:00
Emma Anholt
4dfd306454
disk_cache: Disable the "List" test for RO disk cache.
...
It uses a poll function that waits for a second hoping for another thread
to catch up, which is not a reliable way to do synchronization. The test
has been spuriously failing merges on a regular basis recently.
This is issue #9222 , which I'm leaving open until the author can fix the test.
Fixes: 3b69b67545 ("util/fossilize_db: add runtime RO foz db loading via FOZ_DBS_DYNAMIC_LIST")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24755 >
2023-08-17 22:52:23 +00:00
Julia Tatz
a5279f1ec5
aux/trace: add context video methods
...
Preliminary support without wrapping video_codec or video_buffer
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24482 >
2023-08-16 00:11:30 +00:00
Paul Gofman
6a2a36d7dd
driconf: add a workaround for Captain Lycop: Invasion of the Heters
...
CC: mesa-stable
Tested-by: Timothy Arceri <tarceri@itsqueeze.com >
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24639 >
2023-08-15 04:38:09 +00:00
Mohamed Ahmed
0c03d44093
util/format: Add G8B8_G8R8_422_UNORM and B8G8_R8G8_422_UNORM formats
...
These actually match the Vulkan format enums for single-plane YCbCr
formats, unlike the other PIPE_FORMAT_* enums which put luminance in the
red channel.
Reviewed-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Roland Scheidegger <sroland@vmware.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24619 >
2023-08-14 23:44:19 +00:00