You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I noticed that even though igl::meta::Buffer is released after running the program for a while, MTLBuffer is not properly released, and the memory keeps increasing. For example, in the screenshot below, there are only 298 objects in igl::metal::Buffer, but CaptureMTLBuffer still has 3882 objects.
One solution I found is to call [MTLBuffer setPurgeableState:MTLPurgeableStateEmpty], which prevents the continuous memory growth even though the number of CaptureMTLBuffer objects doesn't decrease.
However, [MTLBuffer setPurgeableState:MTLPurgeableStateEmpty] is typically used in non-ARC environments and theoretically should not be necessary in an ARC environment.
The text was updated successfully, but these errors were encountered:
Capture* objects are associated with frame capture, which we do not control. Does it still happen if you disable "GPU Frame Capture" under the Scheme options?
I noticed that even though igl::meta::Buffer is released after running the program for a while, MTLBuffer is not properly released, and the memory keeps increasing. For example, in the screenshot below, there are only 298 objects in igl::metal::Buffer, but CaptureMTLBuffer still has 3882 objects.
One solution I found is to call [MTLBuffer setPurgeableState:MTLPurgeableStateEmpty], which prevents the continuous memory growth even though the number of CaptureMTLBuffer objects doesn't decrease.
My solution:
However, [MTLBuffer setPurgeableState:MTLPurgeableStateEmpty] is typically used in non-ARC environments and theoretically should not be necessary in an ARC environment.
The text was updated successfully, but these errors were encountered: