[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 会崩溃
我搜索了一段时间,然后找到了以下问题和答案:
但我不完全理解为什么大多数设备都运行良好。也许有人可以为我解释一下。非常感谢!
我的应用程序的一个功能是使用 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 会崩溃
我搜索了一段时间,然后找到了以下问题和答案:
但我不完全理解为什么大多数设备都运行良好。也许有人可以为我解释一下。非常感谢!