Android 5.0不支持samplerExternalOES?

时间:2015-03-03 01:58:27

标签: fragment-shader

我在我试过的每部手机上都有一段片段着色器长时间工作。 Android 5.0升级完成后,两部手机都无法运行该应用。

通过调试,我看到应用程序在GLES20.glLinkProgram(程序)崩溃了

编译着色器后,我看到以下错误,只有在运行Android 5.0

时才会出现

E / Adreno-ES20 ::纹理格式无效!返回错误! E / Adreno-ES20 :: Framebuffer颜色附件不完整。返回GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT!

我在着色器中的内容是:

 #extension GL_OES_EGL_image_external : require
 // Image texture.
 uniform samplerExternalOES sTexture;
 precision mediump float;

。 。 。

以前是否有人见过这个问题?

2 个答案:

答案 0 :(得分:0)

一些文档:

https://www.khronos.org/registry/gles/extensions/OES/OES_EGL_image_external.txt

  

由于这些限制,有可能       绑定EGLImages,其内部格式不受其他方式支持       OpenGL ES。例如,一些实现可以允许EGLImages       平面或交错的YUV数据是GLES纹理目标兄弟。它是       直到实现确切接受的格式。

听起来可能接受的格式发生了变化?我会检查你的格式,看看支持是否被删除,或者它是否是一个bug。

答案 1 :(得分:0)

好的,所以在Android 6.0更新后,这个问题就消失了。

因此,对于Android 4.x它可以工作,5它不起作用,6.0它可以工作。我称之为Android 5.0问题。