ComputeShader中SV_DispatchThreadID的限制范围

时间:2018-10-18 19:10:58

标签: hlsl

情况如下:

我有一个内核:

#pragma kernel diffga
#pragma[numthreads(16, 8, 1)]
void diffga(uint3 id : SV_DispatchThreadID) {
    /* code here */
}

我使用以下命令调度此内核:

_shader.Dispatch(kidiffga, 8, 16, 1)

如果我捕获id.x和id.y的值,则id.y的范围是扩展的0:31。但是id.x的范围仅为0:7。如果我更改numthreads并分派以使预期范围小于8,则它可以正常运行。但是,任何要求范围大于8的numthreads和dispatch的配置都受到限制。

对于这种情况的任何见解将不胜感激。

1 个答案:

答案 0 :(得分:0)

错误的来源来自实例化ComputeBuffer。我没有正确设置跨步参数。