diff options
| author | Kurt Himebauch <136133082+xXJSONDeruloXx@users.noreply.github.com> | 2026-08-03 14:19:01 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-08-03 14:19:01 -0400 |
| commit | b936baab13b026d4355844d94616a622753a7370 (patch) | |
| tree | b596c42f04240d66ad934ece56bc16e300178a09 | |
| parent | b1f2a36ed17928fb98a22d70ce6f39fd967a143c (diff) | |
| parent | 24840e334aff52ef77a92dbedaf3c574496d6ea9 (diff) | |
| download | decky-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.json | 2 | ||||
| -rw-r--r-- | py_modules/lsfg_vk/config_schema.py | 14 | ||||
| -rw-r--r-- | src/components/ConfigurationSection.tsx | 11 |
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)" |
