D3DCOMPILE 常量
D3DCOMPILE 常量指定编译器编译 HLSL 代码的方式。
返回的常量 | 说明 | 注意 |
---|---|---|
|
指示编译器将调试文件/行/类型/符号信息插入输出代码。 | 请参阅D3DXSHADER_DEBUG |
|
指示编译器不要根据已知功能和约束验证生成的代码。 建议仅将此常量用于过去已成功编译的着色器。 DirectX 始终在将着色器设置为设备之前对其进行验证。 | 请参阅D3DXSHADER_SKIPVALIDATION |
|
指示编译器在代码生成过程中跳过优化步骤。 建议仅出于调试目的设置此常量。 | 请参阅D3DXSHADER_SKIPOPTIMIZATION |
|
指示编译器在着色器的输入和输出上按行主顺序打包矩阵。 | 请参阅D3DXSHADER_PACKMATRIX_ROWMAJOR |
|
指示编译器在着色器的输入和输出上按列主顺序打包矩阵。 这种类型的打包通常更有效,因为一系列点积随后可以执行矢量矩阵乘法。 | 请参阅D3DXSHADER_PACKMATRIX_COLUMNMAJOR |
|
指示编译器以部分精度执行所有计算。 如果设置此常量,编译的代码在某些硬件上的运行速度可能会更快。 | 请参阅 D3DXSHADER_PARTIALPRECISION |
|
指示编译器为下一个最高着色器配置文件编译顶点着色器。 此常量将打开调试并关闭优化。 | 此标志仅适用于 Direct3D 9。 请参阅D3DXSHADER_FORCE_VS_SOFTWARE_NOOPT |
|
指示编译器为下一个最高的着色器配置文件编译像素着色器。 此常量还会打开调试并关闭优化。 | 此标志仅适用于 Direct3D 9。 请参阅D3DXSHADER_FORCE_PS_SOFTWARE_NOOPT |
|
指示编译器禁用 Preshaders。 如果设置此常量,编译器不会提取静态表达式进行计算。 | 此标志仅适用于旧版 Direct3D 9 和 Direct3D 10 效果 (FX) 。 请参阅D3DXSHADER_NO_PRESHADER |
|
指示编译器尽可能不使用流控制构造。 | 请参阅D3DXSHADER_AVOID_FLOW_CONTROL |
|
强制严格编译,这可能不允许使用旧语法。 默认情况下,编译器对已弃用的语法禁用严格性。 | |
|
强制 IEEE 严格编译,以避免可能破坏 IEEE 规则的优化。 | 请参阅D3DXSHADER_IEEE_STRICTNESS |
|
指示编译器使较旧的着色器能够编译到 5_0 目标。 | 请参阅 D3DXSHADER_ENABLE_BACKWARDS_COMPATIBILITY |
|
指示编译器使用最低优化级别。 如果设置此常量,编译器可能会生成较慢的代码,但生成代码的速度会更快。 以迭代方式开发着色器时设置此常量。 | 请参阅 D3DXSHADER_OPTIMIZATION_LEVEL0 |
|
指示编译器使用第二个最低优化级别。 | 请参阅D3DXSHADER_OPTIMIZATION_LEVEL1 |
|
指示编译器使用第二高的优化级别。 | 请参阅 D3DXSHADER_OPTIMIZATION_LEVEL2 |
|
指示编译器使用最高优化级别。 如果设置此常量,编译器将生成可能的最佳代码,但这样做可能需要更长的时间。 当性能是最重要的因素时,为应用程序的最终生成设置此常量。 | 请参阅D3DXSHADER_OPTIMIZATION_LEVEL3 |
|
指示编译器在编译着色器代码时将所有警告视为错误。 建议将此常量用于新的着色器代码,以便可以解决所有警告并降低难以找到的代码缺陷的数量。 | |
|
指示编译器假定无序访问视图 (UAV) 和着色器资源视图 (SRV) 可能为cs_5_0别名。 | 仅适用于 DirectX 12/着色器模型 5.1 |
|
指示编译器启用无界描述符表。 | 仅适用于 DirectX 12/着色器模型 5.1 |
|
指示编译器以确保绑定所有资源。 | 仅适用于 DirectX 12 /着色器型号 5.1 |
|
生成调试 PDB 时,这会使用源文件和二进制文件作为哈希。 | |
|
生成调试 PDB 时,仅对哈希使用二进制文件名。 |
注意
D3DCOMPILE_RESOURCES_MAY_ALIAS
、 D3DCOMPILE_ENABLE_UNBOUNDED_DESCRIPTOR_TABLES
和 D3DCOMPILE_ALL_RESOURCES_BOUND
编译器常量是新的,从 Windows 8.1 SDK 或更高版本附带的D3dcompiler_47.dll开始。
注意
D3DCOMPILE_DEBUG_NAME_FOR_SOURCE
和 D3DCOMPILE_DEBUG_NAME_FOR_BINARY
编译器常量是新的,从 Windows 10 Fall Creator 的 Update SDK (版本 16299) 或更高版本附带的D3dcompiler_47.dll开始。 请参阅此博客文章。
注意
对于 DirectX 12,着色器模型 5.1、D3DCompile API 和 FXC 都已弃用。 请改用通过 DXIL 的着色器模型 6。 请参阅 GitHub。
要求
要求 | 值 |
---|---|
标头 |
|