指定编译器目标

调用 D3DCompile、D3DCompile2D3DCompileFromFile函数时,需要指定要编译的着色器目标(一组着色器功能)。 此处列出了 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 级别 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.0 的着色器目标。

目标 描述
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.0 ³的着色器目标。

目标 描述
ps _ 2 _ 0 像素着色器 2。0
ps _ 2 _ a 象素着色器 2a
ps _ 2 _ b 象素着色器 2b
ps _ 2 _ 软件 象素着色器 2.0 软件
vs _ 2 _ 0 顶点着色器 2。0
vs _ 2 _ a 顶点着色器 2a
vs _ 2 _ 软件 顶点着色器 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 _ 功能 _ D3D10 _ X _ 硬件 _ 选项一起使用。
  2. 功能级别 9.3 有效地要求符合 旧式 Direct3D 9 着色器模型 3.0要求的硬件,但此功能级别不使用 vs _ 3 _ 0 或 ps _ 3 _ 0 目标。
  3. 只将旧式 Direct3D 9 着色器模型与 Direct3D 9 API 一起使用。 请改用 Direct3D 8.x 和 11. x API 的6.x 配置文件。
  4. 当前 HLSL 着色器 D3DCompile * 函数不支持旧式1.x 像素着色器。 在2006年10月版的 DirectX SDK 中,HLSL 支持这些目标的最新版本。
  5. 不推荐使用 D3DX 和 DirectX SDK 的所有版本。 有关详细信息,请参阅 DIRECTX SDK 在哪里?

HLSL 编程指南