CN105096235B - 图形处理方法及图形处理装置 - Google Patents
图形处理方法及图形处理装置 Download PDFInfo
- Publication number
- CN105096235B CN105096235B CN201510213873.5A CN201510213873A CN105096235B CN 105096235 B CN105096235 B CN 105096235B CN 201510213873 A CN201510213873 A CN 201510213873A CN 105096235 B CN105096235 B CN 105096235B
- Authority
- CN
- China
- Prior art keywords
- pel
- graphic processing
- stage
- vertex
- variation
- 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.)
- Active
Links
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/40—Filling a planar surface by adding surface attributes, e.g. colour or texture
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Image Generation (AREA)
Abstract
本发明提供了一种图形处理方法及图形处理装置。图形处理方法是应用于电子装置内的图形处理装置上,该图形处理方法包含步骤有:在分级阶段计算图元的多个顶点位置;根据特定信息来决定是否在该分级阶段或在渲染阶段计算该图元的多个顶点变化,以提供决定结果;根据该决定结果以在该分级阶段或该渲染阶段计算该多个顶点变化;以及在该渲染阶段,根据该多个顶点位置以及该多个顶点变化来渲染该图元。本发明提供的图形处理方法及图形处理装置可以节省内存使用及带宽,增加整体效率。
Description
【技术领域】
本发明是有关于图形处理技术领域,特别是关于图形处理方法及图形处理装置。
【背景技术】
现有便携电子装置,例如一现有移动电话,具有处理器(如中央处理器(centralprocessing unit,CPU))以控制该现有便携电子装置的操作,且另具有一现有图形处理器(graphic processing unit,GPU)以执行图形相关计算。根据相关技术,现有图形处理器被设计成支持立即渲染(immediate rendering)技术或块状渲染(tile-based rendering,TBR)技术,然而某些问题可能因此产生。举例来说,由于帧不会全部储存在现有图形处理器的芯片中,现有立即渲染技术基本上会需要很多不必要的内存(memory)存取操作,特别的是,在某些情况中,现有立即渲染技术可能导致不规则存取顺序,其可能降低内存存取效率;而在另一示例中,与现有立即渲染技术相比,现有块状渲染技术基本上需要额外的硬件成本。特别的是,现有块状渲染技术需要额外的内存分配。
总体来说,现有立即渲染技术及以及现有块状渲染技术都有其限制,且不善于图形处理,且在某些情况需要大量带宽。因此,需要一个新颖的架构以节省内存的使用及带宽。
【发明内容】
为了解决上述问题,本发明提出了图形处理方法及图形处理装置。
根据本发明的第一方面,提供一种图形处理方法,该图形处理方法是应用于电子装置内的图形处理装置上,该图形处理方法包含步骤有:在分级阶段计算图元的多个顶点位置;根据特定信息来决定是否在该分级阶段或在渲染阶段计算该图元的多个顶点变化,以提供决定结果;根据该决定结果以在该分级阶段或该渲染阶段计算该多个顶点变化;以及在该渲染阶段,根据该多个顶点位置以及该多个顶点变化来渲染该图元。
根据本发明的第一方面,提供一种图形处理装置,其特征在于,该图形处理装置是置于电子装置中,该图形处理装置包含该电子装置的至少一部分,该装置包含有:检查电路,用以根据特定信息来决定是否在分级阶段或渲染阶段计算图元的多个顶点变化,以提供决定结果;以及至少一着色器,耦接至该检查电路,用以在该分级阶段计算该图元的多个顶点位置、根据该决定结果在该分级阶段或该渲染阶段计算该多个顶点变化、以及在该渲染阶段根据该多个顶点位置以及该多个顶点变化来渲染该图元。
本发明提供的图形处理方法及图形处理装置可以节省内存使用及带宽,增加整体效率。
【附图说明】
图1是根据本发明的第一实施例的图形处理装置的示意图。
图2是根据本发明的实施例的图形处理方法的流程图。
图3是根据本发明实施例的与图2所示的图形处理方法相关的自适应顶点描影(adaptive vertex shading)控制技术方案的示意图。
图4是根据本发明实施例的将要渲染(render)的一组图元(primitive)中的至少一部分的示意图。
图5是根据本发明实施例的图3所示架构的多个设定中的第一设定示意图。
图6是根据本发明实施例的欲渲染的另一组图元中的至少一部分的示意图。
图7根据本发明实施例的图3所示架构的多个设定中的第二设定示意图。
【具体实施方式】
下面的描述是实施本发明的较佳预期模式。这种描述是为了说明本发明的一般原理的目的,而不应被理解成具有限制性的意义。但是应当理解,实施例可以利用软件、硬件、固件、或其任何组合来实现。
在说明书及后续的权利要求当中使用了某些词汇来指称特定的元件。所属领域中具有通常知识者应可理解,硬件制造商可能会用不同的名词来称呼同一个元件。本说明书及后续的权利要求并不以名称的差异来作为区分元件的方式,而是以元件在功能上的差异来作为区分的准则。在通篇说明书及后续的权利要求当中所提及的“包含”是一开放式的用语,故应解释成“包含但不限定于”。此外,“耦接”一词在此是包含任何直接及间接的电气连接手段,因此,若文中描述第一装置耦接于第二装置,则代表该第一装置可直接电气连接于该第二装置,或者通过其他装置或连接手段间接地电气连接至该第二装置。
图1是根据本发明的一第一实施例的图形处理装置100的示意图,其中,图形处理装置100可置于一电子装置中,且图形处理装置100可包含该电子装置的至少一部分(例如:一部分或全部),举例来说,图形处理装置100可包含上述电子装置的一部分,特别地,可为至少一硬件电路,如该电子装置与相关电路内的至少一集成电路(integrated circuit,IC);在另一例子中,图形处理装置100可为上述整个电子装置;在另一示例中,图形处理装置100可包含具有上述电子装置的系统,例如:具有该电子装置的声音/影像播放系统。例如,该电子装置可为:移动电话(例如一多功能移动电话)、个人数字助理(personaldigital assistant,PDA)、平板计算机、以及个人计算机(例如:笔记本电脑或桌上计算机),但此非本发明的限制。
如图1所示,图形处理装置100可包含:检查电路(checking circuit)110,且可另包含耦接至检查电路110的至少一着色器,如一个或多个着色器,在此实施例中其可统一视为着色器120。举例来说,前述至少一着色器可利用在图形处理中扮演不同角色(或执行不同描影(shading)操作)的多个顶点着色器(Vertex Shader,VS)来实现。在另一例子中,当需要的时候,前述至少一着色器可利用扮演不同角色(或执行不同描影操作)的至少一统一着色器(例如一个或多个顶点着色器)来实现。在实际操作中,检查电路110以及前述至少一着色器(例如,着色器120)可被置于图形处理电路,例如图形处理器中,不论前述至少一着色器是以多个着色器或前述至少一统一着色器来实现。
根据此实施例,检查电路110可用以执行至少一决定操作(例如:一个或多个决定操作)以产生至少一决定结果(例如:一个或多个决定结果),此外,前述至少一着色器(例如:一个或多个着色器),例如着色器120,可根据前述至少一决定结果执行位置处理、计算顶点变化,且根据前述至少一图元的顶点位置以及顶点变化渲染至少一图元(例如一个或多个图元)。
需注意的是,本发明的某些实施例着重在顶点着色器操作之间的互动,例如,不同实体顶点着色器操作之间的互动,或由同一实体顶点着色器(例如统一顶点着色器)所扮演的不同顶点着色器角色(或顶点着色器的角色)的操作之间的互动。因此,以下描述的某些顶点着色器,如顶点着色器VS0、VS1以及VS2应根据功能观点来解释,且顶点着色器VS0、VS1以及VS2是针对关于顶点的计算。举例来说,顶点着色器VS0可视为由一物理顶点着色器(physical Vertex Shader)所扮演的一顶点着色器角色以根据属性(attribute)计算一顶点的位置,且顶点着色器VS1以及VS2可视为由此物理顶点着色器所扮演的两个顶点着色器角色以分别根据属性计算该顶点的变化。换句话说,此处可能仅有一物理顶点着色器(或仅有一组物理硬件),且此唯一物理顶点着色器可同时或分时并行地执行顶点着色器角色VS0、VS1及VS2的操作。
在图形处理器技术的演进中,相关技术的现有方法利用不同物理着色器,其每一顶点着色器具有顶点着色器的固定功能以执行不同顶点着色器操作,而相关技术的另一现有方法利用一着色器(如根据不同命令集可执行不同操作的一硬件电路)以执行不同顶点着色器操作,因此,此一着色器可被视为统一顶点着色器。然而,此术语“统一着色器”经常在相关技术中使用,以取代“统一顶点着色器”,其中,该统一着色器为可同时执行图形处理器计算,例如顶点描影、片段(fragment)描影、像素描影等的计算核心,因此,本发明某些实施例中的术语“着色器”根据不同观点分别代表一个或多个统一着色器。
除此之外,关于拼贴(tiling)过程或拼贴之前的操作的不同术语可应用于相关技术中,需注意的是,在本发明后续实施例中的“分级阶段(binning phase)”可对应拼贴之前执行的相关处理,且针对整体帧的处理数据(如整体帧的所有图元的顶点)。与此相较之下,在本发明这些实施例中的“渲染阶段(rendering phase)”可对应在拼贴的单元中执行的相关处理。举例来说,一帧可包含N个区块(tile),且图形处理装置100可于一次迭代(iteration)中完成该分级阶段的相关计算(例如,计算整体帧上的所有顶点的位置与变化),而图形处理装置100需要N次迭代以完成渲染阶段的相关计算(例如,渲染对应一次迭代的一个区块内所有像素)。因此,物理顶点着色器(或一组物理硬件),例如这些实例中的一统一着色器,可执行对应一时间间隔内分级阶段的计算,并执行对应的另一时间间隔的渲染阶段的计算,或者若有足够的计算资源,甚至同时执行对应分级阶段以及渲染阶段的计算。此仅为示例说明,并非本发明的限制。
图2是根据本发明的实施例的图形处理方法200的流程图。图2所示图形处理方法200可应用于图1所示的图形处理装置100,且可被应用于检查电路110,该图形处理方法200如下所述。开始
在步骤205中,着色器120在分级阶段计算图元的顶点位置,举例来说,若该图元为一三角形,在此图元中有三个顶点。如此一来,此图元将有三个顶点位置。
在步骤210中,检查电路110根据特定信息决定是否在该分级阶段或在渲染阶段计算该图元的顶点变化以提供决定结果。因为检查电路110可执行前述至少一决定操作以产生前述至少一决定结果,所以在步骤210中所提及的该决定结果可被视为前述至少一决定结果的示例。需注意的是,某些图元(例如三角形)适合于在分级阶段中处理,而某些图元(例如三角形)适合于在渲染阶段中处理,举例来说,当一三角形接触多个区块(tile)时,应在分级阶段执行此三角形的顶点变化的计算以减少计算负荷(overhead)(或计算负载(loading)),因为若在分级阶段中执行这些变化计算,这些相同变化的计算将不会重复执行。若是在渲染阶段执行这些变化计算,这些变化计算将会对每区块重复,因此,在渲染阶段执行这些变化计算将不是最好选择。在另一示例中,当一三角形接触一区块时,在渲染阶段计算此三角形的顶点变化可能是较佳的选择,因为计算负荷粗略等同于在分级阶段中计算此三角形的顶点变化,因此内存存取带宽可能较低。
在步骤220中,着色器120根据该决定结果在该分级阶段或是该渲染阶段来计算顶点变化。举例来说,在步骤205所提及的图元为接触前述多区块的三角形的例子中,应该要在分级阶段执行此三角形的顶点变化的计算以减少计算负荷(或计算负载),因此决定结果指示着色器120应在分级阶段执行顶点变化的计算。在另一例子中,在步骤205所提及的图元只位于前述的一区块中,应该要在渲染阶段执行此三角形的顶点变化的计算,因此,决定结果指示着色器120应在渲染阶段执行顶点变化的计算。因此,在某些实施例中,着色器120可能(或可达到)仅包含一物理顶点着色器(或仅一组物理硬件),且此一物理顶点着色器可在该分级阶段处理某些顶点并且可在该渲染阶段处理另外一些顶点。此仅为示例说明,并非本发明的一限制。根据某些实施例,在着色器120是由多个顶点着色器来实现的情况中,该多个顶点着色器中适合在该分级阶段处理的一个顶点着色器可被选择以在该分级阶段中计算一图元的顶点变化,该多个顶点着色器中适合在该分级阶段处理的另一个顶点着色器可被选择以在该分级阶段中计算另一图元的顶点变化。在另一示例,在着色器120是由统一顶点着色器来实现的情况中,着色器120的某些计算资源可被分配用以在该分级阶段中计算某些顶点变化,且在实质上的相同时间点,某些计算资源被分配用以在渲染阶段计算另外某些顶点变化。
在步骤230中,着色器120根据在该渲染阶段的顶点位置及顶点变化渲染该图元。在步骤230执行的一般任务包括片段着色(fragment shading)、像素着色以及调合(blending)等。举例来说,该顶点变化中的至少一变化(例如一个或多个变化)可为该图元的一顶点的变化。此仅为举例说明,并非本发明的限制。根据某些实施例,该顶点变化中的至少一变化(例如一个或多个变化)可为该图元中一点的变化。在此情况中,着色器120可为了针对另一图元(如从该图元所分割出的较小图元)的进一步运算而准备该图元中该点的该变化。举例来说,着色器120将步骤205所提及的图元分成一些较小图元,而前述在该图元中的点可为这些较小图元中的至少一图元(一个或多个)的一顶点。关于将步骤205提及的图元分成这些较小图元的实现细节,请参考在相关技术中镶嵌技术的技术数据。
在此实施例中,该决定结果可为下列其中之一:
(1).卷标信息(tag information);以及
(2).一控制信号;
其中该卷标信息可由与该图元相关的指针(pointer)存取,且该控制信号可被应用于该图形处理装置的一电路。但此仅为示例说明,并非本发明的限制。
根据此实施例,检查电路110可检查该特定信息是否符合一选择标准而据此提供该决定结果。举例来说,在该检查结果即为该卷标信息的情况中,该卷标信息指示该图元的顶点变化是否应在该分级阶段或在该渲染阶段计算。换句话说,检查电路110可通过该卷标信息来通知着色器120以检查该顶点变化是在该分级阶段或该渲染阶段来进行计算。因此,藉由利用该卷标信息,检查电路110可控制顶点变化是在该分级阶段或是在该渲染阶段被计算。
需注意的是,该卷标信息可分别指示不同情况中的多个数值。举例来说,该卷标信息可指示该多个数值中的其中之一(例如:第一数值),因此针对指示此数值(例如该第一数值)的卷标信息,该前述至少一着色器(例如着色器120)在该分级阶段中计算顶点变化。另一示例中,该卷标信息可指示该多个数值中的其中另一个(例如:第二数值),因此针对指示此数值(例如该第二数值)的卷标信息,检查电路110控制前述至少一着色器(例如着色器120)以在渲染阶段计算顶点变化。
根据某些实施例,该特定信息可包含该图元中每一顶点的变化和属性以及该图元的大小W,如该图元所接触的分格(bin)(或区块)数目,且选择标准可能与带宽、该图元的大小W、属性及/或变化有关。特别的是,在该变化未改变的情况下,若W>1,当该属性增加时该图元的顶点变化会在该分级阶段计算。此外,在该属性未改变的情况下,当该变化增加时该图元的顶点变化会在该渲染阶段计算。举例来说,该选择标准可根据一标准决定操作来决定;其中,若该标准决定操作的该操作结果小于零,该顶点变化被决定于该渲染阶段来计算;若该标准决定操作的该操作结果大于零,该顶点变化被决定于该分级阶段来计算。因此,该选择标准可被视为一预设选择标准。但此仅为一示例说明,并非本发明的一限制。根据某些实施例,一图元PRIMITIVE1的选择标准是根据图元PRIMITIVE1的大小W1的比较结果(例如,若W1>3,决定图元PRIMITIVE1的顶点变化在该分级阶段计算,或者若W1<=3,决定图元PRIMITIVE1的顶点变化在该渲染阶段计算),而另一图元PRIMITIVE2的选择标准是根据图元PRIMITIVE2的大小W2的比较结果(例如,若W2>4,决定图元PRIMITIVE2的顶点变化在该分级阶段计算,或者若W2<=4,决定图元PRIMITIVE2的顶点变化在该渲染阶段计算),这些选择标准可被视为动态产生地选择标准。根据某些实施例,图元PRIMITIVE1的选择标准是根据图元PRIMITIVE1的大小W1的比较结果(例如,若W1>3,决定图元PRIMITIVE1的顶点变化在该分级阶段计算,或者若W1<=3,决定图元PRIMITIVE1的顶点变化在该渲染阶段计算),而另一图元PRIMITIVE2的选择标准是根据带宽决定,这些选择标准可被视为动态产生地选择标准。
在实际操作中,关于该特定信息的实现细节随本发明不同的实施例有所改变。根据某些实施例,该特定信息可为该图元的一图元大小的信息,而该选择标准对应一图元大小门限值。此外,检查电路110检查该图元大小是否达到该图元大小门限值以据此提供决定结果。根据某些实施例,该特定信息可为该图元所接触的多个分格的分格数的信息,且该选择标准对应一分格数门限值。此外,检查电路110检查该分格数是否达到该分格数门限值以据此提供决定结果。根据某些实施例,该特定信息可为着色器编码架构的信息,且该选择标准对应用以分类该着色器编码架构的分类信息。此外,检查电路110根据该着色器编码架构信息以及根据该分类信息来分类该着色器编码架构以据此提供决定结果。根据某些实施例,该特定信息可为编译程序信息。
根据某些实施例,是在该分级阶段还是在该渲染阶段计算该图元的顶点变化是由逐个图元(primitive by primitive)决定的。此仅为示例说明,并非本发明的一限制。根据某些实施例,该变化的计算是逐个帧(frame by frame)来执行,且在整体帧(如一系列帧中的其中一个帧)中的所有图元的变化计算只能在该分级阶段或该渲染阶段中的一个阶段来执行。举例来说,可根据帧的图元统计信息(primitive statistics information)来决定应该在该分级阶段或是在该渲染阶段来计算该系列帧的该帧中的所有图元的变化,例如,该图元统计信息可以是整体帧的图元数量或在此帧中图元的大小。在另一示例中,可根据前述此帧的图元统计信息以及前一帧的图元统计信息之间的相似度,来决定在一系列帧内其中一个帧中的所有图元的变化计算应该在该分级阶段或是在该渲染阶段来执行。
根据某些实施例,该特定信息是逐个帧来被更新。此外,图形处理装置100可分析一特定帧以更新该特定帧的特定信息,其中,该特定帧可包含该图元。
根据某些实施例,步骤205的操作可根据与该图元有关的一组属性来执行。因此,前述至少一着色器(例如着色器120)可根据与该图元有关的该组属性在分级阶段计算该图元的顶点位置,举例来说,前述至少一着色器根据多个屏幕空间位置以及根据在渲染阶段的顶点变化来渲染该图元。
图3是根据本发明一实施例的与图2所示的图形处理方法200相关的自适应顶点描影控制技术方案的示意图,举例来说,图3所示的架构300可在图形处理管线化设计(pipeline)中执行自适应顶点描影行程(adaptive vertex shading scheduling),如一块状渲染管线化设计等,其中,该图形处理管线化设计可为一图形处理器管线化设计。为了清楚了解,图3的左半边被定义为分级阶段,且图3的右半边被定义为渲染阶段。此仅为示例说明,非本发明的一限制。
如图3所示,架构300可包含一组着色器{VS0、VS1、VS2、FS、Post}以及区块缓冲器305,并且包含检查电路310、选择通过电路312、多工器电路314、一分格储存电路332以及一分格读取(bin load)电路334(在图3中分别标示为“CHK”、“VS2?”、“MUX”、“分格储存”、“分格读取”以省篇幅),并且另包含内存缓冲器390,其中,检查电路310可被视为检查电路110的一例子,且该组着色器{VS0、VS1、VS2、FS、Post}可被视为前述至少一着色器(例如着色器120)的一例子。举例来说,该组着色器{VS0、VS1、VS2、FS、Post}、检查电路310、选择通过电路312、多工器电路314、分格储存电路332以及分格读取电路334可置于图1所示的实施例所提及的图形处理器中,其中,区块缓冲器305可选择性地在该图形处理器之内或之外实现。
根据此实施例,该组着色器{VS0、VS1、VS2、FS、Post}可在图形处理管线化设计中分别扮演多个角色以完成步骤230所描述的渲染操作的渲染结果。举例来说,着色器VS0可用以读取步骤205所提及的图元的某些属性(其可被视为此实施例中VS0的属性),并执行位置处理以产生该图元的顶点的位置。在另一例子中,着色器VS1可被用以读取某些属性(其可被视为此实施例中VS1的属性),例如着色器VS1的一些输入,并计算一些变化且输出该多个变化(其可被视为此实施例中VS1的变化),其中,该多个变化可做为步骤220所提及的在分级阶段中所计算的顶点变化的一例子。在另一例子中,着色器VS2可被用以读取某些属性(其可被视为此实施例中VS2的属性)如着色器VS2的一些输入,并计算一些变化且输出该多个变化(其可被视为此实施例中VS2的变化),其中,该多个变化可做为步骤220所提及的在分级阶段中所计算的顶点变化的一例子。在某些例子中,着色器FS可被用来根据其输入执行片段着色(例如,由多工器电路314的两个输入中的其中一输入所接收的变化,如VS1变化或VS2变化)以产生一些片段着色结果,并输出这些片段着色结果,而着色器Post可被用以执行后处理(post processing)以完成步骤230所描述的渲染操作的渲染结果,其中,若是需要,着色器Post可存取区块缓冲器305。
除此之外,检查电路310可藉由选择通过电路312、多工器电路314、分格储存电路332以及分格读取电路334的协助控制该图形处理管线化设计的数据流,其中,选择通过电路312和多工器电路314可在检查电路310的控制下操作。特别的是,检查电路310可根据该特定信息(如定界框(bounding box)或其他在描述该决定结果时所提及的信息)提供决定结果(例如该卷标信息),以利用架构300的多个设定中的其中之一(特别的是,该图形处理管线化设计的多个设定)来控制该图形处理管线化设计的数据流。其结果为,检查电路310检查其是否需要在该图形处理管线化设计的第一组处理阶段(如该分级阶段)或第二组处理阶段(如该渲染阶段)中计算的目前顶点(例如该图元的其中之一顶点)。举例来说,当其决定架构300应该在第一组处理阶段(如该分级阶段)计算目前顶点,检查电路310可打开(或启用)着色器VS1并关闭(或停用)着色器VS2,并分别据此启用或停用相关数据路径。在另一例子中,当决定架构300应该在第二组处理阶段(如该渲染阶段)计算目前顶点,检查电路310可关闭(或停用)着色器VS1并打开(或启用)着色器VS2,并分别据此停用或启用相关数据路径。
除此之外,若有需要时,分格储存电路332可用以储存分格表以及该图元的每一顶点的位置及/或在整体帧中的所有图元中每一图元的位置,且在需要时,分格读取电路334可用以读取此分格表以及这些位置。根据架构300,在需要时,图形处理装置100可在着色器VS2之后将VS1或VS2变化重新排序(例如在该图形处理管线化设计的最后几个阶段,如着色器FS以及Post中的一个或多个)。需注意的是,在检查电路310打开(启用)着色器VS1的情况下,检查电路310可避开(bypass)由着色器VS0所产生的位置(如此示例中标示”Y”的位置)至下一阶段如着色器VS1,且在需要时,着色器VS1亦可避开(bypass)这些位置。
根据某些实施例,一般而言,着色器VS1以及VS2中的任何一个可由属性处理电路所取代。关于该属性处理电路的功能的例子可包含但并非限制有:根据顶点计算属性并处理属性。举例来说,该属性处理电路可为用以处理属性的任何固定功能电路或着色器。
根据某些实施例,着色器Post可由另一种类电路中的任何一个所取代,如一固定功能电路。
图4是根据本发明一实施例的欲渲染的一组图元中的至少一部分(例如一部分或全部)的示意图。此实施例的该组图元中具有许多图元。举例来说,此组图元中的图元数量可大于一百。在另一例子中,此组图元中的图元数量可大于一千。在某些例子中,此组图元中的图元数量可大于一万甚或是更多。需注意的是,此实施例的该组图元可具有较小的大小,且这些图元中大部分仅分别接触区块Tile1、Tile2、Tile3、Tile4中的其中之一。
图5是根据本发明一实施例的图3所示架构300的多个设定中的第一设定300-1示意图。如图5所示,其关闭顶点着色器VS1并打开顶点着色器VS2,因此第一设定300-1可视为VS2启用设定。举例来说,第一设定300-1可被用以渲染图4所示的实施例的该组图元。
根据此实施例,由于没有顶点缓冲读取/储存负荷,架构300可以利用立即渲染,而对于存取内存缓冲器390的操作,仅需要存取图3所示的实施例所提及的分格表以及位置(例如,利用分格储存电路332来储存此分格表以及每一顶点的顶点位置,并利用分格读取电路334以读取此分格表及这些位置),其中,存取此分格表以及这些位置的数据量少于存取变化的数据量。除此之外,由于没有色彩/深度(Z)存取,架构300可利用块状渲染。
需注意的是,第一设定300-1适用渲染很多较小的图元,例如图4所示实施例的该组图元,且在此情况中可达到最佳效率。根据第一设定300-1,架构300可用较少副作用(side effect)逐个图元(即逐个三角形)的渲染三维场景,并因此减少或避免相关技术中关于现有立即上色技术的问题。
图6是根据本发明一实施例的欲渲染的另一组图元中的至少一部分的示意图。在图6所示实施例的该组图元中的图元数量可能比图4所示实施例的该组图元中的图元数量少很多。须注意的是在此实施例的该组图元中的一个或多个具有较大的大小,且可接触多个区块Tile1、Tile2、Tile3、Tile4中大部分的区块,例如多个区块Tile1、Tile2、Tile3、Tile4全部的区块。
图7根据本发明一实施例的图3所示架构的多个设定中的一第二设定300-2示意图。如图7所示,其关闭顶点着色器VS2并打开顶点着色器VS1,并因此第二设定300-2可视为VS1启用设定。举例来说,第二设定300-2可被用以渲染图6所示的实施例的该组图元。
根据此实施例,在检查电路110的控制下,架构300的组合数据流与现有块状渲染技术相似且没有负荷。需注意的是,第二设定300-2适用于渲染大图元的一小集合,例如图6所示实施例的该组图元,且可在此情况中达到最佳效率。根据第二设定300-2,架构300可逐个分格(即逐个区块)地渲染三维场景。
根据某些实施例,检查电路110可确定该特定信息是否符合多个选择标准中的至少一选择标准以据此提供决定结果。在后续提供多个表格(如表格1、表格2、表格3、表格4),其中,该多个表格中至少一个表格(如一个或多个)的标准可做为该多个选择标准的一示例,关于该多个表格中每一个表格的标准的细节,请参考表格内”描述”一栏中的相关描述。
表格1
表格二
表格三
表格四
根据某些实施例,本发明可衍生至镶嵌(tessellation)。其中,镶嵌过程(tessellation process)可分为三个阶段,其可形成渲染管线化设计中顶点处理的可选择部分,而三个阶段中的两个为可编程,在这两个阶段之间是一个固定功能阶段。
举例来说,在处理顺序中该三个阶段可包含TCS、PG(其为可选择的)以及TES阶段。根据本发明的一功能性观点,镶嵌处理可于着色器VS0、VS1和VS2的处理之后且在着色器FS的处理之前执行。特别的是,处理顺序"VS0->CHK->VS1/VS2->FS"(其代表此处理顺序由着色器VS0的处理开始,后经过检查电路310的操作,和着色器VS1/VS2的处理,然后着色器FS的处理)的原型可由图7所示的实施例获得,且此原型可因镶嵌处理分别调整至一第一镶嵌架构、一第二镶嵌架构以及一第三镶嵌架构。
关于该第一镶嵌架构的实现,图7所示的着色器VS0可由一用以执行顶点描影的所有计算的阶段VSVS0,VS1,VS2来取代,例如着色器VS0、VS1以及VS2的所有计算。除此之外,图7所示的着色器VS1和VS2皆可由TCS、PG以及TES阶段的一备份所取代。举例来说,图7所示的着色器VS1可由阶段{TCS1、PG1、TES1}(如阶段{TCS、PG、TES}的一备份)所取代,且图7所示的着色器VS2可由阶段{TCS2、PG2、TES2}(如阶段{TCS、PG、TES}的另一备份)所取代。结论而言,镶嵌计算可在分级阶段或渲染阶段执行,而顶点描影可在分级阶段执行。为求省略,关于第一镶嵌架构的类似描述将不在此重复。
关于该第二镶嵌架构的实现,图7所示的着色器VS0可由一用以执行顶点描影的所有计算且另用以运行时间TCS的处理的阶段VSVS0,VS1,VS2,TCS来取代,例如着色器VS0、VS1以及VS2的所有计算。除此之外,图7所示的着色器VS1和VS2皆可由PG以及TES阶段的一备份所取代。举例来说,图7所示的着色器VS1可由阶段{PG1、TES1}(如阶段{PG、TES}的一备份)所取代,而图7所示的着色器VS2可由阶段{PG2、TES2}(如阶段{PG、TES}的另一备份)所取代。为求省略,关于第二镶嵌架构的类似描述将不在此重复。
关于该第三镶嵌架构的实现,图7所示的着色器VS0可由一用以执行顶点描影的所有计算且另用以运行时间TCS以及PG的处理的阶段VSVS0,VS1,VS2,TCS,PG来取代,例如着色器VS0、VS1以及VS2的所有计算。除此之外,图7所示的着色器VS1和VS2皆可由TES阶段的一备份所取代。举例来说,图7所示的着色器VS1可由阶段{TES1}(如阶段{TES}的一备份)所取代,而图7所示的着色器VS2可由阶段{TES2}(如阶段{TES}的另一备份)所取代。为求省略,关于第三镶嵌架构的类似描述将不在此重复。
本发明虽以较佳实施例揭露如上,然其并非用以限定本发明的范围,任何本领域技术人员,在不脱离本发明的精神和范围内,当可做些许的更动与润饰,因此本发明的保护范围当视权利要求所界定者为准。
Claims (18)
1.一种图形处理方法,其特征在于,该图形处理方法是应用于电子装置内的图形处理装置上,该图形处理方法包含步骤有:
在分级阶段计算图元的多个顶点位置;
根据特定信息来决定是否在该分级阶段或在渲染阶段计算该图元的多个顶点变化,以提供决定结果;
根据该决定结果以在该分级阶段或该渲染阶段计算该多个顶点变化;以及
在该渲染阶段,根据该多个顶点位置以及该多个顶点变化来渲染该图元;
其中,该分级阶段在该渲染阶段之前,该多个顶点变化中的至少一变化为该图元的一顶点的变化或在该图元中一点的变化。
2.如权利要求1所述的图形处理方法,其特征在于,该决定结果为下列其中之一:
卷标信息,其中,该卷标信息可由与该图元相关的指针来存取;以及
控制信号,其中,该控制信号被应用于该图形处理装置的电路。
3.如权利要求1所述的图形处理方法,其特征在于,该决定是否在该分级阶段或在渲染阶段计算该图元的多个顶点变化的步骤包含有:
检查该特定信息是否符合选择标准以据此提供该决定结果。
4.如权利要求3所述的图形处理方法,其特征在于,该特定信息为该图元的图元大小的信息,且该选择标准对应图元大小门限值;且该决定是否在该分级阶段或渲染阶段中计算该图元的多个顶点变化的步骤包含有:
检查该图元大小是否达到该图元大小门限值,以据此提供该决定结果。
5.如权利要求3所述的图形处理方法,其特征在于,该特定信息为该图元所接触的多个分格的分格数的信息,且该选择标准对应分格数门限值;且该决定是否在该分级阶段或渲染阶段中计算该图元的多个顶点变化的步骤包含有:
检查该分格数是否达到该分格数门限值,以据此提供该决定结果。
6.如权利要求3所述的图形处理方法,其特征在于,该特定信息为着色器编码架构的信息,且该选择标准对应用以分类该着色器编码架构的分类信息;且该决定在是否该分级阶段或渲染阶段中计算该图元的多个顶点变化的步骤包含有:
根据该着色器编码架构的信息以及根据该分类信息来分类该着色器编码架构,以据此提供该决定结果。
7.如权利要求1所述的图形处理方法,其特征在于,该特定信息为编译程序信息。
8.如权利要求1所述的图形处理方法,其特征在于,该特定信息是被逐个帧更新;且该方法进一步包含:
分析一特定帧以更新该特定帧的该特定信息,其中该特定帧包含该图元。
9.如权利要求1所述的图形处理方法,其特征在于,该在分级阶段计算图元的多个顶点位置的步骤是根据与该图元相关的一组属性来决定。
10.一种图形处理装置,其特征在于,该图形处理装置是置于电子装置中,该图形处理装置包含该电子装置的至少一部分,该装置包含有:
检查电路,用以根据特定信息来决定是否在分级阶段或渲染阶段计算图元的多个顶点变化,以提供决定结果;以及
至少一着色器,耦接至该检查电路,用以在该分级阶段计算该图元的多个顶点位置、根据该决定结果在该分级阶段或该渲染阶段计算该多个顶点变化、以及在该渲染阶段根据该多个顶点位置以及该多个顶点变化来渲染该图元;
其中,该分级阶段在该渲染阶段之前,该多个顶点变化中的至少一变化为该图元的一顶点的变化或在该图元中一点的变化。
11.如权利要求10所述的图形处理装置,其特征在于,该决定结果为下列其中之一:
卷标信息,其中该卷标信息可由与该图元相关的指针来存取;以及
控制信号,其中该控制信号被应用于该图形处理装置的电路。
12.如权利要求10所述的图形处理装置,其特征在于,该检查电路检查该特定信息是否符合选择标准以据此提供该决定结果。
13.如权利要求12所述的图形处理装置,其特征在于,该特定信息为该图元的图元大小的信息,且该选择标准对应图元大小门限值;且该检查电路检查该图元大小是否达到该图元大小门限值,以据此提供该决定结果。
14.如权利要求12所述的图形处理装置,其特征在于,该特定信息为该图元所接触的多个分格的分格数的信息,且该选择标准对应分格数门限值;而该检查电路检查该分格数是否达到该分格数门限值,以据此提供该决定结果。
15.如权利要求12所述的图形处理装置,其特征在于,该特定信息为着色器编码架构的信息,且该选择标准对应用以分类该着色器编码架构的分类信息;且该检查电路根据该着色器编码架构的信息以及根据该分类信息来分类该着色器编码架构,以据此提供该决定结果。
16.如权利要求10所述的图形处理装置,其特征在于,该特定信息为编译程序信息。
17.如权利要求10所述的图形处理装置,其特征在于,该特定信息是被逐个帧更新;且该图形处理装置分析一特定帧以更新该特定帧的该特定信息,其中该特定帧包含该图元。
18.如权利要求10所述的图形处理装置,其特征在于,该至少一着色器为统一着色器。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201461992239P | 2014-05-13 | 2014-05-13 | |
US61/992,239 | 2014-05-13 | ||
US14/675,759 | 2015-04-01 | ||
US14/675,759 US9754402B2 (en) | 2014-05-13 | 2015-04-01 | Graphics processing method and graphics processing apparatus |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105096235A CN105096235A (zh) | 2015-11-25 |
CN105096235B true CN105096235B (zh) | 2018-06-19 |
Family
ID=53432952
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510213873.5A Active CN105096235B (zh) | 2014-05-13 | 2015-04-30 | 图形处理方法及图形处理装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9754402B2 (zh) |
EP (1) | EP2945126B1 (zh) |
CN (1) | CN105096235B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10055807B2 (en) * | 2016-03-02 | 2018-08-21 | Samsung Electronics Co., Ltd. | Hardware architecture for acceleration of computer vision and imaging processing |
CN105843603B (zh) * | 2016-03-17 | 2019-08-16 | 广州爱九游信息技术有限公司 | 图形处理的方法及装置 |
US10062139B2 (en) * | 2016-07-25 | 2018-08-28 | Qualcomm Incorporated | Vertex shaders for binning based graphics processing |
CN109242756B (zh) * | 2018-09-07 | 2023-04-04 | 格兰菲智能科技有限公司 | 计算机系统、图形处理单元及其图形处理方法 |
US11416960B2 (en) * | 2020-11-06 | 2022-08-16 | Samsung Electronics Co., Ltd. | Shader accessible configurable binning subsystem |
US11468633B1 (en) | 2021-03-30 | 2022-10-11 | Arm Limited | Methods and systems for tile-based graphics processing |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101639929A (zh) * | 2008-06-05 | 2010-02-03 | Arm有限公司 | 图形处理系统 |
CN101794456A (zh) * | 2009-01-15 | 2010-08-04 | Arm有限公司 | 用于处理图形的方法和装置 |
EP2317479A1 (en) * | 2009-11-02 | 2011-05-04 | Pacific Data Images LLC | Infinite complexity deep-framebuffer rendering |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030122850A1 (en) * | 2001-12-28 | 2003-07-03 | Satyaki Koneru | Method and apparatus for determining bins to be updated for polygons, including triangles |
GB2458488C (en) | 2008-03-19 | 2018-09-12 | Imagination Tech Ltd | Untransformed display lists in a tile based rendering system |
US8505001B2 (en) * | 2009-12-17 | 2013-08-06 | Broadcom Corporation | Method and system for utilizing data flow graphs to compile shaders |
KR101926570B1 (ko) * | 2011-09-14 | 2018-12-10 | 삼성전자주식회사 | 포스트 프레그먼트 쉐이더를 사용하는 그래픽 처리 방법 및 장치 |
US9547930B2 (en) * | 2011-11-30 | 2017-01-17 | Qualcomm Incorporated | Hardware switching between direct rendering and binning in graphics processing |
US9317948B2 (en) | 2012-11-16 | 2016-04-19 | Arm Limited | Method of and apparatus for processing graphics |
-
2015
- 2015-04-01 US US14/675,759 patent/US9754402B2/en active Active
- 2015-04-30 CN CN201510213873.5A patent/CN105096235B/zh active Active
- 2015-05-12 EP EP15167353.0A patent/EP2945126B1/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101639929A (zh) * | 2008-06-05 | 2010-02-03 | Arm有限公司 | 图形处理系统 |
CN101794456A (zh) * | 2009-01-15 | 2010-08-04 | Arm有限公司 | 用于处理图形的方法和装置 |
EP2317479A1 (en) * | 2009-11-02 | 2011-05-04 | Pacific Data Images LLC | Infinite complexity deep-framebuffer rendering |
Non-Patent Citations (1)
Title |
---|
Memory bandwidth requirements of tile-based rendering;ANTOCHI;《Computer systems:architectures,modeling,and simulation》;20040130;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN105096235A (zh) | 2015-11-25 |
US9754402B2 (en) | 2017-09-05 |
EP2945126A2 (en) | 2015-11-18 |
US20150332495A1 (en) | 2015-11-19 |
EP2945126B1 (en) | 2018-11-07 |
EP2945126A3 (en) | 2016-07-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105096235B (zh) | 图形处理方法及图形处理装置 | |
EP4198909A1 (en) | Image rendering method and apparatus, and computer device and storage medium | |
US20230038653A1 (en) | Allocation of primitives to primitive blocks | |
US10437541B2 (en) | Graphics engine and environment for efficient real time rendering of graphics that are not pre-known | |
WO2022042436A1 (zh) | 图像渲染方法、装置、电子设备及存储介质 | |
TWI381364B (zh) | 用於影像處理的方法以及包含儲存有指令之機器可存取媒體的物品 | |
CN109118491A (zh) | 一种基于深度学习的图像分割方法、系统及电子设备 | |
KR102006584B1 (ko) | 레이트 심도 테스팅과 컨서버티브 심도 테스팅 간의 동적 스위칭 | |
CN106251392A (zh) | 用于执行交织的方法和设备 | |
US11915058B2 (en) | Video processing method and device, electronic equipment and storage medium | |
CN108280455A (zh) | 人体关键点检测方法和装置、电子设备、程序和介质 | |
US10186068B2 (en) | Method, apparatus and system for rendering an image | |
CN109275011A (zh) | 智能电视运动模式切换的处理方法及装置、用户设备 | |
CN106662999A (zh) | 用于simd结构化分支的方法和装置 | |
CN109361950A (zh) | 视频处理方法、装置、电子设备及存储介质 | |
EP3050605B1 (en) | A method for event detection in real-time graphic applications | |
CN113936081A (zh) | 在图形处理系统中对基元分块 | |
US20160379336A1 (en) | Methods of a graphics-processing unit for tile-based rendering of a display area and graphics-processing apparatus | |
CN107613046A (zh) | 滤镜管道系统、图像数据处理方法、装置以及电子设备 | |
Tsiktsiris et al. | Accelerated seven segment optical character recognition algorithm | |
CN116721091A (zh) | 一种布匹瑕疵检测方法、装置及可读介质 | |
CN108010095A (zh) | 一种纹理合成的方法、装置及设备 | |
US11244443B2 (en) | Examination apparatus, examination method, recording medium storing an examination program, learning apparatus, learning method, and recording medium storing a learning program | |
US8988444B2 (en) | System and method for configuring graphics register data and recording medium | |
Jain et al. | Parallel edge detection by SOBEL algorithm using CUDA C |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |