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

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

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