以下是 D3D12_SHADER_DESC 结构的定义:
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; // Cut 指令数量
UINT EmitInstructionCount; // Emit 指令数量
D3D_PRIMITIVE PrimitiveType; // 图元类型
UINT GSOutputTopology; // 几何着色器输出拓扑
UINT GSMaxOutputVertexCount; // 几何着色器输出的最大顶点数量
D3D_CBUFFER_TYPE ConstantBuffers[1]; // 常量缓冲区类型数组,实际数量为 ConstantBuffers 字段的值
} D3D12_SHADER_DESC;
结构体的字段含义如下:
- Version: 着色器版本。
- Creator: 创建者信息。
- Flags: 着色器标志。
- ConstantBuffers: 常量缓冲区的数量。
- BoundResources: 绑定的资源数量。
- InputParameters: 输入参数数量。
- OutputParameters: 输出参数数量。
- InstructionCount: 指令数量。
- TempRegisterCount: 临时寄存器数量。
- TempArrayCount: 临时数组数量。
- DefCount: 定义数量。
- DclCount: 声明数量。
- TextureNormalInstructions: 普通纹理指令数量。
- TextureLoadInstructions: 纹理加载指令数量。
- TextureCompInstructions: 纹理比较指令数量。
- TextureBiasInstructions: 纹理偏移指令数量。
- TextureGradientInstructions: 纹理梯度指令数量。
- FloatInstructionCount: 浮点指令数量。
- IntInstructionCount: 整数指令数量。
- UintInstructionCount: 无符号整数指令数量。
- StaticFlowControlCount: 静态流控制指令数量。
- DynamicFlowControlCount: 动态流控制指令数量。
- MacroInstructionCount: 宏指令数量。
- ArrayInstructionCount: 数组指令数量。
- CutInstructionCount: Cut 指令数量。
- EmitInstructionCount: Emit 指令数量。
- PrimitiveType: 图元类型。
- GSOutputTopology: 几何着色器输出拓扑。
- GSMaxOutputVertexCount: 几何着色器输出的最大顶点数量。
- ConstantBuffers: 常量缓冲区类型数组,实际数量由 ConstantBuffers 字段指定。
该结构体主要用于获取 HLSL 着色器的一些基本信息,这些信息可以在运行时用于资源配置、优化和调试等目的。
转载请注明出处:http://www.zyzy.cn/article/detail/26163/Win32 API/D3d12shader.h/D3D12_SHADER_DESC