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
Alyssa Rosenzweig
d964f57a48
util/hash_table: add u64 foreach macro
...
needs some nontrivial wrapping but can mostly fallback to the regular impl.
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
Marek Olšák
99f8f01dfb
glthread: pack the index type to 8 bits
...
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27350 >
2024-02-23 18:03:58 +00:00
Danylo Piliaiev
f4c40fc89c
tu: Add workaround for D3D11 games accessing UBO out of bounds
...
Some D3D11 games rely on out-of-bounds indirect UBO loads to return
real values from underlying bound descriptor. This workaround would
prevent us from lowering indirectly accessed UBOs to consts.
Later DXVK would declare dynamically indexed uniforms with upper
size bound, to make the accesses spec compliant. But for now
we need our own workaround.
Known affected games:
- Dark Souls 3
- Sekiro: Shadows Die Twice
- Final Fantasy Type-0 HD
- Ultrakill
- Dishonored 2
DXVK discussions:
- https://github.com/doitsujin/dxvk/issues/405
- https://github.com/doitsujin/dxvk/issues/3861
Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27727 >
2024-02-23 12:08:53 +00:00
Marek Olšák
11dbdedf46
st/mesa: optimize st_update_arrays using lots of C++ template variants
...
This adds the following template options:
- add an option to fill TC set_vertex_buffers from st_update_array directly
(always true without u_vbuf, so always used with radeonsi)
- add an option saying that there are no zero-stride attribs
- add an option saying that there are no user buffers
(always true with glthread, so always used with radeonsi)
- add an option saying that there is an identity mapping between vertex
buffers and vertex attribs
I have specifically chosen those options because they improve performance.
I also had other options that didn't, like unrolling the setup_arrays loop.
This adds a total of 42 variants of st_update_array_templ for various cases.
Usually only a few of them are used in practice.
Overhead of st_prepare_draw in VP2020/Catia:
Before: 8.5% of CPU used
After: 6.13% of CPU used
That's 2.37% improvement. Since there are 4 threads using the CPU and
the percentage includes all threads in the system, the improvement for
the GL thread is about 8% (roughly 2.17% * 4; each thread at 25% of global
utilization means 100% utilization in 4 cores).
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27731 >
2024-02-21 18:36:44 +00:00
Matt Turner
9f32e1a489
anv/drirc: Add option to control implicit sync on external BOs
...
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10546
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27704 >
2024-02-21 17:19:26 +00:00
Marek Olšák
0589dfe4e2
util/idalloc: optimize foreach by tracking the greatest non-zero element
...
also add util_idalloc_foreach_no_zero_safe.
Reviewed-by: Adam Jackson <ajax@redhat.com >
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27494 >
2024-02-21 16:04:51 +00:00
Casey Bowman
d124542b55
anv: Override VendorID for Hitman 3
...
XeSS workaround is required for Hitman 3 to launch for Intel cards.
The following was observed during launch, coming from libxess.dll:
"Intel Plugin Extension ERROR: INTC_LoadExtensionsLibrary failed"
Signed-off-by: Casey Bowman <casey.g.bowman@intel.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27477 >
2024-02-13 19:02:24 +00:00
Jesse Natalie
161a90abbd
dzn: Add a driconf option to disable dzn for specific apps and use it for RDR2
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27531 >
2024-02-13 17:53:42 +00:00
Friedrich Vock
afab80bdb6
radv,driconf: Enable active AS leaf workaround for Jedi Survivor
...
Another game that can't get AS updates right.
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27590 >
2024-02-13 08:37:20 +00:00
Marek Olšák
716e483cfb
util/idalloc: make deleting invalid IDs a no-op
...
This happens with piglit tests if we enable ForceGLNamesReuse
for everything.
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27586 >
2024-02-13 03:53:26 +00:00
Mark Janes
c40dacd4a8
util: add parson for handling json files
...
Release 1.5.3 (ba29f4eda9ea7703a9f6a9cf2b0532a2605723c3)
from https://github.com/kgabis/parson
Acked-by: Caio Oliveira <caio.oliveira@intel.com >
Acked-by: Jordan Justen <jordan.l.justen@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27540 >
2024-02-09 21:01:05 +00:00
Samuel Pitoiset
61a125647b
radv: add radv_disable_ngg_gs and enable it for Persona 3 Reload
...
Persona 3 Reload is largely affected by the way amplification works with
NGG GS and disabling it drastically improve performance.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27518 >
2024-02-09 07:24:16 +00:00
Sviatoslav Peleshko
0a1c8779e8
driconf: Apply dual color blending workaround to Dying Light
...
The game uses shader with `location=0` and `location=1` outputs where
it wants dual source blending and should've used `location=0, index=0`
and `location=0, index=1`.
Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10413
Signed-off-by: Sviatoslav Peleshko <sviatoslav.peleshko@globallogic.com >
Reviewed-by: Tapani Pälli <tapani.palli@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27509 >
2024-02-08 09:30:09 +00:00
Kenneth Graunke
24d3c83212
driconf: Advertise GL_EXT_shader_image_load_store on iris for SVP13
...
SPECviewperf creo-03 needs GL_EXT_shader_image_load_store in order for
its shaders to compile but we don't support a few corner cases that
didn't make it into the ARB variant. It seems to run fine with an
override, so just do that for now.
Cc: mesa-stable
Acked-by: Tapani Pälli <tapani.palli@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27429 >
2024-02-07 23:17:14 +00:00
David Heidelberg
010272b62e
util: use crc32_z instead of crc32 and bump zlib dep to 1.2.9
...
1.2.9 has been released in January 2017, so let's assume
we'll find it everywhere.
Reviewed-by: Dylan Baker <dylan@pnwbakers.com >
Acked-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27311 >
2024-02-06 19:22:53 +00:00
Sviatoslav Peleshko
0a44f6319e
anv,driconf: Add sampler coordinate precision workaround for AoE 4
...
AoE4 samples texture on the edge between texels, which can cause
unexpected texel to be returned, and cause misrenderings. This workaround
enables coordinate rounding even in NEAREST mode, which fixes the problem.
Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/9864
Signed-off-by: Sviatoslav Peleshko <sviatoslav.peleshko@globallogic.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27337 >
2024-02-06 10:29:15 +00:00
Emmanuel Vadot
464e8aaff4
util: Allow kcmp on FreeBSD
...
FreeBSD now have kcmp(2) syscall, use it.
Signed-off-by: Emmanuel Vadot <manu@FreeBSD.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27184 >
2024-02-03 17:19:31 +00:00
Blisto
3bc6f95e3d
driconf: set vk_x11_strict_image_count for Atlas Fallen Vulkan
...
Prevents crash with vsync turned off on xwayland.
Cc: mesa-stable
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27122 >
2024-02-02 07:48:22 +00:00
Yiwei Zhang
53d9debcf4
util: refactor to use DETECT_OS_ANDROID
...
except leaving u_endian.h behind to use __ANDROID__ directly to be
consistent with the rest in that file, which deserves a different
refactor
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Yonggang Luo <luoyonggang@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27374 >
2024-02-01 19:29:49 +00:00
Friedrich Vock
1c01fd0286
util/disk_cache: Use secure_getenv to determine cache directories
...
Reviewed-by: Eric Engestrom <eric@igalia.com >
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27381 >
2024-01-31 17:28:12 +00:00
Friedrich Vock
8b209a6200
util: Provide a secure_getenv fallback for platforms without it
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27381 >
2024-01-31 17:28:11 +00:00
Eric Engestrom
501f78fdba
util: check for setgid() as well in __normal_user()
...
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27378 >
2024-01-31 11:42:56 +00:00
Eric Engestrom
afd4e633ee
util: simplify logic in __normal_user()
...
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27378 >
2024-01-31 11:42:55 +00:00
Bas Nieuwenhuizen
3f119a1fd8
util/disk_cache: Add marker on cache usage.
...
To be able to delete it later if it isn't used. Checking the mtime
on e.g. the index doesn't work if we always hit the cache so add
something that writes unconditionally.
Only once per day to avoid excessive writes.
(See https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22339 )
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27173 >
2024-01-31 03:14:02 +00:00
Felix DeGrood
8c87657fbd
driconf: Fake vendorid for RDR2
...
Change force_vk_vendor=-1 for Red Dead Redemption 2 to avoid
pop up driver warning on launch. Warning only applies to Windows
driver.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27364 >
2024-01-31 02:11:18 +00:00
Eric Engestrom
92c24191d4
tree-wide: use __normal_user() everywhere instead of writing the check manually
...
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27346 >
2024-01-30 12:45:54 +00:00
Eric Engestrom
3e00558ef0
util: rename __check_suid() to __normal_user()
...
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27346 >
2024-01-30 12:45:54 +00:00
Marek Olšák
787ddadf73
util: add mesa_pin_threads environment variable that sets a static affinity mask
...
This is required for deterministic benchmark results.
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27247 >
2024-01-29 19:40:46 +00:00
Marek Olšák
d230434ae3
mesa,gallium: move the thread scheduler to src/util
...
The only change in behavior is that setting the affinity mask is skipped
when it has no effect, which happens when the app thread hasn't been moved
under a different L3 cache by the kernel (the sched_state variable tracks
that). This improves performance because setting the affinity mask incurs
measurable CPU overhead even if it has no effect.
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27247 >
2024-01-29 19:40:46 +00:00
Jesse Natalie
6139cd0656
util: Detect arm64ec as aarch64 (and x86_64)
...
Reviewed-by: Yonggang Luo <luoyonggang@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27199 >
2024-01-26 00:22:53 +00:00
Felix DeGrood
1a43970276
driconf: Change vendorid on Palworld for Intel
...
Changing force_vk_vendor=-1 for Palworld makes Palworld run.
Not sure yet why. Game does not use XeSS currently.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10474
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27218 >
2024-01-23 21:15:10 +00:00
Konstantin
03379d74ba
util/printf: Expose util_printf_prev_tok
...
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25753 >
2024-01-20 16:11:55 +01:00
Konstantin
d05f8f6146
util/printf: Include stdio.h
...
Needed for FILE.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25753 >
2024-01-20 16:11:55 +01:00
Gurchetan Singh
c860935501
mesa/util: use DETECT_OS_ANDROID in anon_file.c
...
glibc based Android build define ANDROID, but don't have
memfd headers.
Reviewed-by: Aaron Ruby <aruby@blackberry.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26874 >
2024-01-18 18:45:40 +00:00
Gurchetan Singh
1b133ad446
mesa/util: add <linux/fcntl.h>
...
F_ADD_SEALS + F_SEAL_* are defined in <linux/fcntl.h> on Android.
Reviewed-by: Aaron Ruby <aruby@blackberry.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26874 >
2024-01-18 18:45:40 +00:00
Gurchetan Singh
e08add9164
mesa/util: Check __ANDROID__ when for detecting for Android
...
"__ANDROID__ is defined by the compiler. It is defined for
all Android targets."
"ANDROID is set by some build systems, and not in any reliable
manner (in AOSP it actually just means that you're in AOSP; it's
set even when you're building host code for Windows, so it
doesn't mean much of anything)."
https://github.com/android/ndk/issues/407
https://github.com/android/ndk/issues/807
Since the toolchain provides __ANDROID__ for actual Android
targets, standalone NDK and Soong builds should work.
The Mesa CI uses a combination of the NDK toolchain, internal
Android stubs and a Debian sysroot when compile testing Android.
Long-term, it should be possible to remove ANDROID and use
DETECT_OS_ANDROID everywhere.
Reviewed-by: Aaron Ruby <aruby@blackberry.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26874 >
2024-01-18 18:45:40 +00:00
Hans-Kristian Arntzen
efc0131d5b
wsi/x11: Add workaround for Detroit Become Human.
...
Game needs strict image count to not crash in non-vsync mode.
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27038 >
2024-01-18 18:02:51 +00:00
Hans-Kristian Arntzen
4ab6d7e753
wsi/x11: Add drirc option to ignore SUBOPTIMAL.
...
Talos Principle and related games on that engine fail to handle
SUBOPTIMAL properly. Adds an option to ignore SUBOPTIMAL and pretend
it's SUCCESS.
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no >
Reviewed-by: Danylo Piliaiev <dpiliaiev@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27037 >
2024-01-18 17:23:32 +00:00
Friedrich Vock
a9831caa14
radv/rt: Add workaround to make leaves always active
...
DOOM Eternal builds acceleration structures with inactive primitives and
tries to make them active in later AS updates. This is disallowed by the
spec and triggers a GPU hang. Fix the hang by working around the bug.
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27034 >
2024-01-17 15:14:48 +00:00
Tatsuyuki Ishi
0a68a94a51
util: Optimize mesa_hex_to_bytes
...
This function ends up getting called an awful lot when loading a large
Fossilize cache db, so let's replace strtol with something more
reasonable.
For a game with 97k shaders, this reduces instance creation time from
203ms to 52ms.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27052 >
2024-01-16 02:15:22 +00:00
chyyran
f079b6a18d
util/format/fxt1: include "u_format_pack.h" instead of "util/format/u_format_pack.h"
...
Signed-off-by: Ronny Chan <ronny@ronnychan.ca >
Reviewed-by: Yonggang Luo <luoyonggang@gmail.com >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26608 >
2024-01-15 20:13:07 +00:00
Lionel Landwerlin
a34a113059
anv: hide vendor ID for The Finals
...
XeSS workaround.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Tapani Pälli <tapani.palli@intel.com >
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10436
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27057 >
2024-01-15 08:08:56 +02:00