CN103226805B - 用于生成形成图形数据的帧的图形值的装置和方法 - Google Patents
用于生成形成图形数据的帧的图形值的装置和方法 Download PDFInfo
- Publication number
- CN103226805B CN103226805B CN201210555381.0A CN201210555381A CN103226805B CN 103226805 B CN103226805 B CN 103226805B CN 201210555381 A CN201210555381 A CN 201210555381A CN 103226805 B CN103226805 B CN 103226805B
- Authority
- CN
- China
- Prior art keywords
- pixel
- segment
- storage area
- data storage
- general data
- 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
- 238000000034 method Methods 0.000 title claims abstract description 68
- 238000013500 data storage Methods 0.000 claims abstract description 113
- 230000008569 process Effects 0.000 claims abstract description 41
- 238000012545 processing Methods 0.000 claims description 61
- 238000012360 testing method Methods 0.000 claims description 13
- 230000003139 buffering effect Effects 0.000 claims description 4
- 230000003068 static effect Effects 0.000 claims description 3
- 238000007596 consolidation process Methods 0.000 claims description 2
- 238000005516 engineering process Methods 0.000 description 16
- 238000009877 rendering Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005286 illumination Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 238000011112 process operation Methods 0.000 description 1
- 238000010008 shearing Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/36—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
- G09G5/37—Details of the operation on graphic patterns
- G09G5/377—Details of the operation on graphic patterns for mixing or overlaying two or more graphic patterns
-
- 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
-
- 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
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/36—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
- G09G5/363—Graphics controllers
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2360/00—Aspects of the architecture of display systems
- G09G2360/06—Use of more than one graphics processor to process data before displaying to one or more screens
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2360/00—Aspects of the architecture of display systems
- G09G2360/12—Frame memory handling
- G09G2360/122—Tiling
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Computer Hardware Design (AREA)
- Image Generation (AREA)
- Controls And Circuits For Display Device (AREA)
Abstract
本发明涉及用于生成形成图形数据的帧的图形值的装置和方法。基于图块的图形处理器包括具有图块缓冲器和逐像素通用数据存储区两者的图块处理电路。逐像素通用数据存储区可由图块处理电路进行读取访问和写入访问以存储中间值。这些中间值由图块处理电路生成,并随后被图块处理电路所消耗以生成正被处理的图块的输出值。
Description
技术领域
本发明涉及图形处理领域。更具体地,本发明涉及基于图块的图形处理,并涉及为这样的基于图块的图形处理中的中间值提供逐像素通用数据存储区(per-pixel generalpurpose data store)。
背景技术
提供依据基于图块的处理技术而进行操作的图形处理装置已知的。在基于图块的处理技术中,将被处理的图像帧被划分成多个相邻像素位置的图块。用于指定将被绘制的图形对象的图元(graphics primitive)数据随后经历合并操作(binning operation),通过此,为每个图块识别所述图元中的哪个图元将对为该图块生成的输出值产生影响。通常情况下,仅整个图像帧的图元的子集会影响个体图块。
当图块被识别并且图元被合并后,处理电路可以从存储器中取回对有关图块进行所希望的图形处理操作所需要的数据。每个基元(primitive)被与片断描影器(fragmentshader)相关联,片断描影器是可编程指示的序列。例如,存在用以从特殊图像(被称为纹理)中加载,并且支持基本的数学运算和正弦/余弦函数、支持分支和循环等的一些指令。用户为每个基元提供片断描影器。片断描影器通常针对基元重叠的每个像素被执行一次。例如,使用基本指令,用户可以对计算逐像素光照的程序进行一些汇编。从GPU的角度来看,它是执行任意指令。当使用在合并步骤中被识别为对该图块产生影响的所有图元生成了该图块的输出值时,随后输出值也可被写回到主存储器中。当在能量受限的环境中使用时,基于图块的处理特别有利,因为它涉及较少的到主存储器的数据访问,从而减少能耗。
已知的是提供使用非基于图块的图形处理系统来执行图形处理操作,该非基于图块的图形处理系统生成中间值,所述中间值随后一次或多次被用于建立最终的像素颜色值。这些图形处理技术的示例是推迟描影和绘制顺序无关透明对象。实施这些处理的已知方式执行对图元的一次或多次通过,以收集与图像帧中的每个像素有关的中间数据。该中间数据可以被多次使用,以生成最终的像素颜色值。使用这种方法的一个问题是大量的中间值可能被生成并需要存储。另一个问题是,当应用于基于图块的处理系统时,这样的方法不利用基于图块的处理,并且增加了需要将中间值存储到存储器或需要从主存储器中读取中间值的次数。
发明内容
从本发明的一个方面来看,提供了一种用于从多个图元生成形成图形数据的帧的图形值的装置,所述装置包括:
划分电路,被配置为将所述帧划分为多个图块,所述多个图块的每一个包括相邻像素位置的阵列;
合并电路,被配置将将要为所述多个图块中的给定图块生成的针对像素位置的输出值所取决于的那些图元识别为针对所述给定图块的重叠图元;以及
图块处理电路,被配置为对于所述给定图块的一些或所有重叠图元,针对与给定图元重叠的一些或每个像素位置执行一系列可编程指令,所述图块处理电路包括图块缓冲器和逐像素通用数据存储区;其中
所述图块处理电路被配置为在基元重叠的像素位置上执行所述可编程指令,以执行对所述逐像素通用数据存储区的写入访问和读取访问以生成输出值,所述逐像素通用数据存储区用于在渲染所述给定图块的过程中存储中间值。
本技术认识到,在基于图块的处理系统的境况下,如果逐像素通用数据存储区被提供给由生成中间参数值的可编程指令控制的图块处理电路,则可以存储这些中间值,而无需将它们写回到主存储器中,以使得中间值随后可以被图块处理电路(例如,利用指令或直接地)消耗,以便生成所希望的输出值。由于基于图块的处理器借助其对图元的合并将处理工作量划分为针对每个图块的单独工作量,从而本质上将所需要的中间值存储量减少为仅该图块本身所需要的存储量,因此这可以是一个相对可管理的数据存储量,并且相应地可以被提供图块处理电路具有对其的写入权限和读取权限的逐像素通用数据存储区,以避免将大量的中间值存储到主存储器的任何需要。
不仅提供逐像素通用数据存储区,而且提供常规图块缓冲器,输出值通常被图块处理电路累积到该图块缓冲器中。逐像素通用数据存储区可被用于由图块处理电路在程序指令控制下所执行的广泛种类的不同处理操作。因此,例如,可编程指令可以由图块处理电路执行以实现处理操作,诸如与顺序无关的透明操作相结合的推迟描影。其他图形处理操作也可通过存储普通数据以及实现数据结构而被程序指令支持,数据结构例如是逐像素通用数据存储区中针对每个像素的动态阵列和堆栈。
所生成的输出值可以有多种形式。输出值可以是像素颜色值,或者可以是可被进一步处理以最终生成颜色像素值的其他形式的值。
图块处理电路可被配置为在使用后和/或生成输出值后,丢弃存储在逐像素通用数据存储区内的中间值。本技术将将要被执行的处理分解为图块,并且一旦某个图块的输出值已生成,则不再需要存储用于该图块的中间值。因此,这些中间值可被丢弃。这减少了需要提供给中间值的存储量,因为只有当前被处理的一个或多个图块的中间值需要被存储。这降低了所需的整体存储容量的量。
逐像素通用数据存储区可具有多种不同的形式。在一些实施例中,图块缓冲器可以具有比当前正被执行的处理操作所需的更大的容量。例如,图块缓冲器可具有足够的容量以支持抗锯齿操作,在抗锯齿操作中,存储与最终将生成的每个像素位置有关的多个像素值。在这种情况下,当不采用抗锯齿时,则图块缓冲器的过剩容量未被使用,并且图块缓冲器的该未使用的部分可以用作逐像素通用数据存储区。也可以减小图块的大小以将图块缓冲器内的容量释放出来,以用作逐像素通用数据存储区。
在其他实施例中,主存储器地址的一部分可以被分配作为逐像素通用数据存储区。在这些实施例中,布置在主存储器和图块处理电路之间的缓存存储器可以用来缓存主存储器中被分配的存储位置。因此,对主存储器的实际写入或读取可以由对缓存存储器的写入和读取来取代,从而避免与对主存储器的写入和读取相关联的高能量成本。该方法利用了以下实现方式:逐像素通用数据存储区通常都较小,并且因此,有可能至少在其使用期间完全利用缓存存储器来供应。
通过就此作用而言采用写入收集缓存存储器或就此作用而言潜在地使用缓存存储器的锁定部分,到主存储器的流量可以进一步被减小。对于可能用作逐像素通用数据存储区的存储装置还有其他的可能性,例如,当需要用作逐像素通用数据存储区时可用的图形处理装置内未使用的寄存存储装置或未使用的其他缓冲器存储区。
逐像素通用数据存储区可方便地配置为单独存储针对所选图块的每个像素位置的多个中间值。因此,图块处理电路可为每个像素位置生成与该像素位置有关的多个中间值,这多个中间值然后被存储在逐像素通用数据存储区内的某个位置处。然后,以这种方式存储的中间值可在逐个像素的基础上从逐像素通用数据存储区被消耗,以生成输出值。
逐像素通用数据存储区内的用于不同像素位置的多个中间值可以以交织排列的方式被存储。因此,特定类型的、但与不同像素位置相关的所有中间值可被存储为彼此相邻。以这种方式布置逐像素通用数据存储区易于提高数据的一致性,这在附加数据存储区具有缓存存储器的一部分的形式时特别有用。交织格式可以变化并且可以是可配置的。
逐像素通用数据存储区可以被配置为将中间值存储为存储器堆栈(memorystack)。特别是在不知道究竟有多少中间值将被写入到逐像素通用数据存储区以及有多少中间值要从逐像素通用数据存储区中读取时,以这种方式存储中间值增加了灵活性。
为了减少与逐像素通用数据存储区相关联的开销,一些实施例可被布置为使得:如果对逐像素通用数据存储区内的、先前未针对当前正被处理的所选图块进行写入的位置执行读取,则将返回默认值。这避免了在被所选图块使用之前清除整个逐像素通用数据存储区的需要,因为它仅需要清除将由所选图块使用的各部分。在一些实施例中,硬件可被设置为对这样的读取作出响应,该读取通过在硬件控制下清除逐像素通用数据存储区来触发默认值的返回。被返回的默认值在一些实施例中可以是清除颜色值(clear colourvalue)。
图块处理电路可以被配置为以图元被排序的顺序(即,绘制调用的顺序)来执行对逐像素通用数据存储区的访问。这允许图块处理电路在并行处理属于多个基元的像素的同时,仍然在逐像素通用数据存储区中产生正确的值,就好像基元是一次一个地被处理的一样。
如前所述,所生成的中间值可以是多种不同的所期望的处理操作的结果。在一些实施例中,中间值是被生成并且然后被消耗的逐像素光照参数,以依据定义了照亮相关像素的一个或多个光源的数据来计算出相应的像素值。在这种情况下,逐像素光照中间值可以包括如下中的一个或多个:与相关像素相对应的表面位置的法向矢量值、高光强度值、光强值、材料标识符值、颜色值和反照率值。
本技术对如下的另一种类型的处理操作提供了高效支持:其中,中间值是在处理操作期间生成并被消耗的逐像素透明对象参数,以表示一个或多个透明对象从而计算包括了一个或多个透明对象的任何影响的相应像素值。在这种情况下,透明对象参数可以包括与相关像素相对应的位置的透明对象的深度值、透明度值和颜色值。
一种高效处理操作可以是这样的处理操作:生成与像素相对应的中间值,并在进一步操作中消耗与该像素相对应的中间值。某些处理操作需要生成多个中间值并且随后从包括来自尚未被处理的图块的位置在内的像素位置访问中间值。中间值被输出到多个渲染目标(MRT,multiple render targets)。逐像素通用数据存储区可被配置为被用作多个渲染目标,在这种情况下,逐像素通用数据存储区的内容将被输出为每个像素的多个输出值。这些具体的处理操作需要在存储器中为图像帧中的所有图块分配存储区。
在一些实施例中,逐像素通用数据存储区可具有静态的大小,其可以是固定分配的逐像素通用数据存储区。在其它实施例中,逐像素通用数据存储区可以具有可变的大小,其根据需要被增大道最大大小限制。一种个体实施方式可以被配置为支持这两个选择。当多个渲染目标被使用时,具有足够容量来存储帧内所有图块的中间值的存储区将被分配用作逐像素通用数据存储区。
如前面所提到的,本技术可以在以下实施方式中有利地被使用:其中,将数据值存储到主存储器要消耗比将数据值存储到逐像素通用数据存储区时更多的能量。然而,即使并非这种情况,在仅仅减少所需存储量方面,本技术也是有优势的,因为只需要对在任何给定时间正被进行处理的那些图块提供逐像素通用存储。
从本发明的另一个方面来看,提供了一种用于从多个图元生成形成图形数据的帧的图形值的方法,所述方法包括以下步骤:
将所述帧划分为多个图块,所述多个图块中的每一个包括相邻像素位置的阵列;
合并所述图元,以将将要为所述多个图块中的给定图块生成的针对像素位置的输出值所取决于的那些图元识别为针对所述给定图块的重叠图元;以及
针对分别用作所述给定的所选图块的所述多个图块中的每个图块:
(i)提供在渲染所述给定图块的过程中使用的用于存储所述输出值的图块缓冲器以及逐像素通用数据存储区;
(ii)通过对于所述给定图块的一些或所有重叠图元,针对与给定图元重叠的一些或每个像素位置执行一系列可编程指令来进行处理操作,所述处理操作包括在可编程指令的控制下,针对所述给定图块将多个中间值写入到所述逐像素通用数据存储区中,从所述逐像素通用数据存储区中读取所述多个中间值并使用所述中间值生成输出值。
从本发明又一方面来看,提供了一种用于从多个图元生成形成图形数据的帧的图形值的设备,所述设备包括:
划分装置,用于将所述帧划分为多个图块,所述多个图块的每一个包括相邻像素位置的阵列;
合并装置,用于将将要为所述多个图块中的给定图块生成的针对像素位置的输出值所取决于的那些图元识别为针对所述给定图块的重叠图元;以及
图块处理装置,用于将所述多个图块中的每个图块作为所选图块进行分开处理,所述图块处理装置包括用于存储输出值的图块缓冲器装置和用于存储中间值的逐像素通用数据存储装置;其中
所述图块处理装置具有对用于在渲染所述所选图块的过程中存储所述中间值的所述逐像素通用数据存储装置的写入权限和读取权限,以生成存储在所述图块缓冲器装置中的所述输出值;以及
所述图块处理装置将所述主题图块的所述输出值从所述图块缓冲器存储到主存储器中以形成所述帧的一部分。
将所述实施方式的下列详细描述与附图相结合的阅读,上述以及其他本发明的对象、特征和优点将会变得清楚。
附图说明
图1示意性地示出了包含主存储器、缓存存储器系统和多个图形核心的图形处理装置;
图2示意性地示出了要被形成的、包括多个图元的图像;
图3是示意性地示出了根据本技术一个示例性实施例的处理操作的流程图;
图4示意性地示出了可用于支持推迟描影(deferred shading)操作的中间值;
图5示出了可用于支持顺序无关的透明对象的渲染的中间值的一个示例;
图6示意性地示出了逐像素通用数据存储区内不同像素位置的中间值的交织;
图7示意性地示出了以图块缓冲器的未使用部分的形式提供逐像素通用数据存储区;
图8示意性地示出了提供逐像素通用数据存储区作为写入收集缓存的一部分;
图9示意性地示出了基于图块的图形处理装置内的一些图形流水线级;以及
图10示意性地示出了使用本技术以支持基于图块的图形处理装置内的推迟描影。
具体实施方式
图1示意性地示出了一个系统,包括经由缓存系统耦合到各个图形处理单元16、18、20、22的主存储器4,所述缓存系统包括多个零级缓存6、8、10、12和一级缓存14。每个图形处理单元均包括处理核心24和图块缓冲器26。图形核心24至少包括片断描影器流水线级,所述片断描影器流水线级通过重复执行与每个像素位置和将针对该像素位置被渲染的每个图元有关的可编程指令,来对像素位置的图块进行操作。这种基于图块的处理器本身在本技术领域是已知的,因此将不会在此处详细描述。具体地,本技术领域人员将熟悉执行图元合并的机制以及收集输出像素值和形成最终所需的像素颜色值的帧的机制。
图2示出了将被渲染的图像28。该图像28可以被划分成将经过分开处理的多个图块30。图像28包括多个图元,诸如实线三角形32、34和透明三角形36、38。图像28内还包括多个光源L0、L1和L2,其被用于照亮/描影图像28内的对象。实线图元和透明图元的渲染以及使用多个光源生成最终被图像帧28使用的像素颜色值也是本技术领域人员熟悉的。但是,将在下面进一步描述提供和利用逐像素通用数据存储区的本技术,图块处理电路可以读写该逐像素通用数据存储区,该图块处理电路执行与每个像素位置有关的可编程指令。
图3是一个流程图,示意性地示出了根据本技术一个实施例的处理操作。在步骤40中,图像帧被划分成多个图块,每个图块均被单独处理。在步骤42中,将被处理的图像帧中的图元被识别并分配给合并区(bin)(与不同图块有关的集合),以使得控制将针对给定图块被生成的输出值的图元都被分配到针对该给定图块的合并区中。
在步骤44中,第一图块被选择用于当前处理操作。当前处理操作例如可以是使用顺序无关的透明对象渲染算法来渲染透明对象。要执行的处理的另一个例子可以是描影操作,其依据场景内的一个或多个光源来照亮像素位置。与像素相对应的中间值被生成且随后被消耗的其它形式的渲染也可被设想并被包含在本技术中。
在步骤46中,从主存储器中读取要执行的处理所需的输入参数。在步骤48中,分配用于所选图块的逐像素通用数据存储区。该逐像素通用数据存储区可以通过例如使用图块缓冲器26中未使用的存储空间来提供,或者可被提供作为缓存存储器6、8、10、12(可选地,被锁定)内的存储位置。步骤50执行用于所选图块的所需处理操作,包括执行用于与每个基元相对应的像素的指令,所述指令可将中间值写入到逐像素通用数据存储区中,并且将输出值写入到图块缓冲器26中。步骤52然后将从图块缓冲器中选择的图块的像素值写回到主存储器中。
从上面将看出在步骤46和52中执行对主存储器的访问。大量的访问可能在步骤50中执行(纹理化指令经常在步骤50中使用,并构成对主存储器的访问),将中间值写入到逐像素通用数据存储区并从逐像素通用数据存储区中读取中间值,并且这些可以以相对低的能源成本来执行。此外,因为这些中间值与当前被选择用于处理的图块相关,因此相比于与图像帧相对应的图像数据的总量,它们具有相对较小的数量。此外,一旦在步骤50中已经生成并消耗了中间值,则当针对该图块的处理完成时,中间值可被丢弃。
步骤54判断最后的图块是否已被处理。如果最后的图块已经被处理,则处理终止于步骤56。如果最后的图块尚未被处理,于是在步骤58中选择序列中的下一个图块并且处理返回到步骤46。
图4根据本技术示意性地示出了多个中间值,其可作为光描影处理的一部分而被生成/消耗。可逐像素地被存储在逐像素通用数据存储区中的中间值包括法向矢量、反照率值、颜色值、高光强度值(specular power value)、光强值以及与该像素有关的材料标识符值。应理解的是,上述仅仅只是可被存储的中间值的一个示例。在不同的实施例中,其它中间值可以被存储,并且一些实施例可以不用存储上面列出的所有中间值。所有这些变化都被包括在本技术中。
图4中示出的中间值具有固定大小(fixed size),因为图块内的像素的数量是固定的并且每个像素的中间参数的数量是固定的。因此,图4中示出的中间值可以被存储在固定大小的逐像素通用数据存储区中。如果在图块缓冲器26的未使用部分中大小允许,则这样的未使用部分可以作为图4中的中间值的逐像素通用数据存储区。
图5根据本技术示意性地示出了可被存储在逐像素通用数据存储区中以用于在可编程指令控制下由图块处理电路执行的不同类型的处理的另一组中间值。在这个示例中,执行的处理是根据顺序无关算法来渲染透明对象。为了执行这样的渲染,中间值被聚合以表示要被渲染的相应透明对象。对于每个透明对象,中间值可指定深度值、透明度值和颜色值。这些中间值以像素为基础被存储。因此,当所有中间值已被生成时,则对于每个像素位置,指定了对该像素位置产生影响的透明对象的中间值可被读取。深度值可用于控制这些透明对象被处理直到最后的透明对象被处理为止的顺序。
应当认识到,无法预先了解有多少透明对象可能影响像素位置。因此,逐像素通用数据存储区可具有达最大值的可变大小,以便存储与可变数量的透明对象有关的中间值。可通过分配主存储器4中的存储器地址空间来提供这样的逐像素通用数据存储区。当这样的存储器地址空间被分配时,中间值实际上并不需要被写入到主存储器4中或从主存储器4中被读取,因为中介缓存存储器将被转而用于以如下方式存储接近图块处理电路的中间值,上述方式提供了对这些中间值的高能效访问。具体地,如果缓存存储器是写入收集存储器缓存,则所执行的正常处理可能会生成其随后将消耗的所有中间值,而无需将中间值从写入收集缓存实际写回到主存储器中,这是因为当有关图块被处理之后,不再需要这些中间值,并且一旦用于该图块的输出值被生成,则中间值可被丢弃。
图6示意性地示出了来自逐像素通用数据存储区内不同像素位置中的相同类型的参数值的交织。如图6中所示,与像素0到N有关的中间值A都被存储在连续的存储位置中。然后,用于该相同序列的像素值的中间值B彼此相对或彼此相邻。当图块处理电路希望访问个体像素的个体参数值时,偏移可被用于索引逐像素通用数据存储区并且选择正确参数类型的适当中间值并用于正确的像素。
将会认识到,当逐像素通用数据存储区涉及主存储器4内已分配的区域时,则图块处理电路可利用基础索引值被编程,所述基础索引值指示主存储器4内该逐像素通用数据存储区的地址空间的开始。因此,由图块处理电路执行的可编程指令可以使用该基地址偏移,以计算将从逐像素通用数据存储区中(例如,从将利用存储器地址被索引的缓存存储器中)被取回的所需中间值的存储位置。
图7示出了一个示例性实施例,其中,图块缓冲器26内未用于输出值的空间用来为中间值提供逐像素通用数据存储区。作为一个示例,图块缓冲器26可足够大以支持抗锯齿(anti-aliasing)操作,在抗锯齿操作中多个像素值被存储用于为每个像素位置生成最终的输出值。当不采用抗锯齿时,则图块缓冲器26的其它容量可以用来作为逐像素通用数据存储区。
图8示意性地示出了另一个示例性实施例。在该示例性实施例中,逐像素通用数据存储区对应于主存储器4内所分配的区域。然而,写入收集缓存60被提供,其用于存储中间值并且充当逐像素通用数据存储区。中间值由图形核心24生成,并且在它们被消耗而从写入收集缓存60被读回之前被写入到写入收集缓存60中。中间值在每个图块的处理结束时被丢弃,并且因此从不需要被写回到主存储器4中。
被用作逐像素通用数据存储区一部分的写入收集缓存60内的每个缓存行可与图形核心24内的“清除”(cleared)位相关联。当开始处理新的图块时,则所有这些位被设置为指示相应缓存行尚未被清除。如果缓存行被分配用作逐像素通用数据存储区的一部分并随后经过读取或写入操作,则该缓存行的“清除”位被读取以判定对于有关图块的处理,该缓存行是否已经被清除。如果缓存行并没有被清除,那么随后它被清除并且“清除”位相应地被改变,以使得对于当前图块的处理而言,它不会被再次清除。如果有关访问是读取访问,则除了清除操作之外,默认值将被返回给该读取。该默认值可以是例如清除颜色值。如果访问操作是写入,则除了针对该缓存行执行的清除之外,有关参数值还被写入到该缓存行中。
应理解的是,如前面所讨论的,逐像素通用数据存储区可以具有固定的大小或可变的大小。逐像素通用数据存储区可以被布置为存储器堆栈。这样的布置在可变大小的逐像素通用数据存储区的境况中特别有用,如关于图5描述的。
图9示意性地示出了图形核心24内提供的处理级中的一些。这些处理级包括用作光栅化器62、片断描影器64、片断测试器66、片断操作级68和写回级70的级。片断描影器64是可编程的,并且针对与每个基元相关联的每个像素位置反复执行可编程指令来执行处理操作。如上面所讨论的,这些指令中的一些可生成中间值。这些中间值被存储在逐像素通用数据存储区72内。片断描影器64具有对图块缓冲26的读取权限和写入权限。在一些实施例中,写回级70可从逐像素通用数据存储区中取得一些输出值。一般地,写回级70将从图块缓冲器26中取得输出值。逐像素通用数据存储区72的提供增加了由片断描影器64执行的处理操作的能力,该逐像素通用数据存储区72为片断描影器64所使用的中间值提供存储区。这种灵活性的增加被实现,而不用过度增加需要提供的存储量,因为所存储的中间值是与正被处理的图块有关的中间值,并且因此在大多数情况下,逐像素通用数据存储区72需要相对小的容量。
在一些实施例中,配置可以使得:仅当正被处理的图元通过了由片断测试器66在该像素/样本位置执行的一个或多个片断测试时,才发生到逐像素通用数据存储区72的写入。
在适当背景上操作的图9的实施例的情况下,对于每个基元,光栅化器为基元重叠的每个像素生成片断。然后每个片断通过图9中所示的各级。在片断描影器级,对应于该片断的指令被执行。在片断测试级,对片断进行各种片断测试。如果任何测试失败,则该片断将被结束掉(不会被进一步处理,并且不会被写入到图块缓冲器中)。
片断测试可包括:删切(scissor)、初版(alpha)、模板(stencil)、深度。其中最常见的是深度和模板测试。如果片断的深度在该像素位置与图块缓冲器中存储的深度相比时通过了深度函数,则该片断通过深度测试。深度函数可被配置为执行比较,诸如“小于”、“小于或等于”、“大于”、“大于或等于”、“等于”、“不等于”、“总是”、“从不”。模板测试可以相类似,除了在该像素位置是参考值与存储在图块缓冲器中的模板值作比较。剪切测试和初版测试在逻辑上被期望位于片断测试中,但这些也可以在其他级被实施。
图10示意性地示出了在使用多个光源来照亮/描影图像的情况下查看本技术的操作的另一种方式。图元74的集合经过用于渲染场景、每个像素位置的法向、每个像素位置的深度、每个像素位置的反照率、每个像素位置的高光强度等的处理。法向矢量值、深度值、反照率值、高光强度值等是存储在逐像素通用数据存储区72中的中间值。对于N个灯的集合中的灯i所影响的每个像素位置,中间值从逐像素通用数据存储区72中被读取并被用于计算该像素位置的光照,并且将光照的结果累积到该像素位置的最终颜色输出中。因此,对于给定的图块,仅一次通过图形流水线以生成中间值,这些中间值暂时被存储在逐像素通用数据存储区72中,并且然后被消耗以生成该有关图块的最终颜色输出。
尽管在此处已经参考附图详细描述了本发明的示意性实施例,但应理解的是,本发明并不局限于这些精确的实施方式,并且本领域技术人员可以实现各种变化和修改且不脱离所附权利要求定义的本发明的范围和精神。
Claims (35)
1.一种用于从多个图元生成形成图形数据的帧的图形值的装置,所述装置包括:
划分电路,被配置为将帧划分为多个图块,所述多个图块的每一个包括相邻像素位置的阵列;
合并电路,被配置将将要为所述多个图块中的给定图块生成的针对像素位置的输出值所取决于的那些图元识别为针对所述给定图块的重叠图元;以及
图块处理电路,被配置为对于所述给定图块的一些或所有重叠图元,针对与给定图元重叠的一些或每个像素位置执行一系列可编程指令,所述图块处理电路包括存储所述输出值的图块缓冲器和存储与所述输出值分离的中间值的逐像素通用数据存储区;其中
所述图块处理电路被配置为在基元重叠的像素位置上执行所述可编程指令,以执行对所述逐像素通用数据存储区的写入访问和读取访问以生成所述输出值,所述逐像素通用数据存储区用于在渲染所述给定图块的过程中存储所述中间值。
2.根据权利要求1所述的装置,其中所述图块处理电路被配置为在用于生成所述输出值之后,丢弃存储在所述逐像素通用数据存储区内的所述中间值。
3.根据权利要求1所述的装置,其中所述逐像素通用数据存储区是下列之一:
所述图块缓冲器的未使用部分;以及
存储在缓存存储器内的主存储器的一部分。
4.根据权利要求1所述的装置,其中所述逐像素通用数据存储区被配置为对于所述给定图块的每个像素位置单独存储多个中间值。
5.根据权利要求4所述的装置,其中所述逐像素通用数据存储区被配置为将用于不同像素的所述多个中间值以交织排列的方式存储在所述逐像素通用数据存储区的各存储位置中。
6.根据权利要求1所述的装置,其中所述图块处理电路是图形处理单元的一部分。
7.根据权利要求1所述的装置,其中所述逐像素通用数据存储区被配置为将所述中间值存储为存储器堆栈。
8.根据权利要求1所述的装置,其中所述图块处理电路被配置为如果对所述逐像素通用数据存储区内的、先前未针对所述给定图块被写入的位置执行读取,则返回默认值。
9.根据权利要求8所述的装置,其中所述默认值是清除颜色值。
10.根据权利要求1所述的装置,其中所述图块处理电路被配置为以绘制调用顺序执行对所述逐像素通用数据存储区的访问。
11.根据权利要求1所述的装置,其中,通过在所述多个图块的每一个的像素数目方面来减小图块大小,所述图块缓冲器内的容量被释放以用作逐像素通用数据存储区。
12.根据权利要求1所述的装置,其中,针对每个像素产生多个输出数据组,所述输出数据组中的至少一些被存储在所述逐像素通用数据存储区中,所述逐像素通用数据存储区对应于主存储器内的存储器地址空间。
13.根据权利要求1所述的装置,其中,所述图块处理电路被配置为响应于所述可编程指令,使用存储在逐像素通用缓冲存储区中的逐像素计数器,来执行对所述逐像素通用数据存储区的附加访问。
14.根据权利要求1所述的装置,其中,所述逐像素通用数据存储区被配置为存储来自每个像素位置内的每个样本位置的多组中间值。
15.根据权利要求1所述的装置,其中所述逐像素通用数据存储区具有下列大小之一:
当分配所述逐像素通用数据存储区时被固定的静态大小;以及
根据需要增加到最大大小限制的可变大小。
16.根据权利要求1所述的装置,其中,与将数据值存储到所述逐像素通用数据存储区相比,将所述数据值存储到主存储器将消耗更多的能量。
17.根据权利要求1所述的装置,其中,仅当正被处理的基元通过该像素位置上的一个或多个片断测试时,才允许对所述逐像素通用数据存储区的所述写入访问。
18.一种用于从多个图元生成形成图形数据的帧的图形值的方法,所述方法包括以下步骤:
将帧划分为多个图块,所述多个图块中的每一个包括相邻像素位置的阵列;
合并所述图元,以将将要为所述多个图块中的给定图块生成的针对像素位置的输出值所取决于的那些图元识别为针对所述给定图块的重叠图元;以及
针对分别用作所述给定的所选图块的所述多个图块中的每个图块:
(i)提供在渲染所述给定图块的过程中使用的用于存储所述输出值的图块缓冲器以及用于存储与所述输出值分离的中间值的逐像素通用数据存储区;
(ii)通过对于所述给定图块的一些或所有重叠图元,针对与给定图元重叠的一些或每个像素位置执行一系列可编程指令来进行处理操作,所述处理操作包括在可编程指令的控制下,针对所述给定图块将多个中间值写入到所述逐像素通用数据存储区中,从所述逐像素通用数据存储区中读取所述多个中间值并使用所述中间值生成输出值。
19.根据权利要求18所述的方法,其中,存储在所述逐像素通用数据存储区内的所述中间值在用于生成所述输出值之后被丢弃。
20.根据权利要求18所述的方法,其中,所述逐像素通用数据存储区是下列之一:
所述图块缓冲器的未使用部分;以及
存储在缓存存储器内的主存储器的一部分。
21.根据权利要求18所述的方法,其中,所述逐像素通用数据存储区对于所述给定图块的每个像素位置单独存储多个中间值。
22.根据权利要求21所述的方法,其中,用于不同像素的所述多个中间值以交织排列的方式被存储在所述逐像素通用数据存储区的各存储位置中。
23.根据权利要求18所述的方法,其中,所述处理操作由图形处理单元执行。
24.根据权利要求18所述的方法,其中,所述中间值被作为存储器堆栈存储在所述逐像素通用数据存储区内。
25.根据权利要求18所述的方法,其中,如果对所述逐像素通用数据存储区内的、先前未针对所述给定图块被写入的位置执行读取,则返回默认值。
26.根据权利要求25所述的方法,其中,所述默认值是清除颜色值。
27.根据权利要求18所述的方法,其中,对所述逐像素通用数据存储区的访问以绘制调用顺序来执行。
28.根据权利要求18所述的方法,其中,通过在所述多个图块的每一个的像素数目方面来减小图块大小,所述图块缓冲器内的容量被释放以用作逐像素通用数据存储区。
29.根据权利要求18所述的方法,其中,针对每个像素产生多个输出数据组,所述输出数据组中的至少一些被存储在所述逐像素通用数据存储区中,所述逐像素通用数据存储区对应于主存储器内的存储器地址空间。
30.根据权利要求18所述的方法,包括使用存储在逐像素通用缓冲存储区中的逐像素计数器,来执行对所述逐像素通用数据存储区的附加访问。
31.根据权利要求18所述的方法,包括将针对每个像素位置内的每个样本位置的多组中间值存储在所述逐像素通用数据存储区中。
32.根据权利要求18所述的方法,其中,所述逐像素通用数据存储区具有下列大小之一:
当分配所述逐像素通用数据存储区时被固定的静态大小;以及
根据需要增加到最大大小限制的可变大小。
33.根据权利要求18所述的方法,其中,与将数据值存储到所述逐像素通用数据存储区相比,将所述数据值存储到主存储器将消耗更多的能量。
34.根据权利要求18所述的方法,其中,仅当正被处理的基元通过该像素位置上的一个或多个片断测试时,才允许写入步骤。
35.一种用于从多个图元生成形成图形数据的帧的图形值的设备,所述设备包括:
划分装置,用于将帧划分为多个图块,所述多个图块的每一个包括相邻像素位置的阵列;
合并装置,用于将将要为所述多个图块中的给定图块生成的针对像素位置的输出值所取决于的那些图元识别为针对所述给定图块的重叠图元;以及
图块处理装置,用于将所述多个图块中的每个图块作为所选图块进行分开处理,所述图块处理装置包括用于存储所述输出值的图块缓冲器装置和用于存储与所述输出值分离的中间值的逐像素通用数据存储装置;其中所述图块处理装置具有对用于在渲染所述所选图块的过程中存储所述中间值的所述逐像素通用数据存储装置的写入权限和读取权限,以生成存储在所述图块缓冲器装置中的所述输出值;以及
所述图块处理装置将主题图块的所述输出值从所述图块缓冲器存储到主存储器中以形成所述帧的一部分。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1121886.4 | 2011-12-20 | ||
GB1121886.4A GB2497762B (en) | 2011-12-20 | 2011-12-20 | Intermediate value storage within a graphics processing apparatus |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103226805A CN103226805A (zh) | 2013-07-31 |
CN103226805B true CN103226805B (zh) | 2018-01-19 |
Family
ID=45572697
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210555381.0A Active CN103226805B (zh) | 2011-12-20 | 2012-12-19 | 用于生成形成图形数据的帧的图形值的装置和方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9218793B2 (zh) |
JP (1) | JP6133582B2 (zh) |
CN (1) | CN103226805B (zh) |
GB (1) | GB2497762B (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9607356B2 (en) | 2013-05-02 | 2017-03-28 | Arm Limited | Graphics processing systems |
US9070200B2 (en) | 2013-05-02 | 2015-06-30 | Arm Limited | Graphics processing systems |
US9767595B2 (en) | 2013-05-02 | 2017-09-19 | Arm Limited | Graphics processing systems |
US9741089B2 (en) | 2013-05-02 | 2017-08-22 | Arm Limited | Graphics processing systems |
KR102116708B1 (ko) * | 2013-05-24 | 2020-05-29 | 삼성전자 주식회사 | 그래픽스 프로세싱 유닛 |
US9514563B2 (en) | 2013-08-30 | 2016-12-06 | Arm Limited | Graphics processing systems |
US10198856B2 (en) * | 2013-11-11 | 2019-02-05 | Oxide Interactive, LLC | Method and system of anti-aliasing shading decoupled from rasterization |
GB2521171B (en) * | 2013-12-11 | 2020-02-05 | Advanced Risc Mach Ltd | Clipping of graphics primitives |
KR102188543B1 (ko) | 2014-02-07 | 2020-12-08 | 삼성전자주식회사 | 그래픽 처리 장치 |
US9569811B2 (en) * | 2014-06-26 | 2017-02-14 | Qualcomm Incorporated | Rendering graphics to overlapping bins |
US9489710B2 (en) * | 2015-02-10 | 2016-11-08 | Qualcomm Incorporated | Hybrid rendering in graphics processing |
US10535114B2 (en) * | 2015-08-18 | 2020-01-14 | Nvidia Corporation | Controlling multi-pass rendering sequences in a cache tiling architecture |
CN110471700B (zh) * | 2019-08-06 | 2021-06-29 | Oppo广东移动通信有限公司 | 图形处理方法、装置、存储介质及电子设备 |
US11436783B2 (en) | 2019-10-16 | 2022-09-06 | Oxide Interactive, Inc. | Method and system of decoupled object space shading |
KR20210108749A (ko) | 2020-02-26 | 2021-09-03 | 삼성전자주식회사 | 가속기, 가속기의 동작 방법 및 이를 포함한 가속기 시스템 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101620724A (zh) * | 2008-06-04 | 2010-01-06 | Arm有限公司 | 图形处理系统 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2214037A (en) * | 1987-12-18 | 1989-08-23 | Ibm | Solid modelling system |
US5493637A (en) * | 1992-12-04 | 1996-02-20 | Network Computing Devices, Inc. | Video buffer recycling method and apparatus |
JPH09212678A (ja) * | 1996-01-31 | 1997-08-15 | Sony Corp | 3次元画像生成装置 |
GB2353686B (en) * | 1996-04-30 | 2001-05-02 | Evans & Sutherland Computer Co | Computer graphics system with adaptive pixel multisampler |
US6091428A (en) * | 1998-04-01 | 2000-07-18 | Real 3D, Inc. | Frame buffer memory system for reducing page misses when rendering with color and Z buffers |
US6337690B1 (en) * | 1999-03-31 | 2002-01-08 | Hewlett-Packard Company | Technique for reducing the frequency of frame buffer clearing |
US6756978B1 (en) * | 1999-04-19 | 2004-06-29 | Microsoft Corporation | Apparatus and method for sharing antialiasing memory across multiple displays |
US6483505B1 (en) * | 2000-03-17 | 2002-11-19 | Ati International Srl | Method and apparatus for multipass pixel processing |
US6784884B1 (en) * | 2000-09-29 | 2004-08-31 | Intel Corporation | Efficient parametric surface binning based on control points |
US7453459B2 (en) * | 2001-02-26 | 2008-11-18 | Adobe Systems Incorporated | Composite rendering 3-D graphical objects |
US20020140710A1 (en) * | 2001-04-02 | 2002-10-03 | Fliflet Brandon L. | Method and apparatus for dynamically balancing graphics workloads on a demand-based zone renderer |
US7167171B2 (en) * | 2004-06-29 | 2007-01-23 | Intel Corporation | Methods and apparatuses for a polygon binning process for rendering |
US7589722B2 (en) * | 2004-08-10 | 2009-09-15 | Ati Technologies, Ulc | Method and apparatus for generating compressed stencil test information |
US8547382B2 (en) * | 2008-05-30 | 2013-10-01 | Advanced Micro Devices, Inc. | Video graphics system and method of pixel data compression |
US8587581B2 (en) * | 2009-10-15 | 2013-11-19 | Nvidia Corporation | Order-preserving distributed rasterizer |
GB0922126D0 (en) * | 2009-12-17 | 2010-02-03 | Advanced Risc Mach Ltd | Graphics processing systems |
US8619085B2 (en) * | 2010-03-08 | 2013-12-31 | Broadcom Corporation | Method and system for compressing tile lists used for 3D rendering |
JP5664052B2 (ja) * | 2010-09-15 | 2015-02-04 | 富士通セミコンダクター株式会社 | グラフィック処理装置、及び、グラフィック処理プログラム |
-
2011
- 2011-12-20 GB GB1121886.4A patent/GB2497762B/en active Active
-
2012
- 2012-10-24 US US13/658,997 patent/US9218793B2/en active Active
- 2012-11-29 JP JP2012260854A patent/JP6133582B2/ja active Active
- 2012-12-19 CN CN201210555381.0A patent/CN103226805B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101620724A (zh) * | 2008-06-04 | 2010-01-06 | Arm有限公司 | 图形处理系统 |
Also Published As
Publication number | Publication date |
---|---|
GB2497762A (en) | 2013-06-26 |
US9218793B2 (en) | 2015-12-22 |
GB2497762B (en) | 2018-05-23 |
CN103226805A (zh) | 2013-07-31 |
JP2013131216A (ja) | 2013-07-04 |
GB201121886D0 (en) | 2012-02-01 |
JP6133582B2 (ja) | 2017-05-24 |
US20130155103A1 (en) | 2013-06-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103226805B (zh) | 用于生成形成图形数据的帧的图形值的装置和方法 | |
US11069024B2 (en) | Primitive processing in a graphics processing system with tag buffer storage of primitive identifiers | |
DE102013017639B4 (de) | Zwischenspeicherung von adaptiv dimensionierten Cache-Kacheln in einem vereinheitlichten L2-Cache-Speicher mit Oberflächenkomprimierung | |
US11748941B1 (en) | Primitive processing in a graphics processing system | |
CN105023233B (zh) | 图形处理系统及其操作方法、计算机存储介质 | |
KR102625415B1 (ko) | 서브-프리미티브를 처리하기 위한 그래픽 처리 방법 및 시스템 | |
US9619937B2 (en) | Methods and apparatus for processing computer graphics primitives in tile-based graphics rendering system | |
CN106504181A (zh) | 用于处理子图元的图形处理方法和系统 | |
US20170330372A1 (en) | Graphics processing systems | |
GB2527822A (en) | Graphics processing | |
CN107038742A (zh) | 屏幕空间管线中的多通道渲染 | |
DE102013020613A1 (de) | Umgehung der Pixel-Schattierung für die grafische Bilderzeugung mit geringer Leistung | |
US8743117B2 (en) | Processing of 3D computer graphics data on multiple shading engines | |
KR20210066727A (ko) | 그래픽 처리 시스템 | |
US20210158584A1 (en) | Graphics processing systems | |
CN111489282A (zh) | 用于存储未变换图元块的存储器 | |
CN110084738A (zh) | 在扩展的图形处理管线中表示和处理几何形状的技术 | |
CN106204519A (zh) | 一种控制早期深度处理和后期深度处理的装置和方法 | |
US6795072B1 (en) | Method and system for rendering macropixels in a graphical image | |
Archer et al. | Further improvements to OIT sort performance | |
Vo et al. | Towards a flexible back-end for scenegraph-based rendering systems | |
DE102013017641B4 (de) | Umordnung von Grundelementen zwischen einer Welt-Raum-Pipeline und einer Bildschirm-Raum-Pipeline mit Pufferbeschränkter Verarbeitung | |
Müller-Wittig et al. | Challenges for modern Scene-Graph Systems. |
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 |