【问题标题】:Chrome WebGL software fallback not being used未使用 Chrome WebGL 软件后备
【发布时间】:2017-05-05 14:50:42
【问题描述】:

原贴here

我的印象是 WebGL 几乎可以在任何桌面设备上的 Chrome 上运行,但在某些情况下它可能会退回到软件渲染(假设您在获取上下文时没有传递 failIfMajorPerformanceCaveat=true)。然而,在实践中,对于 Mac 和 Windows 上的大量用户(尤其是但不限于在某种托管企业 IT 系统中的用户)而言,这似乎并非如此。

据我所知,在 Chrome 中禁用 WebGL 的所有硬件/设置上,可以使用不同的浏览器(FF,甚至 IE11)运行它。我相信 IE11 只使用软件,FF 对 GPU 的黑名单可能不那么严格,但这并不能解释为什么 Chrome 在硬件不可用时无法切换到软件。事实上,在某些情况下,覆盖 Chrome 中的 GPU 黑名单似乎确实有效(但可能不是一个好主意)。

首先,我可以检查一下我对情况的评估是否正确吗?其次,谁能建议如何强制软件渲染(即标志等)和/或指出我讨论这个的问题?

非常感谢任何建议 - 即使过程相当复杂,但仍然值得了解,因为它可能对我们的客户可行。

更新:

@gman 指出 Chrome 中的 Mac 上没有软件模拟,但这仍然留下了 windows 中发生了什么的问题。

更新 2:

(部分回答我自己的问题):似乎(至少在 Windows 上的 32 位 Chrome 上)如果您转到 chrome://components 并看到 SwiftShader 的版本为 0.0.0,那么只需点击更新按钮即可下载最新的 veriso,n 和嘿 presto ..它有效。不过不确定 64 位 Chrome。

更新 3:

正如@Nicloas 所说,Chrome 中的 M59(将于 2017 年 5 月/6 月发布)应该会在 Windows 和 Linux 上的 Chrome 中解决此问题,稍后会在 Mac 上解决此问题。

【问题讨论】:

  • AFAIK Chrome 的软件渲染仅适用于 Windows。有提交的错误来移植它,但它的优先级很低。 Here's one。软件渲染非常慢。对于大多数 WebGL 用例来说太慢了。
  • 嗯。也许这可以解释 Mac 的问题,但我们确实也遇到了 Windows 的问题..?

标签: google-chrome webgl


【解决方案1】:

从 swiftshader@googlegroups.com 引用我自己的回答:

我很高兴地通知您,在即将发布的 M59 版本的 Chrome 中,我们集成了 SwiftShader,以便在 GPU 被列入黑名单的情况下为 WebGL 提供无缝回退支持。

我们之前只使用 SwiftShader 作为单独下载的组件,它确实不适用于托管的公司系统,并且需要重新启动浏览器。只有在将 SwiftShader 开源并大幅减少其二进制大小之后,才能集成它。

您现在可以使用 Chrome Canary 或 Beta 通道在 Windows 上测试它,并指定 --disable-gpu 启动标志。 Linux 也应该可以工作,但是这些库错误地没有作为 beta 包的一部分提供,我们希望在下一次更新中并在它到达稳定频道之前得到纠正。我们还没有开始集成对 Mac OS X 的支持,因为 Chrome 在那里的工作方式明显不同,但它在我们的雷达上。

【讨论】:

  • 感谢您的快速回答和基础工作! (直到 24 小时过去后,我才能授予赏金。)看起来 M59 将在 4 周左右内上线(这对我的用户来说可能没问题),但我可以检查 chrome://components 中的更新按钮是否可能在此期间工作?我发现至少有一个案例(在 browserstack 上)确实有效。
  • 只提供了 32 位组件,因此 64 位版本的 Chrome 没有获得 SwiftShader。我们本可以添加一个 64 位组件,但我们决定集中精力为每个人创建完全无缝的后备支持。它在 M59 中同时推出到 32 位和 64 位 Windows 和 Linux,Mac OS X 应该紧随其后。
猜你喜欢
  • 2014-08-12
  • 2018-08-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-12-10
相关资源
最近更新 更多