我试图在SSBO的帮助下将数据发送到我的Compute Shader,数据是一个结构,填充了4个另外的结构,230KB大。这工作正常,只要我在我的AMD卡上做,每当我在nvidia上尝试它,它只是编译(我认为)永远。如果我降低结构中的数据量,它将编译得很好。 这是Nvidia将SSBO限制在16MB以下,这是我所看到的标准,还是某种驱动程序错误?
CompileShader:
struct Plane {
vec3 Normal;
float d;
};
struct Frustum {
Plane Planes[4];
};
layout (std430, binding = 0) buffer FrustumBuffer
{
Frustum Data[3600];
} Frustums;
layout (local_size_x = 16, local_size_y = 16, local_size_z = 1) in;
void main ()
{
if(1 == 1) {
}
}
如果我将数据数组更改为1000而不是3600,则可以正常工作。