所谓图形加速,一般都是指加速渲染,比如可以把2D渲染归类为一系列“原语”:画线,画长方形等等。如果是软件自己画,即不加速,则由软件一个像素一个像 素的按照图形算法将线和长方形在“显存”(framebuffer, rendertarget,随便你怎么称呼)上“填”出来;即是由CPU在显存上画出来的。如果加速呢?那么CPU要做的事就很少了,它只需要通过某种方 式告诉“加速硬件”,就是通常意义上的“GPU(图形芯片)”,或者嵌入式的DSP等,你希望画什么就行了,比如 emit_prim_command(quad), emit_prim_command(line),具体在显存上将像素“填”出来的工作就是由GPU来完成的。自然CPU的负担少了很多。
还有一种就是upload to screen的操作,这个也可以看作一种原语(抽象),即“BitBlt”,这种操作一般来说就是启用DMA操作就行了
GPU给传统应用加速
GPU对普通用户的另一个重要用途便是加速网页内容、PDF文件以及图形图像的渲染。现在互联网有一个糟糕透顶的倾向,就是网页设计得越来越花哨,大量光 怪陆离的Flash广告充斥着页面,而这些Flash极其耗用CPU资源,即便你现在用的是最时髦的双核处理器,打开一个Flash内容较多的网页并且用 鼠标中键滚动几下,便会发现CPU资源占用率可以轻松向50%靠拢。换句话说是其中一个CPU核心处于接近100%的资源占用,硬件消耗比播放高清电影还 要高出许多,这显然极不合理。除了Flash动画外,网页上显示图片也颇为耗费硬件资源,尤其是那些高分辨率的图片,都会对CPU提出不低的要求,这也是 网页浏览耗费资源的一个重要的原因。
Adobe Acrobat 8和Reader 8已经可借助GPU来渲染PDF文件内容,性能提升非常明显。
同理,如果用GPU来渲染这些视觉相关的内容,无疑会更具效率并且节约系统资源。现在软件工业已经朝着这个目标行进,比较有代表性的技术方案包括浏览器层 级的完全GPU加速与通过OpenVG API的部分加速。采用完全GPU加速技术的便是正在开发的Firefox 3.0,它采用Gecko 2.0网页排版引擎,而在基础的2D图形库方面,Gecko 2.0将逐渐抛弃传统的软件实现方案,转而采用“Cario(开罗)”2D图形引擎。Cairo引擎基于OpenGL API构建,即采用OpenGL渲染指令,让显卡来完成2D图形图像的绘制。如此一来,基于Cecko 2.0引擎的Firefox 3.0浏览器便具有GPU硬件加速支持,网页所显示的内容,包括图形图像、Flash动画等各类视觉元素都由GPU负责处理,由此大幅度减轻了CPU的负 担,让网页浏览工作变得更加轻松。除了Firefox 3.0之外,任何其他基于Gecko 2.0排版引擎的浏览器产品都能够支持这一功能。
Gecko 2.0和Firefox 3.0都将在上半年完成,在它们的引导下,网页内容GPU加速将会逐渐形成风潮。不过IE、Opera、Konqueror/Safari等浏览器并没有 打算采取类似的做法来实现GPU加速,事实上,浏览器开发商无需作任何改变—关键在于未来的Flash动画和网页矢量图形将支持OpenVG API—OpenVG的全称是“Open Vector Graphics”,意为开放性矢量图形,它是一套专门用于矢量图形硬件加速的开放API借口。但除了矢量图形外,OpenVG还能够为Flash动画提 供硬件加速功能,如果Flash支持这项技术,那么不管用户使用何种浏览器,都能够实现Flash动画的GPU硬件加速,从而大幅度改善目前网页浏览资源 占用率过高的情况。
作为Flash的拥有者,Adobe公司尚未在Flash硬件加速领域迈开实际的步伐,但该公司已经率先实现了PDF文件的GPU加速。PDF是互联网通 行的开放文档标准,它具有强大的图文混排能力和完善的版权保护机制,阅读器又是完全免费的,在出现之后迅速获得广泛采用,目前几乎所有学术性文档、政府公 文、技术白皮书都采用PDF格式发行。PDF文件的渲染一直都是由CPU完成,但CPU显然效率不够高,渲染PDF文件总是存在明显的延迟,倘若PDF文 件足够复杂而CPU性能又不够强,浏览PDF时会出现严重的顿滞。为此,Adobe与nVIDIA进行合作,在最新的Acrobat 8和Adobe Reader 8软件中引入GPU加速功能,即由GPU来渲染PDF文件。Adobe没有阐述具体的细节,只是介绍这项机制是通过DirectX 9.0c中的Shader Model 3.0实现的;硬件要求方面,nVIDIA平台一般建议GeForce 6600以上,AMD-ATI平台则要求Radeon X1300和FireGL V3300、3400和V5200等GPU,当然如果集成图形能够支持Shader Model 3.0规范,也能够支持这一功能。而除了Adobe公司外,Linux中的Gnome阵营也在完成类似的任务,它所依赖的同样是Cario图形引 擎,Cario同样将被作为未来Gnome环境的2D渲染引擎,这样Gnome环境下的PDF查看器也将从中受益。
网页渲染加速以及PDF加速功能的实现,让GPU在日常应用中也能派得上大用场,对于长时间操作电脑的商业用户来说,配备一块性能中等的3D显卡不再是一种浪费,想必nVIDIA、AMD-ATI等独立图形厂商会对此眉开眼笑。
。
openVG使用实例
http://www.cnitblog.com/vcommon/archive/2009/08/06/28774.html