Поделиться через


Метод 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

См. также раздел

ID3D12GraphicsCommandList1