在Android WebView中启用WebGL

5
如何在Android 5.1.1模拟器的WebView小部件中启用WebGL? 我使用Webglreport检查了WebGL状态,结果是“此浏览器支持WebGL,但已禁用或不可用。有时这是浏览器拒绝较旧视频驱动程序的结果。如果可能,请尝试更新您的视频驱动程序。”
我还尝试在Android 4.4.4模拟器上使用Crosswalk webview,遇到同样的问题,但通过添加xwalk-command-line xwalk --ignore-gpu-blacklist解决了。是否可以为标准WebView小部件做类似的事情?

我曾在我的Android设备上使用Chrome,但是我将其从应用程序中删除后,我使用了Android的默认webView应用程序——Android System webView,这样WebGL错误就得到解决了。(Chrome App v77.0.3865.92不支持WebGL)编辑:Opera Web浏览器可以正常工作。 - Bay
1个回答

5

更新:WebView团队表示,由于安全/稳定性风险,WebView现在或未来计划中都不允许gpu黑名单覆盖。更多细节

//

Android 47版的Chrome和Chromium/WebView使用不同的GPU黑名单和/或错误解决方法。即使在相同硬件上,其中一个浏览器可以成功渲染的内容,在另一个浏览器中也可能无法成功渲染。这两个浏览器计划每6周在Play商店发布更新。

例如:我有一个Nexus 10,Mali T-604平板电脑(Lollipop 5.1.1)。同时,安装了Android Studio 1.5.1和SDK 6.0 Marshmallow API 23或22。

在Chrome for Android中 -

  • chrome://flags,#ignore-gpu-blacklist未启用,并且所有重置默认值
  • chrome://gpu,“图形特性状态-WebGL:硬件加速”和重置通知策略0x0000出乎意料地(请参见Crosswalk related)答案
  • webglreport,“此浏览器支持WebGL 1”
  • get.webgl.org,立方体旋转

在WebView中 -

  • webglreport,“该浏览器支持WebGL 1,但已被禁用或不可用。有时这是由于浏览器拒绝旧的视频驱动程序引起的。如果可能的话,请尝试更新您的视频驱动程序。”
  • get.webgl.org,“嗯。虽然您的浏览器似乎支持WebGL,但它已被禁用或不可用。如果可能的话,请确保您运行的是最新的视频卡驱动程序。”

Chromium黑名单(来自Khronos WebGL黑名单wiki的链接):“GPU光栅化和画布在Nexus 10上被列入黑名单”。

Chromium bug列表(来自Khronos WebGL黑名单wiki的链接):“Mali-Txxx驱动程序不能保证刷新顺序”,“Mali-Txxx驱动程序在读取当前显示缓冲区时挂起”。

Pixel C平板电脑配备了Nvidia Tegra X1,未出现在Chromium列表中,并且我已经确认它在WebView中支持WebGL


1
由于Google+已不再提供服务,WebView团队声明的替代来源是什么? - Bastian Blankenburg

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接