我正在阅读的示例来自opengl红皮书。 源代码在这里:https://github.com/openglredbook/examples/blob/master/src/11-oit/11-oit.cpp
我读到有关图像加载存储的是不连贯的内存访问,并且不能保证2个渲染命令之间的顺序。 https://www.khronos.org/opengl/wiki/Memory_Model 当我阅读该算法的源代码时,看不到内存障碍。 那么,实际上我是否需要在对片段进行排序和存储的渲染命令与对四边形进行渲染的渲染命令之间调用内存屏障?
答案 0 :(得分:4)
对于您的一般问题,是的,在两个操作之间需要一个显式的内存屏障。
从个人角度来说,请停止查看该代码。除了无障碍之外,我还看到了许多可疑的事情:仅出于编写单个整数的目的而对缓冲区的映射,对png
的调用肯定会产生错误,因为glTexSubImage2D
不是有效的指针参数,等等。