mirror of
https://github.com/terrapkg/packages.git
synced 2026-05-31 09:01:55 +00:00
This reverts commita25aa6cfef. (cherry picked from commita7df4e89c5) Co-authored-by: madomado <madonuko@outlook.com>
This commit is contained in:
+546
-62
@@ -1,16 +1,256 @@
|
||||
From cc3cc28e7b1e76d3640be7a497271475fdcfc550 Mon Sep 17 00:00:00 2001
|
||||
From 27e5ca5e9f32a3dab5d9f22e53c34133a98fc1ef Mon Sep 17 00:00:00 2001
|
||||
From: Antheas Kapenekakis <git@antheas.dev>
|
||||
Date: Sat, 15 Mar 2025 16:38:53 +0100
|
||||
Subject: [PATCH 01/11] [NA] Developer files, readme, etc
|
||||
|
||||
---
|
||||
Containerfile | 117 ++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
sync.sh | 94 ++++++++++++++++++++++++++++++++++++++++
|
||||
2 files changed, 211 insertions(+)
|
||||
create mode 100644 Containerfile
|
||||
create mode 100755 sync.sh
|
||||
|
||||
diff --git a/Containerfile b/Containerfile
|
||||
new file mode 100644
|
||||
index 00000000000..ba4ecf6c172
|
||||
--- /dev/null
|
||||
+++ b/Containerfile
|
||||
@@ -0,0 +1,117 @@
|
||||
+ARG FEDORA_VERSION=41
|
||||
+
|
||||
+FROM fedora:${FEDORA_VERSION}
|
||||
+
|
||||
+# noarch
|
||||
+RUN dnf5 install -y \
|
||||
+ meson \
|
||||
+ python3-mako \
|
||||
+ python3-ply \
|
||||
+ python3-pycparser \
|
||||
+ rust-paste-devel \
|
||||
+ rust-proc-macro2-devel \
|
||||
+ rust-quote-devel \
|
||||
+ cargo-rpm-macros \
|
||||
+ rust-syn+clone-impls-devel \
|
||||
+ rust-unicode-ident-devel \
|
||||
+ vulkan-headers \
|
||||
+ wayland-protocols-devel \
|
||||
+ xorg-x11-proto-devel \
|
||||
+ && dnf5 clean all
|
||||
+
|
||||
+# x86_64
|
||||
+RUN dnf5 install -y \
|
||||
+ bindgen-cli \
|
||||
+ bison \
|
||||
+ cbindgen \
|
||||
+ clang-devel \
|
||||
+ elfutils-libelf-devel \
|
||||
+ expat-devel \
|
||||
+ flex \
|
||||
+ gcc \
|
||||
+ gettext \
|
||||
+ glslang \
|
||||
+ kernel-headers \
|
||||
+ libX11-devel \
|
||||
+ libXdamage-devel \
|
||||
+ libXext-devel \
|
||||
+ libXfixes-devel \
|
||||
+ libXrandr-devel \
|
||||
+ libXxf86vm-devel \
|
||||
+ libclc-devel \
|
||||
+ libdrm-devel \
|
||||
+ libglvnd-core-devel \
|
||||
+ libselinux-devel \
|
||||
+ libunwind-devel \
|
||||
+ libva-devel \
|
||||
+ libvdpau-devel \
|
||||
+ libxcb-devel \
|
||||
+ libxshmfence-devel \
|
||||
+ libzstd-devel \
|
||||
+ python3-devel \
|
||||
+ lm_sensors-devel \
|
||||
+ python3-pyyaml \
|
||||
+ valgrind-devel \
|
||||
+ spirv-llvm-translator-devel \
|
||||
+ spirv-tools-devel \
|
||||
+ vulkan-loader-devel \
|
||||
+ wayland-devel \
|
||||
+ zlib-ng-compat-devel
|
||||
+
|
||||
+# x86
|
||||
+RUN dnf5 install -y \
|
||||
+ clang-devel.i686 \
|
||||
+ elfutils-libelf-devel.i686 \
|
||||
+ expat-devel.i686 \
|
||||
+ glslang.i686 \
|
||||
+ kernel-headers.i686 \
|
||||
+ libX11-devel.i686 \
|
||||
+ libXdamage-devel.i686 \
|
||||
+ libXext-devel.i686 \
|
||||
+ libXfixes-devel.i686 \
|
||||
+ libXrandr-devel.i686 \
|
||||
+ libXxf86vm-devel.i686 \
|
||||
+ libclc-devel.i686 \
|
||||
+ libdrm-devel.i686 \
|
||||
+ libglvnd-core-devel.i686 \
|
||||
+ libselinux-devel.i686 \
|
||||
+ libunwind-devel.i686 \
|
||||
+ libva-devel.i686 \
|
||||
+ libvdpau-devel.i686 \
|
||||
+ libxcb-devel.i686 \
|
||||
+ libxshmfence-devel.i686 \
|
||||
+ libzstd-devel.i686 \
|
||||
+ python3-devel.i686 \
|
||||
+ lm_sensors-devel.i686 \
|
||||
+ valgrind-devel.i686 \
|
||||
+ spirv-llvm-translator-devel.i686 \
|
||||
+ spirv-tools-devel.i686 \
|
||||
+ vulkan-loader-devel.i686 \
|
||||
+ wayland-devel.i686 \
|
||||
+ zlib-ng-compat-devel.i686 \
|
||||
+ pkgconf-pkg-config.i686
|
||||
+
|
||||
+# these do not have an i686 version
|
||||
+# bindgen-cli.i686 \
|
||||
+# bison.i686 \
|
||||
+# cbindgen.i686 \
|
||||
+# flex.i686 \
|
||||
+# gcc.i686 \
|
||||
+# gettext.i686 \
|
||||
+# python3-pyyaml.i686 \
|
||||
+
|
||||
+RUN dnf install -y ccache
|
||||
+
|
||||
+ARG UID=1000
|
||||
+ARG GID=1000
|
||||
+
|
||||
+RUN groupadd -g $GID -o builder && \
|
||||
+ useradd -m -u $UID -g $GID -o -s /bin/bash builder && \
|
||||
+ echo "builder ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/builder && \
|
||||
+ chmod 0440 /etc/sudoers.d/builder
|
||||
+
|
||||
+USER builder
|
||||
+
|
||||
+ENV PATH="/usr/lib64/ccache/:$PATH"
|
||||
+
|
||||
+WORKDIR /workspace
|
||||
\ No newline at end of file
|
||||
diff --git a/sync.sh b/sync.sh
|
||||
new file mode 100755
|
||||
index 00000000000..f0fa113f876
|
||||
--- /dev/null
|
||||
+++ b/sync.sh
|
||||
@@ -0,0 +1,94 @@
|
||||
+if [ -z "$1" ]; then
|
||||
+ echo "Usage: $0 <host>"
|
||||
+ exit 1
|
||||
+fi
|
||||
+
|
||||
+# https://gist.github.com/Venemo/a9483106565df3a83fc67a411191edbd
|
||||
+
|
||||
+RHOST=$1
|
||||
+RSYNC="rsync -rv --exclude .git --exclude venv --exclude __pycache__ --links"
|
||||
+DEVUSER=${DEVUSER:-bazzite}
|
||||
+
|
||||
+# If RHOST=claw, set driver name to intel
|
||||
+if [ "$RHOST" = "claw" ]; then
|
||||
+ echo "Using Intel driver"
|
||||
+ DRIVER_NAME=intel
|
||||
+ VKICD_NAME=intel
|
||||
+ GALLIUM_DRIVER=iris
|
||||
+else
|
||||
+ echo "Using AMD driver"
|
||||
+ DRIVER_NAME=amd
|
||||
+ VKICD_NAME=radeon
|
||||
+ GALLIUM_DRIVER=radeonsi
|
||||
+fi
|
||||
+
|
||||
+set -e -x
|
||||
+
|
||||
+sudo podman build . --tag mesa_builder \
|
||||
+ --build-arg UID=$(id -u) --build-arg GID=$(id -g)
|
||||
+
|
||||
+PODMAN_RUN="sudo podman run --rm -v $(pwd):/workspace \
|
||||
+ --env CCACHE_DIR=/workspace/.cache \
|
||||
+ --env CCACHE_MAXSIZE=5G \
|
||||
+ --env CCACHE_COMPRESS=1 \
|
||||
+ -it mesa_builder"
|
||||
+
|
||||
+$PODMAN_RUN rm -rf build64 build32
|
||||
+
|
||||
+$PODMAN_RUN meson setup build64 --libdir lib64 --prefix /workspace/.out \
|
||||
+ -Dgallium-drivers=swrast,zink,$GALLIUM_DRIVER -Dvulkan-drivers=$DRIVER_NAME \
|
||||
+ -Dgallium-nine=true -Dbuildtype=release \
|
||||
+ -Dvideo-codecs=h264dec,h264enc,h265dec,h265enc,vc1dec
|
||||
+
|
||||
+# Cross-file for arch: lib32, fedora: ./gcc-i686
|
||||
+$PODMAN_RUN meson setup build32 --libdir lib --prefix /workspace/.out \
|
||||
+ -Dgallium-drivers=swrast,zink,$GALLIUM_DRIVER -Dvulkan-drivers=$DRIVER_NAME \
|
||||
+ -Dgallium-nine=true -Dbuildtype=release \
|
||||
+ -Dvideo-codecs=h264dec,h264enc,h265dec,h265enc,vc1dec
|
||||
+
|
||||
+time $PODMAN_RUN ninja -C build64 install
|
||||
+
|
||||
+time $PODMAN_RUN ninja -C build32 install
|
||||
+
|
||||
+RUNCONFIG=$(cat << EOF
|
||||
+
|
||||
+
|
||||
+MESA=/home/$DEVUSER/.out
|
||||
+
|
||||
+export LD_LIBRARY_PATH=\$MESA/lib64:\$MESA/lib:\$LD_LIBRARY_PATH
|
||||
+export LIBGL_DRIVERS_PATH=\$MESA/lib64/dri:\$MESA/lib/dri
|
||||
+export EGL_DRIVERS_PATH=\$MESA/lib64/dri:\$MESA/lib/dri
|
||||
+export VK_ICD_FILENAMES=\$MESA/share/vulkan/icd.d/${VKICD_NAME}_icd.x86_64.json:\$MESA/share/vulkan/icd.d/${VKICD_NAME}_icd.i686.json
|
||||
+export LIBVA_DRIVERS_PATH=\$MESA/lib64/dri:\$MESA/lib/dri
|
||||
+export VDPAU_DRIVER_PATH=\$MESA/lib64/vdpau
|
||||
+export D3D_MODULE_PATH=\$MESA/lib64/d3d/d3dadapter9.so.1:\$MESA/lib/d3d/d3dadapter9.so.1
|
||||
+# export ENABLE_GAMESCOPE_WSI=0
|
||||
+
|
||||
+EOF
|
||||
+)
|
||||
+
|
||||
+ssh $RHOST /bin/bash << EOF
|
||||
+ rm -rf .out
|
||||
+ mkdir -p .out
|
||||
+EOF
|
||||
+
|
||||
+echo "$RUNCONFIG" > .out/runconfig
|
||||
+
|
||||
+# Fixup vunkan_icd install dir
|
||||
+sed -i "s|/workspace/.out|/home/$DEVUSER/.out|g" .out/share/vulkan/icd.d/*.json
|
||||
+
|
||||
+$RSYNC .out/ $RHOST:.out/
|
||||
+
|
||||
+ssh $RHOST /bin/bash << EOF
|
||||
+ sudo rpm-ostree usroverlay --hotfix
|
||||
+
|
||||
+ # check if session does not have D3D_MODULE_PATH
|
||||
+ if ! grep -q D3D_MODULE_PATH /usr/share/gamescope-session-plus/device-quirks; then
|
||||
+ cat ~/.out/runconfig | sudo tee -a /usr/share/gamescope-session-plus/device-quirks
|
||||
+ fi
|
||||
+
|
||||
+ # sudo rsync -r -v ~/.out/* /usr/
|
||||
+
|
||||
+ bazzite-session-select gamescope
|
||||
+ # sudo reboot
|
||||
+EOF
|
||||
--
|
||||
2.49.0
|
||||
|
||||
|
||||
From 2f02ad01e44eddb1d78e6e2a336bb21b7c3c93af Mon Sep 17 00:00:00 2001
|
||||
From: Antheas Kapenekakis <git@antheas.dev>
|
||||
Date: Sat, 15 Mar 2025 16:39:08 +0100
|
||||
Subject: [PATCH 1/8] [BEGIN] SteamOS Changes
|
||||
Subject: [PATCH 02/11] [BEGIN] SteamOS Changes
|
||||
|
||||
--
|
||||
2.50.1
|
||||
2.49.0
|
||||
|
||||
|
||||
From 21b062a757a202dcb737d40442b6145c34bb1e48 Mon Sep 17 00:00:00 2001
|
||||
From d446cc1258a6c6fd042e9a3d651a799a033a2d8c Mon Sep 17 00:00:00 2001
|
||||
From: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
|
||||
Date: Fri, 14 Jan 2022 15:58:45 +0100
|
||||
Subject: [PATCH 2/8] STEAMOS: radv: min image count override for FH5
|
||||
Subject: [PATCH 03/11] STEAMOS: radv: min image count override for FH5
|
||||
|
||||
Otherwise in combination with the vblank time reservation in
|
||||
gamescope the game could get stuck in low power states.
|
||||
@@ -19,10 +259,10 @@ gamescope the game could get stuck in low power states.
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
diff --git a/src/util/00-radv-defaults.conf b/src/util/00-radv-defaults.conf
|
||||
index b82e8d4da4d..c8d059571ad 100644
|
||||
index e0e5b34dc87..5e931f61760 100644
|
||||
--- a/src/util/00-radv-defaults.conf
|
||||
+++ b/src/util/00-radv-defaults.conf
|
||||
@@ -234,5 +234,9 @@ Application bugs worked around in this file:
|
||||
@@ -238,5 +238,9 @@ Application bugs worked around in this file:
|
||||
<application name="Total War: WARHAMMER III" application_name_match="TotalWarhammer3">
|
||||
<option name="radv_disable_depth_storage" value="true"/>
|
||||
</application>
|
||||
@@ -33,14 +273,14 @@ index b82e8d4da4d..c8d059571ad 100644
|
||||
</device>
|
||||
</driconf>
|
||||
--
|
||||
2.50.1
|
||||
2.49.0
|
||||
|
||||
|
||||
From e837814b4f33e48eaf6a79975cb738da39ed0fd2 Mon Sep 17 00:00:00 2001
|
||||
From 016b60d32de3cd99e10207e7f0fa2c6fce91476c Mon Sep 17 00:00:00 2001
|
||||
From: Samuel Pitoiset <samuel.pitoiset@gmail.com>
|
||||
Date: Thu, 22 Feb 2024 22:32:45 +0100
|
||||
Subject: [PATCH 3/8] STEAMOS: Dynamic swapchain override for gamescope limiter
|
||||
for DRI3 only
|
||||
Subject: [PATCH 04/11] STEAMOS: Dynamic swapchain override for gamescope
|
||||
limiter for DRI3 only
|
||||
|
||||
The original patch (from Bas) contained WSI VK support too but it's
|
||||
been removed because the Gamescope WSI layer already handles that.
|
||||
@@ -52,7 +292,7 @@ Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
|
||||
2 files changed, 41 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/src/gallium/frontends/dri/loader_dri3_helper.c b/src/gallium/frontends/dri/loader_dri3_helper.c
|
||||
index a795d45ce29..435ea2405a8 100644
|
||||
index 37970f4fa33..f200f2063a2 100644
|
||||
--- a/src/gallium/frontends/dri/loader_dri3_helper.c
|
||||
+++ b/src/gallium/frontends/dri/loader_dri3_helper.c
|
||||
@@ -297,6 +297,30 @@ dri3_update_max_num_back(struct loader_dri3_drawable *draw)
|
||||
@@ -128,10 +368,10 @@ index a795d45ce29..435ea2405a8 100644
|
||||
* successful MSC and adding in a swap interval for each outstanding swap
|
||||
* request. target_msc=divisor=remainder=0 means "Use glXSwapBuffers()
|
||||
diff --git a/src/gallium/frontends/dri/loader_dri3_helper.h b/src/gallium/frontends/dri/loader_dri3_helper.h
|
||||
index 26f138d1b83..3f0f3f66fac 100644
|
||||
index 4da19d73090..819a0e548fc 100644
|
||||
--- a/src/gallium/frontends/dri/loader_dri3_helper.h
|
||||
+++ b/src/gallium/frontends/dri/loader_dri3_helper.h
|
||||
@@ -169,6 +169,7 @@ struct loader_dri3_drawable {
|
||||
@@ -170,6 +170,7 @@ struct loader_dri3_drawable {
|
||||
bool block_on_depleted_buffers;
|
||||
bool queries_buffer_age;
|
||||
int swap_interval;
|
||||
@@ -140,31 +380,69 @@ index 26f138d1b83..3f0f3f66fac 100644
|
||||
const struct loader_dri3_vtable *vtable;
|
||||
|
||||
--
|
||||
2.50.1
|
||||
2.49.0
|
||||
|
||||
|
||||
From 354cf8783e49b082c97982f2e5be305ad6e4ab50 Mon Sep 17 00:00:00 2001
|
||||
From 23db9ff0bf721f2c9080955c8c5dcf1f187d7adc Mon Sep 17 00:00:00 2001
|
||||
From: Antheas Kapenekakis <git@antheas.dev>
|
||||
Date: Sat, 15 Mar 2025 16:39:25 +0100
|
||||
Subject: [PATCH 4/8] [BEGIN] SteamOS Backports
|
||||
Subject: [PATCH 05/11] [BEGIN] SteamOS Backports
|
||||
|
||||
--
|
||||
2.50.1
|
||||
2.49.0
|
||||
|
||||
|
||||
From c5a4eab20075dfa2f2bdfb87e55ecec262ef00f6 Mon Sep 17 00:00:00 2001
|
||||
From 69160c86a0d01b1c8482277faca1f6f7fa24cfce Mon Sep 17 00:00:00 2001
|
||||
From: Antheas Kapenekakis <git@antheas.dev>
|
||||
Date: Sat, 15 Mar 2025 16:39:33 +0100
|
||||
Subject: [PATCH 5/8] [BEGIN] Our Mesa backports
|
||||
Subject: [PATCH 06/11] [BEGIN] Our Mesa backports
|
||||
|
||||
--
|
||||
2.50.1
|
||||
2.49.0
|
||||
|
||||
|
||||
From 221b11df6d9cd7b66c8502fa51d8d72cfc377e5e Mon Sep 17 00:00:00 2001
|
||||
From 59e3d359a4f4f78112ee965bb790dec2208ea480 Mon Sep 17 00:00:00 2001
|
||||
From: Maarten Lankhorst <maarten.lankhorst@intel.com>
|
||||
Date: Mon, 17 Feb 2025 14:55:29 -0800
|
||||
Subject: [PATCH 07/11] anv: Mark images with format modifiers set as scanout.
|
||||
|
||||
We currently use the presence of struct WSI_IMAGE_CREATE_INFO_MESA.scanout to mark the BO as scanout,
|
||||
but this only handles the linear case, and fails when drm format modifiers are used.
|
||||
|
||||
Also handle the case of exportable BO with tiling set to VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT.
|
||||
This fixes the gamescope handling of using vulkan allocated images for scanout.
|
||||
|
||||
Link: https://gitlab.freedesktop.org/mesa/mesa/-/issues/12633
|
||||
Signed-off-by: Maarten Lankhorst <dev@lankhorst.se>
|
||||
Signed-off-by: Matthew Schwartz <matthew.schwartz@linux.dev>
|
||||
|
||||
Normalspeak: fixes battlemage iGPUs in gamescope
|
||||
---
|
||||
src/intel/vulkan/anv_device.c | 3 +++
|
||||
1 file changed, 3 insertions(+)
|
||||
|
||||
diff --git a/src/intel/vulkan/anv_device.c b/src/intel/vulkan/anv_device.c
|
||||
index 0fb86e9d846..de37994d324 100644
|
||||
--- a/src/intel/vulkan/anv_device.c
|
||||
+++ b/src/intel/vulkan/anv_device.c
|
||||
@@ -1566,6 +1566,9 @@ VkResult anv_AllocateMemory(
|
||||
dedicated_info->image != VK_NULL_HANDLE) {
|
||||
ANV_FROM_HANDLE(anv_image, image, dedicated_info->image);
|
||||
|
||||
+ if (image->vk.tiling == VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT)
|
||||
+ alloc_flags |= ANV_BO_ALLOC_SCANOUT;
|
||||
+
|
||||
/* Apply implicit sync to be compatible with clients relying on
|
||||
* implicit fencing. This matches the behavior in iris i915_batch
|
||||
* submit. An example client is VA-API (iHD), so only dedicated
|
||||
--
|
||||
2.49.0
|
||||
|
||||
|
||||
From 8c17b9dd7ad7f565080bd3623cfb820efb729444 Mon Sep 17 00:00:00 2001
|
||||
From: Antheas Kapenekakis <git@antheas.dev>
|
||||
Date: Mon, 24 Mar 2025 19:50:51 +0100
|
||||
Subject: [PATCH 6/8] Revert "winsys/amdgpu: use VM_ALWAYS_VALID for all VRAM
|
||||
Subject: [PATCH 08/11] Revert "winsys/amdgpu: use VM_ALWAYS_VALID for all VRAM
|
||||
and GTT allocations"
|
||||
|
||||
This reverts commit 8c91624614c1f939974fe0d2d1a3baf83335cecb.
|
||||
@@ -175,14 +453,14 @@ Messes with AutoVRAM, who would have thought?
|
||||
1 file changed, 5 deletions(-)
|
||||
|
||||
diff --git a/src/gallium/winsys/amdgpu/drm/amdgpu_bo.c b/src/gallium/winsys/amdgpu/drm/amdgpu_bo.c
|
||||
index d5646e9660b..a51348b44a8 100644
|
||||
index dfefc468bca..cc0719a1898 100644
|
||||
--- a/src/gallium/winsys/amdgpu/drm/amdgpu_bo.c
|
||||
+++ b/src/gallium/winsys/amdgpu/drm/amdgpu_bo.c
|
||||
@@ -624,11 +624,6 @@ static struct amdgpu_winsys_bo *amdgpu_create_bo(struct amdgpu_winsys *aws,
|
||||
@@ -618,11 +618,6 @@ static struct amdgpu_winsys_bo *amdgpu_create_bo(struct amdgpu_winsys *aws,
|
||||
if (flags & RADEON_FLAG_GTT_WC)
|
||||
request.flags |= AMDGPU_GEM_CREATE_CPU_GTT_USWC;
|
||||
|
||||
- if (aws->info.has_vm_always_valid &&
|
||||
- if (aws->info.has_local_buffers &&
|
||||
- initial_domain & (RADEON_DOMAIN_VRAM_GTT | RADEON_DOMAIN_DOORBELL) &&
|
||||
- flags & RADEON_FLAG_NO_INTERPROCESS_SHARING)
|
||||
- request.flags |= AMDGPU_GEM_CREATE_VM_ALWAYS_VALID;
|
||||
@@ -191,22 +469,22 @@ index d5646e9660b..a51348b44a8 100644
|
||||
aws->info.drm_minor >= 47)
|
||||
request.flags |= AMDGPU_GEM_CREATE_DISCARDABLE;
|
||||
--
|
||||
2.50.1
|
||||
2.49.0
|
||||
|
||||
|
||||
From 21c90507cdbb7c2ca23b5d59421b28ac8081051f Mon Sep 17 00:00:00 2001
|
||||
From 816dec380bba16f65d7c65ddf9960a0ff79a8923 Mon Sep 17 00:00:00 2001
|
||||
From: Kyle Gospodnetich <me@kylegospodneti.ch>
|
||||
Date: Sun, 18 May 2025 09:40:01 -0700
|
||||
Subject: [PATCH 7/8] [BEGIN] Proton-GE Patches
|
||||
Subject: [PATCH 09/11] [BEGIN] Proton-GE Patches
|
||||
|
||||
--
|
||||
2.50.1
|
||||
2.49.0
|
||||
|
||||
|
||||
From 942ac03422d32e31102e3bff506f28ab6aeca18f Mon Sep 17 00:00:00 2001
|
||||
From e768b0cf066c73e9c379d59d380462c15f050a03 Mon Sep 17 00:00:00 2001
|
||||
From: Kyle Gospodnetich <me@kylegospodneti.ch>
|
||||
Date: Sun, 18 May 2025 09:42:23 -0700
|
||||
Subject: [PATCH 8/8] radv: min image count patch for Wine Wayland/Path of
|
||||
Subject: [PATCH 10/11] radv: min image count patch for Wine Wayland/Path of
|
||||
Exile 2 Credit to Glorious Eggroll.
|
||||
|
||||
---
|
||||
@@ -228,10 +506,10 @@ Subject: [PATCH 8/8] radv: min image count patch for Wine Wayland/Path of
|
||||
15 files changed, 42 insertions(+), 22 deletions(-)
|
||||
|
||||
diff --git a/src/amd/vulkan/radv_instance.c b/src/amd/vulkan/radv_instance.c
|
||||
index 6bcf18847bd..2773003911b 100644
|
||||
index d03b311fa07..910d3989451 100644
|
||||
--- a/src/amd/vulkan/radv_instance.c
|
||||
+++ b/src/amd/vulkan/radv_instance.c
|
||||
@@ -151,7 +151,7 @@ static const struct debug_control trace_options[] = {
|
||||
@@ -148,7 +148,7 @@ static const struct debug_control trace_options[] = {
|
||||
static const driOptionDescription radv_dri_options[] = {
|
||||
DRI_CONF_SECTION_PERFORMANCE
|
||||
DRI_CONF_ADAPTIVE_SYNC(true)
|
||||
@@ -241,7 +519,7 @@ index 6bcf18847bd..2773003911b 100644
|
||||
DRI_CONF_VK_X11_ENSURE_MIN_IMAGE_COUNT(false)
|
||||
DRI_CONF_VK_KHR_PRESENT_WAIT(false)
|
||||
diff --git a/src/asahi/vulkan/hk_instance.c b/src/asahi/vulkan/hk_instance.c
|
||||
index 69e315ff979..b0361133793 100644
|
||||
index 4be7a763da7..f1171053e0b 100644
|
||||
--- a/src/asahi/vulkan/hk_instance.c
|
||||
+++ b/src/asahi/vulkan/hk_instance.c
|
||||
@@ -80,7 +80,7 @@ hk_EnumerateInstanceExtensionProperties(const char *pLayerName,
|
||||
@@ -254,10 +532,10 @@ index 69e315ff979..b0361133793 100644
|
||||
DRI_CONF_VK_X11_ENSURE_MIN_IMAGE_COUNT(false)
|
||||
DRI_CONF_VK_KHR_PRESENT_WAIT(false)
|
||||
diff --git a/src/freedreno/vulkan/tu_device.cc b/src/freedreno/vulkan/tu_device.cc
|
||||
index 2c72aff780d..f9d95c63bbe 100644
|
||||
index dd79caf6927..a86a2e31017 100644
|
||||
--- a/src/freedreno/vulkan/tu_device.cc
|
||||
+++ b/src/freedreno/vulkan/tu_device.cc
|
||||
@@ -1671,7 +1671,7 @@ tu_destroy_physical_device(struct vk_physical_device *device)
|
||||
@@ -1623,7 +1623,7 @@ tu_destroy_physical_device(struct vk_physical_device *device)
|
||||
|
||||
static const driOptionDescription tu_dri_options[] = {
|
||||
DRI_CONF_SECTION_PERFORMANCE
|
||||
@@ -267,7 +545,7 @@ index 2c72aff780d..f9d95c63bbe 100644
|
||||
DRI_CONF_VK_X11_STRICT_IMAGE_COUNT(false)
|
||||
DRI_CONF_VK_X11_ENSURE_MIN_IMAGE_COUNT(false)
|
||||
diff --git a/src/intel/vulkan/anv_instance.c b/src/intel/vulkan/anv_instance.c
|
||||
index 268a5f3425b..0ab889654ae 100644
|
||||
index d478c2d52cd..e4ee0aa51ca 100644
|
||||
--- a/src/intel/vulkan/anv_instance.c
|
||||
+++ b/src/intel/vulkan/anv_instance.c
|
||||
@@ -10,7 +10,7 @@
|
||||
@@ -280,7 +558,7 @@ index 268a5f3425b..0ab889654ae 100644
|
||||
DRI_CONF_VK_KHR_PRESENT_WAIT(false)
|
||||
DRI_CONF_VK_XWAYLAND_WAIT_READY(false)
|
||||
diff --git a/src/intel/vulkan_hasvk/anv_device.c b/src/intel/vulkan_hasvk/anv_device.c
|
||||
index 81f08e50e5d..7e9d43df7ce 100644
|
||||
index fd4f4c73a33..3cba9ac23ef 100644
|
||||
--- a/src/intel/vulkan_hasvk/anv_device.c
|
||||
+++ b/src/intel/vulkan_hasvk/anv_device.c
|
||||
@@ -65,7 +65,7 @@
|
||||
@@ -293,10 +571,10 @@ index 81f08e50e5d..7e9d43df7ce 100644
|
||||
DRI_CONF_VK_KHR_PRESENT_WAIT(false)
|
||||
DRI_CONF_VK_XWAYLAND_WAIT_READY(true)
|
||||
diff --git a/src/nouveau/vulkan/nvk_instance.c b/src/nouveau/vulkan/nvk_instance.c
|
||||
index 37e7abe1584..29da7e3a0b3 100644
|
||||
index 8c7d9050063..3966dab52c5 100644
|
||||
--- a/src/nouveau/vulkan/nvk_instance.c
|
||||
+++ b/src/nouveau/vulkan/nvk_instance.c
|
||||
@@ -98,7 +98,7 @@ nvk_init_debug_flags(struct nvk_instance *instance)
|
||||
@@ -103,7 +103,7 @@ nvk_init_debug_flags(struct nvk_instance *instance)
|
||||
static const driOptionDescription nvk_dri_options[] = {
|
||||
DRI_CONF_SECTION_PERFORMANCE
|
||||
DRI_CONF_ADAPTIVE_SYNC(true)
|
||||
@@ -306,7 +584,7 @@ index 37e7abe1584..29da7e3a0b3 100644
|
||||
DRI_CONF_VK_X11_ENSURE_MIN_IMAGE_COUNT(false)
|
||||
DRI_CONF_VK_KHR_PRESENT_WAIT(false)
|
||||
diff --git a/src/panfrost/vulkan/panvk_instance.c b/src/panfrost/vulkan/panvk_instance.c
|
||||
index 31abc8f4369..8c8f7a8ca0c 100644
|
||||
index f6cbe8de4b7..7d3e3c71acf 100644
|
||||
--- a/src/panfrost/vulkan/panvk_instance.c
|
||||
+++ b/src/panfrost/vulkan/panvk_instance.c
|
||||
@@ -151,7 +151,7 @@ panvk_kmod_free(const struct pan_kmod_allocator *allocator, void *data)
|
||||
@@ -319,10 +597,10 @@ index 31abc8f4369..8c8f7a8ca0c 100644
|
||||
DRI_CONF_VK_X11_ENSURE_MIN_IMAGE_COUNT(false)
|
||||
DRI_CONF_VK_KHR_PRESENT_WAIT(false)
|
||||
diff --git a/src/util/00-mesa-defaults.conf b/src/util/00-mesa-defaults.conf
|
||||
index d42526732fa..eaab8afc3e9 100644
|
||||
index 5f6034061c2..ca7511877ee 100644
|
||||
--- a/src/util/00-mesa-defaults.conf
|
||||
+++ b/src/util/00-mesa-defaults.conf
|
||||
@@ -634,24 +634,24 @@ TODO: document the other workarounds.
|
||||
@@ -625,24 +625,24 @@ TODO: document the other workarounds.
|
||||
|
||||
<application name="gfxbench" executable="testfw_app">
|
||||
<option name="mesa_glthread_app_profile" value="0" />
|
||||
@@ -351,7 +629,7 @@ index d42526732fa..eaab8afc3e9 100644
|
||||
<option name="vk_x11_strict_image_count" value="true" />
|
||||
</application>
|
||||
|
||||
@@ -712,10 +712,12 @@ TODO: document the other workarounds.
|
||||
@@ -703,10 +703,12 @@ TODO: document the other workarounds.
|
||||
|
||||
<application name="Path of Exile" executable="PathOfExile_x64Steam.exe">
|
||||
<option name="vk_zero_vram" value="true" />
|
||||
@@ -365,10 +643,10 @@ index d42526732fa..eaab8afc3e9 100644
|
||||
|
||||
<application name="X4 Foundations" executable="X4">
|
||||
diff --git a/src/util/driconf.h b/src/util/driconf.h
|
||||
index 8faa15fb560..c94de3f45fe 100644
|
||||
index 86e00d6edd6..a00c4c0e9a5 100644
|
||||
--- a/src/util/driconf.h
|
||||
+++ b/src/util/driconf.h
|
||||
@@ -449,8 +449,8 @@
|
||||
@@ -448,8 +448,8 @@
|
||||
DRI_CONF_OPT_B(vk_wsi_force_swapchain_to_current_extent, def, \
|
||||
"Force VkSwapchainCreateInfoKHR::imageExtent to be VkSurfaceCapabilities2KHR::currentExtent")
|
||||
|
||||
@@ -380,7 +658,7 @@ index 8faa15fb560..c94de3f45fe 100644
|
||||
|
||||
#define DRI_CONF_VK_X11_STRICT_IMAGE_COUNT(def) \
|
||||
diff --git a/src/virtio/vulkan/vn_instance.c b/src/virtio/vulkan/vn_instance.c
|
||||
index 1942d77f67c..23c8e19188c 100644
|
||||
index a843b463e84..4de75ceb8af 100644
|
||||
--- a/src/virtio/vulkan/vn_instance.c
|
||||
+++ b/src/virtio/vulkan/vn_instance.c
|
||||
@@ -70,8 +70,8 @@ static const struct vk_instance_extension_table
|
||||
@@ -394,10 +672,10 @@ index 1942d77f67c..23c8e19188c 100644
|
||||
DRI_CONF_VK_XWAYLAND_WAIT_READY(true)
|
||||
DRI_CONF_VENUS_IMPLICIT_FENCING(false)
|
||||
diff --git a/src/vulkan/wsi/wsi_common.c b/src/vulkan/wsi/wsi_common.c
|
||||
index f78e4baa22a..047d5dcdeaf 100644
|
||||
index 528605856d5..d0ffd475b8f 100644
|
||||
--- a/src/vulkan/wsi/wsi_common.c
|
||||
+++ b/src/vulkan/wsi/wsi_common.c
|
||||
@@ -220,7 +220,7 @@ wsi_device_init(struct wsi_device *wsi,
|
||||
@@ -219,7 +219,7 @@ wsi_device_init(struct wsi_device *wsi,
|
||||
#endif
|
||||
|
||||
#ifdef VK_USE_PLATFORM_WAYLAND_KHR
|
||||
@@ -407,7 +685,7 @@ index f78e4baa22a..047d5dcdeaf 100644
|
||||
goto fail;
|
||||
#endif
|
||||
diff --git a/src/vulkan/wsi/wsi_common.h b/src/vulkan/wsi/wsi_common.h
|
||||
index 44c81ccddf0..a97e7c2a948 100644
|
||||
index 08c1438cb1f..f12f57e70e0 100644
|
||||
--- a/src/vulkan/wsi/wsi_common.h
|
||||
+++ b/src/vulkan/wsi/wsi_common.h
|
||||
@@ -209,6 +209,10 @@ struct wsi_device {
|
||||
@@ -422,10 +700,10 @@ index 44c81ccddf0..a97e7c2a948 100644
|
||||
|
||||
/*
|
||||
diff --git a/src/vulkan/wsi/wsi_common_private.h b/src/vulkan/wsi/wsi_common_private.h
|
||||
index f138fee5519..1d1b55ac7e5 100644
|
||||
index 51bfa77d4b2..593743c8b0e 100644
|
||||
--- a/src/vulkan/wsi/wsi_common_private.h
|
||||
+++ b/src/vulkan/wsi/wsi_common_private.h
|
||||
@@ -420,7 +420,8 @@ void wsi_x11_finish_wsi(struct wsi_device *wsi_device,
|
||||
@@ -413,7 +413,8 @@ void wsi_x11_finish_wsi(struct wsi_device *wsi_device,
|
||||
const VkAllocationCallbacks *alloc);
|
||||
VkResult wsi_wl_init_wsi(struct wsi_device *wsi_device,
|
||||
const VkAllocationCallbacks *alloc,
|
||||
@@ -436,7 +714,7 @@ index f138fee5519..1d1b55ac7e5 100644
|
||||
const VkAllocationCallbacks *alloc);
|
||||
VkResult wsi_win32_init_wsi(struct wsi_device *wsi_device,
|
||||
diff --git a/src/vulkan/wsi/wsi_common_wayland.c b/src/vulkan/wsi/wsi_common_wayland.c
|
||||
index dd15d03846b..df68d2ea006 100644
|
||||
index d592aa59401..4c1bbed855e 100644
|
||||
--- a/src/vulkan/wsi/wsi_common_wayland.c
|
||||
+++ b/src/vulkan/wsi/wsi_common_wayland.c
|
||||
@@ -58,6 +58,7 @@
|
||||
@@ -447,7 +725,7 @@ index dd15d03846b..df68d2ea006 100644
|
||||
|
||||
#include <loader/loader_wayland_helper.h>
|
||||
|
||||
@@ -1668,9 +1669,12 @@ wsi_wl_surface_get_support(VkIcdSurfaceBase *surface,
|
||||
@@ -1684,9 +1685,12 @@ wsi_wl_surface_get_support(VkIcdSurfaceBase *surface,
|
||||
#define WSI_WL_DEFAULT_NUM_IMAGES 3
|
||||
|
||||
static uint32_t
|
||||
@@ -461,7 +739,7 @@ index dd15d03846b..df68d2ea006 100644
|
||||
if (present_mode) {
|
||||
return present_mode->presentMode == VK_PRESENT_MODE_MAILBOX_KHR ?
|
||||
WSI_WL_BUMPED_NUM_IMAGES : WSI_WL_DEFAULT_NUM_IMAGES;
|
||||
@@ -1719,7 +1723,7 @@ wsi_wl_surface_get_capabilities(VkIcdSurfaceBase *icd_surface,
|
||||
@@ -1735,7 +1739,7 @@ wsi_wl_surface_get_capabilities(VkIcdSurfaceBase *icd_surface,
|
||||
display = &temp_display;
|
||||
}
|
||||
|
||||
@@ -470,7 +748,7 @@ index dd15d03846b..df68d2ea006 100644
|
||||
|
||||
if (!wsi_wl_surface->display)
|
||||
wsi_wl_display_finish(&temp_display);
|
||||
@@ -3481,7 +3485,7 @@ wsi_wl_surface_create_swapchain(VkIcdSurfaceBase *icd_surface,
|
||||
@@ -3497,7 +3501,7 @@ wsi_wl_surface_create_swapchain(VkIcdSurfaceBase *icd_surface,
|
||||
const VkSurfacePresentModeEXT mode =
|
||||
{ VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_EXT, NULL, pCreateInfo->presentMode };
|
||||
|
||||
@@ -479,7 +757,7 @@ index dd15d03846b..df68d2ea006 100644
|
||||
bool requires_image_count_bump = min_images == WSI_WL_BUMPED_NUM_IMAGES;
|
||||
if (requires_image_count_bump)
|
||||
num_images = MAX2(min_images, num_images);
|
||||
@@ -3676,7 +3680,8 @@ fail:
|
||||
@@ -3685,7 +3689,8 @@ fail:
|
||||
VkResult
|
||||
wsi_wl_init_wsi(struct wsi_device *wsi_device,
|
||||
const VkAllocationCallbacks *alloc,
|
||||
@@ -489,7 +767,7 @@ index dd15d03846b..df68d2ea006 100644
|
||||
{
|
||||
struct wsi_wayland *wsi;
|
||||
VkResult result;
|
||||
@@ -3702,6 +3707,14 @@ wsi_wl_init_wsi(struct wsi_device *wsi_device,
|
||||
@@ -3711,6 +3716,14 @@ wsi_wl_init_wsi(struct wsi_device *wsi_device,
|
||||
|
||||
wsi_device->wsi[VK_ICD_WSI_PLATFORM_WAYLAND] = &wsi->base;
|
||||
|
||||
@@ -505,10 +783,10 @@ index dd15d03846b..df68d2ea006 100644
|
||||
|
||||
fail:
|
||||
diff --git a/src/vulkan/wsi/wsi_common_x11.c b/src/vulkan/wsi/wsi_common_x11.c
|
||||
index 2edb7bf2bf3..0f9e2a422c0 100644
|
||||
index 65b7fdf7212..ea5d3750f46 100644
|
||||
--- a/src/vulkan/wsi/wsi_common_x11.c
|
||||
+++ b/src/vulkan/wsi/wsi_common_x11.c
|
||||
@@ -2924,9 +2924,9 @@ wsi_x11_init_wsi(struct wsi_device *wsi_device,
|
||||
@@ -2876,9 +2876,9 @@ wsi_x11_init_wsi(struct wsi_device *wsi_device,
|
||||
}
|
||||
|
||||
if (dri_options) {
|
||||
@@ -521,5 +799,211 @@ index 2edb7bf2bf3..0f9e2a422c0 100644
|
||||
if (driCheckOption(dri_options, "vk_x11_strict_image_count", DRI_BOOL)) {
|
||||
wsi_device->x11.strict_imageCount =
|
||||
--
|
||||
2.50.1
|
||||
2.49.0
|
||||
|
||||
|
||||
From a1be005decba7afccc3f9ef36d7b8913d3e53952 Mon Sep 17 00:00:00 2001
|
||||
From: Kyle Gospodnetich <me@kylegospodneti.ch>
|
||||
Date: Sun, 18 May 2025 09:59:41 -0700
|
||||
Subject: [PATCH 11/11] vulkan/wsi/wayland: Move drm syncobj to swapchain
|
||||
|
||||
---
|
||||
src/vulkan/wsi/wsi_common_wayland.c | 84 +++++++++++++++--------------
|
||||
1 file changed, 44 insertions(+), 40 deletions(-)
|
||||
|
||||
diff --git a/src/vulkan/wsi/wsi_common_wayland.c b/src/vulkan/wsi/wsi_common_wayland.c
|
||||
index 4c1bbed855e..c4da2626a31 100644
|
||||
--- a/src/vulkan/wsi/wsi_common_wayland.c
|
||||
+++ b/src/vulkan/wsi/wsi_common_wayland.c
|
||||
@@ -194,13 +194,9 @@ struct wsi_wl_surface {
|
||||
struct zwp_linux_dmabuf_feedback_v1 *wl_dmabuf_feedback;
|
||||
struct dmabuf_feedback dmabuf_feedback, pending_dmabuf_feedback;
|
||||
|
||||
- struct wp_linux_drm_syncobj_surface_v1 *wl_syncobj_surface;
|
||||
-
|
||||
struct vk_instance *instance;
|
||||
|
||||
struct {
|
||||
- struct wp_color_management_surface_v1 *color_surface;
|
||||
- int color_surface_refcount;
|
||||
VkColorSpaceKHR colorspace;
|
||||
VkHdrMetadataEXT hdr_metadata;
|
||||
bool has_hdr_metadata;
|
||||
@@ -214,6 +210,7 @@ struct wsi_wl_swapchain {
|
||||
struct wp_tearing_control_v1 *tearing_control;
|
||||
struct wp_fifo_v1 *fifo;
|
||||
struct wp_commit_timer_v1 *commit_timer;
|
||||
+ struct wp_linux_drm_syncobj_surface_v1 *wl_syncobj_surface;
|
||||
|
||||
struct wl_callback *frame;
|
||||
|
||||
@@ -256,6 +253,8 @@ struct wsi_wl_swapchain {
|
||||
} present_ids;
|
||||
|
||||
struct {
|
||||
+ struct wp_color_management_surface_v1 *color_surface;
|
||||
+ int color_surface_refcount;
|
||||
VkColorSpaceKHR colorspace;
|
||||
VkHdrMetadataEXT hdr_metadata;
|
||||
bool has_hdr_metadata;
|
||||
@@ -1154,22 +1153,23 @@ needs_color_surface(struct wsi_wl_display *display, VkColorSpaceKHR colorspace)
|
||||
}
|
||||
|
||||
static void
|
||||
-wsi_wl_surface_add_color_refcount(struct wsi_wl_surface *wsi_surface)
|
||||
+wsi_wl_swapchain_add_color_refcount(struct wsi_wl_swapchain *wsi_swapchain)
|
||||
{
|
||||
- wsi_surface->color.color_surface_refcount++;
|
||||
- if (wsi_surface->color.color_surface_refcount == 1) {
|
||||
- wsi_surface->color.color_surface =
|
||||
+ const struct wsi_wl_surface *wsi_surface = wsi_swapchain->wsi_wl_surface;
|
||||
+ wsi_swapchain->color.color_surface_refcount++;
|
||||
+ if (wsi_swapchain->color.color_surface_refcount == 1) {
|
||||
+ wsi_swapchain->color.color_surface =
|
||||
wp_color_manager_v1_get_surface(wsi_surface->display->color_manager, wsi_surface->surface);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
-wsi_wl_surface_remove_color_refcount(struct wsi_wl_surface *wsi_surface)
|
||||
+wsi_wl_swapchain_remove_color_refcount(struct wsi_wl_swapchain *wsi_swapchain)
|
||||
{
|
||||
- wsi_surface->color.color_surface_refcount--;
|
||||
- if (wsi_surface->color.color_surface_refcount == 0) {
|
||||
- wp_color_management_surface_v1_destroy(wsi_surface->color.color_surface);
|
||||
- wsi_surface->color.color_surface = NULL;
|
||||
+ wsi_swapchain->color.color_surface_refcount--;
|
||||
+ if (wsi_swapchain->color.color_surface_refcount == 0) {
|
||||
+ wp_color_management_surface_v1_destroy(wsi_swapchain->color.color_surface);
|
||||
+ wsi_swapchain->color.color_surface = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1237,14 +1237,14 @@ wsi_wl_swapchain_update_colorspace(struct wsi_wl_swapchain *chain)
|
||||
}
|
||||
}
|
||||
|
||||
- bool new_color_surface = !surface->color.color_surface;
|
||||
+ bool new_color_surface = !chain->color.color_surface;
|
||||
bool needs_color_surface_new = needs_color_surface(display, chain->color.colorspace);
|
||||
- bool needs_color_surface_old = surface->color.color_surface &&
|
||||
- needs_color_surface(display, surface->color.colorspace);
|
||||
- if (!needs_color_surface_old && needs_color_surface_new) {
|
||||
- wsi_wl_surface_add_color_refcount(surface);
|
||||
+ bool needs_color_surface_old = chain->color.color_surface &&
|
||||
+ needs_color_surface(display, chain->color.colorspace);
|
||||
+ if ((new_color_surface || !needs_color_surface_old) && needs_color_surface_new) {
|
||||
+ wsi_wl_swapchain_add_color_refcount(chain);
|
||||
} else if (needs_color_surface_old && !needs_color_surface_new) {
|
||||
- wsi_wl_surface_remove_color_refcount(surface);
|
||||
+ wsi_wl_swapchain_remove_color_refcount(chain);
|
||||
}
|
||||
|
||||
struct wayland_hdr_metadata wayland_hdr_metadata = {
|
||||
@@ -1350,7 +1350,7 @@ wsi_wl_swapchain_update_colorspace(struct wsi_wl_swapchain *chain)
|
||||
}
|
||||
}
|
||||
|
||||
- wp_color_management_surface_v1_set_image_description(chain->wsi_wl_surface->color.color_surface,
|
||||
+ wp_color_management_surface_v1_set_image_description(chain->color.color_surface,
|
||||
image_desc,
|
||||
WP_COLOR_MANAGER_V1_RENDER_INTENT_PERCEPTUAL);
|
||||
wp_image_description_v1_destroy(image_desc);
|
||||
@@ -2026,18 +2026,12 @@ wsi_wl_surface_destroy(VkIcdSurfaceBase *icd_surface, VkInstance _instance,
|
||||
struct wsi_wl_surface *wsi_wl_surface =
|
||||
wl_container_of((VkIcdSurfaceWayland *)icd_surface, wsi_wl_surface, base);
|
||||
|
||||
- if (wsi_wl_surface->wl_syncobj_surface)
|
||||
- wp_linux_drm_syncobj_surface_v1_destroy(wsi_wl_surface->wl_syncobj_surface);
|
||||
-
|
||||
if (wsi_wl_surface->wl_dmabuf_feedback) {
|
||||
zwp_linux_dmabuf_feedback_v1_destroy(wsi_wl_surface->wl_dmabuf_feedback);
|
||||
dmabuf_feedback_fini(&wsi_wl_surface->dmabuf_feedback);
|
||||
dmabuf_feedback_fini(&wsi_wl_surface->pending_dmabuf_feedback);
|
||||
}
|
||||
|
||||
- if (wsi_wl_surface->color.color_surface)
|
||||
- wp_color_management_surface_v1_destroy(wsi_wl_surface->color.color_surface);
|
||||
-
|
||||
if (wsi_wl_surface->surface)
|
||||
wl_proxy_wrapper_destroy(wsi_wl_surface->surface);
|
||||
|
||||
@@ -2315,15 +2309,6 @@ static VkResult wsi_wl_surface_init(struct wsi_wl_surface *wsi_wl_surface,
|
||||
wsi_wl_surface->display->queue);
|
||||
}
|
||||
|
||||
- if (wsi_wl_use_explicit_sync(wsi_wl_surface->display, wsi_device)) {
|
||||
- wsi_wl_surface->wl_syncobj_surface =
|
||||
- wp_linux_drm_syncobj_manager_v1_get_surface(wsi_wl_surface->display->wl_syncobj,
|
||||
- wsi_wl_surface->surface);
|
||||
-
|
||||
- if (!wsi_wl_surface->wl_syncobj_surface)
|
||||
- goto fail;
|
||||
- }
|
||||
-
|
||||
wsi_wl_surface_analytics_init(wsi_wl_surface, pAllocator);
|
||||
|
||||
return VK_SUCCESS;
|
||||
@@ -3005,11 +2990,11 @@ wsi_wl_swapchain_queue_present(struct wsi_swapchain *wsi_chain,
|
||||
/* Incremented by signal in base queue_present. */
|
||||
uint64_t acquire_point = image->base.explicit_sync[WSI_ES_ACQUIRE].timeline;
|
||||
uint64_t release_point = image->base.explicit_sync[WSI_ES_RELEASE].timeline;
|
||||
- wp_linux_drm_syncobj_surface_v1_set_acquire_point(wsi_wl_surface->wl_syncobj_surface,
|
||||
+ wp_linux_drm_syncobj_surface_v1_set_acquire_point(chain->wl_syncobj_surface,
|
||||
image->wl_syncobj_timeline[WSI_ES_ACQUIRE],
|
||||
(uint32_t)(acquire_point >> 32),
|
||||
(uint32_t)(acquire_point & 0xffffffff));
|
||||
- wp_linux_drm_syncobj_surface_v1_set_release_point(wsi_wl_surface->wl_syncobj_surface,
|
||||
+ wp_linux_drm_syncobj_surface_v1_set_release_point(chain->wl_syncobj_surface,
|
||||
image->wl_syncobj_timeline[WSI_ES_RELEASE],
|
||||
(uint32_t)(release_point >> 32),
|
||||
(uint32_t)(release_point & 0xffffffff));
|
||||
@@ -3352,9 +3337,10 @@ wsi_wl_swapchain_chain_free(struct wsi_wl_swapchain *chain,
|
||||
wl_callback_destroy(chain->frame);
|
||||
if (chain->tearing_control)
|
||||
wp_tearing_control_v1_destroy(chain->tearing_control);
|
||||
- if (needs_color_surface(wsi_wl_surface->display, chain->color.colorspace) &&
|
||||
- wsi_wl_surface->color.color_surface) {
|
||||
- wsi_wl_surface_remove_color_refcount(wsi_wl_surface);
|
||||
+ if (chain->wl_syncobj_surface)
|
||||
+ wp_linux_drm_syncobj_surface_v1_destroy(chain->wl_syncobj_surface);
|
||||
+ if (chain->color.color_surface) {
|
||||
+ wp_color_management_surface_v1_destroy(chain->color.color_surface);
|
||||
}
|
||||
|
||||
/* Only unregister if we are the non-retired swapchain, or
|
||||
@@ -3472,6 +3458,15 @@ wsi_wl_surface_create_swapchain(VkIcdSurfaceBase *icd_surface,
|
||||
wp_commit_timer_v1_destroy(old_chain->commit_timer);
|
||||
old_chain->commit_timer = NULL;
|
||||
}
|
||||
+ if (old_chain->wl_syncobj_surface) {
|
||||
+ wp_linux_drm_syncobj_surface_v1_destroy(old_chain->wl_syncobj_surface);
|
||||
+ old_chain->wl_syncobj_surface = NULL;
|
||||
+ }
|
||||
+ if (old_chain->color.color_surface) {
|
||||
+ wp_color_management_surface_v1_destroy(old_chain->color.color_surface);
|
||||
+ old_chain->color.color_surface_refcount = 0;
|
||||
+ old_chain->color.color_surface = NULL;
|
||||
+ }
|
||||
}
|
||||
|
||||
/* Take ownership of the wsi_wl_surface */
|
||||
@@ -3520,6 +3515,15 @@ wsi_wl_surface_create_swapchain(VkIcdSurfaceBase *icd_surface,
|
||||
WP_TEARING_CONTROL_V1_PRESENTATION_HINT_ASYNC);
|
||||
}
|
||||
|
||||
+ if (wsi_wl_use_explicit_sync(wsi_wl_surface->display, wsi_device)) {
|
||||
+ chain->wl_syncobj_surface =
|
||||
+ wp_linux_drm_syncobj_manager_v1_get_surface(wsi_wl_surface->display->wl_syncobj,
|
||||
+ wsi_wl_surface->surface);
|
||||
+
|
||||
+ if (!chain->wl_syncobj_surface)
|
||||
+ goto fail;
|
||||
+ }
|
||||
+
|
||||
chain->color.colorspace = pCreateInfo->imageColorSpace;
|
||||
|
||||
enum wsi_wl_buffer_type buffer_type;
|
||||
--
|
||||
2.49.0
|
||||
|
||||
|
||||
+71
-4
@@ -12,6 +12,7 @@
|
||||
%if !0%{?rhel}
|
||||
%global with_r300 1
|
||||
%global with_r600 1
|
||||
%global with_nine 1
|
||||
%if 0%{?with_vulkan_hw}
|
||||
%global with_nvk %{with_vulkan_hw}
|
||||
%endif
|
||||
@@ -29,6 +30,7 @@
|
||||
%ifarch %{ix86} x86_64
|
||||
%global with_crocus 1
|
||||
%global with_iris 1
|
||||
%global with_xa 1
|
||||
%global with_intel_clc 1
|
||||
%global intel_platform_vulkan %{?with_vulkan_hw:,intel,intel_hasvk}%{!?with_vulkan_hw:%{nil}}
|
||||
%if !0%{?rhel}
|
||||
@@ -54,6 +56,7 @@
|
||||
%global with_freedreno 1
|
||||
%global with_kmsro 1
|
||||
%global with_panfrost 1
|
||||
%global with_xa 1
|
||||
%if 0%{?with_asahi}
|
||||
%global asahi_platform_vulkan %{?with_vulkan_hw:,asahi}%{!?with_vulkan_hw:%{nil}}
|
||||
%endif
|
||||
@@ -80,8 +83,8 @@ Summary: Mesa graphics libraries
|
||||
# This should not break anything by default as the Mesa stream is ***EXPLICITLY***
|
||||
# disabled by default, and has to be enabled manually. See `terra/release/terra-mesa.repo` for details.
|
||||
Epoch: 1
|
||||
Version: 25.2.0
|
||||
Release: 1%?dist
|
||||
Version: 25.1.7
|
||||
Release: 2%?dist
|
||||
License: MIT AND BSD-3-Clause AND SGI-B-2.0
|
||||
URL: http://www.mesa3d.org
|
||||
|
||||
@@ -173,7 +176,6 @@ BuildRequires: (crate(proc-macro2) >= 1.0.56 with crate(proc-macro2) < 2)
|
||||
BuildRequires: (crate(quote) >= 1.0.25 with crate(quote) < 2)
|
||||
BuildRequires: (crate(syn/clone-impls) >= 2.0.15 with crate(syn/clone-impls) < 3)
|
||||
BuildRequires: (crate(unicode-ident) >= 1.0.6 with crate(unicode-ident) < 2)
|
||||
BuildRequires: (crate(rustc-hash) >= 2.1.1 with crate(rustc-hash) < 3)
|
||||
%endif
|
||||
%if %{with valgrind}
|
||||
BuildRequires: pkgconfig(valgrind)
|
||||
@@ -299,6 +301,25 @@ Provides: libgbm-devel%{?_isa}
|
||||
%description libgbm-devel
|
||||
%{summary}.
|
||||
|
||||
%if 0%{?with_xa}
|
||||
%package libxatracker
|
||||
Summary: Mesa XA state tracker
|
||||
Provides: libxatracker
|
||||
Provides: libxatracker%{?_isa}
|
||||
|
||||
%description libxatracker
|
||||
%{summary}.
|
||||
|
||||
%package libxatracker-devel
|
||||
Summary: Mesa XA state tracker development package
|
||||
Requires: %{name}-libxatracker%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release}
|
||||
Provides: libxatracker-devel
|
||||
Provides: libxatracker-devel%{?_isa}
|
||||
|
||||
%description libxatracker-devel
|
||||
%{summary}.
|
||||
%endif
|
||||
|
||||
%if 0%{?with_opencl}
|
||||
%package libOpenCL
|
||||
Summary: Mesa OpenCL runtime library
|
||||
@@ -326,6 +347,21 @@ Summary: Mesa TensorFlow Lite delegate
|
||||
%{summary}.
|
||||
%endif
|
||||
|
||||
%if 0%{?with_nine}
|
||||
%package libd3d
|
||||
Summary: Mesa Direct3D9 state tracker
|
||||
|
||||
%description libd3d
|
||||
%{summary}.
|
||||
|
||||
%package libd3d-devel
|
||||
Summary: Mesa Direct3D9 state tracker development package
|
||||
Requires: %{name}-libd3d%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release}
|
||||
|
||||
%description libd3d-devel
|
||||
%{summary}.
|
||||
%endif
|
||||
|
||||
%package vulkan-drivers
|
||||
Summary: Mesa Vulkan drivers
|
||||
Requires: vulkan%{_isa}
|
||||
@@ -363,7 +399,7 @@ export MESON_PACKAGE_CACHE_DIR="%{cargo_registry}/"
|
||||
|
||||
%meson \
|
||||
-Dplatforms=x11,wayland \
|
||||
-Dgallium-mediafoundation=disabled \
|
||||
-Dosmesa=true \
|
||||
%if 0%{?with_hardware}
|
||||
-Dgallium-drivers=llvmpipe,virgl,nouveau%{?with_r300:,r300}%{?with_crocus:,crocus}%{?with_i915:,i915}%{?with_iris:,iris}%{?with_vmware:,svga}%{?with_radeonsi:,radeonsi}%{?with_r600:,r600}%{?with_asahi:,asahi}%{?with_freedreno:,freedreno}%{?with_etnaviv:,etnaviv}%{?with_tegra:,tegra}%{?with_vc4:,vc4}%{?with_v3d:,v3d}%{?with_lima:,lima}%{?with_panfrost:,panfrost}%{?with_vulkan_hw:,zink}%{?with_d3d12:,d3d12} \
|
||||
%else
|
||||
@@ -371,10 +407,13 @@ export MESON_PACKAGE_CACHE_DIR="%{cargo_registry}/"
|
||||
%endif
|
||||
-Dgallium-vdpau=%{?with_vdpau:enabled}%{!?with_vdpau:disabled} \
|
||||
-Dgallium-va=%{?with_va:enabled}%{!?with_va:disabled} \
|
||||
-Dgallium-xa=%{?with_xa:enabled}%{!?with_xa:disabled} \
|
||||
-Dgallium-nine=%{?with_nine:true}%{!?with_nine:false} \
|
||||
-Dteflon=%{?with_teflon:true}%{!?with_teflon:false} \
|
||||
-Dgallium-opencl=%{?with_opencl:icd}%{!?with_opencl:disabled} \
|
||||
%if 0%{?with_opencl}
|
||||
-Dgallium-rusticl=true \
|
||||
-Dgallium-opencl=disabled \
|
||||
%endif
|
||||
-Dvulkan-drivers=%{?vulkan_drivers} \
|
||||
-Dvulkan-layers=device-select \
|
||||
@@ -469,6 +508,23 @@ popd
|
||||
%{_includedir}/gbm_backend_abi.h
|
||||
%{_libdir}/pkgconfig/gbm.pc
|
||||
|
||||
%if 0%{?with_xa}
|
||||
%files libxatracker
|
||||
%if 0%{?with_hardware}
|
||||
%{_libdir}/libxatracker.so.2
|
||||
%{_libdir}/libxatracker.so.2.*
|
||||
%endif
|
||||
|
||||
%files libxatracker-devel
|
||||
%if 0%{?with_hardware}
|
||||
%{_libdir}/libxatracker.so
|
||||
%{_includedir}/xa_tracker.h
|
||||
%{_includedir}/xa_composite.h
|
||||
%{_includedir}/xa_context.h
|
||||
%{_libdir}/pkgconfig/xatracker.pc
|
||||
%endif
|
||||
%endif
|
||||
|
||||
%if 0%{?with_teflon}
|
||||
%files libTeflon
|
||||
%{_libdir}/libteflon.so
|
||||
@@ -486,6 +542,17 @@ popd
|
||||
%{_libdir}/libRusticlOpenCL.so
|
||||
%endif
|
||||
|
||||
%if 0%{?with_nine}
|
||||
%files libd3d
|
||||
%dir %{_libdir}/d3d/
|
||||
%{_libdir}/d3d/*.so.*
|
||||
|
||||
%files libd3d-devel
|
||||
%{_libdir}/pkgconfig/d3d.pc
|
||||
%{_includedir}/d3dadapter/
|
||||
%{_libdir}/d3d/*.so
|
||||
%endif
|
||||
|
||||
%files dri-drivers
|
||||
%{_datadir}/drirc.d/00-mesa-defaults.conf
|
||||
%{_libdir}/libgallium-*.so
|
||||
|
||||
Reference in New Issue
Block a user