перечисление D3D12_ROOT_SIGNATURE_FLAGS (d3d12.h)
Задает параметры для макета корневой подписи.
Синтаксис
typedef enum D3D12_ROOT_SIGNATURE_FLAGS {
D3D12_ROOT_SIGNATURE_FLAG_NONE = 0,
D3D12_ROOT_SIGNATURE_FLAG_ALLOW_INPUT_ASSEMBLER_INPUT_LAYOUT = 0x1,
D3D12_ROOT_SIGNATURE_FLAG_DENY_VERTEX_SHADER_ROOT_ACCESS = 0x2,
D3D12_ROOT_SIGNATURE_FLAG_DENY_HULL_SHADER_ROOT_ACCESS = 0x4,
D3D12_ROOT_SIGNATURE_FLAG_DENY_DOMAIN_SHADER_ROOT_ACCESS = 0x8,
D3D12_ROOT_SIGNATURE_FLAG_DENY_GEOMETRY_SHADER_ROOT_ACCESS = 0x10,
D3D12_ROOT_SIGNATURE_FLAG_DENY_PIXEL_SHADER_ROOT_ACCESS = 0x20,
D3D12_ROOT_SIGNATURE_FLAG_ALLOW_STREAM_OUTPUT = 0x40,
D3D12_ROOT_SIGNATURE_FLAG_LOCAL_ROOT_SIGNATURE = 0x80,
D3D12_ROOT_SIGNATURE_FLAG_DENY_AMPLIFICATION_SHADER_ROOT_ACCESS = 0x100,
D3D12_ROOT_SIGNATURE_FLAG_DENY_MESH_SHADER_ROOT_ACCESS = 0x200,
D3D12_ROOT_SIGNATURE_FLAG_CBV_SRV_UAV_HEAP_DIRECTLY_INDEXED = 0x400,
D3D12_ROOT_SIGNATURE_FLAG_SAMPLER_HEAP_DIRECTLY_INDEXED = 0x800
} ;
Константы
D3D12_ROOT_SIGNATURE_FLAG_NONE Значение: 0 Указывает поведение по умолчанию. |
D3D12_ROOT_SIGNATURE_FLAG_ALLOW_INPUT_ASSEMBLER_INPUT_LAYOUT Значение: 0x1 Приложение согласилось использовать входной ассемблер (требуется входной макет, определяющий набор привязок буфера вершин). Пропуск этого флага может привести к экономии одного корневого пространства аргументов на некотором оборудовании. Опустите этот флаг, если сборщик входных данных не требуется, хотя оптимизация незначительна. |
D3D12_ROOT_SIGNATURE_FLAG_DENY_VERTEX_SHADER_ROOT_ACCESS Значение: 0x2 Запрещает шейдеру вершин доступ к корневой сигнатуре. |
D3D12_ROOT_SIGNATURE_FLAG_DENY_HULL_SHADER_ROOT_ACCESS Значение: 0x4 Запрещает шейдеру корпуса доступ к корневой сигнатуре. |
D3D12_ROOT_SIGNATURE_FLAG_DENY_DOMAIN_SHADER_ROOT_ACCESS Значение: 0x8 Запрещает шейдеру домена доступ к корневой сигнатуре. |
D3D12_ROOT_SIGNATURE_FLAG_DENY_GEOMETRY_SHADER_ROOT_ACCESS Значение: 0x10 Запрещает шейдеру геометрии доступ к корневой сигнатуре. |
D3D12_ROOT_SIGNATURE_FLAG_DENY_PIXEL_SHADER_ROOT_ACCESS Значение: 0x20 Запрещает шейдеру пикселей доступ к корневой сигнатуре. |
D3D12_ROOT_SIGNATURE_FLAG_ALLOW_STREAM_OUTPUT Значение: 0x40 Приложение согласилось использовать Stream Output. Пропуск этого флага может привести к экономии одного корневого пространства аргументов на некотором оборудовании. Опустите этот флаг, если потоковый вывод не требуется, хотя оптимизация незначительная. |
D3D12_ROOT_SIGNATURE_FLAG_LOCAL_ROOT_SIGNATURE Значение: 0x80 Корневую сигнатуру следует использовать с шейдерами для определения привязок ресурсов, полученных из записей шейдеров в таблицах шейдеров. Этот флаг не может быть объединен с другими флагами корневой сигнатуры, которые связаны с графическим конвейером. Отсутствие флага означает, что корневую сигнатуру можно использовать с графикой или вычислениями, где вычислительная версия также используется с глобальной корневой сигнатурой raytracing. |
D3D12_ROOT_SIGNATURE_FLAG_DENY_AMPLIFICATION_SHADER_ROOT_ACCESS Значение: 0x100 Запрещает шейдеру усиления доступ к корневой сигнатуре. |
D3D12_ROOT_SIGNATURE_FLAG_DENY_MESH_SHADER_ROOT_ACCESS Значение: 0x200 Запрещает шейдеру сетки доступ к корневой сигнатуре. |
D3D12_ROOT_SIGNATURE_FLAG_CBV_SRV_UAV_HEAP_DIRECTLY_INDEXED Значение: 0x400 Шейдеры могут индексировать кучу дескриптора CBV,SRV/UAV напрямую с помощью встроенной переменной ResourceDescriptorHeap . |
D3D12_ROOT_SIGNATURE_FLAG_SAMPLER_HEAP_DIRECTLY_INDEXED Значение: 0x800 Шейдеры могут индексировать кучу дескриптора с помощью встроенной переменной SamplerDescriptorHeap . |
Комментарии
Это перечисление используется в структуре D3D12_ROOT_SIGNATURE_DESC .
Значение запрета доступа к этапам шейдера является незначительной оптимизацией на некотором оборудовании. Если, например, флаг D3D12_SHADER_VISIBILITY_ALL был установлен для трансляции корневой сигнатуры во все этапы шейдера, то запрет доступа может передействовать это и сохранить оборудование некоторые работы. Кроме того, если шейдер настолько прост, что ресурсы корневой сигнатуры не требуются, можно также использовать запрет доступа.
Требования
Верхняя часть | d3d12.h |