CommandBufferExtensions.SwitchIntoFastMemory
Declaration
public static void SwitchIntoFastMemory(Rendering.CommandBuffer cmd, Rendering.RenderTargetIdentifier rid, Rendering.FastMemoryFlags fastMemoryFlags, float residency, bool copyContents);Параметры
| Параметр | Описание |
|---|---|
| рид | Цель отображения, которая будет помещена в быструю память GPU. |
| fastMemoryFlags | Расположение памяти, которое будет использоваться, если только часть цели рендеринга будет помещена в быструю память GPU, либо из-за параметра резиденции, либо из-за быстрой доступности памяти GPU. |
| резиденция | Количество целевого объекта рендеринга, которое должно быть помещено в быструю память GPU. Допустимые значения от 0.0f до 1.0f включительно. Значение 0.0f означает, что целевого объекта рендеринга нет, а значение 1.0f означает, что целевого объекта рендеринга нет вообще. |
| copyContents | Когда это значение установлено на true, Unity копирует существующее содержимое объекта отображения в оперативную память. Когда это значение установлено на false, Unity не копирует существующее содержимое объекта отображения в оперативную память. Установите это значение на true, если вы планируете добавить к существующему содержимому, и установите его на false, если вы планируете перезаписать или очистить существующее содержимое. По возможности, установите это значение на false для повышения производительности. |
Описание
Добавляет команду для загрузки заданной цели рендеринга в быструю память GPU.
На некоторых консольных платформах вы можете помещать цели рендеринга в быструю память GPU для повышения производительности рендеринга.
На платформах, не поддерживающих быструю память GPU, эта функция не выполняет ничего.
На платформах, поддерживающих быструю память GPU, результат этой функции зависит от состояния цели рендеринга и объёма быстрой памяти GPU, доступного в момент выполнения этой команды графическим API. Если цель рендеринга ещё не находится в быстрой памяти GPU, Unity помещает туда как можно большую её часть — вплоть до объёма, указанного в параметре residency. Если Unity не может поместить цель рендеринга в быструю память GPU, либо потому, что она уже находится в быстрой памяти GPU, либо потому, что не доступна быстрая память GPU, Unity не делает ничего. В этом случае не возникает затрат на производительность.
Обратите внимание, что невозможно заранее определить, находится ли цель рендеринга уже в быстрой памяти GPU, или сколько быстрой памяти GPU доступно.
Дополнительные ресурсы: CommandBufferExtensions.SwitchOutOfFastMemory