System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 图形处理器制造技术_技高网
当前位置: 首页 > 专利查询>ARM有限公司专利>正文

图形处理器制造技术

技术编号:41403365 阅读:4 留言:0更新日期:2024-05-20 19:28
本发明专利技术涉及一种图形处理器。当执行基于图块的渲染时,执行第一预通道操作,在第一预通道操作中,处理图块的基元序列中的基元以确定基元序列的可见性信息,该可见性信息可用于确定基元序列中的基元的片段是否应当随后被另外处理以用于渲染输出。此后,执行第二主通道操作,在第二主通道操作中,基于所确定的基元序列的可见性信息来控制对在第一预通道操作期间处理过的基元的片段的另外处理,使得对于可见性信息指示片段不应当被另外处理以用于渲染输出的片段,在第二主通道期间的一些或全部处理被省略。可见性信息指示应当针对渲染输出的哪些采样位置渲染哪些基元。

【技术实现步骤摘要】

本文描述的技术涉及计算机图形的处理,并且尤其涉及图形处理中的隐藏表面去除。


技术介绍

1、许多数据处理系统包括图形处理器(图形处理单元(gpu))作为处理资源,其可操作以执行针对例如数据处理系统的主(例如主机)处理器(cpu)上执行的应用的处理任务。因此,可以通过向图形处理器提供要由图形处理器执行的命令(指令)流来使图形处理器执行针对应用的处理任务。例如,图形处理器的驱动器可准备包含要由图形处理器执行的命令(指令)的命令流,并且将命令流提供到图形处理器,然后图形处理器执行命令流中的命令(由命令指示的操作)。图形处理器还可以包括合适的命令流前端,其用于解析驱动器生成的命令并相应地针对图形处理器的各种功能单元调度处理任务。

2、因此,图形处理器可作为硬件加速器来提供,该硬件加速器可操作以根据来自主(例如,主机)处理器(cpu)的需求执行图形处理。图形处理器通常被配置为以更优化的方式(例如,相比于使用主(例如,主机)处理器(cpu)以使用通用计算来执行处理)来执行图形处理。

3、通常,首先通过将要渲染的图形处理(渲染)输出(诸如待显示的帧)划分为多个类似的几何形状的基本分量,以允许更容易地执行图形处理操作来执行图形处理。这些几何形状的基本分量通常可称为图形“基元”,并且这样的“基元”通常为简单多边形的形式,例如三角形、点、线等(或三角形、点、线的组)。

4、每个基元(例如,多边形)在此阶段由顶点集合限定并被表示为顶点集合。基元的每个顶点与表示顶点的数据集合(诸如位置、颜色、纹理和其他属性数据)相关联。然后,例如当光栅化和渲染顶点所涉及的基元时,使用该“顶点数据”,以便生成图形处理的期望渲染输出。

5、对于要由图形处理生成的给定输出(例如,待显示的帧),通常将存在针对所讨论的输出而定义的顶点集合。然后,针对输出的要处理的基元将被指示为包括正在生成的图形处理输出的顶点集合中的给定顶点。通常,总体输出(例如,要生成的帧)将被划分成更小的处理单位,称为“绘制调用”。每个绘制调用将具有针对其定义的相应顶点集合和使用那些顶点的相应基元。对于给定帧,可能存在例如几千个量级的绘制调用,以及数十万(或可能数百万)的基元。

6、一旦已经生成并定义了基元及其顶点,它们就可以由图形处理器处理,以便生成期望的图形处理输出(渲染目标),诸如供显示的帧。这基本上涉及确定与要处理的渲染输出区域相关联的采样位置阵列中的哪些采样位置被基元覆盖,然后确定每个采样位置应当具有的外观(例如,在其颜色方面等)以表示该采样位置处的基元。这些处理通常分别称为光栅化和渲染。(术语“光栅化”有时被用于意指基元转换到样本位置和渲染两者。然而,本文中“光栅化”将被用于指代将基元数据仅转换成采样位置地址)。

