glMapBufferRange忽略GL_MAP_UNSYNCHRONIZED_BIT

问题描述:

我正在尝试修复一个有关glMapBufferRange的性能问题。我们的代码在运行iOS 6.x的iPad4上使用VBO和glMapBufferRange进行流绘制。图案类似于:glMapBufferRange忽略GL_MAP_UNSYNCHRONIZED_BIT

映射(第一个子区域) - >将数据写入第一个子区域 - > Unmap - >映射(第二个子区域) - >将数据写入第二个子区域 - > UnMap .. 。如果缓冲区已满,请绘制缓冲区并重新开始填充数据。

该仪器表示在glMapBufferRange上有一些GPU等待。我查看我们的代码并参考API手册。我将访问标志glMapBufferRange设置为GL_MAP_WRITE_BIT | GL_MAP_INVALIDATA_RANGE_BIT | GL_MAP_UNSYNCHRONIZED_BIT。但是,GL_MAP_UNSYNCHRONIZED_BIT根据仪器被忽略。无论是否设置GL_MAP_UNSYNCHRONIZED_BIT,性能都是相同的。

有谁知道为什么?任何改善这个用例的建议?

感谢, 华莱士

标志证明是工作。我忘了在映射索引缓冲区时添加标志。性能问题已修复。