情况如下:
我有一个内核:
#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的配置都受到限制。
对于这种情况的任何见解将不胜感激。
答案 0 :(得分:0)
错误的来源来自实例化ComputeBuffer。我没有正确设置跨步参数。