summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--assets/lsfg-vk.pngbin1779289 -> 0 bytes
-rw-r--r--justfile8
-rw-r--r--package.json2
-rw-r--r--plugin.json2
-rw-r--r--py_modules/lsfg_vk/config_schema.py11
-rw-r--r--py_modules/lsfg_vk/configuration.py2
-rw-r--r--py_modules/lsfg_vk/installation.py2
-rw-r--r--src/components/ConfigurationSection.tsx11
-rw-r--r--src/components/Content.tsx8
-rw-r--r--src/components/InstallationButton.tsx4
-rw-r--r--src/components/ProfileManagement.tsx62
-rw-r--r--src/components/index.ts14
-rwxr-xr-xsrc/index.tsx2
13 files changed, 69 insertions, 59 deletions
diff --git a/assets/lsfg-vk.png b/assets/lsfg-vk.png
deleted file mode 100644
index 0395798..0000000
--- a/assets/lsfg-vk.png
+++ /dev/null
Binary files differ
diff --git a/justfile b/justfile
index 054c113..abd24c2 100644
--- a/justfile
+++ b/justfile
@@ -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");