Chrome WebGL软件后备未被使用

时间:2017-05-05 14:50:43

标签: google-chrome webgl

最初发布了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。

1 个答案:

答案 0 :(得分:1)

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

我很高兴地通知即将推出的M59版Chrome,我们已经集成了SwiftShader,以便在GPU被列入黑名单时为WebGL提供无缝后备支持。

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

您可以使用Chrome Canary或Beta频道在Windows上进行测试,并指定--disable-gpu启动标记。 Linux也应该可以运行,但是这些库被错误地作为beta包的一部分发送,我们希望在下一次更新时以及它到达Stable频道之前将其纠正。我们还没有开始集成Mac OS X支持,因为Chrome在那里的工作方式有很大不同,但它在我们的雷达上。