指定编译器目标

调用 D3DCompile、D3DCompile2 或 D3DCompileFromFile 函数时,需要指定要编译的着色器目标(着色器功能集)。 下面列出了 D3DCompile* 函数和 HLSL 编译器支持的各种配置文件的目标。

Direct3D 11.0 和 11.1 功能级别

下面是 Direct3D 11.0 和 11.1 功能级别 支持的着色器目标。

目标 描述
cs_5_0 DirectCompute 5.0 (计算着色器)
ds_5_0 域着色器
gs_5_0 几何着色器
hs_5_0 外壳着色器
ps_5_0 像素着色器
vs_5_0 顶点着色器

 

Direct3D 10.1 功能级别

下面是 Direct3D 10.1 功能级别 支持的着色器目标。

目标 描述
cs_4_1 DirectCompute 4.1 (计算着色器) ¹
gs_4_1 几何着色器
ps_4_1 像素着色器
vs_4_1 顶点着色器

 

Direct3D 10.0 功能级别

下面是 Direct3D 10.0 功能级别 支持的着色器目标。

目标 描述
cs_4_0 DirectCompute 4.0 (计算着色器) ¹
gs_4_0 几何着色器
ps_4_0 像素着色器
vs_4_0 顶点着色器

 

Direct3D 9.1、9.2 和 9.3 功能级别

下面是 Direct3D 9.1、9.2 和 9.3 功能级别 支持的着色器目标。

注意

使用 *_4_0_level_9_x HLSL 着色器配置文件时,将隐式使用 着色器模型 2.x 配置文件来支持支持 Direct3D 9 的硬件。 着色器模型 2.x 配置文件支持比 着色器模型 4.x 及更高版本的配置文件更有限的流控制行为。

 

目标 描述
ps_4_0_level_9_1 9.1 和 9.2 的像素着色器 (类似于ps_2_0)
  • 64 个算术和 32 个纹理指令
  • 12 个临时寄存器
  • 4 个从属读取级别
ps_4_0_level_9_3 9.3 像素着色器 (与 ps_2_x² 类似的限制,具有其他着色器功能)
  • 512 说明
  • 32 个临时寄存器
  • 静态流控制 (最大深度为 4)
  • 动态流控制 (最大深度为 24)
  • D3DPS20CAPS_ARBITRARYSWIZZLE
  • D3DPS20CAPS_GRADIENTINSTRUCTIONS
  • D3DPS20CAPS_PREDICATION
  • D3DPS20CAPS_NODEPENDENTREADLIMIT
  • D3DPS20CAPS_NOTEXINSTRUCTIONLIMIT
vs_4_0_level_9_1 9.1 和 9.2 的顶点着色器 (类似于 vs_2_0)
  • 256 条说明
  • 12 个临时寄存器
  • 静态流控制 (最大深度为 1)
vs_4_0_level_9_3 适用于 9.3 (的顶点着色器类似于 vs_2_a²,具有附加着色器功能和实例化)
  • 256 条说明
  • 32 个临时寄存器
  • 静态流控制 (最大深度为 4)
  • D3DVS20CAPS_PREDICATION

 

旧版 Direct3D 9 着色器模型 3.0

下面是旧版 Direct3D 9 着色器模型 3.02 的着色器目标。

目标 描述
ps_3_0 像素着色器 3.0
ps_3_sw 像素着色器 3.0 (软件)
vs_3_0 顶点着色器 3.0
vs_3_sw 顶点着色器 3.0 (软件)

 

旧版 Direct3D 9 着色器模型 2.0

下面是旧版 Direct3D 9 着色器模型 2.02 的着色器目标。

目标 描述
ps_2_0 像素着色器 2.0
ps_2_a 像素着色器 2a
ps_2_b 像素着色器 2b
ps_2_sw 像素着色器 2.0 软件
vs_2_0 顶点着色器 2.0
vs_2_a 顶点着色器 2a
vs_2_sw 顶点着色器 2.0 软件

 

旧版 Direct3D 9 着色器模型 1.x

下面是旧版 Direct3D 9 着色器模型 1.x⁴ 的着色器目标。

目标 描述
tx_1_0 旧版 D3DX9⁵ 函数 D3DXCreateTextureShaderD3DXFillTextureTX 使用的纹理着色器配置文件
vs_1_1 顶点着色器 1.1

 

旧版效果

下面是旧版效果的效果目标。

目标 描述
fx_2_0 在 D3DX9⁵ 中为 Direct3D 9 (FX) 效果
fx_4_0 在 D3DX10⁵中为 Direct3D 10.0 (FX) 效果
fx_4_1 D3DX10⁵中 Direct3D 10.1 的效果 (FX)
fx_5_0 Direct3D 11⁵ (FX) 效果

 

说明

下面是上述部分引用的一些说明:

  1. 功能级别 10.0 和 10.1 设备可以选择性地支持 DirectCompute。 若要验证支持,请将 ID3D11Device::CheckFeatureSupportD3D11_FEATURE_D3D10_X_HARDWARE_OPTIONS 配合使用。
  2. 功能级别 9.3 实际上需要符合 旧版 Direct3D 9 着色器模型 3.0 要求的硬件,但此功能级别不使用vs_3_0或ps_3_0目标。
  3. 仅将旧版 Direct3D 9 着色器模型与 Direct3D 9 API 配合使用。 请改为将 9.x 配置文件与 Direct3D 10.x 和 11.x API 配合使用。
  4. 当前 HLSL 着色器 D3DCompile* 函数不支持旧版 1.x 像素着色器。 HLSL 支持这些目标的最后一个版本是 2006 年 10 月版 DirectX SDK 中的 D3DX9。
  5. 已弃用所有版本的 D3DX 和 DirectX SDK。 有关详细信息,请参阅 DirectX SDK 在哪里?

HLSL 编程指南