diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/components/ConfigurationSection.tsx | 14 | ||||
| -rw-r--r-- | src/config/configSchema.ts | 2 | ||||
| -rw-r--r-- | src/config/generatedConfigSchema.ts | 10 |
3 files changed, 24 insertions, 2 deletions
diff --git a/src/components/ConfigurationSection.tsx b/src/components/ConfigurationSection.tsx index 778ebc8..7c5d9ca 100644 --- a/src/components/ConfigurationSection.tsx +++ b/src/components/ConfigurationSection.tsx @@ -2,7 +2,7 @@ import { PanelSectionRow, ToggleField, SliderField, DropdownItem } from "@decky/ import { ConfigurationData } from "../config/configSchema"; import { FpsMultiplierControl } from "./FpsMultiplierControl"; import { - FLOW_SCALE, PERFORMANCE_MODE, HDR_MODE, + FLOW_SCALE, TARGET_TOTAL_FPS, PERFORMANCE_MODE, HDR_MODE, EXPERIMENTAL_PRESENT_MODE, DXVK_FRAME_RATE, DISABLE_STEAMDECK_MODE, MANGOHUD_WORKAROUND, DISABLE_VKBASALT } from "../config/generatedConfigSchema"; @@ -50,6 +50,18 @@ export function ConfigurationSection({ </PanelSectionRow> <PanelSectionRow> + <SliderField + label={`Target Total FPS ${config.target_total_fps === 0 ? '(Default)' : config.target_total_fps.toFixed(0)}`} + description="Specify your post-frame gen target framerate to force specific frame pacing logic. 0 = default pacing" + value={config.target_total_fps} + min={0} + max={144} + step={1} + onChange={(value) => onConfigChange(TARGET_TOTAL_FPS, value)} + /> + </PanelSectionRow> + + <PanelSectionRow> <ToggleField label="Performance Mode" description="Uses a lighter model for FG (Recommended for most games)" diff --git a/src/config/configSchema.ts b/src/config/configSchema.ts index 9568fd8..af36dec 100644 --- a/src/config/configSchema.ts +++ b/src/config/configSchema.ts @@ -20,7 +20,7 @@ export { getDefaults, getFieldTypes, // Field name constants for type-safe access - DLL, MULTIPLIER, FLOW_SCALE, PERFORMANCE_MODE, HDR_MODE, + 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 } from './generatedConfigSchema'; diff --git a/src/config/generatedConfigSchema.ts b/src/config/generatedConfigSchema.ts index 4a301a1..a30474c 100644 --- a/src/config/generatedConfigSchema.ts +++ b/src/config/generatedConfigSchema.ts @@ -11,6 +11,7 @@ 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; @@ -48,6 +49,12 @@ 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 +110,7 @@ export interface ConfigurationData { dll: string; multiplier: number; flow_scale: number; + target_total_fps: number; performance_mode: boolean; hdr_mode: boolean; experimental_present_mode: string; @@ -123,6 +131,7 @@ 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", @@ -139,6 +148,7 @@ 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, |
