Webgl 英特尔高清图形卡上的着色器速度非常慢

Webgl 英特尔高清图形卡上的着色器速度非常慢,webgl,fragment-shader,Webgl,Fragment Shader,我试图编写一个使用统一数组的片段着色器(因为我需要着色器中的许多值在调用过程中保持一致)。我在webgl上试用这个,所以不能用制服包装很多制服。我本可以使用2D纹理来包装这些制服,但制服的某些值会超过255,所以我需要使用浮点纹理,这在手机上并不普遍。所以我不得不坚持使用均匀阵列的方法。 我的片段着色器代码的声明如下: uniform float array[100]; 现在,在Intel HD图形卡上使用大小为100的阵列,性能会下降50%,但在nvdia卡上情况并非如此。我查询了MAX\u

我试图编写一个使用统一数组的片段着色器(因为我需要着色器中的许多值在调用过程中保持一致)。我在webgl上试用这个,所以不能用制服包装很多制服。我本可以使用2D纹理来包装这些制服,但制服的某些值会超过255,所以我需要使用浮点纹理,这在手机上并不普遍。所以我不得不坚持使用均匀阵列的方法。 我的片段着色器代码的声明如下:

uniform float array[100];
现在,在Intel HD图形卡上使用大小为100的阵列,性能会下降50%,但在nvdia卡上情况并非如此。我查询了
MAX\u FRAGMENT\u UNIFORM\u向量
,结果是
221
。 我尝试了不同大小的数组,发现了一个非常奇怪的行为

如果阵列的大小超过81,性能会突然下降50%。 有人曾经面对过这个问题吗?有办法解决这个问题吗? 请注意,在浏览器中,仅支持着色器版本1.0(#版本100)