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