并行平铺引擎管线中的图元块的处理的制作方法

文档序号:8528005阅读:258来源:国知局
并行平铺引擎管线中的图元块的处理的制作方法
【技术领域】
[0001]本发明涉及图形处理系统,具体地,涉及并行平铺引擎管线中的图元块的处理。
【背景技术】
[0002]图形处理系统用于绘制图像,例如用于在屏幕上显示图像。图像数据在图形处理系统处被接收,该图像处理系统使用公知的方法将图像数据转换至屏幕空间。经转换的图像数据描述将由图像处理系统绘制的图元,其中每个图元包括一个或者多个片元,该片元对应于图形处理系统的绘制空间的相应的一个或者多个采样位置。在某些示例中,单一采样位置可以对应于最终绘制的图像的像素位置,然而在其他示例中,多于一个(例如,四个)采样位置可以对应于每个像素位置。某些图像处理系统可以是基于瓦片的,其中他们包括被子划分为多个区域(在此被称为“瓦片”)的绘制空间,其中每个区域包括多个采样位置。瓦片通常是矩形(在此使用的术语“矩形”包括正方形),但是也可以是其他形状,诸如三角形或者六边形。绘制空间可以对应于用于在屏幕上显示的图像,但是其他绘制目标诸如存储器中的纹理数据也是可行的。瓦片可以是各种尺寸,例如,瓦片可以是16X16像素。在高屏幕分辨率图像的示例中可以是1280X1024像素。由此作为示例,高屏幕分辨率图像可以被子划分为5120个瓦片(每个包括16 X 16像素)。
[0003]针对定义一个或者多个瓦片的组的每个图元定义包围盒,该瓦片包括绘制空间内的图元的片元的全部。平铺单元针对图元的包围盒内的每个瓦片处理图元,以确定图元是否存在于瓦片之内(即,至少部分地重叠瓦片)。存在于瓦片内的图元的图元标识符被添加至用于该瓦片的显示列表。此有助于在基于瓦片的图形处理系统中进一步以基于逐个瓦片的方式来执行处理,这是因为针对每个瓦片,相应的显示列表指示为了处理瓦片所需要的图元。对存在于瓦片内的图元的进一步处理通常依赖于图元的提交顺序。例如,半透明图元的处理可以依赖于以从后向前顺序提交的图元。图形处理系统典型地依赖于以正确顺序提交的图元的应用,这样平铺过程不会将图元的提交顺序从图元被接收到的顺序有所改变。即,图元的原始提交顺序必须被保留在用于该瓦片的每个显示列表中。在某些系统中,图元被组织为图元块,其中每个图元块与序列号相关联,其可被用作确保图元块的顺序得到维护。
[0004]平铺单元可以包括平铺引擎管线,其一次处理图元的一个图元块以确定图元块内的图元存在于哪个瓦片内。通过使用平铺单元中的单一平铺引擎管线有助于确保图元的顺序不被平铺处理而调整,但是随着场景中图元数量的增加,和/或随着绘制空间中的瓦片数量的增加,需要由单一平铺引擎执行的处理的数量增加,并且这成为平铺处理的瓶颈。

【发明内容】

