微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将常量缓冲区设为动态与立即编入索引是否有好处?

如何解决将常量缓冲区设为动态与立即编入索引是否有好处?

我正在编写一个片段着色器,并且很高兴能够在没有分支的情况下完成它。我需要制作一个需要分支的修改版本,所以我重写了原始版本,看看编译器对分支做了什么,如果它被优化掉了或者造成了很大的不同。

反汇编代码 (see here) 显示少了 3 个数学运算、一个额外的临时寄存器和四个额外的指令。这一切对我来说都有意义,但跳出来的一件事是这一行:

原文:dcl_constantbuffer CB0[9],dynamicIndexed
分支版本:dcl_constantbuffer CB0[9],immediateIndexed

我认为这是因为新代码能够展开或编译器所做的任何事情都可以使访问模式更可预测。我的问题是,这是否意味着一些性能优势,还是我应该坚持“指令越少越好”的经验法则?

(注意:我尝试了分析,但无法获得一致的结果。我主要只是想了解基本概念。)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。