Metal 中的内核函数
Kernel Functions in Metal
我是 Metal 的新手。在哪些情况下我们在着色器中使用内核语句。使用它而不是普通的顶点和片段着色器有什么优势
kernel void shadowShader
为输出图像中的每个像素调用一次片段着色器。一个内核着色器会被调用任意多次,因此一个内核着色器可以在多个像素上工作,例如——或者根本不在像素上工作。它只是更灵活,对于某些问题可能性能更高(因为计算线程可以使用线程组内存协同工作)。
计算或内核着色器是通用计算管道。它经常用于图像处理任务。这通常是您使用 Google 搜索时出现的结果。但是内核程序可用于对您提供的数据执行任何操作。计算管道与渲染管道是分开的。您可以看到它是一种 GPU 并行计算方式。计算管道可以在您提供的 MTLBuffer
或纹理中写回设备内存。您可以在渲染管道中使用该输出。
我是 Metal 的新手。在哪些情况下我们在着色器中使用内核语句。使用它而不是普通的顶点和片段着色器有什么优势
kernel void shadowShader
为输出图像中的每个像素调用一次片段着色器。一个内核着色器会被调用任意多次,因此一个内核着色器可以在多个像素上工作,例如——或者根本不在像素上工作。它只是更灵活,对于某些问题可能性能更高(因为计算线程可以使用线程组内存协同工作)。
计算或内核着色器是通用计算管道。它经常用于图像处理任务。这通常是您使用 Google 搜索时出现的结果。但是内核程序可用于对您提供的数据执行任何操作。计算管道与渲染管道是分开的。您可以看到它是一种 GPU 并行计算方式。计算管道可以在您提供的 MTLBuffer
或纹理中写回设备内存。您可以在渲染管道中使用该输出。