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

图形处理器制造技术

技术编号:41403367 阅读:23 留言: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.根据权利要求4所述的方法,其中,对于在所述第一预通道操作期间使用排他性深度测试函数的基元的片段,基于与所述片段所相关的所述采样位置相关联的跟踪位来进一步控制在所述第二主通道操作期间对所述片段的进一步处理,其中,能够在相应的第一预通道操作和第二主通道操作期间设置/清除所述跟踪位并且在所述第二主通道操作期间使用所述跟踪位,以针对深度值与所述片段所相关的所述采样位置在所述深度缓冲器中的所述对应条目匹配的一片段,确定该片段是否应当被剔除。

6.根据权利要求5所述的方法,其中,在所述第一预通道操作期间,当一片段引起所述深度缓冲器的更新时,如果该片段的指定深度测试函数是非排他性的,则将所述跟踪位设定为第一值,而如果该片段的指定深度测试函数是排他性的,则将所述跟踪位清除为第二值。

7.根据权利要求5所述的方法,其中,在所述第二主通道操作期间,对于如下片段执行以下操作,即,该片段的深度值与该片段所相关的所述采样位置在所述深度缓冲器中的所述对应条目匹配并且该片段的用于所述第一预通道操作的指定深度测试函数是排他性的:

8.根据权利要求7所述的方法,其中,如果在所述第二主通道操作期间对随后片段进行处理,并且该随后片段的深度值同样匹配该随后片段所相关的所述采样位置在所述深度缓冲器中的所述对应条目,并且该随后片段的用于所述第一预通道操作的指定深度测试函数是排他性的,则基于所述跟踪位被设置来剔除该后续片段。

9.根据权利要求4所述的方法,其中,如果一基元在所述第一预通道操作期间使用排他性深度测试函数,则确定该基元是不兼容的。

10.根据权利要求1或2所述的方法,其中,所述第一预通道操作还包含针对所述基元序列使用模板缓冲器对片段进行模板测试,其中,当一片段经受住所述模板测试时,相应地更新该片段所相关的所述采样位置的对应条目,以记录该片段的模板值,并且其中,所述第二主通道操作相应地包括:通过测试所述片段的模板值是否与所述片段所相关的所述采样位置在所述模板缓冲器中的对应条目相匹配,测试由所述第一预通道操作处理过并且可能已在所述第一预通道操作中更新了所述模板缓冲器的片段,以确定是否应当针对所述渲染输出进一步处理所述片段。

11.一种图形处理器,所述图形处理器包含用于处理基元的处理电路,其中,所述图形处理器被配置为:

12.根据权利要求11所述的图形处理器,其中,在所述第一预通道操作期间,所述处理电路被配置为使用所述片段的指定深度测试函数来执行片段深度测试,而在所述第二主通道操作期间,所述处理电路被配置为针对由所述第一预通道操作处理过并且在所述第一预通道操作中可能已更新了所述深度缓冲器的基元的所有片段使用等于深度测试函数,而不管针对所述片段的所述指定深度测试函数如何。

13.根据权利要求11或12所述的图形处理器,其中,响应于确定一基元与被所述第一预通道操作处理不兼容,所述处理电路被配置为相对于该不兼容基元停止所述第一预通道操作,并且随后替代地通过第三回退操作来处理该不兼容基元。

14.根据权利要求13所述的图形处理器,其中,所述处理电路被配置为在一基元的指定深度测试函数的极性与所述基元序列中的前一基元的指定深度测试函数的极性不同的情况下确定该基元与所述第一预通道操作不兼容。

15.根据权利要求14所述的图形处理器,其中,对于在所述第一预通道操作期间使用排他性深度测试函数的基元的片段,所述处理电路被配置为基于与所述片段所相关的所述采样位置相关联的跟踪位来进一步控制在所述第二主通道操作期间对所述片段的进一步处理,其中,能够在相应的第一预通道操作和第二主通道操作期间设置/清除所述跟踪位并且在所述第二主通道操作期间使用所述跟踪位,以针对深度值与所述片段所相关的所述采样位置在所述深度缓冲器...

【技术特征摘要】

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

2.根据权利要求1所述的方法,其中,在所述第一预通道操作期间,使用所述片段的指定深度测试函数来执行片段深度测试,而在所述第二主通道操作期间,将由所述第一预通道操作处理过的并且在所述第一预通道操作中可能已更新了所述深度缓冲器的基元的片段的所述深度测试函数修改为等于测试函数,而不管所述片段的所述指定深度测试函数如何。

3.根据权利要求1或2所述的方法,所述方法包括以下步骤:响应于确定一基元与被所述第一预通道操作处理不兼容,相对于该不兼容基元停止所述第一预通道操作,并且随后替代地通过第三回退操作来处理该不兼容基元。

4.根据权利要求3所述的方法,其中,如果一基元的指定深度测试函数的极性与所述基元序列中的前一基元的指定深度测试函数的极性不同,则确定该基元是不兼容的。

5.根据权利要求4所述的方法,其中,对于在所述第一预通道操作期间使用排他性深度测试函数的基元的片段,基于与所述片段所相关的所述采样位置相关联的跟踪位来进一步控制在所述第二主通道操作期间对所述片段的进一步处理,其中,能够在相应的第一预通道操作和第二主通道操作期间设置/清除所述跟踪位并且在所述第二主通道操作期间使用所述跟踪位,以针对深度值与所述片段所相关的所述采样位置在所述深度缓冲器中的所述对应条目匹配的一片段,确定该片段是否应当被剔除。

6.根据权利要求5所述的方法,其中,在所述第一预通道操作期间,当一片段引起所述深度缓冲器的更新时,如果该片段的指定深度测试函数是非排他性的,则将所述跟踪位设定为第一值,而如果该片段的指定深度测试函数是排他性的,则将所述跟踪位清除为第二值。

7.根据权利要求5所述的方法,其中,在所述第二主通道操作期间,对于如下片段执行以下操作,即,该片段的深度值与该片段所相关的所述采样位置在所述深度缓冲器中的所述对应条目匹配并且该片段的用于所述第一预通道操作的指定深度测试函数是排他性的:

8.根据权利要求7所述的方法,其中,如果在所述第二主通道操作期间对随后片段进行处理,并且该随后片段的深度值同样匹配该随后片段所相关的所述采样位置在所述深度缓冲器中的所述对应条目,并且该随后片段的用于所述第一预通道操作的指定深度测试函数是排他性的,则基于所述跟踪位被设置来剔除该后续片段。

9.根据权利要求4所述的方法,其中,如果一基元在所述第一预通道操作期间使用排他性深度测试函数,则确定该基元是不兼容的。

10.根据权利要求1或2所述的方法,其中,所述第一预通道操作还包含针对所述基元序列使用模板缓冲器对片段进行模板测试,其中,当一片段经受住所述模板测试时,相应地更新该片段所相关的所述采样位置的对应条目,以记录该片段的模板值,并且其中,所述第二主通道操作相应地包括:通过测试所述片段的模板值是否与所述片段所相关的所述采样位置在所述模板缓冲器中的对应条目相匹配,测试由所述第一预通道操作处理过并且可能已在所述第一预通道操作中更新了所述模板缓冲器的片段,以确定是否应当针对所述渲染输出进一步处理所述片段。

11.一种图形处理器,所述图形处理器包含用于处理基元的处理电路,其中,所述图形处理器被配置为:

【专利技术属性】
技术研发人员:T·K·伊加德S·卡卡尔拉普迪T·V·布尔基奇W·R·斯托耶
申请(专利权)人:Arm有限公司
类型:发明
国别省市:

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

1