HLSL中的#defines是否会增加任何性能开销?

时间:2011-02-18 18:22:07

标签: hlsl shader

在HLSL中,预处理器等同于C(++)中的预处理器,它在编译之前会改变代码吗?如果是这种情况,那么使用这样的方法似乎可以在不添加运行时条件语句的情况下专门化着色器......这是真的吗?

1 个答案:

答案 0 :(得分:2)

#define按照您的期望工作。它们在编译时进行评估。

如果您想检查编译器的输出以确保没有(不必要的)分支发生,请使用HLSL编译器(fxc)的/Fc <file>选项生成已编译的汇编列表着色器。