版本: Unity 6 (6000.0)
语言英语
  • C#

CommandBuffer.CreateGraphicsFence

建议更改

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们不能接受所有提交的内容,但我们确实会阅读用户提出的每项更改建议,并在适用的情况下进行更新。

关闭

提交失败

由于某种原因,您的更改建议无法提交。请<a>稍后再试</a>。感谢您抽出时间帮助我们提高 Unity 文档的质量。

关闭

取消

参数

fenceType 要创建的 GraphicsFenceType。目前唯一支持的值是 GraphicsFenceType.AsyncQueueSynchronisation
stage 要在其之后插入栅栏的 SynchronisationStage

返回值

GraphicsFence 返回新的 GraphicsFence

描述

创建 GraphicsFence

GPU 在完成您在此调用之前发送的 BlitClearDrawDispatch 或纹理复制命令后,会通过 GraphicsFence 栅栏。这包括来自 命令缓冲区 的命令,这些命令在您创建栅栏之前由 GPU 立即执行。

您可以使用 stage 参数在顶点处理或像素处理结束之后插入 GraphicsFence 栅栏。在某些平台上,在绘制调用中顶点处理结束与像素处理开始之间存在间隙。

如果先前的命令是计算着色器分派,Unity 会忽略 stage

某些平台无法区分顶点处理结束与像素处理结束。在这些平台上,无论您使用 SynchronisationStage.PixelProcessing 还是 SynchronisationStage.VertexProcessing 作为 `stage` 的值,您都会获得相同的结果。

如果您在不支持栅栏的平台上调用 CreateGraphicsFence,则栅栏将没有功能,并且 Graphics.WaitOnAsyncGraphicsFenceCommandBuffer.WaitOnAsyncGraphicsFence 方法不会执行任何操作。使用 SystemInfo.supportsGraphicsFence 检查平台是否支持栅栏。

其他资源:GraphicsFenceGraphics.WaitOnAsyncGraphicsFenceCommandBuffer.WaitOnAsyncGraphicsFence