feat(build): DLSS and FSR 4 switch on whatever the GPU, for OptiScaler, and a PC that can't run one says so in red #111
No reviewers
Labels
No labels
area/build
area/install
area/saves
area/tooling
area/ui
area/updates
ci: approved
good first issue
gpu/amd
gpu/intel
gpu/nvidia
help wanted
kind
bug
kind
chore
kind
docs
kind
feature
kind
performance
kind
question
platform/linux
platform/steam-deck
platform/windows
priority
critical
priority
high
priority
low
risk
high
risk
low
risk
medium
status
blocked
status
confirmed
status
duplicate
status
invalid
status
needs-info
status
wontfix
ci: approved
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
MagicBeanDev/LongshotLauncher!111
Loading…
Reference in a new issue
No description provided.
Delete branch "llun/LongshotLauncher:feat/upscalers-on-unsupported"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Players who use OptiScaler need DLSS's and FSR 4's files even on a card that doesn't run them officially, but the build settings lock both switches off on such a PC. This lets either switch turn on whatever the GPU and shows the "This PC has no …" line in red, so it's clear the card itself doesn't support it.
Closes #100 (#100).
What changed
BuildStepViewModeldropped a switched-on upscaler when no card ran it. It now passes the settings as they are, throughUpscalers.Chosen, somake_game.pygets the same--fetch-ngx-sdk --accept-nvidia-license/--fsr --fetch-fsr-runtime --accept-amd-licenseand SDK environment as on an RTX or RX 6000+ card. Nothing else about the build changes. The build log's settings line saysDLSS (no card here runs it)in that case, for bug reports.Badcolour (aTextBlock.rdesc.badstyle besiderdesc). With the switch on, the licence tick shows and the red line stays under it. No card found (unknown) is not called unsupported, as before.LauncherSettingsnever looked at the GPU, and nothing else turns it off.Core/Upscalers.csholds the two rules (Unsupported,Chosen) so the core tests can reach them.SystemInfo.Offers's comment now says what it decides. There's a new screenshot scene,settings-windows-unsupported(a GeForce GTX 1660 SUPER on Windows, DLSS on), and the README mentions it.translations.pyreports the same missing texts as onmain.A supported row looks exactly as before. On an RTX-only PC the DLSS row is pixel-identical to
main. The FSR 4 row, which that PC can't run, is the one that turns red.Overlap: #110 (Intel XeSS) adds a third switch with the same GPU lock, and touches the same lines. Whichever lands second gets rebased. If XeSS lands first, I'll give it the same treatment here.
Screenshots
Drawn by
tools/screenshots(a launcher in a temporary folder, a made-up GPU, no game files), cropped to the Upscaling card. The launcher has one theme (dark).A GeForce GTX 1660 SUPER, with DLSS remembered as on:
e5c367506bb115An RTX 4070 (
settings-windows): the supported DLSS row is unchanged, and the FSR 4 row this PC can't run is now red and can be switched on:e5c367506bb115Tested
On Windows 11, .NET SDK 10.0.404:
dotnet build LongshotLauncher.slnx(Debug, and Release with-p:RestoreLockedMode=true): 0 warnings, 0 errors.python -I tests/test_launcher_core.py: 1278 checks passed (main: 1275). The new check inScreenChecks.csdoes three things. It checksUnsupportedfor a GTX, Intel and RTX mix and for no card found. It runsMakeGameCommand.Foron a request fromUpscalers.Chosenand checks for the DLSS and FSR 4 fetch arguments and SDK environment. And it checks that Linux's FSR 4 notice stands for the licence there only. Onmainthe check fails:Upscalersdoesn't exist there, because the build step dropped the upscaler in the App, where the core tests can't reach. The translation warnings are the same asmain's.python -I tests/test_release.py: 31 tests OK.DlssandFsron through the settings view model left both on, both lines red, and both saved:LauncherSettings.Loadread them back as on.Note for Windows checkouts with
core.autocrlf=true:tests/fixtures/release/SHA256SUMScomes out with CRLF and the core tests stop atReleaseChecks("not signed by a key this launcher trusts") onmaintoo. I ran them withcore.autocrlf=falsein the clone. That's a separate matter from this PR.🤖 Generated with Claude Code