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

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

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

Создание корневой подписи

D3D12_ROOT_SIGNATURE_DESC