CN101221664A - 图形处理单元及图形处理方法、处理器 - Google Patents
图形处理单元及图形处理方法、处理器 Download PDFInfo
- Publication number
- CN101221664A CN101221664A CNA200810007175XA CN200810007175A CN101221664A CN 101221664 A CN101221664 A CN 101221664A CN A200810007175X A CNA200810007175X A CN A200810007175XA CN 200810007175 A CN200810007175 A CN 200810007175A CN 101221664 A CN101221664 A CN 101221664A
- Authority
- CN
- China
- Prior art keywords
- predetermined
- drawing primitive
- pel
- inlet flow
- triangle
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims description 13
- 238000003672 processing method Methods 0.000 claims abstract description 11
- 238000003860 storage Methods 0.000 claims description 12
- 230000008569 process Effects 0.000 claims description 9
- 238000006243 chemical reaction Methods 0.000 claims description 6
- 230000008859 change Effects 0.000 claims description 3
- 238000004519 manufacturing process Methods 0.000 abstract description 6
- 239000000872 buffer Substances 0.000 description 10
- 238000010586 diagram Methods 0.000 description 10
- 230000002093 peripheral effect Effects 0.000 description 7
- 230000014759 maintenance of location Effects 0.000 description 4
- 241001269238 Data Species 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- VEMKTZHHVJILDY-UHFFFAOYSA-N resmethrin Chemical compound CC1(C)C(C=C(C)C)C1C(=O)OCC1=COC(CC=2C=CC=CC=2)=C1 VEMKTZHHVJILDY-UHFFFAOYSA-N 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 235000012364 Peperomia pellucida Nutrition 0.000 description 1
- 240000007711 Peperomia pellucida Species 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000008034 disappearance Effects 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000001939 inductive effect Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
- Image Processing (AREA)
Abstract
本发明提供一种图形处理单元及图形处理方法、处理器,绘图管线的一处理器可将一绘图图元输入流转换成一预定绘图图元输出流,该处理器辨识接收到的该绘图图元输入流内的一预定序列图样,并判断该辨识序列图样是否可转换成该多个绘图图元输出流之一,如果可以,处理器找出该辨识序列图样内的多个顶点,并将该顶点重排成一预定输出图样,之后,处理器输出该预定输出图样给一个或多个图形处理元件。本发明所述的图形处理单元及图形处理方法、处理器,可在降低图形处理单元管线的制造成本的同时又保有原来的处理效率。
Description
技术领域
本发明是有关于图形处理,尤指整合绘图管线所处理的多种图元样式的方法与装置。
背景技术
比起之前,目前的计算机应用程序多为绘图密集并需要更高阶的计算机处理能力,诸如游戏类等应用程序常常牵涉到复杂且极细致的图形描绘,需要大量且不间断的运算,为了满足消费者的需求,增加诸如游戏类等计算应用程序的绘图能力,计算机结构亦随之日新月异。
提到计算机,尤其是个人计算机,已规划要应付程序设计者对娱乐及多媒体应用程序愈来愈严苛的条件(如高画质影音与最新的3D游戏),因此对系统频宽有更高的要求,而出现分配频宽给此类频宽需求较高的应用程序的方法,例如提供额外频宽空间给后来产生的应用程序。
因此,目前的计算机系统常常包括多个处理器,例如图形处理单元(graphics processing unit,GPU)便是一种主处理器(如中央处理单元(central processing unit,CPU))之外的协同处理器(coprocessor),可以进行特定的处理任务,让图形处理单元处理这些任务,中央处理单元便可进行其他任务,于某些情况下,如果图形处理单元等协同处理器是微处理器,则可以与中央处理单元一起设置在主机板上,于其他应用中,本领域技术人员亦知,图形处理单元及/或其他协同处理装置可以做成可实行电连接的独立卡,例如图形处理单元便可以绘图卡方式实施。
图形处理单元等协同处理器可能需要常常存取诸如视频存储器等扩充存储器,以进行任务的处理,协同处理器通常设计专用于处理特定任务,如图形处理单元便是用来以最有效的方式执行三维绘图计算,以支持绘图密集的应用程序,当仅执行单个绘图密集应用程序时,传统的计算机系统和协同处理器还足以应付,但是当尝试同时执行多个绘图密集应用程序,此类计算机系统及协同处理器很可能会发生问题。
通常图形处理单元的输入是以图元(primitive)串流表示,图元是代表图形的基本元件,如点、线、圆、三角形等等,这些是二维图元, 如果是在一实体模型系统(solid modelingsystem)中,三维图元则包括柱形、立方体、球体等等,有时会加上三角形及/或线条,这些图元配合图形处理单元使用的规则,可以构成预先定义的图样(pattern)。
绘图密集的应用程序常常具有等待图形处理单元处理的各式图元, 图元可由绘图应用程序接口(applicationprogramming interface,API)标准定义,例如开放式绘图函数库(open graphics library,OpenGL)及/或Direct 3D(D3D),OpenGL是跨语言跨平台的应用程序接口标准,可用来撰写产生二维或三维计算机绘图的应用程序,D3D是微软的标准,与不同的微软系统配合以进行二维及三维的计算机绘图。
图形处理单元可以接受呼叫而处理各种的图元,也包括了旧式(legacy)图元,位于图形处理单元管线开端的处理元件会以既定的方式将不同的图元传送给不同的处理元件。
因为图元种类繁多又复杂,图形处理单元管线通常具备很多的处理门(gate)来应付需要处理的各式图元,有些种类的图元很复杂,图形处理单元管线的各处理元件可能有多达20万个门来处理这些复杂的图元,像是三角扇形(triangle fan)或四边形列表(quad list)。
要增加图形处理单元管线的每一个处理元件的门数,势必增加图形处理单元管线的制造成本,但是如果图形处理单元管线要处理多种图元,这又是必须的,如果能够减少图形处理单元管线的处理元件的门数,而又能保有处理来自输入流的各种图元的能力,便能减少处理元件的相关成本。
因此,目前亟需能克服上述缺失及缺点的发明。
发明内容
绘图管线内的一处理器能将绘图图元输入流转换成预定绘图图元输出流,其中处理器辨识所接收的绘图图元输入流内的预定序列图样,接着处理器判断该辨识序列图样是否可转换成某一预定绘图图元输出流,如果可以,处理器找出该辨识序列图样内的多个顶点,并重新排序该顶点成为一预定输出图样,之后,处理器输出对应于一个或多个处理元件的该预定输出图样。
该输入流内的辨识预定序列图样符合绘图应用程序接口定义的图元,包括三角扇形、四边形条带、四边形列表、点、线条带、三角形条带、毗邻三角形条带、线条带及毗邻线条带等,处理器可将输入流内的三角扇形、四边形条带、四边形列表及其他此类图元转换成下列预定输出图元之一:点、线条带、三角形条带、毗邻三角形条带、或线条带及毗邻线条带,当处理器接收到图元,便重复进行该转换动作,之后输出给绘图管线的后方元件。
本发明提供一种图形处理方法,用于将一绘图图元输入流转换成多个预定绘图图元输出流之一,该图形处理方法包括下列步骤:辨识该绘图图元输入流内中是否具有多个预定序列图样之一;判断该绘图图元输入流内的该辨识预定序列图样是否能转换成多个预定绘图图元输出流之一;找出该绘图图元输入流内的该辨识预定序列图样的多个顶点;重排该绘图图元输入流内的该辨识预定序列图样的该多个顶点,成为对应于该多个预定绘图图元输出流之一的一预定图样;以及输出对应于该多个预定绘图图元输出流之一的该预定图样给一个或多个绘图处理元件。
本发明还提供一图形处理单元,用于将一绘图图元的输入流转换成多个预定绘图图元输出流之一,该图形处理单元包括:一输入单元,用于接收对应于绘图图元的输入流;一辨识逻辑,用于辨识对应该绘图图元的该输入流内的一预定序列图样,并判断该辨识序列图样是否能转换成该多个预定绘图图元输出流之一;一识别逻辑,用于找出该辨识序列图样中的多个顶点,并重排该找出的顶点成为对应该多个预定绘图图元输出流之一的一预定图样;以及一输出单元,耦接于多个图形处理元件,用于传递对应该多个预定绘图图元输出流之一的该预定图样。
本发明另提供一处理器,其是用于转换图元,该处理器包括:一译码器,用于将一接收图元分离成与图样样式有关的一命令以及与该接收图元的顶点信息有关的一数据;一命令存储器,耦接于该译码器,用于接收对应该接收图元的该命令;一数据存储器,耦接至该译码器,用于接收与该接收图元的顶点信息有关的该数据;以及一顶点转换控制器,用于从该命令存储器接收与该接收图元对应的该命令,并以一预定输出顺序从该数据存储器存取与该接收图元的顶点信息有关的该数据,该预定输出顺序是由与该接收图元相关的顺序转换所得,该顶点转换控制器具有一输出单元,该输出单元以该预定输出顺序传送该数据。
本发明所述的图形处理单元及图形处理方法、处理器,可在降低图形处理单元管线的制造成本的同时又保有原来的处理效率。
附图说明
图1:具有一计算机的计算机系统的示意图。
图2:典型绘图管线的示意图,通常可见于图1内的图形处理单元中。
图3:图2的命令流处理器所执行步骤的流程图,转换预定输入序列成为预定输出序列。
图4:显示一三角扇形,当图2的命令流处理器接收的输入流有该三角扇形,依照图3的流程进行辨识。
图5:对应图4的三角扇形的三角形条带。
图6:显示一四边形列表,可能出现于图2的命令流处理器所接收的输入流中。
图7:显示将图6的四边形列表转换成三角形条带的一种方式。
图8:图2的命令流处理器的部分示意图,可将预定输入图元转换成预定输出图元。
具体实施方式
图1为一非限定的例示计算机系统10的示意图,其包括一计算机12,于此非限定的实施例中,计算机12的元件可包括一处理单元16、一系统存储器18以及一系统总线21,该系统总线21将诸如系统存储器18等不同的系统元件连接于处理单元16,系统总线21可为本领域技术人员所知晓的任一种总线结构,如存储器总线或存储器控制器、外围设备总线以及区域总线,就一非限定实施例而言,所述架构可包括外围设备互连(peripheral component interconnect,PCI)总线、绘图加速端口(accelerated graphics port,AGP)及/或快速外围设备互连(PCIExpress)总线。
计算机12可包括多种计算机可读取的介质,计算机可读取的介质可为任一种已知的计算机可存取介质,并且包括易失性和非易失性存储器,可为可移除或不可移除的存储器。
系统存储器18可为易失性及/或非易失性存储器形式的计算机储存介质,例如只读存储器(read only memory,ROM)24及随机存取存储器(random access memory,RAM)26,只读存储器24中可储存有基本输入输出系统(basic input/output system,BIOS)27,于一非限定实施例中,随机存取存储器26可涵括操作系统29、应用程序31、其他程序模块33及程序数据35。
计算机12亦包括其他可移除/不可移除的易失性/非易失性计算机储存介质,于一非限定实施例中,硬盘机41可读写不可移除的非易失性磁性介质,磁盘机51可读写可移除的非易失性磁片52,光盘机55则可读写光盘片56。
通过如键盘62及鼠标装置61等输入装置,使用者可输入命令及信息给计算机12,所述输入装置是通过使用者输入界面60及系统总线21而与处理单元16连接,然而,本领域技术人员应可理解,其他接口及总线结构亦可用于连接所述装置与计算机12,例如平行端口、游戏端口、通用串行总线(universalserial bus,USB)。
一种或多种图形处理单元(graphics processing unit,GPU)84可通过系统总线21与图形接口82信号连接,于一非限定实施例中,图形处理单元84可包括芯片上存储器储存装置,例如暂存器储存装置及快取存储器,有必要时,图形处理单元84亦可与视频存储器86信号连接。
显示器91或其他类型的显示装置亦可通过视频接口90与系统总线21连接,视频接口90亦可与视频存储器86信号连接,除显示器91外,计算机系统10亦可包括其他外围输出装置,例如印表机96及扬声器97,均可通过输出外围接口95达成连接的目的。
利用逻辑连接一部或多部远端计算机80,计算机12可于网络或分散式环境中操作,远端计算机80可为个人计算机、伺服器、路由器、网络计算机、端末装置或其他常见的网络节点,虽然图1中仅显示存储器储存装置81及远端应用程序85,但远端计算机80亦可包括许多上述元件,于图1中所示的逻辑连线包括局域网(local area network,LAN)71及广域网(wide areanetwork,WAN)73,但本领域技术人员当可明白,亦可包括其他种类的网络/总线。
于图1的非限定实施例中,远端计算机80可通过局域网71及网络接口70而连接至计算机12,同样地,亦可使用数据机72及使用者输入界面60通过广域网73将计算机12连接至远端计算机80。
如前所述,于另一环境处理或操作期间,图形处理单元84可用以切换处理程序或环境,在此情形下,图形处理单元84用以储存中断的环境,以及引发处理另一环境,这个环境可能是先前中断及储存的环境。
图形处理单元84可用以支持属于相同环境的多重图形处理单元程序(命令)的循序执行,然而,如前所述,为了使图形处理单元84于处理单元16前后的执行同步,可使用多阶或同步化程序。
图2为图形处理单元绘图管线110的示意图,其可存在于图1的图形处理单元84中,虽然没有分别描述绘图管线110的各元件,但本领域技术人员当可明白其如何操作和交互作用,以处理绘图信息。
简单地说,命令流处理器(command stream processor,CSP)115是完全可编程机构,位于图形处理单元管线110的前端,处理从主中央处理单元接收到的所有命令,命令流处理器115可以解析(parse)命令流、免除“信任运算”的检查、组合多个串流的组成数据、管线前端防护(top-of pipe fence);寻页错误(page fault)侦测、图形处理单元中断及/或环境切换。
如前所述,图2的命令流处理器115及图形处理单元管线110的其他元件会接收传送到图形处理单元84的输入流,里头如果有大量的图元,便会需要复杂的处理运算,不过,如果命令流处理器115可以将接收到的输入流内的任何图元样式转换成预定且较少的图元样式,那么图形处理单元管线110的各处理元件便可以使用较少的门数,如果图形处理单元管线的元件门数减少,那么图形处理单元管线的制造成本应该更便宜,而基本上还能有更快速的运算能力,于一非限定实施例中,命令流处理器115可接收复杂的绘图图元,但是将此复杂的绘图图元输出为下列预定输出之一:
1.点(point);
2.线条带(line strip);
3.三角形条带(triangle strip);
4.毗邻三角形条带(adjacent triangle strip);以及
5.线条带与毗邻线条带(line strip with adjacent line strip)。
图3是图2的命令流处理器115所执行程序116的流程图,可将预定输入序列转换成为预定输出序列,本领域技术人员可知这些逻辑步骤可以包括利用图样导向从预定来源及目标请求程序的编程,在此会有相关讨论。在图3的步骤117中,命令流处理器115接收可能以图元串流表示的图形处理单元输入流,当命令流处理器115接收到输入流,于步骤119中,辨识输入流内是否有预定图样。
于一非限定实施例中,命令流处理器115输入流所包括的复杂图元可能有三角扇形,三角扇形是包括多个三角形的一种物件,图4显示一个三角扇形120,图2的命令流处理器115接收到的输入流可能有这样的三角扇形120,在图3的步骤119进行辨识,于此非限定实施例中,三角扇形120包括6个三角形和8个标示成0-7的顶点。
如果图4的三角扇形120可以重新排成前面所列举五种预定输出样式中的一种,则图形处理单元管线110的处理元件(图2)就不用包括那么多的逻辑门来处理三角扇形120,所以命令流处理器115接收三角扇形120,并于步骤122中,判断命令流处理器115是否可将三角扇形120的组成重排成一预定输出,于一非限定实施例中,预定输出可以是一个三角形条带,图5显示一个三角形条带130,其对应图3的三角扇形120,图5的三角形条带130将图4的三角扇形120的顶点0-7重新排列。
在某种程度上,这种重排是可行的,因为命令流处理器115识别并参考输入流的三角扇形120以及将管线110的三角形条带130的目前位置输出给图形处理单元,换句话说,因为输入流图样(即三角扇形120)有一预定输出(即三角形条带130),命令流处理器115可以执行此非限定例中的转换,这只有在命令流处理器115可以产生对应于预定输入图样的预定输出图样时才能进行重排。
要重排输入序列成为预定输出序列,于图3的步骤124,命令流处理器115找出位于输入流内的顶点,于此非限定实施例中,命令流处理器115以下式表示三角扇形120的序列:
F={v0,v1,v2,...vn-1} 式(1)
而三角扇形120中的三角形序列可表示成:
T={{v0,v1,v2},{v0,v2,v3},...,{v0,vn-2,vn-1}} 式(2)
顶点v0,v1,v2对应图4的三角形A、顶点v0,v2,v3对应三角形B,本领域技术人员可依此类推,根据剩下的三角形C~F建立出序列T内的顶点群组。
图4的三角形序列经图3的步骤126转换后,形成图5的三角形条带130,下式S表示输出流:
S={{v1,v2,v0,v3,v4},{v4,v5,v0,v6,v7},...,{v3k+1,v3k+2,v0,v3k+3,v3k+4}} 式(3)
在三角形条带130中,顶点v1,v2,v0,v3,v4对应三角形A、B、C,同样地,三角形条带130中的顶点v4,v5,v0,v6,v7对应三角形D、E、F。
将每一个三角形条带序列以一对一的方式传送给图形处理单元管线110,但是要转换式(1)的三角扇形120成为式(3)的三角形条带130,命令流处理器115必须执行并遵守下列规则:
S5k=F3k+1
S5k+1=F3k+2
S5k+2=F0 式(4)
S5k+3=F3k+3
S5k+4=F3k+4
针对包括多个三角扇形120的输入流,重复进行上述转换成三角形条带130的转换动作,于此非限定实施例中,将三角扇形120转换成三角形条带130的转换模型定义如下:
L=5
I=1
E=-10 式(5)
C={1,E,1,1,0}
i0=I
l0=0
in+Cln, Cln≠E, Cln-1≠E
Sn=Fin
参数L、I、C定义转换模型,参数E用来加入例外,不会与C的其他内容值重复,再则,L与输出周期有关,其值为5,亦为每一三角形条带的顶点数目,另外,I代表输出的第一元素的索引,其值为1,如图4的第一个三角形条带,例外参数E的值可为-10,主要是为了跟C所使用的值不同,C是顶点间的增量。
命令流处理器115可输出三角形条带130的对应输出流S给图2的图形处理单元管线110的其他元件进行后续处理,借此转换步骤(图3),图形处理单元管线110的其他处理元件便不再需要处理三角扇形的逻辑门,因此绘图管线可以使用较少的逻辑门,不但降低制造成本并且加快执行速度。
于另一非限定实施例中,命令流处理器115接收的输入流可能包括四边形列表而不是图4的三角扇形120,图6是图形处理单元管线可能处理的一个四边形列表150,四边形列表150可以重排成三角形条带进行后续处理,图形处理单元管线110便不需要额外的逻辑门来处理四边形列表。
图7是将图6的四边形列表150转换成三角形条带的一种方式,与图4有些类似,可以根据下方所产生的三角形序列,将四边形列表150转换成三角形条带,于图7中以虚线表示:
T={{v0,v1,v3},{v1,v3,v2},...,{vn-3,vn-2,vn-1}}
式(6)
于此例中,参数L、I、E、C如下:
L=5
I=1
E=-10
C={1,E,1,1,0}
代入式(5),将包括四边形列表150的输入流转换成下列输出流:
S={{v0,v1,v3,v2},{v4,v5,v7,v6},...,{v4k,v4k+1,v4k+2,v4k+3}} 式(7)
利用此程序,任何图元输入流可以转换成预定数量的图元输出流之一,于一非限定实施例中,命令流处理器115可以根据指定输入流而输出下列任一输出:(1)点;(2)线条带;(3)三角形条带;(4)毗邻三角形条带;(5)线条带及毗邻三角形条带,如此命令流处理器115可以输出指定图元样式,涵括一维、二维、三维的输出样式。
图元转换会因某些场合而有变化,例如牵涉到平面着色(flat shading),绘制图元(draw primitive,DP)以及绘制索引图元(draw index primitive,DIP)模式也会因输入数据流是根据OpenGL或D3D标准而得到不同的诱导(provoking)顶点,下表列出寻找及选择一诱导顶点,或平面着色图元内带有色彩信息的顶点的至少一非限定实施例。
平面着色 | OpenGL | D3D |
三角形列表 | 3*(i+2) | 3*i |
三角形条带 | i+2 | i |
三角扇形 | i+2 | i+1 |
线列表 | 2*i | 2*i |
线条带 | i+1 | i |
四边形 | 4*i+3 | - |
四边形条带 | 2*i+3 | - |
多边形 | 0 | - |
当图元为平面着色图元样式,处理方式不同,上述命令流处理器115可将图元转换成对应输出样式,所以除了上述非限定实施例,命令流处理器115也可配合下表的输出图元及输出条带:
输出图元样式(说明顶点的输入顺序) | 命令流处理器的输出(说明重排的顶点) |
OpenGL四边形条带 | 三角形条带 |
点列表 | 点列表 |
线列表线列表顶点:0,1,2,3,4,5,6,7 | 线条带线条带:(0,1),(2,3),(4,5),(6,7) |
线条带 | 线条带 |
OpenGL平面着色的线条带 | 线条带 |
OpenGL线条带顶点:0,1,2,3,4,5,6,7,8,9 | D3D线条带:(1,0),(3,2),(5,4),(7,6),(9,8) |
三角形列表三角形列表顶点:0,1,2,3,4,5,6,7,8, | 三角形条带三角形条带:(0,1,2),(3,4,5),(6,7,8) |
三角形条带 | 三角形条带 |
OpenGL平面着色的三角形条带OpenGL三角形条带顶点:0,1,2,3,4,5,6,7,8,9 | 三角形条带D3D三角形条带:(2,0,1),(3,2,1),(4,2,3),(5,4,3),...... |
三角扇形D3D三角扇形顶点:0,1,2,3,4,5,6,7,8,9 | 三角形条带D3D三角形条带:(1,2,0),(2,3,0),(3,4,0),(4,5,0),...... |
OpenGL三角扇形OpenGL三角扇形顶点:0,1,2,3,4,5,6,7,8,9 | 三角形条带D3D三角形条带:(2,0,1),(3,0,2),(4,0,3),(5,0,4) |
OpenGL四边形列表OpenGL四边形列表顶点:0,1,2,3,4,5,6,7,8,9,a,b | 三角形条带D3D三角形条带:(3,0,1),(3,1,2),(7,4,5),(7,5,6),...... |
OpenGL四边形条带OpenGL四边形条带顶点:0,1,2,3,4,5,6,7,8,9 | 三角形条带D3D三角形条带:(2,0,1),(2,1,3),(4,2,3),(4,3,5),(6,4,5),(6,5,7),...... |
图8说明命令流处理器115的部分元件,可用来将上表的左栏图元转换成右栏输出图元,命令流处理器115可将接收到的输入图元传递至命令处理器160,命令处理器160再将图元传递至译码器162,于一非限定实施例中,译码器162可以是几何索引引擎命令译码器,能将图元分成个别的命令与数据,命令与图元的样式有关,而数据则对应图元的顶点信息。
译码器162将输入图元的命令信息传递给命令先进先出缓冲器166,于一非限定实施例中,命令先进先出缓冲器166的容量至少能保留一命令。
译码器162可传递输入图元的对应顶点相关数据给数据索引先进先出缓冲器168,数据索引先进先出缓冲器168可储存顶点数据,以根据前述预定输出图元进行撷取及重排动作,数据索引先进先出缓冲器168可以从直接存储器存取控制(directmemory access,DMA)单元170接收与输入图元有关的其他数据,直接存储器存取控制单元170是一个简单的代表方块,可以包括直接存储器存取读取控制器、存储器存取控制器及/或存储器交换单元。
顶点转换控制器180可从命令先进先出缓冲器166接收与预定输入图元相关的命令,然后针对对应的输出图元以预定的顺序存取数据(如上表),换句话说,当顶点转换控制器180从命令先进先出缓冲器166接收一命令,便会从数据索引先进先出缓冲器168存取数据,其顺序对应输出图元,如此,顶点转换控制器180可将对应某一预定输出图元的数据输出给图形处理单元管线110的其他元件,借此,图形处理单元管线110的每一个元件可使用较少的逻辑门,而可处理较多种输入图元,因此,图形处理单元管线110的制造成本较低同时又保有原来的处理效率。
以上所述仅为本发明较佳实施例,然其并非用以限定本发明的范围,任何熟悉本项技术的人员,在不脱离本发明的精神和范围内,可在此基础上做进一步的改进和变化,因此本发明的保护范围当以本申请的权利要求书所界定的范围为准。
附图中符号的简单说明如下:
计算机系统:10 计算机:12
处理单元:16 系统存储器:18
系统总线:21 只读存储器:24
随机存取存储器:26 基本输出入系统:27
操作系统:29 应用程序:31
其他程序模块:33 程序数据:35
硬盘机:41 磁盘机:51
磁片:52 光盘机:55
光盘片:56 使用者输入界面:60
鼠标装置:61 键盘:62
网络接口:70 局域网:71
数据机:72 广域网:73
远端计算机:80 存储器储存装置:81
图形接口:82 图形处理单元:84
远端应用程序:85 视频存储器:86
视频接口:90 显示器:91
输出外围接口:95 印表机:96
扬声器:97 图形处理单元绘图管线:110
命令流处理器:115 程序:116
三角扇形:120 三角形条带:130
四边形列表:150 命令处理器:160
译码器:162 命令先进先出缓冲器:166
数据索引先进先出缓冲器:168
直接存储器存取控制单元:170
顶点转换控制器:180。
Claims (10)
1.一种图形处理方法,其特征在于,用于将一绘图图元输入流转换成多个预定绘图图元输出流之一,该图形处理方法包括下列步骤:
辨识该绘图图元输入流内中是否具有多个预定序列图样之一;
判断该绘图图元输入流内的该辨识预定序列图样是否能转换成多个预定绘图图元输出流之一;
找出该绘图图元输入流内的该辨识预定序列图样的多个顶点;
重排该绘图图元输入流内的该辨识预定序列图样的该多个顶点,成为对应于该多个预定绘图图元输出流之一的一预定图样;以及
输出对应于该多个预定绘图图元输出流之一的该预定图样给一个或多个绘图处理元件。
2.根据权利要求1所述的图形处理方法,其特征在于,重复进行重排该绘图图元输入流内的该辨识预定序列图样的该多个顶点,成为对应于该多个预定绘图图元输出流之一的该预定图样。
3.根据权利要求1所述的图形处理方法,其特征在于,该多个预定绘图图元输出流至少包括如下之一:一点;一线条带;一三角形条带;一毗邻三角形条带;一线条带与毗邻线条带。
4.根据权利要求1所述的图形处理方法,其特征在于,该绘图图元输入流的多个预定序列图样至少包括一三角扇形、一四边形列表或一四边形条带。
5.一图形处理单元,其特征在于,用于将一绘图图元的输入流转换成多个预定绘图图元输出流之一,该图形处理单元包括:
一输入单元,用于接收对应于绘图图元的输入流;
一辨识逻辑,用于辨识对应该绘图图元的该输入流内的一预定序列图样,并判断该辨识序列图样是否能转换成该多个预定绘图图元输出流之一;
一识别逻辑,用于找出该辨识序列图样中的多个顶点,并重排该找出的顶点成为对应该多个预定绘图图元输出流之一的一预定图样;以及
一输出单元,耦接于多个图形处理元件,用于传递对应该多个预定绘图图元输出流之一的该预定图样。
6.根据权利要求5所述的图形处理单元,其特征在于,该多个预定绘图图元输出流至少包括如下之一:一点;一线条带;一三角形条带;一毗邻三角形条带;一线条带与毗邻线条带。
7.根据权利要求5所述的图形处理单元,其特征在于,该绘图图元输入流的多个预定序列图样至少包括一三角扇形、一四边形列表、或一四边形条带。
8.一处理器,其特征在于,其是用于转换图元,该处理器包括:
一译码器,用于将一接收图元分离成与图样样式有关的一命令以及与该接收图元的顶点信息有关的一数据;
一命令存储器,耦接于该译码器,用于接收对应该接收图元的该命令;
一数据存储器,耦接至该译码器,用于接收与该接收图元的顶点信息有关的该数据;以及
一顶点转换控制器,用于从该命令存储器接收与该接收图元对应的该命令,并以一预定输出顺序从该数据存储器存取与该接收图元的顶点信息有关的该数据,该预定输出顺序是由与该接收图元相关的顺序转换所得,该顶点转换控制器具有一输出单元,该输出单元以该预定输出顺序传送该数据。
9.根据权利要求8所述的处理器,其特征在于,用于以一预定顺序传送该数据的该输出单元耦接于一绘图管线的一处理方块。
10.根据权利要求8所述的处理器,其特征在于,更包括如下之一:
一直接存储器存取控制单元,耦接于该数据存储器,提供与该接收图元相关的其他数据;
一命令处理器,耦接于该译码器,接收该接收图元并传递该接收图元给该译码器。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/672,692 | 2007-02-08 | ||
US11/672,692 US7696993B2 (en) | 2007-02-08 | 2007-02-08 | Geometry primitive type conversion in a GPU pipeline |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101221664A true CN101221664A (zh) | 2008-07-16 |
CN101221664B CN101221664B (zh) | 2011-07-06 |
Family
ID=39631479
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200810007175XA Active CN101221664B (zh) | 2007-02-08 | 2008-02-02 | 图形处理单元及图形处理方法、处理器 |
Country Status (3)
Country | Link |
---|---|
US (1) | US7696993B2 (zh) |
CN (1) | CN101221664B (zh) |
TW (1) | TWI366155B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112102435A (zh) * | 2020-09-24 | 2020-12-18 | 北京文香信息技术有限公司 | 一种几何图形绘制的方法、装置、设备及存储介质 |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8024547B2 (en) * | 2007-05-01 | 2011-09-20 | Vivante Corporation | Virtual memory translation with pre-fetch prediction |
US9336028B2 (en) | 2009-06-25 | 2016-05-10 | Apple Inc. | Virtual graphics device driver |
US8587581B2 (en) * | 2009-10-15 | 2013-11-19 | Nvidia Corporation | Order-preserving distributed rasterizer |
US10013731B2 (en) * | 2011-06-30 | 2018-07-03 | Intel Corporation | Maximizing parallel processing in graphics processors |
EP2665032A1 (en) * | 2012-05-14 | 2013-11-20 | Thomson Licensing | Methods and devices for 3d object protection using surface subdivision |
US9652284B2 (en) | 2013-10-01 | 2017-05-16 | Qualcomm Incorporated | GPU divergence barrier |
US9483862B2 (en) | 2013-12-20 | 2016-11-01 | Qualcomm Incorporated | GPU-accelerated path rendering |
CN108447015A (zh) * | 2018-03-27 | 2018-08-24 | 长沙景嘉微电子股份有限公司 | Gpu中一种实现用户自定义裁剪功能的装置和方法 |
CN111325847B (zh) * | 2020-02-14 | 2024-03-15 | 格兰菲智能科技有限公司 | 图形处理装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5561749A (en) * | 1994-12-02 | 1996-10-01 | General Electric Company | Modeling of surfaces employing polygon strips |
US6496185B1 (en) * | 1999-06-29 | 2002-12-17 | Microsoft Corporation | Method and apparatus for processing a mesh of triangles |
EP1255227A1 (en) * | 2001-04-27 | 2002-11-06 | STMicroelectronics Limited | Vertices index processor |
US7324105B1 (en) * | 2003-04-10 | 2008-01-29 | Nvidia Corporation | Neighbor and edge indexing |
CN100595794C (zh) * | 2004-08-04 | 2010-03-24 | 松下电器产业株式会社 | 绘制装置 |
-
2007
- 2007-02-08 US US11/672,692 patent/US7696993B2/en active Active
-
2008
- 2008-01-30 TW TW097103377A patent/TWI366155B/zh active
- 2008-02-02 CN CN200810007175XA patent/CN101221664B/zh active Active
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112102435A (zh) * | 2020-09-24 | 2020-12-18 | 北京文香信息技术有限公司 | 一种几何图形绘制的方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN101221664B (zh) | 2011-07-06 |
TW200834464A (en) | 2008-08-16 |
US7696993B2 (en) | 2010-04-13 |
TWI366155B (en) | 2012-06-11 |
US20080192057A1 (en) | 2008-08-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101221664B (zh) | 图形处理单元及图形处理方法、处理器 | |
CN1991905B (zh) | 图形处理单元的同步方法以及围篱/等待同步组件 | |
US11907691B2 (en) | Method and system of command buffer between a CPU and GPU | |
CN101425175B (zh) | 着色器处理系统与方法 | |
CN110023962B (zh) | 人类体验到机器人和其他自主机器的高效传递 | |
CN1270278C (zh) | 用于图形渲染的z-缓冲技术 | |
US10417803B2 (en) | Multiple-pass rendering of a digital three-dimensional model of a structure | |
CN101124613B (zh) | 片段着色管线中增加按比例缩放性的图形处理子系统及方法 | |
CN103718244B (zh) | 用于媒体处理加速器的采集方法和装置 | |
US9058677B1 (en) | System and method for reducing the complexity of performing broad-phase collision detection on GPUS | |
JP5460486B2 (ja) | データをソートする装置及び方法 | |
CN102648450A (zh) | 用于并行命令列表生成的硬件 | |
US20120144130A1 (en) | Optimizing Output Vector Data Generation Using A Formatted Matrix Data Structure | |
Cavin et al. | Cots cluster-based sort-last rendering: Performance evaluation and pipelined implementation | |
US9679530B2 (en) | Compressing graphics data rendered on a primary computer for transmission to a remote computer | |
CN104020983A (zh) | 一种基于OpenCL的KNN-GPU加速方法 | |
DE102013201195A1 (de) | Zuvor-geplante Wiederholungen von divergenten Operationen | |
CN102682465A (zh) | 3d格式转换系统和方法 | |
US20090213122A1 (en) | Graphical Display of CPU Utilization | |
CN107067364B (zh) | 用于管理多个图形卡的方法和系统 | |
CN116529775A (zh) | 用于光线追踪的合并函数调用的方法和装置 | |
CN108352051A (zh) | 促进对计算装置处的捆绑状态的高效图形命令处理 | |
WO2020114422A1 (zh) | 处理数据的方法和数据处理装置 | |
CN101918982B (zh) | 图形流水线的有效状态管理 | |
CN111240745A (zh) | 交叉执行的增强型标量向量双管线架构 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |