перечисление 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 |