一个评论中的bug报告由谷歌员工关于这个问题很有启发。
如果您的系统没有独立的GPU,则我们打算进行此更改,以使模拟器更可靠地在Intel GPU驱动程序上运行。由您自担风险,您可以转到设置页面,然后再将OpenGL ES渲染器更改为“ ANGLE(D3D11)”,“ ANGLE(D3D9)”或“ Desktop native OpenGL”,切换回使用Intel GPU。
看来此消息正在针对所有使用Intel GPU的系统显示,而不仅仅是运行特定版本图形驱动程序的系统。
该溶液是,如果可能的话,切换到使用外部GPU运行仿真器。
如果Intel GPU是系统上唯一可用的GPU,则可以通过覆盖设置中的默认OpenGL ES渲染器来重新启用OpenGL ES的加速渲染(请参见下文)。选项是OpenGL,ANGLE和SwiftShader。SwiftShader是基于CPU的OpenGL ES仿真,因此此设置不会提供加速。ANGLE是基于Direct3d的OpenGL仿真。
根据评论,这不能保证正常工作,的确可以重新启用Android 7仿真器的硬件加速,但是启用了硬件加速后,我收到的只是Android 8仿真器的黑屏。
与开放式设置按Ctrl-Shift-S键,然后,根据仿真器的版本,要么去Settings -> General -> OpenGL ES renderer
或Settings -> Advanced -> OpenGL ES renderer
较新的仿真器版本:
较旧的仿真器版本:
更新#1:关于错误报告的
另一条评论进一步阐明了此问题:
如果仅运行模拟器的Intel HD 4xxx,则建议使用兼容性渲染器。对此我感到很抱歉,但是我们需要能够切换到受更好支持的Intel GPU驱动程序,尤其是在运行较高API级别(25+)的系统映像时。那一代(或更老)的英特尔iGPU在OpenGL兼容性方面存在许多问题。
看来,用于Haswell(第4代)或更早版本的Intel iGPU驱动程序对Android 7.1+设备的OpenGL支持不够好。因此,他们有意退回使用更好地支持新的Android模拟器的软件模拟。
这符合我的经验。使用Intel iGPU在Android 7上运行良好,但在Android 7.1上运行不稳定,而在Android 8上则根本无法运行。
我的建议是,在为Intel Haswell和较早的iGPU使用硬件加速时,请坚持使用Android 7仿真器。
更新#2:
关于此问题的正式交流最终以仿真器26.1.3的发行说明中的注释形式提供:
确定将哪些GPU切换为使用ANGLE或Swiftshader渲染,如下所示:
- 较旧的Intel iGPU在OpenGL和ANGLE D3D驱动程序上都有驱动程序问题。具有Intel HD Graphics 3xxx和更早版本的用户将使用Swiftshader。
- 一些用户报告说,由于存在“ Pixel Launcher不断停止”的错误,因此无法使用API 25级图像。在某些Intel HD 4xxx型号中,这似乎是驱动程序问题。因此,它们将自动切换为使用角度。
为了获得GPU仿真的最佳结果,我们建议您使用独立的NVIDIA或AMD GPU,或使用更新的Intel GPU(虹膜,HD 5xxx,HD 5xx / 6xx)。