summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKurt Himebauch <136133082+xXJSONDeruloXx@users.noreply.github.com>2026-08-03 14:19:01 -0400
committerGitHub <noreply@github.com>2026-08-03 14:19:01 -0400
commitb936baab13b026d4355844d94616a622753a7370 (patch)
treeb596c42f04240d66ad934ece56bc16e300178a09
parentb1f2a36ed17928fb98a22d70ce6f39fd967a143c (diff)
parent24840e334aff52ef77a92dbedaf3c574496d6ea9 (diff)
downloaddecky-lsfg-vk-b936baab13b026d4355844d94616a622753a7370.tar.gz
decky-lsfg-vk-b936baab13b026d4355844d94616a622753a7370.zip
feat: expose FP16 acceleration setting (#249)v0.12.7
Expose the FP16 acceleration toggle and preserve no_fp16 in generated TOML configuration.
-rw-r--r--package.json2
-rw-r--r--py_modules/lsfg_vk/config_schema.py14
-rw-r--r--src/components/ConfigurationSection.tsx11
3 files changed, 18 insertions, 9 deletions
diff --git a/package.json b/package.json
index 2671260..0548f7e 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "decky-lsfg-vk",
- "version": "0.12.6",
+ "version": "0.12.7",
"description": "Use Lossless Scaling on the Steam Deck using the lsfg-vk vulkan layer",
"type": "module",
"scripts": {
diff --git a/py_modules/lsfg_vk/config_schema.py b/py_modules/lsfg_vk/config_schema.py
index 3a82bbd..f76b5f2 100644
--- a/py_modules/lsfg_vk/config_schema.py
+++ b/py_modules/lsfg_vk/config_schema.py
@@ -178,7 +178,7 @@ class ConfigurationManager:
"profiles": {DEFAULT_PROFILE_NAME: config},
"global_config": {
"dll": config.get("dll", ""),
- "no_fp16": False # Always enabled even if previously set
+ "no_fp16": config.get("no_fp16", False)
}
}
return ConfigurationManager.generate_toml_content_multi_profile(profile_data)
@@ -188,7 +188,7 @@ class ConfigurationManager:
"""Generate TOML configuration file content with multiple profiles"""
lines = ["version = 1"]
lines.append("")
-
+
# Add global section with global fields
lines.append("[global]")
@@ -202,10 +202,11 @@ class ConfigurationManager:
if dll_path:
lines.append(f"# specify where Lossless.dll is stored")
lines.append(f'dll = "{dll_path}"')
- lines.append("")
-
+ lines.append("")
+
lines.append(f"# FP16 acceleration")
- lines.append(f"no_fp16 = false")
+ no_fp16 = bool(profile_data["global_config"].get("no_fp16", False))
+ lines.append(f"no_fp16 = {str(no_fp16).lower()}")
lines.append("")
# Add game sections for each profile
@@ -339,8 +340,7 @@ class ConfigurationManager:
elif key == "dll":
global_config["dll"] = value
elif key == "no_fp16":
- # Always enforce FP16 to be enabled (no_fp16 = false)
- global_config["no_fp16"] = False
+ global_config["no_fp16"] = value.lower() in ('true', '1', 'yes', 'on')
# Handle game section
elif in_game_section:
diff --git a/src/components/ConfigurationSection.tsx b/src/components/ConfigurationSection.tsx
index 0734297..344481e 100644
--- a/src/components/ConfigurationSection.tsx
+++ b/src/components/ConfigurationSection.tsx
@@ -3,7 +3,7 @@ import { useState, useEffect } from "react";
import { RiArrowDownSFill, RiArrowUpSFill } from "react-icons/ri";
import { ConfigurationData } from "../config/configSchema";
import {
- FLOW_SCALE, PERFORMANCE_MODE, HDR_MODE,
+ FLOW_SCALE, NO_FP16, PERFORMANCE_MODE, HDR_MODE,
EXPERIMENTAL_PRESENT_MODE, DXVK_FRAME_RATE, DISABLE_STEAMDECK_MODE,
MANGOHUD_WORKAROUND, DISABLE_VKBASALT, FORCE_ENABLE_VKBASALT, ENABLE_WSI, ENABLE_ZINK
} from "../config/generatedConfigSchema";
@@ -126,6 +126,15 @@ export function ConfigurationSection({
</PanelSectionRow>
<PanelSectionRow>
+ <ToggleField
+ label="FP16 Acceleration"
+ description="Use FP16 shaders when supported"
+ checked={!config.no_fp16}
+ onChange={(value) => onConfigChange(NO_FP16, !value)}
+ />
+ </PanelSectionRow>
+
+ <PanelSectionRow>
<SliderField
label={`Base FPS Cap${config.dxvk_frame_rate > 0 ? ` (${config.dxvk_frame_rate} FPS)` : " (Off)"}`}
description="Base framerate cap for DirectX games, before frame multiplier. (Requires game restart to apply)"