diff options
| author | xXJSONDeruloXx <danielhimebauch@gmail.com> | 2025-09-16 20:12:27 -0400 |
|---|---|---|
| committer | xXJSONDeruloXx <danielhimebauch@gmail.com> | 2025-09-16 20:12:27 -0400 |
| commit | 08dd3c3d6dba652fd678941286bb9c0132dd9522 (patch) | |
| tree | 1777d18399d72c89c070ebf3785ba327723ccf92 /src | |
| parent | 86e95630b43a27e3e90268849432d11839303a81 (diff) | |
| download | decky-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.tsx | 11 | ||||
| -rw-r--r-- | src/config/configSchema.ts | 2 | ||||
| -rw-r--r-- | src/config/generatedConfigSchema.ts | 10 |
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, }; } |
