名称
glMemoryBarrier —定义对内存事务进行排序的屏障
C 规范
void glMemoryBarrier( GLbitfield barriers);
void glMemoryBarrierByRegion( GLbitfield barriers);
参数
barriers
指定要插入的障碍。必须为 GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT, GL_ELEMENT_ARRAY_BARRIER_BIT, GL_UNIFORM_BARRIER_BIT, GL_TEXTURE_FETCH_BARRIER_BIT, GL_SHADER_IMAGE_ACCESS_BARRIER_BIT, GL_COMMAND_BARRIER_BIT, GL_PIXEL_BUFFER_BARRIER_BIT, GL_TEXTURE_UPDATE_BARRIER_BIT, GL_BUFFER_UPDATE_BARRIER_BIT, GL_FRAMEBUFFER_BARRIER_BIT, GL_TRANSFORM_FEEDBACK_BARRIER_BIT, GL_ATOMIC_COUNTER_BARRIER_BIT, 或 GL_SHADER_STORAGE_BARRIER_BIT的按位组合. 如果指定了特殊值GL_ALL_BARRIER_BITS,将插入所有受支持的障碍。
描述
glMemoryBarrier定义一个屏障,相对于在屏障之后发出的事务,该屏障对在命令之前发出的内存事务进行排序。出于此排序的目的,由着色器执行的内存事务被视为由触发着色器执行的渲染命令发出。 barriers是一个位域,指示与着色器存储同步的一组操作;屏障中使用的位如下:
GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT
如果设置,则从障碍之后的缓冲区对象获取的顶点数据将反映在障碍之前由着色器写入的数据。受此位影响的一组缓冲区对象是从用于GL_VER

glMemoryBarrier函数用于定义内存事务的排序屏障,确保着色器之间的内存操作正确同步。它接受一个位字段参数,指示需要同步的不同类型的内存操作,如顶点数据、纹理数据、缓冲区更新等。这个屏障对于实现跨着色器调用的数据通信和确保OpenGL ES 3.0中的渲染顺序是至关重要的。

1525

被折叠的 条评论
为什么被折叠?



