业界达人 发表于 2010-8-30 21:05:32

Chromium改进硬件加速图形系统(图)

近段时间,Chromium对图形系统进行了大幅的改进,一方面为了适应新的API(即WebGL,结合了Javascript和OpenGL的底层3D图形API)和新的标记语言(如Apple带头提出的3D CSS),一方面可以更好利用GPU来增强整个浏览器的图形绘制速度,受益于此,一些常见的操作如二维图像合成、伸缩,可以得到显著的加速。</P><P style="TEXT-INDENT: 2em">在硬件加速条件下,GPU接受来自渲染进程的命令,并将其输入OpenGL 或 Direct3D 进行处理,Chrome在此一直落后于其他对手,原因是Google考虑到安全因素,将浏览器的渲染工作安排在一个独立的进程内,导致无法与操作系统的硬件接口直接通信。因此为了实现硬件加速,Chrome需要特殊的方案:</P><P style="TEXT-ALIGN: center"><IMG alt=Chromium改进硬件加速图形系统(图) src="http://img1.gtimg.com/tech/pics/hv1/26/250/612/39859076.png"></P><P style="TEXT-INDENT: 2em">Google将这种方案称为GPU process.</P><P style="TEXT-INDENT: 2em">在渲染进程和GPU两者无法直接通信的情况下,Chrome特意分出了一片共享存储区,让渲染进程将命令缓存录入存储区,再等GPU从存储区读取命令,进而执行相应命令。这方案解决了核心问题,但因为始终不是直接通信,功能上还有一定的限制。</P><P style="TEXT-INDENT: 2em">依靠这个结构,Chromium开始对部分内容实施硬件加速。对于普通的网页内容(文本、CSS、静态图片)依旧直接使用CPU渲染,而GPU负责大型媒体(如视频)的加速渲染任务,更为特殊的WebGL元素,则完全交由GPU渲染。</P><P style="TEXT-INDENT: 2em">对各层面的内容渲染完成后,最后关键的一步是将所有内容揉合进同一个页面,这项工作CPU无法很好胜任,而想使用GPU进行糅合工作,可以加入启动命令行参数--enable-accelerated-compositing。</P>
页: [1]
查看完整版本: Chromium改进硬件加速图形系统(图)