2

我正在为桌面/移动(android/iOS)平台开发具有开放 GL / ES 的应用程序。
我在我的顶点着色器代码中使用了 const 数组。我在 nv8800GT 上使用和不使用 const 数组对其进行了测试,没有发现任何区别。但我读到,const 数组可能比制服慢得多。

const float offset_s[4] = float[4](0.625, 0.625, 0.75, 0.85);

问题是 - 我应该避免使用统一的 const 数组吗?还是现在一切正常?固定的驱动程序等等......

4

1 回答 1

1

我在 GLSL 中遇到了 const 和非常量数组的奇怪行为。将 const 数组更改为非常量数组在某些着色器中提供了小幅加速。另一方面,删除其他着色器中的“const”关键字会导致性能大幅下降(渲染通道从 ~2ms 下降到 ~20ms)。这种行为似乎非常不一致,我的猜测是这是一个驱动程序错误。
我的 GPU 是 Nvidia GTX 460,我使用的是驱动程序版本 358.50(在较旧的驱动程序中观察到类似的行为)。

于 2015-10-25T21:21:30.803 回答