与三星s8的Android开放GL ES问题

时间:2017-05-14 09:46:59

标签: android opengl-es samsung-mobile fragment-shader

我创建了一个Android lib,其中包括通过OpenGL ES进行图像处理。 lib在Android设备上工作正常,但只有在三星S8上运行时崩溃 - opengl着色器编译,但opengl程序没有链接,错误日志为空。 崩溃来自碎片Shader片段中的一个openGLES过滤器。

崩溃发生在“if”行:

    "if (gradientMagnitude >= firstSampledGradientMagnitude && gradientMagnitude >= secondSampledGradientMagnitude)"
    "{"
     ...
    "}"
如果我尝试,它也会崩溃:

   "if (gradientMagnitude >= firstSampledGradientMagnitude)"
   "{"
   "if (gradientMagnitude >= secondSampledGradientMagnitude)"
   "{"
   ...
   "}"
   "}"

但如果我只进行一次比较,它就有效:

"if (gradientMagnitude >= firstSampledGradientMagnitude)"
"{"
...
"}"

OR

"if (gradientMagnitude >= secondSampledGradientMagnitude)"
"{"
...
"}"

最后我用这个解决方案修复了崩溃:

"float sampledGradientMagnitudeMax = max(firstSampledGradientMagnitude,secondSampledGradientMagnitude);"
"if (gradientMagnitude >= sampledGradientMagnitudeMax)"
"{"
...
"}"

我的问题是,为什么它会在第一个代码中崩溃?

0 个答案:

没有答案