структура 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 |