vk: batched submits: a progress poll flushes only after 2 ms by default #689
No reviewers
Labels
No labels
accessibility
autorelease: pending
autorelease: tagged
bug
dependencies
documentation
duplicate
enhancement
github_actions
good first issue
help wanted
invalid
question
testing wanted
wontfix
No milestone
No assignees
1 participant
Due date
No due date set.
Dependencies
No dependencies set
Reference
MagicBeanDev/Hookshot!689
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/radv-batch-poll-default"
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?
What this fixes
With
RX_VK_BATCHon (the default on RADV),get_replayed()sends the held submits on every progress poll, becauseRX_VK_BATCH_POLL_USdefaults to 0. The game polls many times a frame, so most flushes come from polls, and each one is a full command submission. That is the cost batching exists to avoid.This makes the default 2000 µs, as suggested in #413 and #528. A poll then flushes only once the oldest held submit has waited 2 ms.
RX_VK_BATCH_POLL_US=0restores the old behaviour. Flushes for waits, values, slots and presents are unchanged, so held work is delayed by at most 2 ms on the poll path.Measured
RX 7800 XT, RADV, Kokiri Forest, Link idle on the balcony at about 2150 draws. 60 s per run, 2 runs per setting, on one build with the settings interleaved.
RX_VK_BATCH_POLL_USAn earlier sweep on
7e9bf73+ #448 was flat from 1 to 16 ms: 41.4 to 43.7 fps against 37.1 and 37.3 for 0.Not covered
5c9b0bf) + #448, because main alone falls back to very low fps on this card. The renderer was swapped into a game built from7e9bf73.RX_VK_BATCH=1.🤖 Generated with Claude Code