Frame stalls during buffer growth / region changes: no long full-GPU waits on the main thread #699

Closed
opened 2026-10-12 06:11:42 +00:00 by sky_line · 1 comment
Owner

Several growth/shrink paths wait for the whole GPU (device idle / fence waits) on the main thread: geometry buffer rebuilds, rigged buffer regrowth (several waits in one call), temporal / probe target re-creates, VRAM ladder rungs that rebuild targets, and synchronous pipeline-compile retries (~3.5 s each). Under memory pressure (Windows paging) these can stretch long enough to cause a region disconnect, and they tend to cluster during region changes.

Scope

  • Replace full waits with deferred retirement (retire old buffers after their frame fences, copy on the GPU timeline).
  • Spread region retirement / cache serialization over frames.
  • Pipeline compile retries off the main thread; a pipeline that failed under pressure is retried later instead of disabled for the session.
  • Log any main-thread wait over a threshold with its site (see the diagnostics ticket).
Several growth/shrink paths wait for the whole GPU (device idle / fence waits) on the main thread: geometry buffer rebuilds, rigged buffer regrowth (several waits in one call), temporal / probe target re-creates, VRAM ladder rungs that rebuild targets, and synchronous pipeline-compile retries (~3.5 s each). Under memory pressure (Windows paging) these can stretch long enough to cause a region disconnect, and they tend to cluster during region changes. **Scope** - Replace full waits with deferred retirement (retire old buffers after their frame fences, copy on the GPU timeline). - Spread region retirement / cache serialization over frames. - Pipeline compile retries off the main thread; a pipeline that failed under pressure is retried later instead of disabled for the session. - Log any main-thread wait over a threshold with its site (see the diagnostics ticket).
sky_line added this to the Slipstream project 2026-10-12 06:11:42 +00:00
Author
Owner

Shipped in 1.3.0 Beta 7 (4eb78641f8 GPU wait accounting and redundant device-idle elision; 453256ffdb no synchronous pipeline retry ladder on the render thread). Closing -- reopen or comment if you still see this.

Shipped in 1.3.0 Beta 7 (4eb78641f8 GPU wait accounting and redundant device-idle elision; 453256ffdb no synchronous pipeline retry ladder on the render thread). Closing -- reopen or comment if you still see this.
sky_line 2026-10-14 06:33:44 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
sky_line/Slipstream#699
No description provided.