Idea: on the compute fallback, loading every program before the title costs 5 GB and puts a 24 GB PC at its commit limit; RX_VK_LOAD=create measured on a second such card (RX 5600 XT): same fps or better, loads of 50 ms at worst #805
Labels
No labels
area/accessibility
area/audio
area/input
area/install
area/menu
area/renderer
area/saves
area/upscaling
beanstalk: approved @ 1697603
beanstalk: approved @ 2c5a62e
beanstalk: approved @ 4fd82b7
beanstalk: approved @ 64d6d09
beanstalk: approved @ 6f91fae
beanstalk: approved @ 70a78f9
beanstalk: approved @ 8d361dc
beanstalk: approved @ 9d8356e
beanstalk: approved @ abf2227
beanstalk: approved @ d82f202
beanstalk: approved @ e5f1e40
beanstalk: approved @ ee8ab5f
ci: approved
good first issue
gpu/amd
gpu/igpu
gpu/intel
gpu/nvidia
help wanted
kind
bug
kind
chore
kind
docs
kind
feature
kind
performance
kind
question
needs measurements
platform/linux
platform/macos
platform/steam-deck
platform/windows
preview
priority
critical
priority
high
priority
low
regression
status
blocked
status
confirmed
status
duplicate
status
invalid
status
needs-info
status
wontfix
testing wanted
ci: approved
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
MagicBeanDev/Longshot#805
Loadingβ¦
Reference in a new issue
No description provided.
Delete branch "%!s()"
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 idea
A GPU without mesh shaders loads every kept program before the title (
gpu/vk/load_default.h:start, "this GPU draws mesh programs through the compute fallback"), because on the one such card measured, an RX 580 with 16 GB, first uses waited 0.7-1.3 s when they were loaded at their create calls. On an RX 5600 XT with 24 GB of RAM that default now leaves the PC without commit: the game holds 23-26 GB of private memory, the log sayscommit limit near13-18 times in a five-minute run, the textures' budget is cut to nothing, and one run never came out of a load. WithRX_VK_LOAD=createon the same build the game holds 18-20 GB, the line never appears, the frame rate is the same or better, and the loads at create took 1.85 ms at the median and 50 ms at worst.So the rule may be keeping the costly mode on a class of cards from one PC's result. Could Auto be
createon the fallback as well, behind the safety net that already takes an install back tostart?Setup. Main
6c9edffewithea6dc5f5(the mirror retry of #288) cherry-picked. RX 5600 XT 6 GB (RDNA1, the compute fallback), Adrenalin 26.10.1, Ryzen 5 5600X, 24.5 GB of RAM, a 15.6 GB page file (Windows-managed), the game on an NVMe disk, Windows 11. Render resolution 50% of 1920x1080;RX_VK_MIRROR_SPARSE=0,RX_VK_WB_MAX_KB=1024,RX_VK_NO_PREDICT=1,RX_VK_NO_WARM=1; Threaded rendering Auto (on). Five areas by teleport, standing, 25 s each after 10 s; three rounds interleaved with other sides. fps, then the GPU's frame in ms; one cell a run:RX_VK_LOAD=createcommit limit nearlines a runcommit limit nearline above was the last of its kind before it.9c9d69ed(I take it to be the 22,987 pipelines of #563, but did not bisect): in six interleaved runs of one six-area walk,9c9d69edheld 22.0-23.4 GB and logged nocommit limit near, and6c9edffeheld 24.3-25.9 GB and logged it 19-20 times a run.The questions:
createon the fallback too, and leave the marker (longshot_load_start.txt) to take a slow PC back?startgive way by itself?Who can help without writing code: anyone with a card without mesh shaders (RX 5500 XT / 5600 / 5700, RX 500 series, GTX 10 series, Intel before Arc). Add
RX_VK_LOAD=createtolongshot_env.txtin the game's folder, play ten minutes through a few areas, and comment with the card, the RAM, the log'sprogram loads at create (play)line and whether you saw hitches or things missing on entering an area.Anything else
create, a first visit to areas the preparation did not cover, a slow disk, 16 GB of RAM, Linux.Possibly related, for context: