summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorxXJSONDeruloXx <danielhimebauch@gmail.com>2025-09-16 20:12:27 -0400
committerxXJSONDeruloXx <danielhimebauch@gmail.com>2025-09-16 20:12:27 -0400
commit08dd3c3d6dba652fd678941286bb9c0132dd9522 (patch)
tree1777d18399d72c89c070ebf3785ba327723ccf92 /src
parent86e95630b43a27e3e90268849432d11839303a81 (diff)
downloaddecky-lsfg-vk-08dd3c3d6dba652fd678941286bb9c0132dd9522.tar.gz
decky-lsfg-vk-08dd3c3d6dba652fd678941286bb9c0132dd9522.zip
feat: add enable zink toggle for openGL compat
Diffstat (limited to 'src')
-rw-r--r--src/components/ConfigurationSection.tsx11
-rw-r--r--src/config/configSchema.ts2
-rw-r--r--src/config/generatedConfigSchema.ts10
3 files changed, 21 insertions, 2 deletions
diff --git a/src/components/ConfigurationSection.tsx b/src/components/ConfigurationSection.tsx
index 094cb02..9afc650 100644
--- a/src/components/ConfigurationSection.tsx
+++ b/src/components/ConfigurationSection.tsx
@@ -6,7 +6,7 @@ import { FpsMultiplierControl } from "./FpsMultiplierControl";
import {
NO_FP16, FLOW_SCALE, PERFORMANCE_MODE, HDR_MODE,
EXPERIMENTAL_PRESENT_MODE, DXVK_FRAME_RATE, DISABLE_STEAMDECK_MODE,
- MANGOHUD_WORKAROUND, DISABLE_VKBASALT, FORCE_ENABLE_VKBASALT, ENABLE_WSI
+ MANGOHUD_WORKAROUND, DISABLE_VKBASALT, FORCE_ENABLE_VKBASALT, ENABLE_WSI, ENABLE_ZINK
} from "../config/generatedConfigSchema";
interface ConfigurationSectionProps {
@@ -221,6 +221,15 @@ export function ConfigurationSection({
}}
/>
</PanelSectionRow>
+
+ <PanelSectionRow>
+ <ToggleField
+ label="Enable Zink for OpenGL Games"
+ description="Use Vulkan-based OpenGL implementation for OpenGL games (may cause crashes or freezes with some games)"
+ checked={config.enable_zink}
+ onChange={(value) => onConfigChange(ENABLE_ZINK, value)}
+ />
+ </PanelSectionRow>
</>
)}
</>
diff --git a/src/config/configSchema.ts b/src/config/configSchema.ts
index b6ed9bb..d7da4f5 100644
--- a/src/config/configSchema.ts
+++ b/src/config/configSchema.ts
@@ -23,7 +23,7 @@ export {
DLL, NO_FP16, MULTIPLIER, FLOW_SCALE, PERFORMANCE_MODE, HDR_MODE,
EXPERIMENTAL_PRESENT_MODE, DXVK_FRAME_RATE, ENABLE_WOW64,
DISABLE_STEAMDECK_MODE, MANGOHUD_WORKAROUND, DISABLE_VKBASALT,
- FORCE_ENABLE_VKBASALT, ENABLE_WSI
+ FORCE_ENABLE_VKBASALT, ENABLE_WSI, ENABLE_ZINK
} from './generatedConfigSchema';
/**
diff --git a/src/config/generatedConfigSchema.ts b/src/config/generatedConfigSchema.ts
index 9e61128..3c5d34e 100644
--- a/src/config/generatedConfigSchema.ts
+++ b/src/config/generatedConfigSchema.ts
@@ -22,6 +22,7 @@ export const MANGOHUD_WORKAROUND = "mangohud_workaround" as const;
export const DISABLE_VKBASALT = "disable_vkbasalt" as const;
export const FORCE_ENABLE_VKBASALT = "force_enable_vkbasalt" as const;
export const ENABLE_WSI = "enable_wsi" as const;
+export const ENABLE_ZINK = "enable_zink" as const;
// Configuration field definition
export interface ConfigField {
@@ -117,6 +118,12 @@ export const CONFIG_SCHEMA: Record<string, ConfigField> = {
default: false,
description: "Enable Gamescope WSI Layer, disable if frame generation isn't applying or isn't feeling smooth (use with HDR off)"
},
+ enable_zink: {
+ name: "enable_zink",
+ fieldType: ConfigFieldType.BOOLEAN,
+ default: false,
+ description: "Enable Zink (Vulkan-based OpenGL implementation) for OpenGL games"
+ },
};
// Type-safe configuration data structure
@@ -135,6 +142,7 @@ export interface ConfigurationData {
disable_vkbasalt: boolean;
force_enable_vkbasalt: boolean;
enable_wsi: boolean;
+ enable_zink: boolean;
}
// Helper functions
@@ -158,6 +166,7 @@ export function getDefaults(): ConfigurationData {
disable_vkbasalt: false,
force_enable_vkbasalt: false,
enable_wsi: false,
+ enable_zink: false,
};
}
@@ -177,6 +186,7 @@ export function getFieldTypes(): Record<string, ConfigFieldType> {
disable_vkbasalt: ConfigFieldType.BOOLEAN,
force_enable_vkbasalt: ConfigFieldType.BOOLEAN,
enable_wsi: ConfigFieldType.BOOLEAN,
+ enable_zink: ConfigFieldType.BOOLEAN,
};
}