[Android]片段着色器仅在 Nexus 6 上使我的应用程序崩溃

[Android]Fragment Shader crashed my application only on Nexus 6

我的应用程序的一个功能是使用 OpenGL 实现的。

然后我发现此功能在 Nexus 6 上无法运行。我有两个 Nexus 6 需要测试。 每次我用一个就崩溃,而另一个大部分时间都是错误的结果(这意味着它已经工作了好几次)。

我试图找出原因并发现如果我不使用 mat2 变量,应用程序就不会崩溃。

uniform u_rotation;
varying highp vec2 v_texcoord;
const vec2 center = vec2(0.5);
mat2 rotation = mat2(cos(u_rotation), sin(u_rotation), -sin(u_rotation), cos(u_rotation)); 
void main() {
vec2 pcoord = center + rotation * (v_texcoord - center);
...
}

我当时完全不知道发生了什么。

根本原因是我在主块之外使用统一变量定义了一个变量。

但我不知道为什么因为:

  • 大多数设备运行良好
  • 只有一个 Nexus 6 会崩溃

我搜索了一段时间,然后找到了以下问题和答案:

但我不完全理解为什么大多数设备都运行良好。也许有人可以为我解释一下。非常感谢!