kernelIndex | 要执行的内核。单个计算着色器资源可具有多个内核入口点。 |
argsBuffer | 具有分发参数的缓冲区。 |
argsOffset | 缓冲区中的字节偏移,绘制参数起始位置。 |
执行计算着色器。
此函数“运行”该计算着色器,给定工作大小是从 GPU 直接读取的。典型的用例是从 ComputeShader 中生成任意数量的数据,然后分发这些数据,无需回读 CPU。
具有参数 argsBuffer
的缓冲区必须以给定的 argsOffset
偏移获得三个整数:
X 尺寸中的工作组数、Y 尺寸中的工作组数、Z 尺寸中的工作组数。
在每个工作组中均进行了一定数量的着色器调用(“线程”)。该工作组
大小是在计算着色器本身中指定的(使用“numthreads”HLSL 属性),因此计算着色器
调用的总数是组数乘以线程组大小。
可使用 GetKernelThreadGroupSizes 函数查询工作组的大小。
它们直接映射到 Direct3D11 DispatchIndirect、OpenGL glDispatchComputeIndirect 以及其他图形 API 上的等同函数。
另请参阅:Dispatch、Graphics.DrawProceduralIndirect、ComputeBuffer.CopyCount、Compute Shaders。