glMapBufferRange忽略GL_MAP_UNSYNCHRONIZED_BIT

时间:2014-02-13 09:12:45

标签: ios opengl-es-3.0

我正在尝试解决有关glMapBufferRange的一个性能问题。我们的代码在运行iOS 6.x的iPad4上使用VBO和glMapBufferRange进行流式绘制。模式类似于:

地图(第一个子区域) - >将数据写入第一子区域 - >取消映射 - >映射(第二个子区域) - >将数据写入第二个子区域 - > 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是否设置,性能都是相同的。

有谁知道为什么?有任何改进此用例的建议吗?

谢谢, 华莱士

1 个答案:

答案 0 :(得分:0)

旗帜结果证明是有效的。我在映射索引缓冲区时忘了添加标志。性能问题已修复。