gpt4 book ai didi

css - 为什么浏览器不够智能,无法在不使用技巧的情况下进行硬件加速?

转载 作者:技术小花猫 更新时间:2023-10-29 10:21:50 26 4
gpt4 key购买 nike

现在有大量网页建议您将这些规则添加到您的内容中以使其硬件加速:

transform: translate3d(0,0,0);
-webkit-transform: translate3d(0,0,0);

这总是让我觉得很荒谬。为什么浏览器需要我的帮助来决定硬件加速?它会更快,对吧?那么为什么不这样做呢?为什么要等我把浏览器“骗”进去?


问这个问题的另一种方式可能是,为什么不是每个基线/重置样式表都包含这些行

* {
transform: translate3d(0,0,0);
-webkit-transform: translate3d(0,0,0);
}

最佳答案

这并不是说浏览器不能或不够智能以使用硬件加速。相反,您所指的只是真正适用于 WebKit,尤其是 WebKit 的移动版本。 Firefox 和 IE 都对所有内容进行硬件加速,它们会自动将页面拆分为在 GPU 上合成的“层”。这就是为什么他们通常在渲染速度测试中击败 Chrome。另一方面,WebKit 从未真正适应过简单的层加速。

由于 Firefox 和 IE 可以利用 Windows 平台上的 Direct2D 渲染(其中每个绘图操作都是硬件加速的),因此本质上要求它们也能够进行硬件加速合成。如果他们只加速绘图操作而不加速合成,他们将首先失去使用 Direct2D 的大部分速度优势,因为它需要在 GPU 和系统内存之间进行复制,这很慢。另一方面,我所知道的所有 WebKit 渲染后端都完全在软件中执行渲染,并且在它们合成时会产生复制到 GPU 的惩罚(如果正在使用 GPU 合成)。所以,它最终是一个权衡。如果您正在合成的层不需要太多时间在 CPU 上渲染,那么在 GPU 上执行复制和合成并不总是有意义。

由于这一点,以及移动 GPU 的极其有限的性质,WebKit 浏览器还没有开始进行自动硬件加速,除非绝对需要(例如设置 3D 转换时)。如果你想要我的意见,我还要补充一点,我认为 WebKit 开发人员和支持公司的懒惰也是一个因素。使用 GPU 是错误的主要来源,因此他们更容易不使用它而不是解决问题。

顺便说一句,Android 版 Firefox 可以一直进行 GPU 合成,尽管您可能必须在 about:config; 中启用它;我不知道它是否默认打开。对于 PC,我建议使用 Firefox 或 IE 来实现真正快速的渲染。

编辑:我还应该补充一点,在最新版本的 Android 中,谷歌已经为 Skia 添加了硬件加速,它可以处理操作系统上几乎所有的 2D 渲染。目前还没有多少设备拥有此功能,但这确实意味着在不久的将来 Android 上的所有设备的性能都会提高。也就是说,我不知道他们的 Skia 实现是否像我们希望的那样与 OpenGL 无缝协作。在处理之前,合成仍然可能会产生一些额外的副本。

关于css - 为什么浏览器不够智能,无法在不使用技巧的情况下进行硬件加速?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9068132/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com