在 Android WebView 中启用 WebGL

Enable WebGL in Android WebView

如何在 Android 5.1.1 模拟器的 WebView 小部件中启用 WebGL?我通过 Webglreport 查看了 WebGL 状态,结果是 "This browser supports WebGL, but it is disabled or unavailable. Sometimes this is the result of older video drivers being rejected by the browser. Try updating your video drivers if possible".

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

更新:WebView 团队表示,由于 security/stability 风险:more details.

,WebView 不允许在现在或未来的计划中覆盖 gpu 黑名单

//

Chrome for Android 47 和 Chromium/WebView 47 使用不同的 gpu 黑名单 and/or 错误解决方法。即使在同一硬件上,允许在一个中成功渲染的内容也可能不允许在另一个中成功渲染。两种浏览器都计划每 6 周向 Play 商店发布更新。

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

在Chrome中为Android--

  • chrome://flags,#ignore-gpu-blacklist 未启用,所有重置默认值
  • chrome://gpu, "graphics feature status-WebGL: Hardware accelerated" 和 Reset notification strategy 0x0000 出人意料(见最后)回答
  • webgl 报告,"This browser supports WebGL 1"
  • get.webgl.org,立方体旋转

在网络视图中--

  • webgl 报告,"This browser supports WebGL 1, but it is disabled or unavailable. Sometimes this is the result of older video drivers being rejected by the browser. Try updating your video drivers if possible."
  • get.webgl.org、"Hmm. While your browser seems to support WebGL, it is disabled or unavailable. If possible, please ensure that you are running the latest drivers for your video card."

chromium 黑名单(link 来自 Khronos WebGL 黑名单 wiki):"GPU rasterization and canvas is blacklisted on Nexus 10".

chromium 错误列表(link 来自 Khronos WebGL 黑名单 wiki):"The Mali-Txxx driver does not guarantee flush ordering" 和 "The Mali-Txxx driver hangs when reading from currently displayed buffer".

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