标签: c++ opengl driver buffer call
我想知道是否建议消除所有冗余的opengl调用。
例如,我应该做什么(包裹在一个函数中):
if(foobuffer != boundbuffer) { glBindBuffer(GL_BAR_BUFFER, foobuffer); boundbuffer = foobuffer; }
或者是驱动程序自动执行此类操作,这实际上是冗余的reduntant-check?
答案 0 :(得分:5)
你应该避免它。 Here(特别是22.040,你必须向下滚动页面,因为它没有锚点),需要注意的是,即使某些实现尝试将影响降至最低,冗余调用通常也是不好的做法。
gDEBugger之类的工具也可用于帮助追踪您可能拨打多余电话的位置,如果您处的位置不确定您在代码库中可能做了多少
答案 1 :(得分:3)
我刚刚从Android应用程序中删除了许多这样的调用,所以我可以直接告诉你它在该平台上的重要性(在特定的操作系统版本和硬件上)。它将帧速率提高了几个fps,我说利润大约为5-10%。