我正在尝试在计算着色器(HLSL)中编写一个函数,该函数接受一个参数是不同大小的数组。编译器总是拒绝它。
示例(不工作!):
void TestFunc(in uint SA[])
{
int K;
for (K = 0; SA[K] != 0; K++) {
// Some code using SA array
}
}
[numthreads(1, 1, 1)]
void CSMain(
uint S1[] = {1, 2, 3, 4 }; // Compiler happy and discover the array size
uint S2[] = {10, 20}; // Compiler happy and discover the array size
TestFunc(S1);
TestFunc(S2);
}
如果我在 TestFunc() 中给出一个数组大小,那么编译器在调用 TestFunc() 传递该特定数组大小但拒绝调用另一个大小时会很高兴。