Invoke callback after a surface-sized render-target texture replaces its GPU attachments.
Every registered consumer is attempted even if another throws. Failed callbacks retry on
the next target build, including unchanged-size builds; successful callbacks are not repeated.
Old attachments remain alive until delivery completes, then retire behind a GPU fence.
Returns an unregister function that cancels its retry and starts retirement when delivery
has no pending observers, without requiring another target build. A consumer canceling a
pending retry must stop using its superseded views.
Invoke
callbackafter a surface-sized render-target texture replaces its GPU attachments. Every registered consumer is attempted even if another throws. Failed callbacks retry on the next target build, including unchanged-size builds; successful callbacks are not repeated. Old attachments remain alive until delivery completes, then retire behind a GPU fence. Returns an unregister function that cancels its retry and starts retirement when delivery has no pending observers, without requiring another target build. A consumer canceling a pending retry must stop using its superseded views.