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


перечисление D3D12_DESCRIPTOR_HEAP_FLAGS (d3d12.h)

Задает параметры для кучи.

Синтаксис

typedef enum D3D12_DESCRIPTOR_HEAP_FLAGS {
  D3D12_DESCRIPTOR_HEAP_FLAG_NONE = 0,
  D3D12_DESCRIPTOR_HEAP_FLAG_SHADER_VISIBLE = 0x1
} ;

Константы

 
D3D12_DESCRIPTOR_HEAP_FLAG_NONE
Значение: 0
Указывает использование кучи по умолчанию.
D3D12_DESCRIPTOR_HEAP_FLAG_SHADER_VISIBLE
Значение: 0x1
Флаг D3D12_DESCRIPTOR_HEAP_FLAG_SHADER_VISIBLE при необходимости можно задать в куче дескриптора, чтобы указать, что он привязан к списку команд для справки шейдерами. Кучи дескрипторов, созданные без этого флага, позволяют приложениям выполнять дескрипторы в памяти ЦП перед их копированием в кучу видимого дескриптора шейдера. Но приложения также прекрасно создают дескрипторы в виде кучи видимых дескрипторов шейдера без необходимости создавать что-либо на ЦП.

Кучи дескриптора, привязанные через ID3D12GraphicsCommandList::SetDescriptorHeaps , должны иметь флаг D3D12_DESCRIPTOR_HEAP_FLAG_SHADER_VISIBLE , иначе уровень отладки приведет к ошибке.

Кучи дескрипторов с флагом D3D12_DESCRIPTOR_HEAP_FLAG_SHADER_VISIBLE нельзя использовать в качестве исходных кучи в вызовах ID3D12Device::CopyDescriptors или ID3D12Device::CopyDescriptorsSimple, так как они могут находиться в памяти WRITE_COMBINE или локальной памяти GPU, что очень неэффективно для чтения.

Этот флаг применяется только к кучам дескриптора CBV,SRV/UAV и кучам дескриптора выборки. Он не применяется к другим типам кучи дескрипторов, так как шейдеры не ссылаются непосредственно на другие типы. Попытка создать кучу RTV/DSV с D3D12_DESCRIPTOR_HEAP_FLAG_SHADER_VISIBLE приводит к ошибке уровня отладки.

Комментарии

Это перечисление используется структурой D3D12_DESCRIPTOR_HEAP_DESC .

Требования

   
Верхняя часть d3d12.h

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

Перечисления core

Создание куч дескрипторов

Кучи дескрипторов