fenceType | 要创建的 GraphicsFenceType。目前唯一支持的值是 GraphicsFenceType.AsyncQueueSynchronisation。 |
stage | 要在其之后插入栅栏的 SynchronisationStage。 |
GraphicsFence 返回新的 GraphicsFence。
创建 GraphicsFence。
GPU 在完成您在此调用之前发送的 Blit
、Clear
、Draw
、Dispatch
或纹理复制命令后,会通过 GraphicsFence
栅栏。这包括来自 命令缓冲区 的命令,这些命令在您创建栅栏之前由 GPU 立即执行。
您可以使用 stage
参数在顶点处理或像素处理结束之后插入 GraphicsFence 栅栏。在某些平台上,在绘制调用中顶点处理结束与像素处理开始之间存在间隙。
如果先前的命令是计算着色器分派,Unity 会忽略 stage
。
某些平台无法区分顶点处理结束与像素处理结束。在这些平台上,无论您使用 SynchronisationStage.PixelProcessing 还是 SynchronisationStage.VertexProcessing 作为 `stage` 的值,您都会获得相同的结果。
如果您在不支持栅栏的平台上调用 CreateGraphicsFence
,则栅栏将没有功能,并且 Graphics.WaitOnAsyncGraphicsFence 和 CommandBuffer.WaitOnAsyncGraphicsFence 方法不会执行任何操作。使用 SystemInfo.supportsGraphicsFence 检查平台是否支持栅栏。
其他资源:GraphicsFence、Graphics.WaitOnAsyncGraphicsFence、CommandBuffer.WaitOnAsyncGraphicsFence。