ios - 如何解除分配 id<MTLBuffer> Metal iOS?

标签 ios metal

我正在使用 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/

相关文章:

ios - 解决奇怪的行为 re : glsl/metal shader.(无意的坐标翻转)

ios - 如何将 CISampler 传递给基于 Metal 的 CIColorKernel?

ios - id<> 需要 MTLDevice 类

ios - 来自 phonegap(html 5 应用程序)的 .ipa 不会安装在 iphone 4 上

ios - NSUrlConnection 似乎没有工作,

ios - 如何使用 UILabel 创建发光效果?

c++ - Apple METAL C++ 问题与 MTL::CopyAllDevices();

iOS Metal 缓冲区不尊重步幅值

iphone - 如何检查用户是否清除了iPhone后台应用程序的运行状态?

ios - Xcode Project 和 Playground 关于 Swift 错误处理的区别