火狐默认开启了图形硬件加速的特效,这项特效目前只有在Windows Vista/7平台上通过Direct2D开启,同时您还需要一块支持DirectX 10的显卡。其实,从Firefox 4最开始的测试版本开始,这项特效就存在于火狐当中,不过还没有默认开启,现在经过了我们Graph团队的刻苦公关,已经逐渐稳定并且确信可以默认提供给我们的用户使用。
什么是图形硬件加速呢
可能大家都有玩过3D游戏或者需要特别渲染特效的游戏,比如最近流行的星际争霸2等,这些游戏对于用户电脑的显卡要求都比较高,原因就是这类游戏需要特别依赖显卡的计算能力。而现代高级显卡都带有强大的GPU——图像处理单元参与图形图像计算,那么在这类配置的计算机中,其他的软件是否也能够有效利用显卡上的GPU来进行图形图像计算呢?Firefox 4证明是可以的,并且对于性能的提升是很大的。现在高级浏览器也都开始拥抱使用GPU进行加速计算,例如现在最新的Chrome dev版本,还有IE 9等等。
简单的说,什么是图形硬件加速呢?硬件加速就是充分利用您机器显卡上的GPU来进行图形和图像计算,而不是单纯的使用机器的CPU。这会大大加速图形处理效率。
目前的加速主要针对以下两个层次:
内容加速:专门用来加速渲染实际的页面内容,例如文字、图片、CSS边框等。内容加速同样被用来加速2D的HTML Canvas。在Windows Vista/7平台上 ,我们使用Direct2D来进行加速。
组合加速:在网页进行渲染时,有一个过程是先对基本元素进行渲染,然后需要对这些对象进行组合和构图,组合加速专门针对这个组合过程,在组合之后绘制在计算机的屏幕上,同时也会去应用一些CSS特效,例如位移、变形等。例如,假设您有一个HTML5的Video元素正在播放视频,然后在这个元素上使用CSS特效来让他旋转或者淡入淡出,这时候就会使用组合加速来进行加速渲染。(这个特性目前还没有默认开启。)
我们来测试一下吧,用您的浏览器试试访问这个:
http://demos.hacks.mozilla.org/openweb/HWACCEL/什么是Direct2D?
Direct2D是Windows系统内置的DirectX中的渲染子系统。他是在Windows 7中开始出现的,然后又向前移植到Vista系统中。他允许我们使用简单的2D图形API来访问硬件显卡设备,目前这些API已经进入所有Mozilla的绘图代码中,从而允许我们在很多场合中利用硬件的图形处理能力来进行加速。
作为用户的您应该在访问一些使用高级的动画的图形效果的网页时,看到这些页面渲染的更快更不容易假死。比如,页面中可能使用透明效果,或者包括变形、位移等特效时。您可以通过地址栏中输入"about:support"来查看您的图形特性是否已经被打开。
硬件加速依赖于平台和硬件
需要注意的是,现在内置在Firefox 4中的硬件加速依赖于特定的操作系统平台,以及兼容的显卡硬件设备。
Linux:内容加速依赖XRender,组合加速依赖OpenGL;
Windows XP:不具备内容加速能力,组合加速依赖于Direct 3D;
Windows Vista/7:内容加速依赖于Direct2D,组合加速依赖于Direct 3D;
Mac OS X:内容加速依赖于Quartz,组合加速依赖于OpenGL。其中Quartz基本上是基于CPU处理的,QuartzGL(使用GPU加速的Quartz 2D API)目前还没有在Firefox中开启(其他浏览器也没有)。
注意:不要混淆硬件加速和WebGL。WebGL是类似于OpenGL的API,允许JavaScript在Canvas元素上进行3D绘图的API。WebGL是API而不是底层加速技术,当然他也是可以充分利用底层加速特性的。
需要您的帮助
Firefox的硬件加速需要通过DirectX或者OpenGL同机器的显卡进行通讯。而这个通讯是非常依赖于系统中的硬件设备和环境的(比如,特定型号的显卡,有多少显存VRAM,显卡驱动的版本,操作系统版本等等)。事实上,这些组合太多了,以至于我们无法充分进行测试。
所以,为了帮助我们测试在不同显卡和显示设备环境下的表现,您可以帮忙安装这个扩展——Grafx Bot。
Grafx Bot会自动的运行一系列测试来查看您的硬件加速能力(可能需要5-20分钟)。测试结束后,您可以将结果发送回Mozilla(当然所有的信息都是匿名的),然后我们可以对数据进行收集和分析,希望我们能够借助这些数据来解决Bug以便提供更加稳定的硬件加速功能。
我们需要您的帮助,如果您正在运行Firefox 4测试版本,非常欢迎并感谢您安装这个扩展来帮助我们测试。您看,向社区贡献您的能力,一点都不难,