Описание
Используется для управления синхронизацией задач в асинхронных очередях вычислений и графической очереди.
Не все платформы поддерживают графические ограждения. Смотрите SystemInfo.supportsGraphicsFence.
GraphicsFence представляет собой точку во время обработки графическим процессором после завершения отправки определенного вычислительного шейдера или вызова отрисовки. Его можно использовать для достижения синхронизации между задачами, выполняемыми в очередях асинхронных вычислений или графической очереди, заставляя одну или несколько очередей ждать, пока не будет пройдено заданное ограничение. Это важное соображение при работе с асинхронными вычислениями, поскольку различные задачи, выполняемые одновременно в очереди графики и очередях асинхронных вычислений, являются ключом к повышению производительности графического процессора.
GPUFences не нужно использовать для синхронизации записи задачи графического процессора в ресурс, который будет считываться другим как входные данные. Эти зависимости ресурсов автоматически обрабатываются Unity.
GPUFences должны быть созданы через Graphics.CreateGraphicsFence или CommandBuffer.CreateGraphicsFence. Попытка использовать GraphicsFence, который не был создан с помощью одной из этих функций, приведет к исключению.
С помощью GraphicsFences можно создавать циклические зависимости, которые при выполнении блокируют GPU. Unity обнаружит такие циклические зависимости в редакторе и вызовет исключения, если таковые существуют, после вызовов Graphics.CreateGraphicsFence, Graphics.WaitOnGraphicsFence, Graphics.ExecuteCommandBuffer, Graphics.ExecuteCommandBufferAsync, ScriptableRenderContext.ExecuteCommandBuffer, ScriptableRenderContext.ExecuteCommandBufferAsync.
Смотрите так же: SystemInfo.supportsGraphicsFence, Graphics.CreateGraphicsFence, Graphics.WaitOnGraphicsFence, CommandBuffer.CreateGraphicsFence, CommandBuffer.WaitOnAsyncGraphicsFence, Graphics.ExecuteCommandBuffer, Graphics.ExecuteCommandBufferAsync, ScriptableRenderContext.ExecuteCommandBuffer, ScriptableRenderContext.ExecuteCommandBufferAsync.
Свойства
passed | Определяет, прошел ли GraphicsFence. Позволяет ЦП определить, прошел ли GPU точку в своей обработке, представленную GraphicsFence. |