【发布时间】:2019-03-01 06:04:14
【问题描述】:
一旦顶点数据通过网络加载,我的程序会在启动后创建许多顶点缓冲区,然后在热循环期间偶尔删除或创建顶点缓冲区。它几乎总是按预期工作,但有时在某些机器上,在热循环中创建缓冲区会产生零名称。
它看起来不像是无效状态,因为它会更早触发。此外,文档和规范对此类错误还不够清楚。这是否意味着实现用完了缓冲区名称?
我还找到了this thread。 Topicstarter 说在将名称传递给 glGenBuffers 之前对其进行初始化解决了他的问题。是否需要初始化这些值?
【问题讨论】:
-
glGetError()中弹出的任何信息或发生该行为时的调试上下文回调? -
我可以想到由于许多不同大小的缓冲区的创建/删除而导致的 VRAM 内存碎片。在这样的场景中,glGenbuffers 可能会失败。重用缓冲区怎么样?