【发布时间】:2017-04-09 10:34:40
【问题描述】:
我在我的 Ubuntu 主机上运行 Android Virtual Device。 它使用的是 CPU/ABI Intel Atom (x86),我使用的是主机 GPU。 模拟器使用的是Kernel-based Virtual Machine。
只要我使用 OpenGL ES2 上下文,它就可以很好地工作。 但是,如果我的应用尝试创建 OpenGL ES3 上下文,则使用...
const EGLint contextAttribs[] = {
EGL_CONTEXT_CLIENT_VERSION, 3,
EGL_NONE
};
context = eglCreateContext(display, config, NULL, contextAttribs);
...然后我收到 EGL_BAD_CONFIG 错误:
I/biplane ( 2839): EGL: vendor Android version 1.4 Android META-EGL
I/biplane ( 2839): EGL: client apis OpenGL_ES
I/biplane ( 2839): number of EGL configurations that match our preferred criteria: 1
I/biplane ( 2839): R8 G8 B8 A8 DEPTH24
E/EGL_emulation( 2839): tid 2852: eglCreateContext(919): error 0x3005 (EGL_BAD_CONFIG)
在硬件移动设备上请求 ES3,效果很好。 但是当从模拟器请求它时,它失败了。 从glxinfo可以看出,宿主机完全可以做OpenGL ES3.0、ES3.1和ES3.2:
$ glxinfo | grep ES3
GL_ARB_ES2_compatibility, GL_ARB_ES3_1_compatibility,
GL_ARB_ES3_2_compatibility, GL_ARB_ES3_compatibility,
GL_NV_ES3_1_compatibility, GL_NV_bindless_multi_draw_indirect,
GL_ARB_ES2_compatibility, GL_ARB_ES3_1_compatibility,
GL_ARB_ES3_2_compatibility, GL_ARB_ES3_compatibility,
GL_NV_ES3_1_compatibility, GL_NV_bindless_multi_draw_indirect,
有没有办法在 kvm 之上的 Android 虚拟设备上运行 OpenGL ES3 应用程序?
【问题讨论】:
-
如何选择配置?你用的是支持 ES3 的吗?
-
在得知安卓模拟器不支持 OpenGL ES3 后,我遇到了几乎相同的问题并放弃了:stackoverflow.com/questions/24874066/…
标签: android android-emulator avd kvm opengl-es-3.0