在 Android WebView 中启用 WebGL

Iro*_*nix 5 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 小部件制作类似的东西?

Bea*_*alo 5

更新:WebView 团队表示,由于安全/稳定性风险,WebView 现在或将来的计划不允许覆盖 GPU 黑名单:更多详细信息

//

适用于 Android 47 的 Chrome 和 Chromium/WebView 47 使用不同的 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 未启用,并且全部重置默认值
  • chrome://gpu,“图形功能状态-WebGL:硬件加速”和重置通知策略 0x0000 令人惊讶(请参阅最后一个与 Crosswalk 相关的答案)
  • webglreport,“该浏览器支持 WebGL 1”
  • get.webgl.org,立方体旋转

在 Web 视图中——

  • 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