private static void Assign(TransferShader.KernelType type) { if (TransferShader._Kernel[(int)type] == -1) { TransferShader._Kernel[(int)type] = TransferShader.Shader.FindKernel(TransferShader._KernelName[(int)type]); uint num; uint num2; uint num3; TransferShader.Shader.GetKernelThreadGroupSizes(TransferShader._Kernel[(int)type], out num, out num2, out num3); TransferShader._ThreadGroupX[(int)type] = (int)num; TransferShader._ThreadGroupY[(int)type] = (int)num2; TransferShader._ThreadGroupZ[(int)type] = (int)num3; } }
public static void Dispatch(TransferShader.KernelType type, int width, int height) { TransferShader.Shader.Dispatch(TransferShader._Kernel[(int)type], width / TransferShader._ThreadGroupX[(int)type], height / TransferShader._ThreadGroupY[(int)type], 1 / TransferShader._ThreadGroupZ[(int)type]); }