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