[0005]为了改进平铺单元的性能(例如,为了降低由平铺单元执行的处理的延迟),多个平铺引擎管线可以被实现以并行地在相应图元块上执行平铺处理。在平铺单元中并行地处理多个图元块可以允许更快地执行图元的平铺。如上所述,在用于瓦片的显示列表中必须保持图元的原始提交顺序。对于每个平铺引擎管线而言维护特定图元块内的图元的顺序是不重要的,但是如果一个以上的并行平铺引擎管线正在处理重叠相同瓦片的图元块时,则重要的是确保在较迟的图元块(例如,具有较高序列号的图元块)的图元的图元标识符被写入用于一瓦片的显示列表之前,将用于较早图元块(例如,具有较低序列号的图元块)的图元的图元标识符写入用于相同瓦片的显示列表。这意味着,正在处理较迟图元块的图元的平铺引擎管线必须等待正在处理较早图元块的另一平铺引擎管线结束将图元标识符写入用于瓦片的显示列表。不希望让平铺引擎管线等待(即,空闲)。也即,在由并行平铺引擎管线正在并行处理的图元块具有重叠包围盒时,平铺引擎管线的性能受到影响,这可以导致某些平铺引擎管线由于它们在等待另一平铺引擎管线处理较早的图元块的图元而处于空闲。由此,优化平铺引擎管线的调度因而降低平铺引擎管线的空闲时间,这是有益的。
[0006]根据在此描述的一个示例,多个并行平铺引擎管线中的每一个处理相应图元块,并且基于图元块与当前在并行平铺引擎管线中正在被处理的任何其他图元块是否重叠,而确定针对相应图元块的多个区域中的每个区域的优先级。针对其确定优先级的每个区域可以包括一个或者多个瓦片。例如,基于其他图元块的序列号是大于还是小于第一图元块的序列号,与在其他平铺引擎管线中当前正在被处理的其他图元块重叠的第一图元块中的区域被优先处理。为了维护图元的提交顺序,来自具有较低序列号的图元块的图元的图元标识符在具有较高序列号的图元块的图元的图元块之前被写入用于瓦片的显示列表。由此,在在此描述的示例中,如果第一图元块的区域与具有较高序列号的并且在另一平铺引擎管线中当前正在被处理的另一图元块的区域重叠,则对于第一图元块的区域给定的优先级较高。此外,在在此描述的示例中,如果第一图元块的区域与具有较低序列号的并且在另一平铺引擎管线中当前正在被处理的另一图元块的区域重叠,则对于第一图元块的区域给定的优先级较低。以此方式,可以缩减在平铺引擎管线花费在空闲状态的时间量。
[0007]提供了一种用于在图形处理系统内处理多个平铺引擎管线中的图元块的序列的方法,所述图形处理系统配置以使用被子划分为多个瓦片的绘制空间,其中所述平铺引擎管线被设置以并行地处理相应图元块,以及其中所述绘制空间内的所述图元块中的每个图元块的位置是由相应位置指示符来指示的,以及所述图元块的序列内的所述图元块中的每个图元块的位置是由相应序列指示符来指示的,所述方法包括,对于多个相应图元块的中的每个相应图元块:确定对于所述相应图元块的多个区域中的每个区域的优先级,所述区域中的每个区域包括一个或者多个瓦片,其中如果在所述并行平铺引擎管线中当前正在被处理的所述图元块的所述位置指示符指示所述相应图元块的特定区域内存在重叠图元块,则针对所述特定区域的所述优先级是基于所述重叠图元块的所述序列指示符来确定的;以及被设置以处理所述相应图元块的所述平铺引擎管线基于针对所述区域确定的优先级来按照瓦片顺序,针对所述相应图元块的所述区域的瓦片来处理所述相应图元块的图元,由此针对所述相应图元块的所述区域的所述瓦片中的每个瓦片,如果所述相应图元块的图元存在于所述瓦片内的话,确定所述相应图元块的哪个图元存在于所述瓦片内。
[0008]针对相应图元块的多个区域确定优先级的步骤可以由以下中的任一项执行:(i)被设置以处理相应图元块的平铺引擎管线,或者(ii)控制模块。
[0009]提供了一种用于在图形处理系统内处理图元块的序列的平铺单元,所述图形处理系统配置以使用被子划分为多个瓦片的绘制空间,其中所述平铺单元被配置以使用相应位置指示符来指示所述绘制空间内的所述图元块中的每个图元块的位置,以及使用相应序列指示符来指示所述图元块的序列内的所述图元块中的每个图元块的位置,其中所述平铺单元包括多个平铺引擎管线,所述多个平铺引擎管线配置以并行地处理相应图元块,以及其中对于多个相应图元块的中的每个相应图元块,所述平铺单元被配置以:确定对于所述相应图元块的多个区域中的每个区域的优先级,所述区域中的每个区域包括一个或者多个瓦片,其中如果在所述并行平铺引擎管线中当前正在被处理的所述图元块的所述位置指示符指示所述相应图元块的特定区域内存在重叠图元块,则针对所述特定区域的所述优先级是基于所述重叠图元块的所述序列指示符来确定的;以及使用被设置以处理所述相应图元块的所述平铺引擎管线基于针对所述区域确定的优先级来按照瓦片顺序,针对所述相应图元块的所述区域的瓦片来处理所述相应图元块的图元,由此针对所述相应图元块的所述区域的所述瓦片中的每个瓦片,如果所述相应图元块的图元存在于所述瓦片内的话,确定所述相应图元块的哪个图元存在于所述瓦片内。
[0010]还提供了计算机可读代码,当所述计算机可读代码在计算机上运行时,所述代码适配以执行在此描述的任一方法的步骤。此外,提供了用于根据在此描述的任一示例来生成平铺单元的计算机可读代码。计算机可读代码可以编码在计算机可读存储介质上。
[0011]提供此
【发明内容】
以简化的形式介绍概念的选择,并且在下文的详细说明书中进行进一步描述。此
【发明内容】
并不旨在标识请求主题的关键特征或者必要特征,也并不旨在用于限制请求的主题的范围。对于本领域技术人员易见的是,上述特征可以在适当时进行组合,并且可以与在此描述的任何方面进行组合。
【附图说明】
[0012]现在将参考附图详细描述示例,在附图中:
[0013]图1示出了图形处理系统的部分的示意图;
[0014]图2是图元块的序列的处理方法的流程图;
[0015]图3a至图3d表示第一示例中的三个重叠图元块的瓦片的优先级;
[0016]图4a至图4c表示第二示例中的两个非重叠图元块的优先级;
[0017]图5a至图5c表示第三示例中的两个重叠图元块的区域的优先级;
[0018]图6a至图6d表示第四示例中的三个重叠图元块的优先级;
[0019]图7a至图7c表示第五示例中的两个重叠图元块的区域的优先级;以及
[0020]图8a至图8d表示第六示例中的三个重叠图元块的区域的优先级。
[0021]附图示出了各种示例。本领域技术人员应当理解,在附图中示出的元素边界(例如,方框、方框的组或者其他形状)表示边界的一个示例。在某些示例中,一个元素可以设计为多个元素,或者多个元素可以设计为一个元素。贯穿附图使用了相同的参考数字,在适当的时候以指示相似的特征。
【具体实施方式】
[0022]现在将仅借助于示例描述实施方式。图1示出了图形处理系统102,其包括平铺单元104和存储器106。平铺单元104包括控制模块108、三个平铺引擎管线IlOciUlOjPIlO2,以及存储112用于存储显示列表的存储。在在此详细描述的示例中,图1所示的平铺单元104的元素可以以硬件实现,但是在其他示例中,在平铺单元的某些或者全部元素可以以软件实现以便在计算机处理器上执行。此外,对于本领域技术人员易见的是,图形处理系统102可以包括除了图1所示以外的其他组件,但是出于描述的目的,仅绘出了足以描述相关于平铺处理的组件。
[0023]控制模块108设置以接收图元块的序列,其包括将被绘制的图像中的屏幕空间中已经存在的图元。例如,图形处理系统102可以实现顶点处理操作以处理从应用所接收到的进入图像数据,以便将图像数据转换为屏幕空间,并且用以向平铺单元104提供图元块的序列。控制模块108配置以向平铺引擎管线110提供图元块。平铺引擎管线110配置以在图元块的图元上执行平铺处理,由此确定哪个瓦片与图元块的哪个图元重叠,如下文将详细描述。平铺引擎管线110的输出耦合至存储112。平铺单元104配置以从存储112向存储器106提供输出,由此平铺处理的结果(B卩,用于瓦片的显示列表)可以存储在存储器106 中。
[0024]参考图2的流程图来描述平铺单元104的操作。在步骤S202中,平铺单元104(尤其是,控制单元108)接收包括图元的图元块的序列,如上文中已经在屏幕空间中描述。图元以提交顺序包括在图元块的序列中,由此图元块内的图元的顺序得以维护。此外,每个图元块具有序列指示符(例如,序列号),其描述图元块在图元块的序列内的位置。序列号可以用于确保维护序列中的图元块的顺序。图元可以被组织为图元块,由此例如图元块中的图元的最大数目为N,并且图元块中的顶点的最大数目为M。进入图像数据中的第一 N个图元包括在第一图元块中,继而接下来的N个图元包括在下一图元块中,等等。作为示例,N可以是8
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1