查看: 10391|回复: 51
收起左侧

[交流探讨] [小百科]关于FireFox的硬件加速问题

  [复制链接]
fireherman
发表于 2017-6-30 08:40:35 | 显示全部楼层 |阅读模式
本帖最后由 fireherman 于 2017-6-30 09:46 编辑



写这个帖子的灵感来源是因为另外一个帖子:http://bbs.kafan.cn/thread-1856299-1-1.html

而且也用论坛的搜索功能看了下,想来还是有必要写这个帖子。

楼主自己也是个半吊子,文中难免有错……看在楼主这张帅气的头像份上,就算有错,千万别打脸。


(一)什么是硬件加速

要说硬件加速,就必须要从视频说起;FireFox的硬件加速,其实相当于视频里的“硬件解码”(硬解码/硬解)

以下是【LAV视频解码器】硬解码(设置):

001.PNG

002.PNG

003.PNG

明明在说FireFox,为什么会扯到去视频解压呢?

原因很简单:稍微懂点视频知识的朋友都知道,视频解码器里面的【硬解码】其实就是让显卡去处理图形、图像、视频,当然还有“显示”的数据,换一句话:就是让显卡(GPU)去做这些工作,而不是主板处理器(CPU)。

FireFox的硬件加速其实就是这个道理:让显卡(GPU)来处理FireFox图形、图像、视频等的数据(例如渲染字体),而不让CPU去做。


......

(二)FireFox硬件加速(硬解码)的优点和缺点

这里主要针对桌面系统用户(Windows/OS X/Lunix)
优点:

[1],玩过3D游戏的都知道,相同的配置下(同一个系统,同样的配置,同样的网速),GPU在处理多媒体(图形、图像、视频等)时,比CPU速度更快;特别是浮点运算方面(纯3D输入输出),比CPU处理高出一头。(当然这也要看显卡的等级,例如集显和独显)

[2],相比起软解(CPU处理数据),硬解更省电,这也意味整体发热量会比软解较低。
(移动设备硬解是必须的,同样的储电量,同样的(影片)文件,硬解能播放更长的时间)
缺点:

[1],硬解只是相对的说法,实际上硬解也需要软件的配套(如显卡驱动);配置不正确,处理数据时就非常容易出错。

[2],对于FireFox来说,很多用户说【开了硬件加速】会卡顿;原因是多方面的:可能是显卡驱动不正确,可能是Flash自身的Bug(和Chrome/IE不同,FireFox的Flash是独立的),甚至Flash的插件有Bug(Shochwave Flash)。

[3],相比起软解(不开硬件加速/硬解),由于其解码和显卡纠缠在一起,维护困难(相同的设置,使用了不同的显卡,配置就不同)。


......

(三)核心问题:FireFox 需不需要/应不应该 开启硬件加速(硬解)

问题问得很累赘,答案也很累赘……别打我……


由【需求】和【对FireFox】及【软件/硬件】的相关知识来(做)决定:

1,电脑配置高的(独显/牛逼独显),以及对软件有相关认识的(如正确安装显卡驱动,知道如何开启硬解,知道FireFox的有关配置、渲染等),以及使用习惯(如长时间播放在线视频(Flash/HTLM5))的,建议选择【开启硬件加速】。
2,电脑配置一般(甚至很低,如楼主),电脑相关知识一般(如楼主),也可以尝试【开启硬件加速】,在错误中领悟……在领悟中学习……
3,电脑相关知识欠缺,或者主要以办公处理(如文书),或者纯粹看看Blog,刷刷微博,逛逛论坛…… 不建议【开启硬件加速】。
4,纯粹为了提高FireFox性能,幻想能让FireFox有质的飞跃,电脑配置本身并不高的,不建议【开启硬件加速】。
以上几点,说了……好像等于没说……



评分

参与人数 3分享 +2 人气 +2 收起 理由
↓★x + 1 版区有你更精彩: )
4毛5的诺顿 + 1 版区有你更精彩: )
屁颠屁颠 + 2 版区有你更精彩: )

查看全部评分

