Page MenuHome

Metal: Fix issue with premature safe buffer list flush and optimize memory manager overhead.
ClosedPublic

Authored by Jason Fielder (jason_apple) on Wed, Jan 25, 2:00 PM.

Details

Summary

Resolve an issue where released buffers were returned to the reusable memory pool before GPU work associated with these buffers had been encoded. Usually release of memory pools is dependent on successful completion of GPU work via command buffer callbacks. However, if the pool refresh operation occurs between encoding of work and submission, buffer ref-count is prematurely decremented.

Patch also ensures safe buffer free lists are only flushed once a set number of buffers have been used. This reduces overhead of small and frequent flushes, without raising the memory ceiling significantly.

Authored by Apple: Michael Parkin-White

Ref T96261

Diff Detail

Repository
rB Blender
Branch
viewport_commits/FixPrematureSafebufferListFlush
Build Status
Buildable 25561
Build 25561: arc lint + arc unit