ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Android模拟器和OpenGL ES3:EGL_BAD_CONFIG

2019-11-12 02:25:24  阅读:511  来源: 互联网

标签:android-emulator avd kvm opengl-es-3-0 android


我在Ubuntu主机上运行Android Virtual Device.
它正在使用CPU / ABI Intel Atom(x86),而我正在使用主机GPU.
该仿真器正在使用Kernel-based Virtual Machine.

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效果很好.
但是,当从仿真器请求它时,它会失败.
从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应用程序?

解决方法:

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

2018年6月更新

在最新的Android Studio中,即使它是同一台PC,也无法选择OpenGL ES3.1.

enter image description here

为了使其正常工作,我必须在〜/ .android /目录中添加一个文件.

cd ~/.android/
$echo "GLESDynamicVersion = on" >> ~/.android/advancedFeatures.ini

标签:android-emulator,avd,kvm,opengl-es-3-0,android
来源: https://codeday.me/bug/20191112/2024016.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有