GraphicsStateCollection.WarmUp
Declaration
public Unity.Jobs.JobHandle WarmUp(Unity.Jobs.JobHandle dependency);Параметры
| Параметр | Описание |
|---|---|
| зависимость | Работа, которую надо ждать. |
Возвращаемое значение
JobHandle Ручка для предварительного нагрева.
Описание
Предварительно нагревает все варианты шейдеров в этой коллекции, используя связанные графические состояния.
Это приведёт к созданию GPU-представлений сохранённых вариантов шейдеров. Полный прогрев коллекции состояний графики поддерживается, только если SystemInfo.supportsParallelPSOCreation является true. В противном случае поведение возвращается к старому ShaderVariantCollection.WarmUp. JobHandle, возвращенный этим методом, может быть использован для управления тем, происходит ли создание представлений GPU синхронно или асинхронно.
Приведенный ниже пример выполнит разогрев асинхронно.
using UnityEngine; using UnityEngine.Experimental.Rendering; using Unity.Jobs;
public class WarmUpExample : MonoBehaviour { public GraphicsStateCollection graphicsStateCollection;
void Start() { JobHandle handle = graphicsStateCollection.WarmUp(); } }
Ниже приведен пример того, как дождаться завершения обработки задания, чтобы выполнять операции синхронно.
using UnityEngine; using UnityEngine.Experimental.Rendering; using Unity.Jobs;
public class WarmUpSynchronousExample : MonoBehaviour { public GraphicsStateCollection graphicsStateCollection;
void Start() { JobHandle handle = graphicsStateCollection.WarmUp(); handle.Complete(); } }
Предварительная нагрева также может быть связана с другими заданиями с помощью зависимости входа и возвращаемого JobHandle.
using UnityEngine; using UnityEngine.Experimental.Rendering; using Unity.Jobs;
public class WarmUpSynchronousExample : MonoBehaviour { struct PostWarmUpJob : IJob { public void Execute() { Debug.Log("WarmUp is complete"); } }
public GraphicsStateCollection graphicsStateCollection; public JobHandle inputJobHandle;
void Start() { JobHandle handle = graphicsStateCollection.WarmUp(inputJobHandle);
var job = new PostWarmUpJob(); job.Schedule(handle); } }
Дополнительные ресурсы: ,WarmUpProgressively,, ,isWarmedUp,, ,ShaderVariantCollection.WarmUp,.