fix(agent): a press the starting game has not read is pressed again #11
No reviewers
Labels
No labels
risk
high
risk
low
risk
medium
ci: approved
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
MagicBeanDev/Beanstalk!11
Loading…
Reference in a new issue
No description provided.
Delete branch "HumanBean/Beanstalk:fix/press-while-starting"
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?
Closes #10.
Why
To load a save, the agent presses A about once a second until the game is in play. Each press waits up to 30 s for the game to read it.
On a PC whose driver shader cache starts empty, the game first spends minutes preparing its pipelines and reads no input during that time. The first unread press ended the run with "a step ran out of time: timeout: the game did not read the controller", about 34 s in. This happened on 5 jobs on @jabbaxipil's PC: Longshot #718, #461, #772 (twice) and #751.
What changed
PressWhileStarting: a press the game didn't read in time (the bridge'stimeout) no longer ends the run, and the agent presses again. Any other bridge error still ends it.IntoPlayAsync) and for starting a new game (NewGameAsync).IntoPlayLimit). On that PC the pipeline preparation alone took over 560 s.Testing
Not in this PR
The issue's other suggestion: keep a driver shader cache between runs, so each start doesn't pay the whole preparation. That changes what a run measures (cold or warm start), so it belongs in its own PR. It would keep a cache per side (
main, the PR) within a job, never shared between them.