fix(build): DLSS and FSR 4 only on GPUs that run them, no Prepare shaders switch, Longshot in the titles, a coloured log and the read's progress #79
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!79
Loading…
Reference in a new issue
No description provided.
Delete branch "HumanBean/LongshotLauncher:fix/build-settings-ui"
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?
The build settings offered DLSS and FSR 4 on PCs that can't run them, kept a "Prepare shaders now" switch nobody should turn off, and the build page sat at 0% while it read the game and showed the log as one grey wall. This fixes those in one go.
What changed
SystemInfo.DlssRuns,FsrRuns,Offers). On Windows the launcher now reads the display adapters from the registry, by maker and name (App/WindowsGpus.cs). On Linux it still knows each card only by its maker. When no card is found, both stay on offer. A switch remembered from another PC is left out of the build and the report, and the row says why ("This PC has no GeForce RTX card.").LauncherSettings.PrepareShadersis gone, and an older settings.json that has it still loads.LauncherSettings.FsrLibraryPath), and copies it into the game folder asamd_fidelityfx_upscaler_vk.sowhenever a build with FSR 4 finishes, including updates and rebuilds (Core/FsrLibrary.cs). If the copy fails, the Ready page and the log say so. The notice no longer reads as unsupported: it explains this and doesn't tell players where to get the library.@@progress, so the row sat at 0% for minutes. Its row now moves with nup.py'sMiB writtenlines, measured against the title's size from thetitle 0: ... romfs N files, X GBline. The unpacking fills 95% of the row, the checks after it the rest (measured: unpacking took 87 s of a 91 s read).scripts/translations.py: all complete).Testing
Tested:
python -I tests/test_launcher_core.py: 1059 checks passed, 14 of them new. They cover the FSR 4 library check and copy (64-bit ELF taken; 32-bit, text or missing refused; the old copy replaced; the game folder left alone on a refusal), GPU makers from Windows device ids, which cards run DLSS and FSR 4, the offers with no card found, the read's progress from MiB lines (before the size, past the end, in another stage), log prefixes and lines with levels, and an old settings.json with prepareShaders.python -I tests/test_release.py: OK.dotnet build: no warnings.Not tested: a real build through the launcher with these changes, and the copy with a real FSR 4 library. The screens are checked in the screenshots below. I also haven't run the Windows registry read on a Windows PC.
Screenshots
Drawn with the screenshot tool from #85, on this branch merged with it locally.
Linux with an AMD GPU: DLSS off and disabled, FSR 4 on with the library row
Windows with an RTX card: FSR 4 disabled, and the Prepare shaders switch gone
The Linux FSR 4 notice
Building Longshot v3.0.0, reading the game files at 48%, and Longshot Launcher with its version in the title bar
Show details at Debug: each line's coloured prefix and the picker's stacked swatches
f9bca37bb7ff3d32d909WIP: fix(build): DLSS and FSR 4 only on GPUs that run them, no Prepare shaders switch, Longshot in the titles, a coloured log and the read's progressto fix(build): DLSS and FSR 4 only on GPUs that run them, no Prepare shaders switch, Longshot in the titles, a coloured log and the read's progress