fireherman
 楼主| 发表于 2017-6-30 08:41:01 | 显示全部楼层
本帖最后由 fireherman 于 2017-6-30 16:06 编辑



(四)FireFox硬件加速的错误认知


注*:由于知识水平有限,本段落如有误,真心……真心希望指正。

1,开启/关闭 硬件加速后,Mactype字体无法渲染

正如上文所说,视频的硬解和软解只是工作的对象不同(GPU和CPU),在同样配置正确的情况下,同一部影片(同一个视频文件),其画质应该是一样的;

同样的道理,开启/关闭 FireFox硬件加速后,其字体渲染效果应该也是一样的;造成不同效果,显然是因为设置上不正确导致;

例如【关闭硬件加速】后,无法渲染Mactype,是因为调用了不正确的函数库导致,解决方法:

转引:http://tieba.baidu.com/p/5011263487

[CSS] 纯文本查看 / 双击代码区域 Ctrl+A快速复制
将默认的
gfx.content.azure.backends;direct2d1.1,skia,cairo
改为:
gfx.content.azure.backends;direct2d1.1,cairo


001.PNG

维基百科(Cairo):https://zh.wikipedia.org/wiki/Cairo_(%E7%B9%AA%E5%9C%96)

维基百科(Skia):https://zh.wikipedia.org/wiki/Skia_Graphics_Library

2,非Windows版本的FireFox(如 linux)没有硬件加速

主楼外链帖子里,我不知道那位回复的用户,说“反正在linux上”是什么意思。
(应该不是说linux版FireFox没有硬件加速吧?能用上linux的,电脑知识层面上,普遍都应该比Windows用户高)

注**:楼主没有用过linux系统,只安装了一个跨平台的播放器:Mplayer(内置OpenGL解码)

见此贴:http://bbs.kafan.cn/forum.php?mod=redirect&goto=findpost&ptid=1850732&pid=35760976

在【开启硬件加速】时,需要在FireFox配置里打开/关闭某些参数。

不明觉厉的朋友,看到这个 layers.prefer-d3d9 ,可能会觉得莫名其妙,不知为何物。

其实……只要把这个参数的简写展开,它就原形毕露了:

layers.prefer-d3d9

Layers Prefer Direct 3D 9


看到了吗?d3d9 其实就是Direct3D9(Wondwos的3D图形API),linux自己就有强大的图形引擎:OpenGL,怎么可能会用死对头的API?

所以……linux版的FireFox,其硬件加速应该……应该和OpenGL设置有关。(未验证,求指导)




......

(五)FireFox的视频流
Flash的BUG之多,人尽皆知;而由于Flash是Adobe的私有财产(闭源软件);所有的BUG,所有的维护都必须由Adobe去跟进,其效率可想而知。

当然,楼主说这些并不是想为FireFox正名,FireFox冷启动慢,容易崩溃也无可置疑;不过……Flash绝对,绝对要负上很大责任……Adobe要负上很大责任。

一般的在线视频网站(如国内的优酷,土豆,爱奇艺等)依然以Flash播放为主力;也就是说在这些网站上播放视频时,“真正播放的”其实不是FireFox,而是Flash Player;那么接下来的问题就是:负责硬件加速(硬解码)的就是Flash Player。

以下是一个优酷(Flash)在线视频的播放源:

[CSS] 纯文本查看 / 双击代码区域 Ctrl+A快速复制
http://player.youku.com/player.php/Type/Folder/Fid//Ob//sid/XMjg1ODc4MDc4OA==/v.swf


可以看出,或者说可以理解为,播放此视频时,其实是FireFox在调用SWF文件,而SWF文件才是“真正的播放器”;

那么【硬件加速(硬解码)】的解码能力就只能由这个Flash播放器来完成,至于效果是好是坏,有没有BUG,这个只能问Adobe了。


HTML5,就是最新一代的HTML(超文本文档);通俗来说,就是其文件(HTML)本身就是“文本文件”,是“可(阅)读”的;并且增加了对多媒体(包括视频和音频)的支持,不再依赖于第三方软件(Flash,Java等);

