我编写了使用-webkit-transform,-webkit-perspective和几个类似的CSS。我的设计看起来是在有硬件加速可用的机器上的蜜蜂膝盖,但在没有时几乎无法使用。如何检查硬件加速可用性并提供后备CSS?
附注:运行chrome:// gpu-internals /以手动检查可用性。
答案 0 :(得分:1)
可悲的是,答案似乎是'你不能(还)'。
Modernizr项目在其“不可检测的”中列出了硬件加速:https://github.com/Modernizr/Modernizr/wiki/Undetectables。
部分问题似乎是在页面上呈现任何内容时,逐个使用硬件加速。因此,即使浏览器理论上可以支持硬件加速,但是它是否会用于任何给定的操作(翻译,转换,重新绘制等)将不会提前知道。
您可以想象一种检测方案,该方案使用分析来检测具有/不具有HW加速的性能变化 - 但是使用HW加速的事物发生在页面视图之外的层中。例如,即使可以可靠地启用/禁用硬件加速,也无法检测转换的帧速率。
webkit呈现API看起来像这个信息可用的地方,但它看起来不能通过页面级Javascript访问(即使DOM中的节点附加了RenderObjects):https://www.webkit.org/blog/114/webcore-rendering-i-the-basics/
看起来唯一可行的选择是用户代理嗅探已知加速浏览器列表(yuck)。