mirror of
https://github.com/ublue-os/bazzite.git
synced 2025-02-21 00:40:01 +00:00
55 lines
2.1 KiB
Diff
55 lines
2.1 KiB
Diff
From 4da5c0a60ece2955cd60166ad0f93c93b0871723 Mon Sep 17 00:00:00 2001
|
|
From: brainantifreeze <you@example.com>
|
|
Date: Thu, 19 Dec 2024 09:16:15 +0000
|
|
Subject: [PATCH] add layer env var to hide present wait ext
|
|
|
|
---
|
|
layer/VkLayer_FROG_gamescope_wsi.cpp | 20 +++++++++++++++++++-
|
|
1 file changed, 19 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/layer/VkLayer_FROG_gamescope_wsi.cpp b/layer/VkLayer_FROG_gamescope_wsi.cpp
|
|
index 718a2604f3..f33da7f22f 100644
|
|
--- a/layer/VkLayer_FROG_gamescope_wsi.cpp
|
|
+++ b/layer/VkLayer_FROG_gamescope_wsi.cpp
|
|
@@ -496,7 +496,11 @@ namespace GamescopeWSILayer {
|
|
createInfo.ppEnabledExtensionNames = enabledExts.data();
|
|
|
|
setenv("vk_xwayland_wait_ready", "false", 0);
|
|
- setenv("vk_khr_present_wait", "true", 0);
|
|
+ if (getHidePresentWait()) {
|
|
+ setenv("vk_khr_present_wait", "false", 0);
|
|
+ } else {
|
|
+ setenv("vk_khr_present_wait", "true", 0);
|
|
+ }
|
|
|
|
VkResult result = pfnCreateInstanceProc(&createInfo, pAllocator, pInstance);
|
|
if (result != VK_SUCCESS)
|
|
@@ -801,6 +805,10 @@ namespace GamescopeWSILayer {
|
|
const vkroots::VkInstanceDispatch* pDispatch,
|
|
VkPhysicalDevice physicalDevice,
|
|
VkPhysicalDeviceFeatures2* pFeatures) {
|
|
+ if (getHidePresentWait()) {
|
|
+ fprintf(stderr, "[Gamescope WSI] Removing VkPhysicalDevicePresentWaitFeaturesKHR because GAMESCOPE_WSI_HIDE_PRESENT_WAIT_EXT is set\n");
|
|
+ vkroots::RemoveFromChain<VkPhysicalDevicePresentWaitFeaturesKHR>(pFeatures);
|
|
+ }
|
|
pDispatch->GetPhysicalDeviceFeatures2(physicalDevice, pFeatures);
|
|
}
|
|
|
|
@@ -1015,6 +1023,16 @@ namespace GamescopeWSILayer {
|
|
return value;
|
|
}
|
|
|
|
+ static bool getHidePresentWait() {
|
|
+ static bool s_hidePresentWait = []() -> bool {
|
|
+ if (auto hide = parseEnv<uint32_t>("GAMESCOPE_WSI_HIDE_PRESENT_WAIT_EXT")) {
|
|
+ return *hide == 1;
|
|
+ }
|
|
+ return false;
|
|
+ }();
|
|
+ return s_hidePresentWait;
|
|
+ }
|
|
+
|
|
static uint32_t getMinImageCount() {
|
|
static uint32_t s_minImageCount = []() -> uint32_t {
|
|
if (auto minCount = parseEnv<uint32_t>("GAMESCOPE_WSI_MIN_IMAGE_COUNT")) {
|