Метод ID3D12GraphicsCommandList1::SetViewInstanceMask (d3d12.h)
Установите маску, которая определяет, какие экземпляры представлений включены для последующих отрисовок.
Синтаксис
void SetViewInstanceMask(
[in] UINT Mask
);
Параметры
[in] Mask
Тип: UINT
Маска, указывающая, какие представления включены или отключены. Если задан бит i , начинающийся с наименьшего бита, включен параметр просмотр экземпляра i .
Возвращаемое значение
None
Remarks
Маска экземпляра представления влияет только на объекты psos, которые объявляют маскирование экземпляра представления, указывая флаг D3D12_VIEW_INSTANCING_FLAG_ENABLE_VIEW_INSTANCE_MASKING во время их создания. Попытка создать pso, объявляющий маскирование экземпляра представления, завершится сбоем на адаптерах, которые не поддерживают инстансирование представлений.
Маска экземпляра представления по умолчанию — 0, которая отключает все представления. Это заставляет приложения, объявляющие маскирование экземпляров представлений, явно выбирать представления для включения, в противном случае ничего не будет отображаться. Если маска экземпляра представления включила все представления по умолчанию, приложение может не забыть отключить неиспользуемые представления, что приведет к потере производительности из-за напрасной работы.
Пакеты не наследуют маску экземпляра представления от вызывающего объекта. Вместо этого по умолчанию используется значение 0. Это связано с тем, что параметр маски должен быть известен при записи пакета, если он влияет на способ рисования записей реализации. Однако маска экземпляра представления, заданная пакетом, сохраняется в вызывающем объекте после завершения пакета. Эта семантика наследования аналогична семантике ППО.
Пути кода шейдера, зависящие от SV_ViewID, не выполняются на любом этапе шейдера для экземпляров представлений, которые маскируются, и не выполняется обрезка, обработка окна просмотра или растеризация. Реализации, которые проверяют маску во время отрисовки, могут повлечь небольшое снижение производительности по сравнению с PSOs, которые вообще не объявляют маскирование экземпляров представлений, но обычно это может быть преодолено за счет экономии производительности, которая возникает в результате пропуска работы, связанной с маскированием представлений. В зависимости от частоты и объема пропущенных работ повышение производительности может быть значительным.
Требования
Требование | Значение |
---|---|
Целевая платформа | Windows |
Header | d3d12.h |