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


Корневые подписи

Корневая сигнатура определяет, какие типы ресурсов привязаны к графическому конвейеру.

В этом разделе

Тема Описание
Обзор корневых подписей
Корневая сигнатура настраивается приложением и связывает списки команд с ресурсами, которым требуются шейдеры. В списке команд графики есть графическая и корневая сигнатура вычислений. В списке команд вычислений будет просто одна корневая подпись вычислений. Эти корневые подписи не зависят друг от друга.
использование корневой подписи
Корневая сигнатура — это определение произвольно упорядоченной коллекции таблиц дескриптора (включая их макет), корневых констант и корневых дескрипторов. Каждая запись имеет затраты на максимальное ограничение, поэтому приложение может сбалансировать баланс между количеством каждого типа записи корневой сигнатуры.
создание корневой подписи
Корневые сигнатуры — это сложная структура данных, содержащая вложенные структуры. Их можно определить программным способом с помощью приведенного ниже определения структуры данных (который включает методы для инициализации элементов). Кроме того, они могут быть написаны на языке заливки высокого уровня (HLSL), предоставляя преимущество, которое компилятор проверит раньше, что макет совместим с шейдером.
ограничения корневой подписи
Корневая подпись является основным недвижимостью, и существуют строгие ограничения и затраты, которые следует рассмотреть.
использование констант непосредственно в корневой сигнатуре
Приложения могут определять корневые константы в корневой сигнатуре, каждая из которых представляет собой набор 32-разрядных значений. Они отображаются в языке HLSL высокого уровня в качестве буфера констант. Обратите внимание, что буферы констант по историческим причинам рассматриваются как наборы 4x32-разрядных значений.
использование дескрипторов непосредственно в корневой сигнатуре
Приложения могут помещать дескрипторы непосредственно в корневую сигнатуру, чтобы избежать необходимости проходить через кучу дескриптора. Эти дескрипторы занимают много места в корневой сигнатуре (см. раздел ограничений корневой сигнатуры), поэтому приложениям придется использовать их разреженно.
примеры корневых подписей
В следующем разделе показаны корневые сигнатуры, которые зависят от пустого до полного.
указание корневых подписей в HLSL
Указание корневых подписей в модели 5.1 шейдера HLSL является альтернативой их указанию в коде C++.
корневую подпись версии 1.1
Цель корневой подписи версии 1.1 — разрешить приложениям указывать драйверам, когда дескрипторы в куче дескриптора не изменятся или дескрипторы данных не будут изменяться. Это позволяет драйверам выполнять оптимизации, которые могут быть возможными, зная, что дескриптор или память, на которую он указывает, является статическим в течение некоторого периода времени.

ID3D12RootSignature

ID3D12RootSignatureDeserializer

привязки ресурсов