分块的图形结构的制作方法

文档序号:6467177阅读:295来源:国知局
专利名称:分块的图形结构的制作方法
技术领域
本发明属于计算机系统的领域。更具体地,本发明属于在使用分块(tiled)结构的图形系统中处理2D图形操作的领域。
背景技术
计算机图形系统通常用于在二维视频显示屏上显示对象的图形表示。目前的计算机图形系统提供了非常详细的表示并被用于各种应用中。
在典型的计算机图形系统中,将要呈现在显示屏上的一个三维(3D)对象被分解为图形基元。典型地,由主计算机依照基元数据来定义要渲染(render)的3D对象的基元。例如,当一个基元是一个三角形时,主计算机可以依照其顶点的X,Y和Z坐标以及每一个顶点的红,绿和蓝(R,G和B)颜色值来定义基元。在特定的应用中可能使用其他的基元数据。渲染硬件内插基元数据来计算呈现每一个基元的显示屏象素,以及每一个象素的R,G和B颜色值。
典型的计算机图形系统还包括一个图形高速缓冲存储器。为了更有效地利用该图形高速缓冲存储器,3D基元被拣选到图块(bin)中。这项众所周知的技术通常被称为“分块”。


图1和图2说明了将3D基元拣选到图块中,或“分块”的一个实例。对这个例子,一个图形控制器接收基元110,120和130的数据。该基元110,120和130将被渲染以及然后显示在显示屏100上。当渲染一个3D基元时,该图形控制器从图形存储器中读取显示数据的合适部分到图形高速缓冲存储器。然后该图形控制器渲染基元并将渲染后的基元与存储在图形高速缓冲存储器中的显示数据结合在一起。该图形存储器可以位于主系统存储器中。
在一个非分块的图形结构中,如果该图形控制器将渲染基元110,接着是基元120,以及然后是基元130,则每当该图形控制器从一个基元移动到下一个基元时,显示数据的新部分将需要从图形存储器中检索,导致大量的图形高速缓冲存储器未命中以及更多地利用图形存储器带宽。
为提高对图形存储器带宽的利用,对基元110,120和130执行分块功能。这个例子中的基元110,120和130被拣选到图块210,220,230和240,如图2所示。该拣选技术通常涉及一个微处理器,用于分析各个基元相交的是哪些图块,以及然后将基元数据的拷贝写入主存储器中该基元相交的图块的存储区域。该图形控制器接着从图块存储区域中读取该基元数据以及接着分割该基元以创建适合各种分块的更小基元。例如,基元110被分割以创建位于图块210内的基元211和位于图块220内的基元221。基元120被分割以创建位于图块220内的基元222和位于图块240内的基元242。基元130被分割以创建位于图块210内的基元212,位于图块230内的基元231和位于图块240内的基元241。
一旦该基元分割为对于给定图块的更小的基元,就可以渲染该图块。典型地,该图形控制器一次处理一个图块。因为位于一个特定图块中的每一个基元的合适显示数据存储在该图形存储器的同一区域,故在渲染该基元时将导致更少的高速缓冲存储器未命中,由此提高对图形存储器带宽的利用。
不过,在一个典型的图形系统中二维(2D)操作与3D操作混在一起也是常见的。例如,一个微处理器可以接收几个3D对象的基元数据,然后接收一个命令来执行2D位块传送操作,接着接收更多3D基元数据。
图3是一个流程图,描述了典型的现有图形系统如何在一个分块结构中处理2D操作。在步骤310中,一个处理器接收到3D基元数据并将该基元拣选到图块中。如果在步骤320上接收到一个2D位块传送操作,则包含基元数据的所有图块被刷新(发送到图形控制器上以便被渲染)。然后,在步骤340上,执行该2D位块传送操作。在该2D位块传送操作之后,该处理器可以接着开始将另外的3D基元拣选到图块中。
无论何时接收到2D操作,该图块的刷新和渲染都可能由于图形高速缓冲存储器未命中的增加而部分地破环分块3D基元的益处。结果是更高地利用了图形存储器带宽。这样产生的图形存储器带宽利用率的增加在系统主存储器的一部分被用作图形存储器以及多个系统代理期望访问该系统主存储器的计算机系统中可能特别地成问题。由图形控制器引起的主存储器带宽利用率的提高可能会对整个系统性能产生负面的影响。
附图简述从下面给出的本发明实施方案的详述和附图中将对本发明有更多的了解,不过不应将本发明限制在所描述的特定实施方案中,这只是出于解释和理解的目的。
图1是一个依照现有系统在一个显示屏上排列的几个3D对象的图。
图2是一个依照现有系统描述将图1的几个3D对象拣选到图块中的图。
图3是一个用于在分块的图形结构中处理2D操作的现有方法的流程图。
图4描述了排列在显示屏上的几个3D对象和一个2D对象。
图5是说明依照本发明的一个实施方案将图4中的几个3D对象和一个2D对象拣选到图块中的图。
图6是用于将2D操作拣选到图块中的方法的一个实施方案的流程图。
图7是一个系统的框图,该系统包括一个合并依照本发明的一个实施方案实现的图形控制器的系统逻辑设备。
详述将描述在分块的图形结构中处理2D操作的方法的一个实例实施方案。对于这个例子,3D基元和2D位块传送操作都被处理。该3D基元被使用已知的技术拣选到图块中。当要处理一个2D位块传送操作时,该2D位块传送操作同样被拣选到图块中。然后拣选的3D基元和拣选的2D位块传送操作基于逐个图块地被递送到绘制和渲染引擎。通过将2D位块传送操作与3D基元一起拣选到图块中,无论何时一个2D位块传送操作要求处理,都不需要刷新该图块(发送基元到渲染引擎)。将2D位块传送操作拣选到图块减少了图形高速缓冲存储器未命中的频率以及提高了图形存储器带宽的利用率,因此提高了整个计算机系统的性能。
这里描述的实例实施方案涉及2D位块传送操作。术语“2D位块传送操作”意思是包括指导在显示屏上绘制二维对象的所有操作。2D位块传送操作也可能用于初始化一个图形系统中的色彩或Z(深度)缓冲器。而且,虽然这里描述的实例实施方案讨论的是小数目的3D和2D操作和基元,但该实施方案照道理应该处理非常大数目的3D和2D操作和基元。
图4表示了要在显示屏400上绘制的几个3D基元和一个2D对象。对这个例子,3D基元410,420和430以及一个用于2D对象440的2D位块传送操作由处理器接收到。该微处理器将3D基元410,420和430拣选到图块510,520,530和540中的一个或多个。虽然为更清楚地描述本发明这个实例而给出显示屏被分割为四个图块,但该显示屏区域被分割为各种图块数目中任何一种的其他实施方案是可能的。典型地,图块的数目远大于4。
如图4所示,该3D基元410部分落入图块510内以及部分落入图块520内。3D基元420部分落入图块520内以及部分落入图块540内。3D基元430部分落入图块510内,部分落入图块530内,以及部分落入图块540内。2D对象440部分落入图块510内以及部分落入图块530内。
图5说明了3D基元410,420和430以及2D对象440被分割为图块510,520,530和540。一个处理器将各个基元的拷贝递送到该基元相交的任何图块的图形存储器存储区域。例如,该处理器将基元410的基元数据的拷贝递送到图块510和520的图形存储器存储区域。而在另一个例子中,该处理器将2D对象440的数据的拷贝递送到图块510和530的图形存储区域。通过将2D对象440与3D基元一起拣选,当该处理器接收到2D对象440的位块传送操作时,不需要刷新该图块(发送基元到图形控制器内的渲染引擎)。将2D对象440拣选到图块减少了图形高速缓冲存储器未命中的频率以及提高了图形存储器带宽的利用率,因此提高了整个计算机系统的性能。
一旦该3D基元和2D对象440被拣选到图块中,一个图形控制器就基于逐个图块地读取每一个图块的数据以及将较大的基元分割为在每一个分块范围内的更小基元。例如,3D基元410由图形控制器分割以创建图块510内的基元511和图块520内的基元521。3D基元420由图形控制器分割以创建图块520内的基元522和图块540内的基元542。3D基元430由图形控制器分割以创建图块510内的基元512,图块530内的基元531和图块540内的基元541。2D对象440由图形控制器分割以创建图块510内的对象513和图块530内的对象532。然后将分割后的3D基元和分割后的2D对象基于逐个图块地递送到绘制和渲染引擎。
图6是用于处理分块的图形结构中2D位块传送操作的方法的一个实例实施方案的流程图。在步骤610,接收到3D基元并将其拣选到图块中。这个实例中的3D基元被递送到一个处理器以及该处理器执行拣选(装仓)程序。在一个图形控制器内执行拣选程序的其他实施方案是可能的。
在步骤620,作了是否接收到2D位块传送操作的判断。如果没有2D位块传送操作,该程序返回到步骤610以及可能接收到其他的3D基元。不过,如果在步骤620接收到2D位块传送操作,该2D操作也在步骤630中被拣选到图块中。
图7是一个系统的框图,该系统包括一个位于系统逻辑设备710中的图形控制器720。该图形控制器720包括一个装仓单元721,一个2D位块传送引擎722,一个3D渲染引擎723,一个显示输出单元725,和一个图形高速缓冲存储器724。该2D位块传送引擎722意欲代表用于执行2D位块传送操作的各种电路。该3D渲染引擎723意欲代表用于处理3D基元的各种电路。类似地,该显示输出单元725意欲代表用于将图形显示数据转换为适于递送到显示监视器的形式的各种电路。该显示输出单元725连接到一台显示监视器760上。
除了该图形控制器720外,系统逻辑设备710还包括一个主机接口单元712,一个系统存储器接口714,和一个系统输入/输出接口单元716。该主机接口单元712用于耦合该系统逻辑单元710内的各个单元和一个处理器705,所述各个单元包括装仓单元721和系统存储器接口714。该系统存储器接口714提供了该系统逻辑设备710与一个系统存储器750之间的通信。该系统存储器750可能包括一个图形存储器空间752。该系统输入/输出接口单元716将该系统逻辑设备710耦合到一个系统输入/输出设备770上。该系统输入/输出设备770打算包括各种输入/输出设备,包括硬盘控制器,键盘控制器等。
在处理器705的活动中,它可以接收到图形命令和基元流。该图形命令和基元可以包括3D基元和2D位块传送操作。该处理器705将3D基元和2D位块传送操作拣选到多个图块,如前面结合图4到图6所讨论的。作为装仓程序的一部分,该处理器705将3D基元和2D对象数据的拷贝写到图形存储器752内的图块存储区域。
该图形控制器720基于逐个图块地从图形存储器752中读取3D基元数据和2D对象数据。该图块数据存储在图形高速缓冲存储器724中。该图形高速缓冲存储器724优选为大得足以存储至少能够处理一个图块的足够的显示数据。该图形高速缓冲存储器724通过系统存储器接口714存取图形存储器752,用于每一个图块的数据被递送到装仓单元721。该装仓单元721把3D基元和2D对象分割为在图形控制器720当前处理的那个图块范围内的更小的基元和对象,如前面结合图4到图6所讨论的。
该装仓单元然后将分割后的3D基元和2D位块传送操作递送到该2D位块传送引擎722或3D渲染引擎723。2D位块传送引擎和3D渲染引擎都耦合到图形高速缓冲存储器724上。这个配置允许2D位块传送引擎722访问由3D渲染引擎723存储在图形高速缓冲存储器724中的中间渲染结果。在该图形高速缓冲存储器724和该2D位块传送引擎之间没有连接的另一实施方案是可能的。不过,如果该2D位块传送引擎722和图形高速缓冲存储器724之间没有连接,则每次当2D位块传送引擎722需要修改显示数据时,都必需将数据从图形高速缓冲存储器724写入图形存储器752。然后为了继续渲染3D基元,该3D渲染引擎723将需要使数据从图形存储器752中读回到图形高速缓冲存储器724。
在这个实例实施方案中,该系统存储器750包括该图形存储器空间752。使用一个独立图形存储器的其他实施方案是可能的。该图形控制器执行装仓操作的其他实施方案也是可能的。还有图形控制器720没有集成在一个系统逻辑设备中但包含在一个分立设备中并通过一个系统逻辑设备耦合到处理器的更多实施方案是可能的。
在前面的说明中,本发明已经参照它的特定实例实施方案进行了描述。但是显然在不偏离附加权利要求中提到的本发明的广义精神和范围的情况下,可以进行各种修改和变化。因此,说明书和附图被认为是示意性的而不是限制的意思。
权利要求
1.一种设备包括一个装仓单元用于将至少一个3D基元和至少一个2D位块传送操作拣选到多个图块。
2.权利要求1的设备,还包括一个耦合到该装仓单元的2D管道,该装仓单元将多个对应于2D位块传送操作的分块的2D位块传送操作传递到该2D管道,该2D管道执行该多个分块的2D位块传送操作。
3.权利要求2的设备,还包括一个耦合到该装仓单元的3D管道,该装仓单元将多个对应于3D基元的分块的3D基元渲染操作传递到该3D管道,该3D管道执行该多个分块的3D基元渲染操作。
4.权利要求3的设备,还包括一个图形高速缓冲存储器用于存储中间的3D渲染和2D位块传送结果,该图形高速缓冲存储器耦合到该2D管道以及还耦合到该3D管道。
5.权利要求4的设备,其中该图形高速缓冲存储器与一个微处理器高速缓冲存储器共享同样的电路小片。
6.权利要求4的设备,其中该装仓单元是一个微处理器。
7.一种系统,包括一个微处理器;一个系统存储器;以及耦合在该微处理器与该系统存储器之间的一个系统逻辑单元,该系统逻辑单元包括一个存储控制器,用于提供对该系统存储器的存取;以及一个图形控制器,包括一个装仓单元,该装仓单元用于将至少一个3D基元和至少一个2D位块传送操作拣选到多个图块。
8.权利要求7的系统,其中该图形控制器还包括一个耦合到该装仓单元的2D管道,该装仓单元将多个对应于2D位块传送操作的分块的位块传送操作传递到该2D管道,该2D管道执行该多个分块的位块传送操作。
9.权利要求8的系统,其中该图形控制器还包括一个耦合到该装仓单元的3D管道,该装仓单元将多个对应于3D基元的分块的3D基元渲染操作传递到该3D管道,该3D管道执行该多个分块的3D基元渲染操作。
10.权利要求9的系统,还包括一个图形高速缓冲存储器用于存储中间的3D渲染和2D位块传送结果,该图形高速存储器耦合到该2D管道以及还耦合到该3D管道。
11.权利要求10的系统,其中该图形高速存储器与一个微处理器高速缓冲存储器共享同样的电路小片。
12.一种系统,包括一个微处理器,用于将一个3D基元和一个2D位块传送操作拣选到多个图块;一个系统存储器,用于存储表示拣选的3D基元和拣选的2D位块传送操作的数据的拷贝;以及耦合在该微处理器与该系统存储器之间相连的一个系统逻辑单元,该系统逻辑单元包括一个存储器控制器,用于提供对该系统存储器的存取,以及一个图形控制器包括一个2D管道,该图形控制器将多个对应于2D位块传送操作的分块的位块传送操作传递到该2D管道,该2D管道执行该多个分块的位块传送操作。
13.权利要求12的系统,其中该图形控制器还包括一个3D管道,该微处理器将多个对应于3D基元的分块的3D基元渲染操作传递到该3D管道,该3D管道执行该多个分块的3D基元渲染操作。
14.权利要求13的系统,还包括一个图形高速缓冲存储器用于存储中间的3D渲染和2D位块传送结果,该图形高速存储器耦合到该2D管道以及还耦合到该3D管道。
15.权利要求14的系统,其中该图形高速存储器与一个微处理器高速缓冲存储器共享同样的电路小片。
16.一种方法,包括将第一3D基元拣选到多个图块中的至少一个;将一个2D位块传送操作拣选到多个图块中的至少一个;将第二3D基元拣选到多个图块中的至少一个;以及渲染该多个图块。
17.一种方法,包括将第一3D基元拣选到多个图块中的至少一个,该第一3D基元的一部分相交于第一分块;将一个2D位块传送操作拣选到多个图块中的至少一个,该2D位块传送操作的一部分相交于该第一分块;将第二3D基元拣选到多个图块中的至少一个,该第二3D基元的一部分相交于该第一分块;以及渲染存储在第一图块存储区域中的数据,该第一图块对应于该第一分块。
18.权利要求17的方法,其中渲染存储在第一存储区域中的数据包括判断该第一和第二3D基元的哪一部分和2D位块传送操作的哪一部分在该第一分块的范围内。
19.权利要求18的方法,其中渲染存储在第一存储区域中的数据还包括渲染在该第一分块范围内的第一3D基元的那部分;执行在该第一分块范围内的2D位块传送操作的那部分;以及渲染在该第一分块范围内的第二3D基元的那部分。
20.一种机器可读媒体,其上存储指令,当由一个计算机系统执行该指令时,引起该计算机系统执行一个方法包括将一个3D基元拣选到多个图块中的至少一个;将一个2D位块传送操作拣选到该多个图块中的至少一个;以及指示一个图形控制器来渲染该多个图块。
全文摘要
公开了一种用于在分块的图形结构中处理2D操作的方法。一个图形控制器处理3D基元和2D位块传送操作。使用已知技术将该3D基元拣选到图块中。当处理一个2D位块传送操作时,该2D位块传送操作同样被拣选到图块中。然后拣选的3D基元和拣选的2D位块传送操作基于逐个图块地被递送到位块传送和渲染引擎。通过将2D位块传送操作与3D基元一起拣选到图块中,无论何时一个2D位块传送操作请求处理,都不需要刷新图块(发送基元到渲染引擎)。将2D位块传送操作拣选到图块减少了图形高速缓冲存储器未命中的频率以及提高了图形存储器带宽的利用率,因此提高了整个计算机系统的性能。
文档编号G06T15/00GK1421022SQ01807461
公开日2003年5月28日 申请日期2001年3月6日 优先权日2000年3月31日
发明者H·C·蔡, H·C·希, V·彭特科夫斯基 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1