FireFox原生支持HTML5,用HTML5播放视频,其实就相当于把“整个FireFox浏览器”变成“播放器”;FireFox不再依赖Flash,自己处理视频/音频,是“真正的播放器”(而不是假手于Flash)。

以下是一段简单的HTML5代码(播放本地文件):

[CSS] 纯文本查看 / 双击代码区域 Ctrl+A快速复制
<video width="640" height="480" controls="controls" poster="file:///D:/GP_Menu/HD/Men At Play/Series/Driven/Adam_Champ_Dato_Foland_002.jpg">
  <source src="file:///f:/Documents/GP/GP Stars/James Castle/[Lucas Entertainment] - James Castle flip-flop Sergeant Miles.mp4" type="video/mp4">
</video>


002.PNG


由于没有了Flash的束缚,FireFox在播放HTML5的视频/音频时,是否需要【开启硬件加速(硬解码)】,取决于用户自身硬件和系统配置(配套)环境,一般来说,如果配置正确(驱动,API等),建议开启(现在连集显都有硬解能力);如果不知道是否配置正确,那么建议【关闭硬件加速】。

毕竟……软解相较硬解最大的一个优势就是:最高兼容性

全文完


翼风Fly
发表于 2017-6-30 22:05:39 | 显示全部楼层
本帖最后由 翼风Fly 于 2017-6-30 22:36 编辑

不好意思,我是来反驳楼主观点的。
不过其中提及的一些内容确实有助于大家的理解。

先上结论:
既然这是个很久以前就默认的选项,也就意味着Mozilla已经有了充分的考虑,请保持默认。
如果用着好好的,就不要关闭硬件加速(hardware acceleration),请遵循默认的推荐勾选。硬件加速将优化你使用Firefox的体验:不仅仅是视频还有页面渲染等。
那么,“自动启用硬件加速”这个选项什么时候才会用得上呢?打开FireFox、加载页面或是其他有关界面渲染时发生崩溃,用来排除故障。
如果有官方说明,请对其优先考虑。
在闲暇时,非常鼓励大家能够对这些知识进行深入了解;但是,当心有过于折腾而导致误入歧途的可能,楼主提到的那个投票贴。。。。我觉得没必要纠结这些。


