我正在尝试解决有关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
是否设置,性能都是相同的。
有谁知道为什么?有任何改进此用例的建议吗?
谢谢, 华莱士
答案 0 :(得分:0)
旗帜结果证明是有效的。我在映射索引缓冲区时忘了添加标志。性能问题已修复。