2016-11-25 157 views
1

我在我的Ubuntu主機上運行Android Virtual Device。 它使用CPU/ABI Intel Atom(x86),我使用主機GPU。 模擬器正在使用Kernel-based Virtual MachineAndroid模擬器和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, 

有沒有辦法對在Android虛擬設備運行OpenGL,ES3應用kvm的頂部?

+0

你如何選擇配置?你使用的是支持ES3的嗎? –

+0

我有幾乎相同的問題,並知道Android模擬器不支持OpenGL ES3後放棄:http://stackoverflow.com/questions/24874066/does-the-android-emulator-support-opengl-es- 3-0 –

回答

1

Android Studio 3.0及更高版本支持在模擬器中運行GLES3應用程序。

在撰寫本文時,此版本的預覽版本可用。 請參閱:https://android-developers.googleblog.com/2017/05/android-studio-3-0-canary1.html

啓動模擬器後,需要更改設置,然後重新啓動模擬器,如下所示。

此外,請確保您的應用請求ES3上下文,因爲Android示例代碼gles3jni不會這樣做。

enter image description here

+0

現在在「高級」選項卡中 –