mirror of
https://github.com/terrapkg/packages.git
synced 2026-06-01 01:21:57 +00:00
274 lines
9.5 KiB
Diff
274 lines
9.5 KiB
Diff
From aac6b04f39717f7363071f5500a89bb33e01cb33 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/9] [BEGIN] SteamOS Changes
|
|
|
|
--
|
|
2.49.0
|
|
|
|
|
|
From 9fc35e8c53fe7e6c84b7da9ddff3d528f22ea4a9 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/9] 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.
|
|
---
|
|
src/util/00-radv-defaults.conf | 4 ++++
|
|
1 file changed, 4 insertions(+)
|
|
|
|
diff --git a/src/util/00-radv-defaults.conf b/src/util/00-radv-defaults.conf
|
|
index aef8b9006cd..2a6b0ec84a4 100644
|
|
--- a/src/util/00-radv-defaults.conf
|
|
+++ b/src/util/00-radv-defaults.conf
|
|
@@ -223,5 +223,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>
|
|
+
|
|
+ <application name="Forza Horizon 5" application_name_match="ForzaHorizon5.exe">
|
|
+ <option name="vk_x11_override_min_image_count" value="4" />
|
|
+ </application>
|
|
</device>
|
|
</driconf>
|
|
--
|
|
2.49.0
|
|
|
|
|
|
From 09299a2cf516078ce9ed9786a49ea6f957ac6527 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/9] 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.
|
|
|
|
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
|
|
---
|
|
.../frontends/dri/loader_dri3_helper.c | 42 ++++++++++++++++++-
|
|
.../frontends/dri/loader_dri3_helper.h | 1 +
|
|
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 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)
|
|
}
|
|
}
|
|
|
|
+static unsigned
|
|
+gamescope_swapchain_override()
|
|
+{
|
|
+ const char *path = getenv("GAMESCOPE_LIMITER_FILE");
|
|
+ if (!path)
|
|
+ return 0;
|
|
+
|
|
+ static simple_mtx_t mtx = SIMPLE_MTX_INITIALIZER;
|
|
+ static int fd = -1;
|
|
+
|
|
+ simple_mtx_lock(&mtx);
|
|
+ if (fd < 0) {
|
|
+ fd = open(path, O_RDONLY);
|
|
+ }
|
|
+ simple_mtx_unlock(&mtx);
|
|
+
|
|
+ if (fd < 0)
|
|
+ return 0;
|
|
+
|
|
+ uint32_t override_value = 0;
|
|
+ pread(fd, &override_value, sizeof(override_value), 0);
|
|
+ return override_value;
|
|
+}
|
|
+
|
|
void
|
|
loader_dri3_set_swap_interval(struct loader_dri3_drawable *draw, int interval)
|
|
{
|
|
@@ -311,10 +335,12 @@ loader_dri3_set_swap_interval(struct loader_dri3_drawable *draw, int interval)
|
|
* PS. changing from value A to B and A < B won't cause swap out of order but
|
|
* may still gets wrong target_msc value at the beginning.
|
|
*/
|
|
- if (draw->swap_interval != interval)
|
|
+ if (draw->orig_swap_interval != interval)
|
|
loader_dri3_swapbuffer_barrier(draw);
|
|
|
|
- draw->swap_interval = interval;
|
|
+ draw->orig_swap_interval = interval;
|
|
+ if (gamescope_swapchain_override() != 1)
|
|
+ draw->swap_interval = interval;
|
|
}
|
|
|
|
static void
|
|
@@ -443,6 +469,12 @@ loader_dri3_drawable_init(xcb_connection_t *conn,
|
|
|
|
draw->swap_interval = dri_get_initial_swap_interval(draw->dri_screen_render_gpu);
|
|
|
|
+ draw->orig_swap_interval = draw->swap_interval;
|
|
+
|
|
+ unsigned gamescope_override = gamescope_swapchain_override();
|
|
+ if (gamescope_override == 1)
|
|
+ draw->swap_interval = 1;
|
|
+
|
|
dri3_update_max_num_back(draw);
|
|
|
|
/* Create a new drawable */
|
|
@@ -1085,6 +1117,12 @@ loader_dri3_swap_buffers_msc(struct loader_dri3_drawable *draw,
|
|
if (draw->type == LOADER_DRI3_DRAWABLE_WINDOW) {
|
|
dri3_fence_reset(draw->conn, back);
|
|
|
|
+ unsigned gamescope_override = gamescope_swapchain_override();
|
|
+ if (gamescope_override == 1)
|
|
+ draw->swap_interval = 1;
|
|
+ else
|
|
+ draw->swap_interval = draw->orig_swap_interval;
|
|
+
|
|
/* Compute when we want the frame shown by taking the last known
|
|
* 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 4da19d73090..819a0e548fc 100644
|
|
--- a/src/gallium/frontends/dri/loader_dri3_helper.h
|
|
+++ b/src/gallium/frontends/dri/loader_dri3_helper.h
|
|
@@ -170,6 +170,7 @@ struct loader_dri3_drawable {
|
|
bool block_on_depleted_buffers;
|
|
bool queries_buffer_age;
|
|
int swap_interval;
|
|
+ int orig_swap_interval;
|
|
|
|
const struct loader_dri3_vtable *vtable;
|
|
|
|
--
|
|
2.49.0
|
|
|
|
|
|
From d89154279b50afa429848b84624530f9e8771853 Mon Sep 17 00:00:00 2001
|
|
From: Kyle Gospodnetich <me@kylegospodneti.ch>
|
|
Date: Sun, 11 May 2025 13:30:57 -0700
|
|
Subject: [PATCH 4/9] STEAMOS: Fixes for DOOM: The Dark Ages
|
|
|
|
---
|
|
src/util/00-radv-defaults.conf | 7 +++++++
|
|
1 file changed, 7 insertions(+)
|
|
|
|
diff --git a/src/util/00-radv-defaults.conf b/src/util/00-radv-defaults.conf
|
|
index 2a6b0ec84a4..b28d9215b59 100644
|
|
--- a/src/util/00-radv-defaults.conf
|
|
+++ b/src/util/00-radv-defaults.conf
|
|
@@ -123,6 +123,13 @@ Application bugs worked around in this file:
|
|
<option name="radv_invariant_geom" value="true" />
|
|
</application>
|
|
|
|
+ <application name="DOOM: The Dark Ages" application_name_match="DOOMTheDarkAges">
|
|
+ <option name="radv_force_64k_sparse_alignment" value="true" />
|
|
+ <option name="radv_zero_vram" value="true" />
|
|
+ <option name="radv_legacy_sparse_binding" value="true" />
|
|
+ <option name="radv_disable_dcc_stores" value="true" />
|
|
+ </application>
|
|
+
|
|
<application name="Wolfenstein II" application_name_match="Wolfenstein II The New Colossus">
|
|
<option name="radv_disable_dcc" value="true" />
|
|
</application>
|
|
--
|
|
2.49.0
|
|
|
|
|
|
From 614a06238ee1219c1dd2bbcb5cca6b3ab4bc574c Mon Sep 17 00:00:00 2001
|
|
From: Antheas Kapenekakis <git@antheas.dev>
|
|
Date: Sat, 15 Mar 2025 16:39:25 +0100
|
|
Subject: [PATCH 5/9] [BEGIN] SteamOS Backports
|
|
|
|
--
|
|
2.49.0
|
|
|
|
|
|
From 5177e8134f047f38d2fe1e0f3608323d02db3cc2 Mon Sep 17 00:00:00 2001
|
|
From: Antheas Kapenekakis <git@antheas.dev>
|
|
Date: Sat, 15 Mar 2025 16:39:33 +0100
|
|
Subject: [PATCH 6/9] [BEGIN] Our Mesa backports
|
|
|
|
--
|
|
2.49.0
|
|
|
|
|
|
From 045d4757aaf29dcb8ed4d81f575e331a017317ed 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 7/9] 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 d08d3f395ecfa666763f7a8dac0543c52325294c Mon Sep 17 00:00:00 2001
|
|
From: Antheas Kapenekakis <git@antheas.dev>
|
|
Date: Mon, 24 Mar 2025 19:50:51 +0100
|
|
Subject: [PATCH 8/9] Revert "winsys/amdgpu: use VM_ALWAYS_VALID for all VRAM
|
|
and GTT allocations"
|
|
|
|
This reverts commit 8c91624614c1f939974fe0d2d1a3baf83335cecb.
|
|
|
|
Messes with AutoVRAM, who would have thought?
|
|
---
|
|
src/gallium/winsys/amdgpu/drm/amdgpu_bo.c | 5 -----
|
|
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 dfefc468bca..cc0719a1898 100644
|
|
--- a/src/gallium/winsys/amdgpu/drm/amdgpu_bo.c
|
|
+++ b/src/gallium/winsys/amdgpu/drm/amdgpu_bo.c
|
|
@@ -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_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;
|
|
-
|
|
if (flags & RADEON_FLAG_DISCARDABLE &&
|
|
aws->info.drm_minor >= 47)
|
|
request.flags |= AMDGPU_GEM_CREATE_DISCARDABLE;
|
|
--
|
|
2.49.0
|
|
|
|
|
|
From 54cf223f100a114680f51f43f5dfc632eeeefb3b Mon Sep 17 00:00:00 2001
|
|
From: Antheas Kapenekakis <git@antheas.dev>
|
|
Date: Wed, 7 May 2025 18:50:48 +0200
|
|
Subject: [PATCH 9/9] [BEGIN] Intel DX12 fix
|
|
|
|
--
|
|
2.49.0
|
|
|