7、这些处理通常通过测试一个或多于一个的采样位置的集合来执行,然后针对被发现包括所讨论(正被测试)的基元内部(覆盖)的采样位置的每个采样位置集合生成通常被称为“片段”的离散图形实体,图形处理操作(诸如渲染)是在“片段”上执行的。因此,所覆盖的采样位置实际上被处理为片段,所述片段将用于在所讨论的采样位置处渲染基元。“片段”是通过渲染处理(渲染流水线)的图形实体。根据图形处理系统的配置方式,所生成并处理的每个片段可以例如表示单个采样位置或多个采样位置的集合。

8、因此,“片段”实际上是(与其相关联的)被内插到基元的给定输出空间采样位置或点的一组基元数据。它还可以包括在所讨论的采样位置(片段位置)处对基元进行着色所需的每基元和其他状态数据。每个图形片段通常可以具有与输出的“像素”(例如,输出帧)相同的大小和位置(因为当像素是最终显示中的奇异点时,图形处理器所操作(渲染)的“片段”与显示器的像素之间可以存在一对一映射)。然而,可能的情况是,片段与显示像素之间不存在一对一的对应关系,例如其中在显示最终图像之前对所渲染的图像执行特定形式的后处理(诸如下采样)。

9、还有一种情况是,由于在给定位置处的多个片段(例如,来自不同交叠基元)可能会相互影响(例如,由于透明度和/或混合),最终像素输出可能取决于该像素位置处的多个或所有片段。

10、相应地,采样位置与显示器的像素之间可以具有一对一的对应关系,但是更典型地,采样位置与显示像素之间可以不存在一对一的对应关系,因为可以对经渲染的样本值执行下采样以生成用于显示最终图像的输出像素值。类似地,在给定位置处的多个采样位置值(例如,来自不同交叠基元)相互影响的情况下(例如,由于透明度和/或混合),最终像素输出也将取决于该像素位置处的多个交叠采样值。

