我可以构建自己的libEGL.so吗?

时间:2018-06-14 15:15:20

标签: android opengl-es egl

我在我的opengl应用上遇到了一个错误,有时在应用运行期间发生了EGL错误:

  

E / libEGL:validate_display:255错误3008(EGL_BAD_DISPLAY)

它非常令人沮丧,因为大多数EGL_BAD_DISPLAY类型的错误都是因为我的经历发生在EGLContext创建时。

但在我看来,似乎EGL突然失去了它的显示,这怎么可能呢?不幸的是,我无法升级我的设备的操作系统(它与设备供应商一起定制的Android 7.1版本)

我能想到的唯一原因是与操作系统一起发布的libEGL是错误的,因此如果我可以从源代码构建我自己的libEGL来替换旧的那个,那么也许我可以解决这个问题。所以我的问题是是否有可能建立自己的EGL库来取代Android?如果是我该怎么办?

1 个答案:

答案 0 :(得分:0)

这取决于EGL的哪个部分有错误; Android有两层。

底层的“真实”EGL实现不太可能被替换 - 它通常是图形堆栈的一部分,与GPU供应商的OpenGL ES相同,因此也是封闭源。

Android本身实现了一个处理缓冲区管理的瘦shim EGL,因此如果错误出现在这部分中,那么你可能会对AOSP中的版本有所帮助。