我想知道memoryBarrierShared的用处。glsl memoryBarrierShared用处
事实上,当我在寻找屏障功能的文档:我读:
对于计算着色器屏障的任何给定的静态实例,一个工作组内的所有调用必须进入它之前的任何有允许继续超越它。这可以确保在一个给定的屏障静态实例之前,通过一次调用写入的值可以在调用相同的静态屏障实例后由其他调用安全地读取。由于调用可能会在这些屏障调用之间以未定义的顺序执行,因此在许多情况下,每个顶点或每个补丁输出变量或任何共享变量的值都将不确定。
所以,如果我们可以安全地使用屏障后读取值,为什么我们看到在一些代码
memoryBarrierShared();
barrier();
或有毛病像
barrier();
memoryBarrierShared();
所以,我的问题是:什么是memoryBarrier {Shared,...}的目的,如果使用障碍足够了吗?
对于memoryBarrierBuffer /图片我可以理解,如果我们使用多级,但共享,我没有任何想法...