我正在使用
id<MTLBuffer> vertexBuf = [device newBufferWithLength:count * sizeof(float) options:0];
如何释放 vertexBuf 内存,它会大大增加内存。在 apple 的文档中,没有提示 dealloc MTLBuffers。在我的例子中,我不能再次重用它。我试过vertexBuf = nil;
没有改善,我不能使用 [vertexBuf release]
因为我的项目启用了 ARC。有什么方法可以释放内存?
编辑:
我可以重复使用,但 OpenGLES2 中有一个选项 glDeleteBuffers
这在很多情况下都很有用。所以我正在搜索类似于 Metal 的搜索。
最佳答案
找出谁在使用vertexBuf。有人正在使用它,并坚持使用它,否则如果将其设置为 nil,内存就会消失。
顺便说一句。释放对你没有帮助。 ARC 确实会为您保留/释放,除非它可能更小心并且总是正确的。如果您可以释放它并且内存消失了,那么当使用 vertexBuf 的人也释放它时,您的应用程序将崩溃。
关于ios - 如何解除分配 id<MTLBuffer> Metal iOS?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29491982/