VRAM: alias transient render targets that are never alive at the same time #615

Closed
opened 2026-10-10 01:15:50 +00:00 by sky_line · 1 comment
Owner

Render targets were 362 MB on an RTX 3070 user's 2479x1077 window (more at 4K). Many are transient: alive only for part of the frame (e.g. post-processing intermediates, motion blur / DoF / bloom scratch, SSR / SSAO intermediates, upscaler inputs). Images whose lifetimes do not overlap can share memory.

Do

  • Inventory every render target with its first / last use in the frame (including async-compute and frame-pipelined work, probe / mirror / snapshot recordings).
  • Place non-overlapping transient targets in shared memory (Vulkan memory aliasing), with correct barriers and initial layouts (UNDEFINED on first use), and no aliasing of anything read across frames (history, TAA / FSR / shadow history, persistent caches).
  • Report the saving per resolution.
  • Expected: 25-40% of render target memory.
Render targets were 362 MB on an RTX 3070 user's 2479x1077 window (more at 4K). Many are transient: alive only for part of the frame (e.g. post-processing intermediates, motion blur / DoF / bloom scratch, SSR / SSAO intermediates, upscaler inputs). Images whose lifetimes do not overlap can share memory. ## Do - Inventory every render target with its first / last use in the frame (including async-compute and frame-pipelined work, probe / mirror / snapshot recordings). - Place non-overlapping transient targets in shared memory (Vulkan memory aliasing), with correct barriers and initial layouts (UNDEFINED on first use), and no aliasing of anything read across frames (history, TAA / FSR / shadow history, persistent caches). - Report the saving per resolution. - Expected: 25-40% of render target memory.
sky_line added this to the Slipstream project 2026-10-10 01:15:50 +00:00
Author
Owner

Done. Transient render targets alias one memory arena: G-buffer aliased with the bloom pyramid and cross filter (af8aac9ab5), last-requirement fix (ed819b3649). Owner verified in-session. Shipped in 1.2.0 (v1.2.0, 55f4242518).

Done. Transient render targets alias one memory arena: G-buffer aliased with the bloom pyramid and cross filter (af8aac9ab5), last-requirement fix (ed819b3649). Owner verified in-session. Shipped in 1.2.0 (v1.2.0, 55f4242518).
sky_line 2026-10-10 05:32:58 +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#615
No description provided.