Mozilla Firefox 的官方说明:我该不该用硬件加速?
首先请大家注意,在 “选项” - “高级” 面板中有一个 问号 图标,即帮助按钮。点击即可打开:
https://support.mozilla.org/zh-CN/kb/%E9%A6%96%E9%80%89%E9%A1%B9%E7%AA%97%E5%8F%A3%20-%20%E9%AB%98%E7%BA%A7%E9%9D%A2%E6%9D%BF
(还有英文版:点击查看
请注意“自动启用硬件加速”下的描述(注意加粗的重点):
自动启用硬件加速:Firefox 可以使用你电脑的图形处理器(楼主注:GPU) 来显示某些包含视频或者动画的网页。图形处理器在这方面的性能往往强过中央处理器(楼主注:CPU), 因此开启此选项会加快 Firefox 运行速度。该选项默认开启,但此功能不一定在所有的图形处理器上都有效。 Firefox 只在可能的时候启用它。 了解更多有关硬件加速(英文)

如果更改了此选项,您必须重启 Firefox。

图形处理器:GPU ; 中央处理器:CPU
CPU是一种通用处理器,相比之下GPU在图形处理上非常占据优势,能用GPU处理的尽量用GPU处理,开启硬件加速其实是非常不错的选择。

提到的英文说明是Firefox 4时候写的,其中也直接给了个英文wiki说明,有时间可以看看:https://wiki.mozilla.org/Platform/GFX/HardwareAcceleration
另外,如果你仔细阅读英文说明,会发现,不仅仅只是视频,页面渲染等领域也会用上硬件加速。像MacType在硬件加速上的表现不同,也就有解释了。


这个选项和Flash播放器的关系?
请注意,Flash播放器有自己的硬件加速机制,同样见Mozilla Firefox的说明:
https://support.mozilla.org/zh-C ... 2%E5%B4%A9%E6%BA%83
因为只是Flash播放器崩溃,这个范围比较小,通常不会影响到整个浏览器(况且Flash Player、火狐都有相应的隔离机制,但是硬件加速确实可能跑出这个机制)。对于Flash造成的问题,Mozilla表示不背;并且贴心的告知Flash的正确使用姿势:
https://support.mozilla.org/zh-CN/kb/Flash%E6%8F%92%E4%BB%B6
有的时候也看到大家讨论关闭Flash沙箱啥的。。。除非真的有影响,否则不要关;Mozilla也强调不要关,信不信随你:
https://support.mozilla.org/zh-C ... tected-mode-firefox



好吧,我的Firefox真的崩了,告诉我怎么解决?
Mozilla说了,首先你需要在安全模式启动;但是崩溃原因太多了,硬件加速只是其中之一,还有扩展、主题balabala呢:
https://support.mozilla.org/zh-C ... 3%E6%96%B9%E6%B3%95


说了这么多,我该如何更好的使用 硬件加速?如果就是用不了,要怎么关?
Mozilla真的是为了你们操碎了心:
https://support.mozilla.org/zh-C ... 8%E7%A8%8B%E5%BA%8F
注意,如果你的显卡制造商不是 Intel//AMD(ATI)/NVIDIA的,硬件加速你也甭想了;当然Mozilla也不忘严谨的说一下:对于某些计算机和显卡的组合,您可能会遇到通用软件驱动程序的版本问题。
对了,如果很不幸,你的显卡就是要给你的Firefox捣乱,不要认为禁用硬件加速就万事大吉了,如果禁用这一项不管用还得再禁用一项:WebGL。具体上面的链接都有,慢慢看吧。

当然不免还有CPU/Windows操作系统等产生的锅,就不要总是埋怨这只可怜的小狐狸了。

遇到Firefox的问题,请打开其帮助功能,或寻找:https://support.mozilla.org/zh-CN/products/firefox




还有提到layers.prefer啥的...应该是这个:https://wiki.mozilla.org/Gecko:Layers 这得扯到Firefox的排版引擎Gecko,扯的就更远了,有兴趣的自己去看吧。。。

评分

参与人数 3分享 +1 人气 +2 收起 理由
歪歪正传 + 1 感谢解答: )
屁颠屁颠 + 1 版区有你更精彩: )
fireherman + 1 感谢解答: )

查看全部评分

ericdj
发表于 2017-6-30 11:15:22 | 显示全部楼层

666
2L支持
l10x
发表于 2017-6-30 11:31:08 | 显示全部楼层
坐等更新
wjstcmeteor
发表于 2017-6-30 12:03:33 | 显示全部楼层
支持一下楼主,写得不错
1015915207
发表于 2017-6-30 13:44:10 | 显示全部楼层
支持楼主 辛苦额了
n2day
发表于 2017-6-30 14:55:35 | 显示全部楼层
主要是来看楼主帅气的头像。
云中水
发表于 2017-6-30 14:57:29 | 显示全部楼层
gfx.content.azure.backends设置为cairo比direct2d1.1效果好
RoyalFlare
发表于 2017-6-30 15:39:23 | 显示全部楼层
Lunix系统 Linux系统?
傻傻分不清.

楼主帖子里的基本原理也适用于Chrome浏览器麽?
fireherman
 楼主| 发表于 2017-6-30 16:08:40 | 显示全部楼层
本帖最后由 fireherman 于 2017-6-30 16:14 编辑
RoyalFlare 发表于 2017-6-30 15:39
Lunix系统 Linux系统?
傻傻分不清.



手误打错,谢谢提醒。

虽然有安装Chrome(原版),但几乎不怎么使用,所以……也没有捣鼓过……抱歉。

您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

手机版|杀毒软件|软件论坛|优惠券| 卡饭论坛

Copyright © KaFan  KaFan.cn All Rights Reserved.

Powered by Discuz! X3.3( 苏ICP备07004770号 ) GMT+8, 2017-8-24 05:24 , Processed in 0.163631 second(s), 10 queries , MemCache On.

快速回复 返回顶部 返回列表