在Android WebView中启用WebGL

如何在
Android 5.1.1模拟器的WebView小部件中启用WebGL?我通过
Webglreport检查了WebGL状态,结果是“此浏览器支持WebGL,但它被禁用或不可用.有时这是因为浏览器拒绝旧视频驱动程序.如果可能,请尝试更新视频驱动程序”.

我也尝试在Android 4.4.4模拟器上使用Crosswalk webview并且存在同样的问题,但我通过添加xwalk-command-line xwalk –ignore-gpu-blacklist来修复它.是否可以为标准WebView小部件制作类似的东西?

最佳答案 更新:WebView团队表示,由于安全性/稳定性风险,WebView不允许现在或将来的计划覆盖gpu黑名单:
more details.

//

适用于Android 47和Chromium / WebView 47的Chrome使用不同的gpu黑名单和/或错误解决方法.即使在相同的硬件上,也可能不允许在一个中成功呈现的内容成功呈现.这两款浏览器都计划每6周发布一次Play商店的更新.

例如:我有一台Nexus 10,Mali T-604平板电脑(Lollipop 5.1.1.另外,Android Studio 1.5.1配有SDK 6.0 Marshmallow API 23或22).

在适用于Android的Chrome中 –

> chrome:// flags,#ignore-gpu-blacklist NOT enabled,以及所有重置默认值
> chrome:// gpu,“图形功能状态-WebGL:硬件加速”和重置通知策略0x0000令人惊讶(参见最后Crosswalk related)答案
> webglreport,“此浏览器支持WebGL 1”
> get.webgl.org,立方体旋转

在WebView中 –

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

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

铬虫列表(来自Khronos WebGL黑名单wiki的链接):“Mali-Txxx驱动程序不保证刷新排序”和“从当前显示的缓冲区读取时Mali-Txxx驱动程序挂起”.

Pixel C平板电脑有一个Nvidia Tegra X1,它没有出现在铬列表中,我已经确认它确实支持WebView中的WebGL.

点赞