我在我试过的每部手机上都有一段片段着色器长时间工作。 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;
。 。 。
以前是否有人见过这个问题?
答案 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问题。