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

Graphics.CreateGraphicsFence

建议更改

成功!

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

关闭

提交失败

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

关闭

取消

声明

public static Rendering.GraphicsFence CreateGraphicsFence(Rendering.GraphicsFenceType fenceType, Rendering.SynchronisationStageFlags stage = SynchronisationStage.PixelProcessing);

参数

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