我一直在阅读一些参考资料,例如“X 是 GPU 加速”和“Y 不是 GPU 加速”,但我找不到完整的列表。CSS3的哪些部分是 GPU 加速的?
2 回答
对,这是个很有意思的话题,而且确实取决于浏览器+显卡。我一直想对此进行一些研究,所以这里有一个快速总结。
Webkit(Safari、Chrome、iOS、Android)
在Webkit中,AnimationBase.cpp曾经指定过,但是好像动了!嗬!好吧,无论如何,如果您搜索代码ACCELERATED_COMPOSITING
,您会找到它。
具体来说,如果某些东西与其中之一匹配,那么它可以被加速(至少在 Chromium 中):
- 图层具有 3D 或透视变换 CSS 属性
- 层由使用加速视频解码的元素使用
- 层由具有 3D 上下文或加速 2D 上下文的元素使用
- 层用于复合插件
- 图层的不透明度使用 CSS 动画或使用动画 webkit 变换
- 图层使用加速 CSS 过滤器
- 层有一个后代,它是一个合成层
- 图层有一个具有较低 z-index 的同级,该同级具有一个合成图层(换句话说,该图层呈现在合成图层的顶部)
壁虎 (火狐)
在 Gecko 中,https://wiki.mozilla.org/Platform/GFX/HardwareAcceleration解释了他们的计划/实现,就像 IE 一样,在 XP 上的选项更加有限,但如果正确支持显卡,其他所有操作系统都会获得一些加速. Firefox 4(我认为!)为文本、画布和转换添加了加速。
三叉戟 (IE)
IE10 似乎几乎所有硬件都加速了。http://blogs.msdn.com/b/ie/archive/2011/04/26/understanding-differences-in-hardware-acceleration-through-paintball.aspx
它非常快,所以我并不怀疑他们的说法!
没有讨论任何有关 GPU 加速的 CSS3 规范。相反,由每个浏览器制造商或在特定硬件上实现浏览器的公司来决定他们将 GPU 用于 CSS3 的哪些部分。而且,这可以很容易地从一个设备更改为下一个设备。
例如,大约一年前(我没有更多最新信息),3d 转换在 iPhone3 上是 GPU 加速的,但不是 2d 转换。但是,我预计 iPhone3s 或 iPhone4 或未来的 iPhone5 的信息可能会完全不同。