11、一种形式的图形处理使用所谓的“基于图块的”渲染。在基于图块的渲染中,二维渲染输出(即,渲染处理的输出,诸如要显示的输出帧)被渲染为多个更小面积的区域,通常被称为“渲染图块”。在这样的布置中,渲染输出通常(按面积)被划分成规则大小和形状的渲染图块(它们通常是矩形,例如方形)。(其它常用于“分块”和“基于图块的”渲染的术语包括“分组”(渲染的图块被称为“组块”)和“块状”渲染。为了方便,下文将使用术语“图块”和“分块”,但是应当理解,这些术语旨在涵盖其中渲染输出被渲染为多个更小面积区域的所有另选和等同术语和技术。

12、在基于图块的图形处理流水线中,正在生成的渲染输出的几何形状(基元)被拣选(sort)到具有渲染输出面积的区域中,以便允许识别针对渲染输出的给定区域需要处理的几何形状(基元)。该拣选允许识别针对渲染输出的给定区域需要处理的基元(以便例如避免不必要地渲染实际上不存在于该区域中的基元)。拣选处理产生要针对渲染输出的不同区域渲染的基元的列表(在本文中被称为“基元”列表,但是通常也被称为“多边形”或“图块”列表)。

13、一旦已经针对所有渲染输出区域准备了基元列表,就通过光栅化并渲染针对与渲染图块相对应的渲染输出的区域列出的基元来处理每个渲染图块。

14、因此,针对渲染输出的区域准备基元列表的处理基本上涉及确定针对给定渲染输出区域应当处理的基元。通常通过(以期望的准确度水平)确定与所讨论的渲染输出区域相交(即,至少部分地出现在渲染输出区域内)的基元,然后准备这些基元的列表以供图形处理系统将来使用来执行该处理。因此,对于每个待处理的基元,图形处理器读入相关联的顶点数据,至少将顶点位置转换到屏幕空间(顶点着色),然后使用针对每个基元的经着色顶点位置来确定基元至少部分地覆盖(并且因此应当渲染)渲染输出的区域。

15、这里应当注意,在基元落入多于一个的渲染输出区域的情况下(将经常是这种情况),其被包括在其所落入的每个区域的基元列表中。为其准备基元列表的渲染输出区域可以是单个渲染图块或多个渲染图块的组等。

16、实际上,每个渲染输出区域可以被视为具有箱(基元列表),被发现落在该区域内(即,相交)的任何基元被放置到箱中(并且实际上,以这种方式逐个区域地对基元进行拣选的处理通常被称为“分箱”)。

17、然后,以这种方式准备的基元列表可以例如被写出到存储器,并且一本文档来自技高网...

【技术保护点】

1.一种操作图形处理器的方法,所述方法包括:

2.根据权利要求1所述的方法,其中,所述基元识别信息集合针对所述渲染输出内的每个采样位置存储相应的基元识别符或指示所述采样位置未被基元覆盖的值。

3.根据权利要求1或2所述的方法,其中,所述基元识别符唯一地识别所述基元序列内的基元。

4.根据权利要求3所述的方法,其中,针对所述基元序列的所述基元识别符在所述基元序列内从特定起始值单调地改变。

5.根据权利要求1或2所述的方法,其中,所述第一预通道操作包括使用针对所述基元序列的深度缓冲区对片段进行深度测试,并且其中,当片段引起对所述深度缓冲区的更新时,与所述片段相关联的所述基元识别符被写入到所述基元识别信息集合中的针对所述片段所相关的所述一个或更多个采样位置的对应的一个或更多个条目。

6.根据权利要求1所述的方法,其中,至少对于在所述第一预通道操作期间被处理过且能够更新所述基元识别信息集合的基元,在所述第二主通道操作期间针对片段执行的对照所述基元识别信息集合的所述可见性测试包括:确定与所述片段相关联的基元识别符是否匹配所述基元识别信息集合中的针对所述片段所相关的所述采样位置的对应条目,以确定是否应当针对所述采样位置另外处理所述片段。

7.根据权利要求1所述的方法,其中,作为所述第二主通道操作的部分,使片段经受多个不同可见性测试的集合中的一者,以对照所述基元识别信息集合来测试所述片段的所述相关联的基元识别符,其中,基于所述基元是否能够在所述第一预通道操作期间生成可见性信息来确定所述多个不同可见性测试的所述集合中的被用于特定片段的所述一者。

8.根据权利要求6或7所述的方法,其中,对于在所述第一预通道操作期间不能生成可见性信息但在所述第二主通道操作期间要被处理的基元,在所述第二主通道操作期间执行的对照所述基元识别信息集合对这样的基元的片段的所述可见性测试包括:确定与所述片段相关联的所述基元的基元识别符值是大于还是小于存储在所述基元识别信息集合中的针对所述片段所相关的所述采样位置的对应条目中的所述基元识别符,以确定是否应当针对所述采样位置另外处理所述片段。

9.根据权利要求8所述的方法,其中,对于在所述第一预通道操作期间不能生成可见性信息并且其相关联的片段在所述第二主通道操作期间的对照所述基元识别信息集合的所述可见性测试中存活的基元,所述存活的片段在所述第二主通道操作期间经受另外的深度测试,其中,所述另外的深度测试包括对照在所述第一预通道操作期间生成的深度缓冲区对所述片段进行深度测试。

10.根据权利要求1或2所述的方法,其中,一旦完成对所述基元序列的所述处理,就丢弃针对所述基元序列的所述基元识别信息集合。

11.一种图形处理器,所述图形处理器被配置成生成渲染输出,所述图形处理器包括光栅化电路和渲染电路,所述光栅化电路能够被操作成将基元光栅化为一个或更多个片段的相应集合,并且所述渲染电路能够被操作成处理所得片段以生成渲染输出数据,其中,所述图形处理器被配置成:

12.根据权利要求11所述的图形处理器,其中,所述基元识别信息集合能够针对所述渲染输出内的每个采样位置存储相应的基元识别符或指示所述采样位置未被基元覆盖的值。

13.根据权利要求11或12所述的图形处理器,其中,每个基元识别符唯一地识别所述基元序列内的基元。

14.根据权利要求13所述的图形处理器,其中,针对所述基元序列的所述基元识别符在所述基元序列内从特定起始值单调地改变。

15.根据权利要求11或12所述的图形处理器,其中,所述图形处理器被配置为:在所述第一预通道操作期间,使用针对所述基元序列的深度缓冲区来执行片段的深度测试,并且其中,当片段引起对所述深度缓冲区的更新时,与所述片段相关联的所述基元识别符被写入到所述基元识别信息集合中的针对所述片段所相关的一个或更多个采样位置的对应的一个或更多个条目。

16.根据权利要求11所述的图形处理器,其中,至少对于在所述第一预通道操作期间被处理过且能够更新所述基元识别信息集合的基元,在所述第二主通道操作期间针对片段执行的对照所述基元识别信息集合的所述可见性测试包括:确定与所述片段相关联的基元识别符是否等于所述基元识别信息集合中的针对所述片段所相关的所述采样位置的对应条目,以确定是否应当针对所述采样位置另外处理所述片段。

17.根据权利要求11所述的图形处理器,其中,作为所述第二主通道操作的部分,使片段经受多个不同可见性测试的集合中的一者,以对照所述基元识别信息集合测试所述片段的所述相关联的基元识别符,其中,基于所述基元是否能够在所述第一预通道操作...

【技术特征摘要】

1.一种操作图形处理器的方法,所述方法包括:

2.根据权利要求1所述的方法,其中,所述基元识别信息集合针对所述渲染输出内的每个采样位置存储相应的基元识别符或指示所述采样位置未被基元覆盖的值。

3.根据权利要求1或2所述的方法,其中,所述基元识别符唯一地识别所述基元序列内的基元。

4.根据权利要求3所述的方法,其中,针对所述基元序列的所述基元识别符在所述基元序列内从特定起始值单调地改变。

5.根据权利要求1或2所述的方法,其中,所述第一预通道操作包括使用针对所述基元序列的深度缓冲区对片段进行深度测试,并且其中,当片段引起对所述深度缓冲区的更新时,与所述片段相关联的所述基元识别符被写入到所述基元识别信息集合中的针对所述片段所相关的所述一个或更多个采样位置的对应的一个或更多个条目。

6.根据权利要求1所述的方法,其中,至少对于在所述第一预通道操作期间被处理过且能够更新所述基元识别信息集合的基元,在所述第二主通道操作期间针对片段执行的对照所述基元识别信息集合的所述可见性测试包括:确定与所述片段相关联的基元识别符是否匹配所述基元识别信息集合中的针对所述片段所相关的所述采样位置的对应条目,以确定是否应当针对所述采样位置另外处理所述片段。

7.根据权利要求1所述的方法,其中,作为所述第二主通道操作的部分,使片段经受多个不同可见性测试的集合中的一者,以对照所述基元识别信息集合来测试所述片段的所述相关联的基元识别符,其中,基于所述基元是否能够在所述第一预通道操作期间生成可见性信息来确定所述多个不同可见性测试的所述集合中的被用于特定片段的所述一者。

8.根据权利要求6或7所述的方法,其中,对于在所述第一预通道操作期间不能生成可见性信息但在所述第二主通道操作期间要被处理的基元,在所述第二主通道操作期间执行的对照所述基元识别信息集合对这样的基元的片段的所述可见性测试包括:确定与所述片段相关联的所述基元的基元识别符值是大于还是小于存储在所述基元识别信息集合中的针对所述片段所相关的所述采样位置的对应条目中的所述基元识别符,以确定是否应当针对所述采样位置另外处理所述片段。

9.根据权利要求8所述的方法,其中,对于在所述第一预通道操作期间不能生成可见性信息并且其相关联的片段在所述第二主通道操作期间的对照所述基元识别信息集合的所述可见性测试中存活的基元,所述存活的片段在所述第二主通道操作期间经受另外的深度测试,其中,所述另外的深度测试包括对照在所述第一预通道操作期间生成的深度缓冲区对所述片段进行深度测试。

10.根据权利要求1或2所述的方法,其中,一旦完成对所述基元序列的所述处理,就丢弃针对所述基元序列的所述基元识别信息集合。

11.一种图形处理器,所述图形处理器被配置成生成渲染输出,所述图形处理器包括光栅化电路和渲染电路,所述光栅化电路能够被操作成将基元光栅化为一个或更多个片段的相...

【专利技术属性】
技术研发人员:T·K·伊加德S·卡卡尔拉普迪P·C·加西亚
申请(专利权)人:Arm有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1