Optimization GLSL优化:带MAD的分配

Optimization GLSL优化:带MAD的分配,optimization,glsl,Optimization,Glsl,这篇文章讨论了一些有关的技巧 使用MAD分配您可以使用MAD指令一次设置所有字段: 这一切都是通过一个疯狂的操作完成的,假设 该常量直接编译到可执行文件中 如果我这样分配,哪个更快?为什么? gl_FragColor = vec4(mycolor.xyz, 1.0); 正如文章所解释的,这取决于GPU的功能:“较新的GPU可以处理设置gl_FragColor的不同部分,但较旧的GPU不能。”。所以我想你的最后一句话可以翻译成两条指令,而第一条指令是vec4变体上的一条MAD指令。@PedroB

这篇文章讨论了一些有关的技巧

使用MAD分配您可以使用MAD指令一次设置所有字段:

这一切都是通过一个疯狂的操作完成的,假设 该常量直接编译到可执行文件中

如果我这样分配,哪个更快?为什么?

gl_FragColor = vec4(mycolor.xyz, 1.0);

正如文章所解释的,这取决于GPU的功能:“较新的GPU可以处理设置gl_FragColor的不同部分,但较旧的GPU不能。”。所以我想你的最后一句话可以翻译成两条指令,而第一条指令是vec4变体上的一条MAD指令。@PedroBoechat,谢谢。多大岁数?你是说我的代码不能在旧GPU上工作?我在新GPU上的代码更快吗?虽然我从未使用过它,但我想你可以使用AMD的GPU着色器分析器()查看最终的汇编代码,并弄清楚它在你的目标GPU上是如何工作的:)PS=对于你可能使用Nsight的NVIDIA卡
gl_FragColor = vec4(mycolor.xyz, 1.0);