2016-11-25 12 views
1

Я запускаю Android Virtual Device на моем хосте Ubuntu. Он использует CPU/ABI Intel Atom (x86), и я использую GPU хоста. Эмулятор использует Kernel-based Virtual Machine.Android Emulator и OpenGL ES3: EGL_BAD_CONFIG

settings used

Это работает прекрасно до тех пор, как я использую контекст 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 на аппаратном мобильном устройстве , работает хорошо. Но при запросе его с эмулятора он терпит неудачу. Хост машина вполне способна делать OpenGL ES3.0, ES3.1 и ES3.2, как можно видеть из glxinfo:

$ 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, 

Есть ли способ запустить OpenGL ES3 приложений на Android Virtual Device на top of kvm?

+0

Как вы выбираете конфигурацию? Вы используете тот, который поддерживает ES3? –

+0

У меня была такая же проблема, и я отказался от изучения того, что эмулятор android не поддерживает OpenGL ES3: http://stackoverflow.com/questions/24874066/does-the-android-emulator-support-opengl-es- 3-0 –

ответ

1

Запуск приложений GLES3 в эмуляторе поддерживается в Android Studio 3.0 и выше.

На момент написания настоящего документа доступны предварительные версии этой версии. См.: https://android-developers.googleblog.com/2017/05/android-studio-3-0-canary1.html

После запуска эмулятора вам необходимо изменить настройку и перезапустить эмулятор, как показано ниже.

Кроме того, убедитесь, что ваше приложение запрашивает контекст ES3, поскольку код образца Android gles3jni этого не делает.

enter image description here

+0

Теперь он находится на вкладке «Дополнительно» –

 Смежные вопросы

  • Нет связанных вопросов^_^