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

发布于 2024-10-18 05:49:49 字数 105 浏览 0 评论 0原文

HLSL 中的预处理器是否相当于 C(++) 中的预处理器,在编译之前它实际上会更改代码?如果是这种情况,那么使用此类方法似乎允许在不添加运行时条件语句的情况下专门化着色器......这是真的吗?

In HLSL is the preprocessor equivalent to the one in C(++) where it literally alters the code before compilation? If this is the case then using such methods would seem to allow specializing a shader without adding run-time conditional statements... is that true?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

乄_柒ぐ汐 2024-10-25 05:49:49

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

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

#defines work as you expect them to. They are evaluated at compile-time.

If you would like to check the output of the compiler to be sure that there is no (unnecessary) branching occurring, use the /Fc <file> option to the HLSL compiler (fxc) to generate an assembly listing of the compiled shader.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文