計算着色器如何劃分任務?如何用計算着色器劃分任務?
#version 430 core
layout (local_size_x = 64) in;
layout(std430, binding=4) buffer INFO
{
vec2 info[];
};
void main()
{
uint gid = gl_GlobalInvocationID.x;
info[gid].x += 1.0;
info[gid].y += 1.0;
memoryBarrier();
}
在這個例子中
,通過指定local_size_x = 64,是否意味着每個工作組將自動擁有64個線程,並且由於輸入是VEC2陣列,它知道剛剛經過主與每個VEC2上一個單獨的線程?
另外,如果着色器爲每個vec2輸入生成10個vec2,然後我想在每個獨立的線程上做一些不同的操作,我該怎麼做。最初的64個線程將分支到640.這可以在這個相同的着色器中完成,或者我必須做第二個?