feat(build): Intel graphics in the build settings: shader compiles one at a time or side by side, and a longer shader time limit #97
No reviewers
Labels
No labels
area/build
area/install
area/saves
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
status
blocked
status
confirmed
status
duplicate
status
invalid
status
needs-info
status
wontfix
ci: approved
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
MagicBeanDev/LongshotLauncher!97
Loading…
Reference in a new issue
No description provided.
Delete branch "Yeetbot90/LongshotLauncher:feat/intel-shader-compiles"
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 on Intel graphics could only choose how Intel's driver is given shaders from the game's Debug tab, and only after a build. By then the build's own shader preparation had already run one at a time. On a slow Intel GPU, that preparation can also be stopped as "the GPU driver stopped responding" when the driver is only slow (Longshot#407). This adds both choices to the build settings, for the build and the game.
The game's side: MagicBeanDev/Longshot#781 makes the in-game row's hint name these build settings while they hold it.
What it is for
IntelDriverGate, gpu/vk/vk_internal.h). Two compiles at once froze an Arc A750 (issue 496) and crashed a UHD in igvk64. The in-game row, orRX_VK_NO_INTEL_SERIAL=1over it, gives them side by side again. That's faster on a CPU with many cores, at that risk.RX_VK_PREPARE_STALL_S--prepare-shaderswatchdog (vk_main.cpp prepare_watchdog): stops the preparation when nothing movesRX_VK_PRECOMPILE_STALL_Svk_draw.cpp precompile_run)RX_VK_PREDICT_STALL_Svk_draw.cpp predict_run)180 s is about three times the longest pause seen in #407. 1800 s still ends a real hang within half an hour. make_game.py's own limit, 15 minutes with no line, doesn't cut in: the watchdog prints a waiting line every 30 s while it waits.
What changed
settings.json(IntelSideBySide,IntelLongerLimits). The card isn't shown on NVIDIA, AMD, Linux, or when no card was found (SystemInfo.IntelCompilesApply). On Linux, Longshot doesn't hold Intel's compiler.MakeGameCommand.For) and Play (GamePlay.Environment): Side by side givesRX_VK_NO_INTEL_SERIAL=1, and Longer gives the three switches above (GamePlay.IntelLongerLimits). make_game.py passes both on to--prepare-shaders(it drops onlyLONGSHOT_*,PYTHON*and the AppImage's variables). With Side by side on, the game's own row shows Side by side and is held by the variable.GpuCards, which replacedGpus; the tool didn't build without this. Two new scenes,settings-windows-intelandsettings-windows-intel-side, are above.How it was tested
python -I tests/test_launcher_core.py: 1099 checks passed on this branch. New checks:RX_VK_NO_INTEL_SERIAL=1, and Longer gives the three switches at 1800, 180 and 180. The defaults give none of them, and neither choice sets the other's switches.IntelCompilesApplyholds for Windows with an Intel card, an NVIDIA laptop with Intel graphics, AMD, no card, and Linux.On
main@fa3a444the run already stops atReleaseChecks("The release's SHA256SUMS is not signed by a key this launcher trusts"), before any of these. To get the numbers above I commented that one call out locally and didn't commit the change. That failure isn't from this PR.dotnet build App -c Release: 0 warnings, 0 errors.The screenshots:
dotnet run --project tools/screenshots -- <out> settings-windows-intel settings-windows-intel-side settings-windows. The NVIDIA scene still has no Intel card.What isn't tested
vk: Intel's compiler is entered by one threadline. On One at a time it has that line once.Stopped at 1800 s if nothing moves, not300 s.Risks
RX_VK_NO_INTEL_SERIAL=0.probeto feat(build): Intel shader compiles in the build settings, one at a time or side by sideec8d9a9759230ec85fedfeat(build): Intel shader compiles in the build settings, one at a time or side by sideto feat(build): Intel graphics in the build settings: shader compiles one at a time or side by side, and a longer shader time limitNew commit
cb01c8c: Shader time limit for Intel graphics, Normal or Longer, in the same card. Longer gives the build and PlayRX_VK_PREPARE_STALL_S=1800,RX_VK_PRECOMPILE_STALL_S=180andRX_VK_PREDICT_STALL_S=180(Longshot's 300, 30 and 30 s), for the preparation stopped without a fault in Longshot#407. The description, the table of switches and both screenshots are updated.test_launcher_core.py: 1099 checks passed (ReleaseChecks commented out locally, as before);dotnet build App: 0 warnings.cb01c8c0d723e814fefb