【发布时间】:2011-01-23 21:32:01
【问题描述】:
在 OpenGL 中,经常使用孤立缓冲区是一种常见的做法。理想情况下,驱动程序会注意到请求了相同大小的缓冲区,如果不再需要,则尽可能返回旧缓冲区。缓冲区仅在旧缓冲区仍在使用且无法重用时分配新内存。
在 OpenCL 中(在使用最新开发者驱动程序的 NVIDIA 硬件上)我不确定这项技术。我得到了一个 256kB 的缓冲区,由我经常重新分配的 c++ 包装器引用计数处理。大多数情况下,这可以正常工作,但在某些情况下,OpenCL 在分配新缓冲区时会引发 CL_OUT_OF_MEMORY 错误。
您认为我应该改变我的方法吗(例如,使用恒定数量的缓冲区)?还是我应该调查导致此问题的其他可能原因?
亲切的问候, 弗洛里安
【问题讨论】: