diff options
| -rw-r--r-- | assets/lsfg-vk.png | bin | 1779289 -> 0 bytes | |||
| -rw-r--r-- | justfile | 8 | ||||
| -rw-r--r-- | package.json | 2 | ||||
| -rw-r--r-- | plugin.json | 2 | ||||
| -rw-r--r-- | py_modules/lsfg_vk/config_schema.py | 11 | ||||
| -rw-r--r-- | py_modules/lsfg_vk/configuration.py | 2 | ||||
| -rw-r--r-- | py_modules/lsfg_vk/installation.py | 2 | ||||
| -rw-r--r-- | src/components/ConfigurationSection.tsx | 11 | ||||
| -rw-r--r-- | src/components/Content.tsx | 8 | ||||
| -rw-r--r-- | src/components/InstallationButton.tsx | 4 | ||||
| -rw-r--r-- | src/components/ProfileManagement.tsx | 62 | ||||
| -rw-r--r-- | src/components/index.ts | 14 | ||||
| -rwxr-xr-x | src/index.tsx | 2 |
13 files changed, 69 insertions, 59 deletions
diff --git a/assets/lsfg-vk.png b/assets/lsfg-vk.png Binary files differdeleted file mode 100644 index 0395798..0000000 --- a/assets/lsfg-vk.png +++ /dev/null @@ -8,7 +8,13 @@ build: python3 scripts/generate_ts_schema.py && sudo rm -rf node_modules && .vscode/build.sh test: - scp "out/Lossless Scaling.zip" deck@192.168.0.6:~/Desktop + scp "out/Decky LSFG-VK.zip" deck@192.168.0.6:~/Desktop + +watch: + ssh deck@192.168.0.6 "journalctl -f" + +cef: + tail -f ~/.local/share/Steam/logs/cef_log.txt clean: rm -rf node_modules dist
\ No newline at end of file diff --git a/package.json b/package.json index 4cc6b40..ee49d1d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "decky-lsfg-vk", - "version": "0.11.2", + "version": "0.11.3", "description": "Use Lossless Scaling on the Steam Deck using the lsfg-vk vulkan layer", "type": "module", "scripts": { diff --git a/plugin.json b/plugin.json index f8dd446..67bc281 100644 --- a/plugin.json +++ b/plugin.json @@ -1,5 +1,5 @@ { - "name": "decky-lsfg-vk", + "name": "Decky LSFG-VK", "author": "Kurt Himebauch", "flags": ["debug", "_root"], "api_version": 1, diff --git a/py_modules/lsfg_vk/config_schema.py b/py_modules/lsfg_vk/config_schema.py index 807c798..3a96401 100644 --- a/py_modules/lsfg_vk/config_schema.py +++ b/py_modules/lsfg_vk/config_schema.py @@ -182,7 +182,7 @@ class ConfigurationManager: "profiles": {DEFAULT_PROFILE_NAME: config}, "global_config": { "dll": config.get("dll", ""), - "no_fp16": config.get("no_fp16", False) + "no_fp16": False # Always enabled even if previously set } } return ConfigurationManager.generate_toml_content_multi_profile(profile_data) @@ -208,10 +208,8 @@ class ConfigurationManager: lines.append(f'dll = "{dll_path}"') lines.append("") - # Add no_fp16 field - no_fp16 = profile_data["global_config"].get("no_fp16", False) - lines.append(f"# force-disable fp16 (use on older nvidia cards)") - lines.append(f"no_fp16 = {str(no_fp16).lower()}") + lines.append(f"# FP16 acceleration") + lines.append(f"no_fp16 = false") lines.append("") # Add game sections for each profile @@ -345,7 +343,8 @@ class ConfigurationManager: elif key == "dll": global_config["dll"] = value elif key == "no_fp16": - global_config["no_fp16"] = value.lower() in ('true', '1', 'yes', 'on') + # Always enforce FP16 to be enabled (no_fp16 = false) + global_config["no_fp16"] = False # Handle game section elif in_game_section: diff --git a/py_modules/lsfg_vk/configuration.py b/py_modules/lsfg_vk/configuration.py index d4d60d4..b61a06d 100644 --- a/py_modules/lsfg_vk/configuration.py +++ b/py_modules/lsfg_vk/configuration.py @@ -252,7 +252,7 @@ class ConfigurationService(BaseService): profiles={DEFAULT_PROFILE_NAME: default_config}, global_config={ "dll": default_config.get("dll", ""), - "no_fp16": default_config.get("no_fp16", False) + "no_fp16": False } ) diff --git a/py_modules/lsfg_vk/installation.py b/py_modules/lsfg_vk/installation.py index 763154f..a3b000f 100644 --- a/py_modules/lsfg_vk/installation.py +++ b/py_modules/lsfg_vk/installation.py @@ -353,7 +353,7 @@ class InstallationService(BaseService): default_config = ConfigurationManager.get_defaults_with_dll_detection(dll_service) default_global_config = { "dll": default_config.get("dll", ""), - "no_fp16": default_config.get("no_fp16", False) + "no_fp16": False } # Start with existing data diff --git a/src/components/ConfigurationSection.tsx b/src/components/ConfigurationSection.tsx index 9afc650..b098b32 100644 --- a/src/components/ConfigurationSection.tsx +++ b/src/components/ConfigurationSection.tsx @@ -4,7 +4,7 @@ import { RiArrowDownSFill, RiArrowUpSFill } from "react-icons/ri"; import { ConfigurationData } from "../config/configSchema"; import { FpsMultiplierControl } from "./FpsMultiplierControl"; import { - NO_FP16, FLOW_SCALE, PERFORMANCE_MODE, HDR_MODE, + FLOW_SCALE, 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"; @@ -99,15 +99,6 @@ export function ConfigurationSection({ <PanelSectionRow> <ToggleField - label="Force Disable FP16" - description="Force-disable FP16 acceleration" - checked={config.no_fp16} - onChange={(value) => onConfigChange(NO_FP16, value)} - /> - </PanelSectionRow> - - <PanelSectionRow> - <ToggleField label="HDR Mode" description="Enables HDR mode (only for games that support HDR)" checked={config.hdr_mode} diff --git a/src/components/Content.tsx b/src/components/Content.tsx index d3c04d3..fdb8672 100644 --- a/src/components/Content.tsx +++ b/src/components/Content.tsx @@ -8,8 +8,8 @@ import { InstallationButton } from "./InstallationButton"; import { ConfigurationSection } from "./ConfigurationSection"; import { ProfileManagement } from "./ProfileManagement"; import { UsageInstructions } from "./UsageInstructions"; -import { WikiButton } from "./WikiButton"; -import { ClipboardButton } from "./ClipboardButton"; +// import { WikiButton } from "./WikiButton"; +// import { ClipboardButton } from "./ClipboardButton"; import { SmartClipboardButton } from "./SmartClipboardButton"; import { FgmodClipboardButton } from "./FgmodClipboardButton"; // import { ClipboardDisplay } from "./ClipboardDisplay"; @@ -135,8 +135,8 @@ export function Content() { <UsageInstructions config={config} /> {/* Wiki and clipboard buttons - always available for documentation */} - <WikiButton /> - <ClipboardButton /> + {/* <WikiButton /> */} + {/* <ClipboardButton /> */} {/* Plugin Update Checker */} {/* <PluginUpdateChecker /> */} diff --git a/src/components/InstallationButton.tsx b/src/components/InstallationButton.tsx index 7892678..d0f2ce5 100644 --- a/src/components/InstallationButton.tsx +++ b/src/components/InstallationButton.tsx @@ -37,7 +37,7 @@ export function InstallationButton({ return ( <div style={{ display: "flex", alignItems: "center", gap: "8px" }}> <FaTrash /> - <div>Uninstall lsfg-vk</div> + <div>Uninstall LSFG-VK</div> </div> ); } @@ -45,7 +45,7 @@ export function InstallationButton({ return ( <div style={{ display: "flex", alignItems: "center", gap: "8px" }}> <FaDownload /> - <div>Install lsfg-vk</div> + <div>Install LSFG-VK</div> </div> ); }; diff --git a/src/components/ProfileManagement.tsx b/src/components/ProfileManagement.tsx index 6e2a8f8..d3d15a9 100644 --- a/src/components/ProfileManagement.tsx +++ b/src/components/ProfileManagement.tsx @@ -14,7 +14,7 @@ import { AppOverview, Router } from "@decky/ui"; -import { RiArrowDownSFill, RiArrowUpSFill } from "react-icons/ri"; +import { RiArrowDownSFill, RiArrowUpSFill, RiEditLine, RiDeleteBinLine } from "react-icons/ri"; import { getProfiles, createProfile, @@ -405,6 +405,7 @@ export function ProfileManagement({ currentProfile, onProfileChange }: ProfileMa label="" childrenLayout="below" childrenContainerWidth="max" + bottomSeparator="none" > <Dropdown rgOptions={profileOptions} @@ -416,23 +417,50 @@ export function ProfileManagement({ currentProfile, onProfileChange }: ProfileMa </PanelSectionRow> <PanelSectionRow> - <ButtonItem - layout="below" - onClick={handleRenameProfile} - disabled={isLoading || selectedProfile === "decky-lsfg-vk" || !!mainRunningApp} + <Focusable + style={{ + display: "flex", + alignItems: "center", + gap: "8px", + width: "100%", + padding: "0", + margin: "0", + marginTop: "8px" + }} + flow-children="horizontal" > - Rename - </ButtonItem> - </PanelSectionRow> - - <PanelSectionRow> - <ButtonItem - layout="below" - onClick={handleDeleteProfile} - disabled={isLoading || selectedProfile === "decky-lsfg-vk" || !!mainRunningApp} - > - Delete - </ButtonItem> + <DialogButton + style={{ + height: "40px", + flex: 1, + display: "flex", + alignItems: "center", + justifyContent: "center", + padding: "10px", + minWidth: "0", + }} + onClick={handleRenameProfile} + disabled={isLoading || selectedProfile === "decky-lsfg-vk" || !!mainRunningApp} + > + <RiEditLine size={20} /> + </DialogButton> + + <DialogButton + style={{ + height: "40px", + flex: 1, + display: "flex", + alignItems: "center", + justifyContent: "center", + padding: "10px", + minWidth: "0", + }} + onClick={handleDeleteProfile} + disabled={isLoading || selectedProfile === "decky-lsfg-vk" || !!mainRunningApp} + > + <RiDeleteBinLine size={20} /> + </DialogButton> + </Focusable> </PanelSectionRow> </> )} diff --git a/src/components/index.ts b/src/components/index.ts deleted file mode 100644 index 260d192..0000000 --- a/src/components/index.ts +++ /dev/null @@ -1,14 +0,0 @@ -export { Content } from "./Content"; -export { StatusDisplay } from "./StatusDisplay"; -export { InstallationButton } from "./InstallationButton"; -export { ConfigurationSection } from "./ConfigurationSection"; -export { FpsMultiplierControl } from "./FpsMultiplierControl"; -export { UsageInstructions } from "./UsageInstructions"; -export { WikiButton } from "./WikiButton"; -export { SmartClipboardButton } from "./SmartClipboardButton"; -export { FgmodClipboardButton } from "./FgmodClipboardButton"; -// export { ClipboardDisplay } from "./ClipboardDisplay"; -// export { PluginUpdateChecker } from "./PluginUpdateChecker"; -export { NerdStuffModal } from "./NerdStuffModal"; -export { default as FlatpaksModal } from "./FlatpaksModal"; -export { ProfileManagement } from "./ProfileManagement"; diff --git a/src/index.tsx b/src/index.tsx index 799f2ff..bbe4cd3 100755 --- a/src/index.tsx +++ b/src/index.tsx @@ -1,7 +1,7 @@ import { staticClasses } from "@decky/ui"; import { definePlugin } from "@decky/api"; import { GiPlasticDuck } from "react-icons/gi"; -import { Content } from "./components"; +import { Content } from "./components/Content"; export default definePlugin(() => { console.log("decky-lsfg-vk plugin initializing"); |
