金属数组索引使用文字但使用变量崩溃

时间:2016-06-24 09:07:34

标签: ios arrays metal

我在计算内核中有一个存储一系列值的数组(现在只有10左右)。我将值分配给数组如下:

int count = uniforms;
int i = 0;
float pointsx[count];
float pointsy[count];
for (i = 0; i < count; i++){
  pointsx[i] = simplex3D(i*2,1,1);
  pointsy[i] = simplex3D(1,i*2,1);
}

然后我继续使用类似的for循环迭代这些点。 当我尝试在任何索引处访问数组时,这会在运行时报告编译器错误,但是如果我用整数文字替换i它会起作用。

我觉得我错过了一些非常明显的东西,任何帮助都会受到赞赏。

1 个答案:

答案 0 :(得分:1)

Metal不支持可变长度数组。由于数组中的条目数有一个小上限,因此可以声明该大小的数组。使用缓冲区更灵活,但需要您从设备内存中读取。