问题描述
我很难理解两者的实际区别。 假设我已将我的local_size定义如下:
layout(local_size_x = 32,local_size_y = 32,local_size_z = 1)in;
现在我打电话给
gldispatchCompute(1,1,1);
如果我没记错的话,这将导致int 32 * 32 * 1着色器调用。 所以,这有什么区别:
layout(local_size_x = 1,local_size_y = 1,local_size_z = 1)in;
并且:
gldispatchCompute(32,32,1);
解决方法
最明显的区别可能是在工作组中跨调用对shared variables的支持。与工作组相比,工作组中的所有调用都被称为并行运行。通常,这主要是关于您的代码如何映射到硬件及其与之交互的能力。