структура D3D12_SHADER_DESC (d3d12shader.h)
Описывает шейдер.
Синтаксис
typedef struct _D3D12_SHADER_DESC {
UINT Version;
LPCSTR Creator;
UINT Flags;
UINT ConstantBuffers;
UINT BoundResources;
UINT InputParameters;
UINT OutputParameters;
UINT InstructionCount;
UINT TempRegisterCount;
UINT TempArrayCount;
UINT DefCount;
UINT DclCount;
UINT TextureNormalInstructions;
UINT TextureLoadInstructions;
UINT TextureCompInstructions;
UINT TextureBiasInstructions;
UINT TextureGradientInstructions;
UINT FloatInstructionCount;
UINT IntInstructionCount;
UINT UintInstructionCount;
UINT StaticFlowControlCount;
UINT DynamicFlowControlCount;
UINT MacroInstructionCount;
UINT ArrayInstructionCount;
UINT CutInstructionCount;
UINT EmitInstructionCount;
D3D_PRIMITIVE_TOPOLOGY GSOutputTopology;
UINT GSMaxOutputVertexCount;
D3D_PRIMITIVE InputPrimitive;
UINT PatchConstantParameters;
UINT cGSInstanceCount;
UINT cControlPoints;
D3D_TESSELLATOR_OUTPUT_PRIMITIVE HSOutputPrimitive;
D3D_TESSELLATOR_PARTITIONING HSPartitioning;
D3D_TESSELLATOR_DOMAIN TessellatorDomain;
UINT cBarrierInstructions;
UINT cInterlockedInstructions;
UINT cTextureStoreInstructions;
} D3D12_SHADER_DESC;
Члены
Version
Версия шейдера в виде закодированного UINT, соответствующего модели шейдера, например "ps_5_0". Версия описывает тип программы, основной номер версии и дополнительный номер версии. Тип программы является константой перечисления D3D12_SHADER_VERSION_TYPE . Версия декодируется следующим образом:
- Тип программы = (версия & 0xFFFF0000) >> 16
- Основная версия = (версия & 0x000000F0) >> 4
- Дополнительная версия = (версия & 0x0000000F)
Creator
Имя инициатора шейдера.
Flags
Флаги компиляции и анализа шейдера.
ConstantBuffers
Количество буферов констант шейдера.
BoundResources
Количество ресурсов (текстур и буферов), привязанных к шейдеру.
InputParameters
Количество параметров во входной сигнатуре.
OutputParameters
Количество параметров в выходной сигнатуре.
InstructionCount
Количество инструкций на промежуточном языке в скомпилированном шейдере.
TempRegisterCount
Количество временных регистров в скомпилированном шейдере.
TempArrayCount
Количество используемых временных массивов.
DefCount
Число определений констант.
DclCount
Количество объявлений (входные и выходные данные).
TextureNormalInstructions
Количество инструкций текстуры, не относящихся к категории.
TextureLoadInstructions
Число инструкций по загрузке текстур
TextureCompInstructions
Инструкции по сравнению с количеством текстур
TextureBiasInstructions
Число инструкций смещения текстуры
TextureGradientInstructions
Число инструкций по градиенту текстуры.
FloatInstructionCount
Количество используемых арифметических инструкций с плавающей запятой.
IntInstructionCount
Число используемых арифметических инструкций со знаком.
UintInstructionCount
Число арифметических инструкций без знака.
StaticFlowControlCount
Количество используемых инструкций управления статическим потоком.
DynamicFlowControlCount
Количество используемых инструкций по управлению динамическим потоком.
MacroInstructionCount
Количество используемых инструкций макросов.
ArrayInstructionCount
Количество используемых инструкций массива.
CutInstructionCount
Количество используемых инструкций для вырезания.
EmitInstructionCount
Количество используемых инструкций выдачи.
GSOutputTopology
D3D_PRIMITIVE_TOPOLOGY типизированное значение, представляющее топологию выходных данных геометрического шейдера.
GSMaxOutputVertexCount
Максимальное число выходных вершин шейдера геометрии.
InputPrimitive
D3D_PRIMITIVE типизированное значение, представляющее входной примитив для геометрического шейдера или шейдера корпуса.
PatchConstantParameters
Число параметров в сигнатуре константы исправления.
cGSInstanceCount
Количество экземпляров геометрического шейдера.
cControlPoints
Количество контрольных точек в шейдере корпуса и шейдере предметной области.
HSOutputPrimitive
Значение типа D3D_TESSELLATOR_OUTPUT_PRIMITIVE, представляющее тип примитив вывода tessellator.
HSPartitioning
D3D_TESSELLATOR_PARTITIONING типизированное значение, представляющее режим секционирования tessellator.
TessellatorDomain
D3D_TESSELLATOR_DOMAIN типизированное значение, представляющее домен tessellator.
cBarrierInstructions
Количество инструкций барьера в вычислительном шейдере.
cInterlockedInstructions
Число взаимосвязанных инструкций в вычислительном шейдере.
cTextureStoreInstructions
Число операций записи текстур в вычислительном шейдере.
Комментарии
Шейдер записывается на языке HLSL и компилируется на промежуточный язык компилятором HLSL. Описание шейдера возвращает сведения о скомпилированном шейдере. Чтобы получить описание шейдера, вызовите ID3D12ShaderReflection::GetDesc.
Требования
Требование | Значение |
---|---|
Заголовок | d3d12shader.h |