summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--py_modules/lsfg_vk/config_schema_generated.py28
-rw-r--r--py_modules/lsfg_vk/configuration_helpers_generated.py2
-rw-r--r--scripts/generate_python_boilerplate.py8
-rw-r--r--shared_config.py16
-rw-r--r--src/components/ConfigurationSection.tsx22
-rw-r--r--src/config/configSchema.ts5
-rw-r--r--src/config/generatedConfigSchema.ts30
7 files changed, 87 insertions, 24 deletions
diff --git a/py_modules/lsfg_vk/config_schema_generated.py b/py_modules/lsfg_vk/config_schema_generated.py
index a406efd..ef49599 100644
--- a/py_modules/lsfg_vk/config_schema_generated.py
+++ b/py_modules/lsfg_vk/config_schema_generated.py
@@ -16,7 +16,6 @@ from shared_config import CONFIG_SCHEMA_DEF, ConfigFieldType
DLL = "dll"
MULTIPLIER = "multiplier"
FLOW_SCALE = "flow_scale"
-TARGET_TOTAL_FPS = "target_total_fps"
PERFORMANCE_MODE = "performance_mode"
HDR_MODE = "hdr_mode"
EXPERIMENTAL_PRESENT_MODE = "experimental_present_mode"
@@ -25,6 +24,8 @@ ENABLE_WOW64 = "enable_wow64"
DISABLE_STEAMDECK_MODE = "disable_steamdeck_mode"
MANGOHUD_WORKAROUND = "mangohud_workaround"
DISABLE_VKBASALT = "disable_vkbasalt"
+FORCE_ENABLE_VKBASALT = "force_enable_vkbasalt"
+DEACTIVATE_WSI = "deactivate_wsi"
class ConfigurationData(TypedDict):
@@ -32,7 +33,6 @@ class ConfigurationData(TypedDict):
dll: str
multiplier: int
flow_scale: float
- target_total_fps: float
performance_mode: bool
hdr_mode: bool
experimental_present_mode: str
@@ -41,6 +41,8 @@ class ConfigurationData(TypedDict):
disable_steamdeck_mode: bool
mangohud_workaround: bool
disable_vkbasalt: bool
+ force_enable_vkbasalt: bool
+ deactivate_wsi: bool
def get_script_parsing_logic():
@@ -71,6 +73,10 @@ def get_script_parsing_logic():
script_values["mangohud_workaround"] = value == "1"
if key == "DISABLE_VKBASALT":
script_values["disable_vkbasalt"] = value == "1"
+ if key == "ENABLE_VKBASALT":
+ script_values["force_enable_vkbasalt"] = value == "1"
+ if key == "ENABLE_GAMESCOPE_WSI":
+ script_values["deactivate_wsi"] = value == "1"
return script_values
return parse_script_values
@@ -91,6 +97,10 @@ def get_script_generation_logic():
lines.append("export MANGOHUD=1")
if config.get("disable_vkbasalt", False):
lines.append("export DISABLE_VKBASALT=1")
+ if config.get("force_enable_vkbasalt", False):
+ lines.append("export ENABLE_VKBASALT=1")
+ if config.get("deactivate_wsi", False):
+ lines.append("export ENABLE_GAMESCOPE_WSI=0")
return lines
return generate_script_lines
@@ -100,7 +110,6 @@ def get_function_parameters() -> str:
return """dll: str = "/games/Lossless Scaling/Lossless.dll",
multiplier: int = 1,
flow_scale: float = 0.8,
- target_total_fps: float = 0.0,
performance_mode: bool = True,
hdr_mode: bool = False,
experimental_present_mode: str = "fifo",
@@ -108,7 +117,9 @@ def get_function_parameters() -> str:
enable_wow64: bool = False,
disable_steamdeck_mode: bool = False,
mangohud_workaround: bool = False,
- disable_vkbasalt: bool = False"""
+ disable_vkbasalt: bool = False,
+ force_enable_vkbasalt: bool = False,
+ deactivate_wsi: bool = False"""
def create_config_dict(**kwargs) -> ConfigurationData:
@@ -117,7 +128,6 @@ def create_config_dict(**kwargs) -> ConfigurationData:
"dll": kwargs.get("dll"),
"multiplier": kwargs.get("multiplier"),
"flow_scale": kwargs.get("flow_scale"),
- "target_total_fps": kwargs.get("target_total_fps"),
"performance_mode": kwargs.get("performance_mode"),
"hdr_mode": kwargs.get("hdr_mode"),
"experimental_present_mode": kwargs.get("experimental_present_mode"),
@@ -126,10 +136,12 @@ def create_config_dict(**kwargs) -> ConfigurationData:
"disable_steamdeck_mode": kwargs.get("disable_steamdeck_mode"),
"mangohud_workaround": kwargs.get("mangohud_workaround"),
"disable_vkbasalt": kwargs.get("disable_vkbasalt"),
+ "force_enable_vkbasalt": kwargs.get("force_enable_vkbasalt"),
+ "deactivate_wsi": kwargs.get("deactivate_wsi"),
})
# Field lists for dynamic operations
-TOML_FIELDS = ['dll', 'multiplier', 'flow_scale', 'target_total_fps', 'performance_mode', 'hdr_mode', 'experimental_present_mode']
-SCRIPT_FIELDS = ['dxvk_frame_rate', 'enable_wow64', 'disable_steamdeck_mode', 'mangohud_workaround', 'disable_vkbasalt']
-ALL_FIELDS = ['dll', 'multiplier', 'flow_scale', 'target_total_fps', 'performance_mode', 'hdr_mode', 'experimental_present_mode', 'dxvk_frame_rate', 'enable_wow64', 'disable_steamdeck_mode', 'mangohud_workaround', 'disable_vkbasalt']
+TOML_FIELDS = ['dll', 'multiplier', 'flow_scale', 'performance_mode', 'hdr_mode', 'experimental_present_mode']
+SCRIPT_FIELDS = ['dxvk_frame_rate', 'enable_wow64', 'disable_steamdeck_mode', 'mangohud_workaround', 'disable_vkbasalt', 'force_enable_vkbasalt', 'deactivate_wsi']
+ALL_FIELDS = ['dll', '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', 'deactivate_wsi']
diff --git a/py_modules/lsfg_vk/configuration_helpers_generated.py b/py_modules/lsfg_vk/configuration_helpers_generated.py
index bf44b36..d099cca 100644
--- a/py_modules/lsfg_vk/configuration_helpers_generated.py
+++ b/py_modules/lsfg_vk/configuration_helpers_generated.py
@@ -9,7 +9,7 @@ from .config_schema_generated import ConfigurationData, ALL_FIELDS
def log_configuration_update(logger, config: ConfigurationData) -> None:
"""Log configuration update with all field values"""
- logger.info(f"Updated lsfg TOML configuration: dll={config['dll']}, multiplier={config['multiplier']}, flow_scale={config['flow_scale']}, target_total_fps={config['target_total_fps']}, performance_mode={config['performance_mode']}, hdr_mode={config['hdr_mode']}, experimental_present_mode={config['experimental_present_mode']}, dxvk_frame_rate={config['dxvk_frame_rate']}, enable_wow64={config['enable_wow64']}, disable_steamdeck_mode={config['disable_steamdeck_mode']}, mangohud_workaround={config['mangohud_workaround']}, disable_vkbasalt={config['disable_vkbasalt']}")
+ logger.info(f"Updated lsfg TOML configuration: dll={config['dll']}, multiplier={config['multiplier']}, flow_scale={config['flow_scale']}, performance_mode={config['performance_mode']}, hdr_mode={config['hdr_mode']}, experimental_present_mode={config['experimental_present_mode']}, dxvk_frame_rate={config['dxvk_frame_rate']}, enable_wow64={config['enable_wow64']}, disable_steamdeck_mode={config['disable_steamdeck_mode']}, mangohud_workaround={config['mangohud_workaround']}, disable_vkbasalt={config['disable_vkbasalt']}, force_enable_vkbasalt={config['force_enable_vkbasalt']}, deactivate_wsi={config['deactivate_wsi']}")
def get_config_field_names() -> list[str]:
diff --git a/scripts/generate_python_boilerplate.py b/scripts/generate_python_boilerplate.py
index b16aa3f..3da39b6 100644
--- a/scripts/generate_python_boilerplate.py
+++ b/scripts/generate_python_boilerplate.py
@@ -34,7 +34,9 @@ def get_env_var_name(field_name: str) -> str:
"enable_wow64": "PROTON_USE_WOW64",
"disable_steamdeck_mode": "SteamDeck",
"mangohud_workaround": "MANGOHUD",
- "disable_vkbasalt": "DISABLE_VKBASALT"
+ "disable_vkbasalt": "DISABLE_VKBASALT",
+ "force_enable_vkbasalt": "ENABLE_VKBASALT",
+ "deactivate_wsi": "ENABLE_GAMESCOPE_WSI"
}
return env_map.get(field_name, field_name.upper())
@@ -145,6 +147,10 @@ def generate_script_generation() -> str:
# Special case: disable_steamdeck_mode=True should export SteamDeck=0
lines.append(f' if config.get("{field_name}", False):')
lines.append(f' lines.append("export {env_var}=0")')
+ elif field_name == "deactivate_wsi":
+ # Special case: deactivate_wsi=True should export ENABLE_GAMESCOPE_WSI=0
+ lines.append(f' if config.get("{field_name}", False):')
+ lines.append(f' lines.append("export {env_var}=0")')
else:
lines.append(f' if config.get("{field_name}", False):')
lines.append(f' lines.append("export {env_var}=1")')
diff --git a/shared_config.py b/shared_config.py
index 68c7b82..3f27491 100644
--- a/shared_config.py
+++ b/shared_config.py
@@ -106,6 +106,22 @@ CONFIG_SCHEMA_DEF = {
"default": False,
"description": "Disables vkBasalt layer which can conflict with LSFG (Reshade, some Decky plugins)",
"location": "script"
+ },
+
+ "force_enable_vkbasalt": {
+ "name": "force_enable_vkbasalt",
+ "fieldType": ConfigFieldType.BOOLEAN,
+ "default": False,
+ "description": "Force vkBasalt to engage to fix framepacing issues in gamemode",
+ "location": "script"
+ },
+
+ "deactivate_wsi": {
+ "name": "deactivate_wsi",
+ "fieldType": ConfigFieldType.BOOLEAN,
+ "default": False,
+ "description": "Deactivates Gamescope WSI Layer, use with HDR off, workaround if frame generation isn't applying or isn't feeling smooth",
+ "location": "script"
}
}
diff --git a/src/components/ConfigurationSection.tsx b/src/components/ConfigurationSection.tsx
index 01b0ba1..55a27d2 100644
--- a/src/components/ConfigurationSection.tsx
+++ b/src/components/ConfigurationSection.tsx
@@ -2,9 +2,9 @@ import { PanelSectionRow, ToggleField, SliderField, DropdownItem } from "@decky/
import { ConfigurationData } from "../config/configSchema";
import { FpsMultiplierControl } from "./FpsMultiplierControl";
import {
- FLOW_SCALE, TARGET_TOTAL_FPS, PERFORMANCE_MODE, HDR_MODE,
+ FLOW_SCALE, PERFORMANCE_MODE, HDR_MODE,
EXPERIMENTAL_PRESENT_MODE, DXVK_FRAME_RATE, DISABLE_STEAMDECK_MODE,
- MANGOHUD_WORKAROUND, DISABLE_VKBASALT
+ MANGOHUD_WORKAROUND, DISABLE_VKBASALT, FORCE_ENABLE_VKBASALT, DEACTIVATE_WSI
} from "../config/generatedConfigSchema";
interface ConfigurationSectionProps {
@@ -170,6 +170,24 @@ export function ConfigurationSection({
onChange={(value) => onConfigChange(DISABLE_VKBASALT, value)}
/>
</PanelSectionRow>
+
+ <PanelSectionRow>
+ <ToggleField
+ label="Force Enable vkBasalt"
+ description="Force vkBasalt to engage to fix framepacing issues in gamemode"
+ checked={config.force_enable_vkbasalt}
+ onChange={(value) => onConfigChange(FORCE_ENABLE_VKBASALT, value)}
+ />
+ </PanelSectionRow>
+
+ <PanelSectionRow>
+ <ToggleField
+ label="Deactivate WSI"
+ description="Deactivates Gamescope WSI Layer, use with HDR off, workaround if frame generation isn't applying or isn't feeling smooth"
+ checked={config.deactivate_wsi}
+ onChange={(value) => onConfigChange(DEACTIVATE_WSI, value)}
+ />
+ </PanelSectionRow>
</>
);
}
diff --git a/src/config/configSchema.ts b/src/config/configSchema.ts
index af36dec..0fe3d16 100644
--- a/src/config/configSchema.ts
+++ b/src/config/configSchema.ts
@@ -20,9 +20,10 @@ export {
getDefaults,
getFieldTypes,
// Field name constants for type-safe access
- DLL, MULTIPLIER, FLOW_SCALE, TARGET_TOTAL_FPS, PERFORMANCE_MODE, HDR_MODE,
+ DLL, MULTIPLIER, FLOW_SCALE, PERFORMANCE_MODE, HDR_MODE,
EXPERIMENTAL_PRESENT_MODE, DXVK_FRAME_RATE, ENABLE_WOW64,
- DISABLE_STEAMDECK_MODE, MANGOHUD_WORKAROUND, DISABLE_VKBASALT
+ DISABLE_STEAMDECK_MODE, MANGOHUD_WORKAROUND, DISABLE_VKBASALT,
+ FORCE_ENABLE_VKBASALT, DEACTIVATE_WSI
} from './generatedConfigSchema';
/**
diff --git a/src/config/generatedConfigSchema.ts b/src/config/generatedConfigSchema.ts
index a30474c..1ce08f4 100644
--- a/src/config/generatedConfigSchema.ts
+++ b/src/config/generatedConfigSchema.ts
@@ -11,7 +11,6 @@ export enum ConfigFieldType {
export const DLL = "dll" as const;
export const MULTIPLIER = "multiplier" as const;
export const FLOW_SCALE = "flow_scale" as const;
-export const TARGET_TOTAL_FPS = "target_total_fps" as const;
export const PERFORMANCE_MODE = "performance_mode" as const;
export const HDR_MODE = "hdr_mode" as const;
export const EXPERIMENTAL_PRESENT_MODE = "experimental_present_mode" as const;
@@ -20,6 +19,8 @@ export const ENABLE_WOW64 = "enable_wow64" as const;
export const DISABLE_STEAMDECK_MODE = "disable_steamdeck_mode" as const;
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 DEACTIVATE_WSI = "deactivate_wsi" as const;
// Configuration field definition
export interface ConfigField {
@@ -49,12 +50,6 @@ export const CONFIG_SCHEMA: Record<string, ConfigField> = {
default: 0.8,
description: "change the flow scale"
},
- target_total_fps: {
- name: "target_total_fps",
- fieldType: ConfigFieldType.FLOAT,
- default: 0.0,
- description: "specify your post-frame gen target framerate to force specific frame pacing logic. 0 = default pacing"
- },
performance_mode: {
name: "performance_mode",
fieldType: ConfigFieldType.BOOLEAN,
@@ -103,6 +98,18 @@ export const CONFIG_SCHEMA: Record<string, ConfigField> = {
default: false,
description: "Disables vkBasalt layer which can conflict with LSFG (Reshade, some Decky plugins)"
},
+ force_enable_vkbasalt: {
+ name: "force_enable_vkbasalt",
+ fieldType: ConfigFieldType.BOOLEAN,
+ default: false,
+ description: "Force vkBasalt to engage to fix framepacing issues in gamemode"
+ },
+ deactivate_wsi: {
+ name: "deactivate_wsi",
+ fieldType: ConfigFieldType.BOOLEAN,
+ default: false,
+ description: "Deactivates Gamescope WSI Layer, use with HDR off, workaround if frame generation isn't applying or isn't feeling smooth"
+ },
};
// Type-safe configuration data structure
@@ -110,7 +117,6 @@ export interface ConfigurationData {
dll: string;
multiplier: number;
flow_scale: number;
- target_total_fps: number;
performance_mode: boolean;
hdr_mode: boolean;
experimental_present_mode: string;
@@ -119,6 +125,8 @@ export interface ConfigurationData {
disable_steamdeck_mode: boolean;
mangohud_workaround: boolean;
disable_vkbasalt: boolean;
+ force_enable_vkbasalt: boolean;
+ deactivate_wsi: boolean;
}
// Helper functions
@@ -131,7 +139,6 @@ export function getDefaults(): ConfigurationData {
dll: "/games/Lossless Scaling/Lossless.dll",
multiplier: 1,
flow_scale: 0.8,
- target_total_fps: 0.0,
performance_mode: true,
hdr_mode: false,
experimental_present_mode: "fifo",
@@ -140,6 +147,8 @@ export function getDefaults(): ConfigurationData {
disable_steamdeck_mode: false,
mangohud_workaround: false,
disable_vkbasalt: false,
+ force_enable_vkbasalt: false,
+ deactivate_wsi: false,
};
}
@@ -148,7 +157,6 @@ export function getFieldTypes(): Record<string, ConfigFieldType> {
dll: ConfigFieldType.STRING,
multiplier: ConfigFieldType.INTEGER,
flow_scale: ConfigFieldType.FLOAT,
- target_total_fps: ConfigFieldType.FLOAT,
performance_mode: ConfigFieldType.BOOLEAN,
hdr_mode: ConfigFieldType.BOOLEAN,
experimental_present_mode: ConfigFieldType.STRING,
@@ -157,6 +165,8 @@ export function getFieldTypes(): Record<string, ConfigFieldType> {
disable_steamdeck_mode: ConfigFieldType.BOOLEAN,
mangohud_workaround: ConfigFieldType.BOOLEAN,
disable_vkbasalt: ConfigFieldType.BOOLEAN,
+ force_enable_vkbasalt: ConfigFieldType.BOOLEAN,
+ deactivate_wsi: ConfigFieldType.BOOLEAN,
};
}