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


структура D3D12_SIGNATURE_PARAMETER_DESC (d3d12shader.h)

Описывает подпись шейдера.

Синтаксис

typedef struct _D3D12_SIGNATURE_PARAMETER_DESC {
  LPCSTR                      SemanticName;
  UINT                        SemanticIndex;
  UINT                        Register;
  D3D_NAME                    SystemValueType;
  D3D_REGISTER_COMPONENT_TYPE ComponentType;
  BYTE                        Mask;
  BYTE                        ReadWriteMask;
  UINT                        Stream;
  D3D_MIN_PRECISION           MinPrecision;
} D3D12_SIGNATURE_PARAMETER_DESC;

Члены

SemanticName

Строка по параметру, определяющая способ использования данных. Дополнительные сведения см. в разделе Семантика.

SemanticIndex

Семантический индекс, изменяющий семантику. Используется для различения различных параметров, использующих одну и ту же семантику.

Register

Регистр, который будет содержать данные этой переменной.

SystemValueType

D3D_NAME типизированное значение, определяющее предопределенную строку, которая определяет функциональность определенных этапов конвейера.

ComponentType

Значение типа D3D_REGISTER_COMPONENT_TYPE, определяющее тип данных для каждого компонента, который хранится в регистре. Каждый регистр может хранить до четырех компонентов данных.

Mask

Маска, указывающая, какие компоненты регистра используются.

ReadWriteMask

Маска, указывающая, никогда не записывается ли данный компонент (если сигнатура является выходной сигнатурой) или всегда считывается (если сигнатура является входной).

Stream

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

MinPrecision

D3D_MIN_PRECISION типизированное значение, указывающее минимальную требуемую точность интерполяции. Дополнительные сведения см. в разделе Использование минимальной точности HLSL.

Комментарии

Шейдер может принимать n входов и создавать m выходных данных. Порядок входных (или выходных) параметров, связанные с ними типы и любая присоединенная семантика составляют сигнатуру шейдера. Каждый шейдер имеет входную и выходную сигнатуру.

При компиляции шейдера или эффекта некоторые вызовы API проверяют подписи шейдеров. Это значит, что они сравнивают выходную сигнатуру одного шейдера (например, вершинного шейдера) с входной сигнатурой другого шейдера (например, пиксельного шейдера). Это гарантирует, что шейдер выводит данные, совместимые с подчиненным шейдером, который использует эти данные. Совместимость означает, что подпись шейдера является подмножеством точного соответствия предыдущего этапа шейдера. Точное соответствие означает, что типы параметров и семантика должны точно совпадать. Подмножество означает, что параметр, который не требуется для подчиненного этапа, не должен включать этот параметр в сигнатуру шейдера.

Получите сигнатуру шейдера из шейдера или эффекта путем вызова ТАКИХ API , как ID3D12ShaderReflection::GetInputParameterDesc.

Требования

Требование Значение
Заголовок d3d12shader.h

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

Структуры шейдеров