首页 / 专利库 / 制造过程 / 计算机集成制造 / 用于图形处理的穿通技术

用于图形处理的穿通技术

阅读:998发布:2020-05-08

专利汇可以提供用于图形处理的穿通技术专利检索,专利查询,专利分析的服务。并且本文公开了涉及 渲染 需要 着色器 操作以确定可见度的 图形对象 的技术。在一些实施方案中,图形单元被配置为处理反馈对象,该反馈对象可能需要着色以确定它们是否相对于先前处理的对象是可见的,不按绘制顺序。例如,在其中 缓冲器 用于存储用于延迟渲染的 片段 数据的实施方案中,图形单元可绕过缓冲器并且在更早的非反馈对象之前将反馈对象进行着色,该非反馈对象的片段数据存储在该缓冲器中。这可允许确定是否从缓冲器中移除遮蔽的非反馈片段数据,这可减少图形过度绘制。在所公开的双扫描技术中,首先允许反馈对象的数据绕过缓冲器以用于可见度着色,但然后将其存储在缓冲器中以进行第二次扫描以执行片段着色以实际确定 像素 属性,这可进一步减少过度绘制。,下面是用于图形处理的穿通技术专利的具体信息内容。

1.一种装置,包括:
光栅电路,所述光栅电路被配置为根据由图形程序指定的绘制顺序来生成图形对象片段数据,包括:
反馈对象,相对于所述绘制顺序中的先前对象,所述装置被配置为在执行一个或多个着色器操作之后确定所述反馈对象的可见度;和
非反馈对象,相对于所述绘制顺序中的先前对象,所述装置被配置为在针对所述对象执行着色操作之前确定所述非反馈对象的可见度;
缓冲电路,所述缓冲电路被配置为存储未被先前处理的对象遮蔽的片段数据,其中所述装置被配置为丢弃被后续处理的对象遮蔽的来自所述缓冲电路的片段数据;
着色器处理元件,所述着色器处理元件被配置为基于存储在所述缓冲电路中的所述片段数据来执行片段着色;
其中所述装置被配置为:
绕过所述缓冲电路,并且在对绘制顺序比反馈对象更早的非反馈对象进行着色之前,使用所述着色器处理元件对所述反馈对象进行着色;以及
基于所述反馈对象的着色,确定是将所述非反馈对象的片段数据保留在所述缓冲电路中还是从所述缓冲电路中移除所述非反馈对象的片段数据。
2.根据权利要求1所述的装置,
其中所述装置被配置为将针对所述反馈对象的着色器程序拆分成用于确定所述反馈对象的可见度的第一组着色器指令以及用于确定所述反馈对象的像素属性的第二组着色器指令;并且
其中所述装置被配置为绕过所述第一组指令的所述缓冲电路,并且基于所述缓冲电路中的所述第一组着色器指令来存储被确定为当前可见的片段数据,以用于使用所述第二组着色器指令进行后续处理。
3.根据权利要求2所述的装置,其中所述装置被配置为在针对所述反馈对象的片段数据的一部分执行所述第二组着色器指令之前,响应于所述片段数据被后续处理的对象遮蔽,从所述缓冲电路移除所述反馈对象的片段数据的所述部分。
4.根据权利要求1所述的装置,其中所述装置被配置为执行分式延迟渲染,并且其中所述缓冲电路被配置为存储当前针对正在处理的图块不被遮蔽的片段数据。
5.根据权利要求1所述的装置,还包括:
深度排序电路,所述深度排序电路被配置为基于深度缓冲器模版缓冲器来确定片段数据当前是否可见;和
标签排序电路,所述标签排序电路被配置为使用每个样本的标签来存储来自所述深度排序电路的片段数据,其中所述标签识别对应的基元和绘制状态信息。
6.根据权利要求1所述的装置,还包括独立的缓冲电路,所述装置被配置为使用所述独立的缓冲电路来并行地处理屏幕空间中的多个图块。
7.根据权利要求1所述的装置,其中所述装置被配置为随后执行着色以确定所述非反馈对象的保留片段数据的像素属性。
8.根据权利要求1所述的装置,还包括:
像素调度电路,所述像素调度电路被配置为将来自所述缓冲电路的数据清除到所述着色器处理元件以用于着色。
9.一种方法,包括:
由光栅电路根据由图形程序指定的绘制顺序来生成图形对象的片段数据,包括:
反馈对象,相对于所述绘制顺序中的先前对象,所述反馈对象的可见度在执行一个或多个着色器操作之后被确定;和
非反馈对象,相对于所述绘制顺序中的先前对象,所述非反馈对象的可见度在针对所述对象执行着色操作之前被确定;
由缓冲电路存储未被先前处理的对象遮蔽的片段数据,并且丢弃被后续处理的对象遮蔽的来自所述缓冲电路的片段数据;
绕过所述缓冲电路,并且在对绘制顺序比反馈对象更早的非反馈对象进行着色之前,使用着色器处理元件对所述反馈对象进行着色;以及
基于所述反馈对象的着色,确定是将所述非反馈对象的片段数据保留在所述缓冲电路中还是从所述缓冲电路中移除所述非反馈对象的片段数据。
10.根据权利要求9所述的方法,还包括:
将针对所述反馈对象的着色器程序拆分成用于确定所述反馈对象的可见度的第一组着色器指令以及用于确定所述反馈对象的像素属性的第二组着色器指令;以及绕过所述第一组指令的所述缓冲电路,并且基于所述缓冲电路中的所述第一组着色器指令来存储被确定为当前可见的片段数据,以用于使用所述第二组着色器指令进行后续处理。
11.根据权利要求10所述的方法,还包括在针对所述反馈对象的片段数据的一部分执行所述第二组着色器指令之前,响应于所述片段数据被后续处理的对象遮蔽,从所述缓冲电路移除所述反馈对象的片段数据的所述部分。
12.根据权利要求9所述的方法,还包括:
使用深度排序电路以基于深度缓冲器和模版缓冲器来确定片段数据当前是否可见;以及
使用标签排序电路以使用每个样本的标签来存储来自所述深度排序电路的片段数据,其中所述标签识别对应的基元和绘制状态信息。
13.根据权利要求9所述的方法,还包括:
随后执行着色以确定所述缓冲电路中的所述非反馈对象的保留片段数据的像素属性。
14.一种存储有设计信息的非暂态计算机可读存储介质,所述设计信息以半导体制造系统识别的格式指定硬件集成电路的至少一部分的设计,所述半导体制造系统被配置为使用所述设计信息来根据所述设计生产所述电路,所述非暂态计算机可读存储介质包括:
光栅电路,所述光栅电路被配置为根据由图形程序指定的绘制顺序来生成图形对象的片段数据,包括:
反馈对象,相对于所述绘制顺序中的先前对象,所述电路被配置为在执行一个或多个着色器操作之后确定所述反馈对象的可见度;和
非反馈对象,相对于所述绘制顺序中的先前对象,所述电路被配置为在针对所述对象执行着色操作之前确定所述非反馈对象的可见度;
缓冲电路,所述缓冲电路被配置为存储未被先前处理的对象遮蔽的片段数据,其中所述电路被配置为丢弃被后续处理的对象遮蔽的来自所述缓冲电路的片段数据;
着色器处理元件,所述着色器处理元件被配置为基于存储在所述缓冲电路中的所述片段数据来执行片段着色;
其中所述电路被配置为:
绕过所述缓冲电路,并且在对绘制顺序比反馈对象更早的非反馈对象进行着色之前,使用所述着色器处理元件对所述反馈对象进行着色;以及
基于所述反馈对象的着色,确定是将所述非反馈对象的片段数据保留在所述缓冲电路中还是从所述缓冲电路中移除所述非反馈对象的片段数据。
15.根据权利要求14所述的非暂态计算机可读存储介质,
其中所述电路被配置为将针对所述反馈对象的着色器程序拆分成用于确定所述反馈对象的可见度的第一组着色器指令以及用于确定所述反馈对象的像素属性的第二组着色器指令;并且
其中所述电路被配置为绕过所述第一组指令的所述缓冲电路,并且基于所述缓冲电路中的所述第一组着色器指令来存储被确定为当前可见的片段数据,以用于使用所述第二组着色器指令进行后续处理。
16.根据权利要求15所述的非暂态计算机可读存储介质,其中所述电路被配置为在针对所述反馈对象的片段数据的一部分执行所述第二组着色器指令之前,响应于所述片段数据被后续处理的对象遮蔽,从所述缓冲电路移除所述反馈对象的片段数据的所述部分。
17.根据权利要求14所述的非暂态计算机可读存储介质,其中所述设计信息指定所述电路还包括:
深度排序电路,所述深度排序电路被配置为基于深度缓冲器和模版缓冲器来确定片段数据当前是否可见;和
标签排序电路,所述标签排序电路被配置为使用每个样本的标签来存储来自所述深度排序电路的片段数据,其中所述标签识别对应的基元和绘制状态信息。
18.根据权利要求14所述的非暂态计算机可读存储介质,其中所述设计信息指定所述电路还包括独立的缓冲电路,所述电路被配置为使用所述独立的缓冲电路来并行地处理屏幕空间中的多个图块。
19.根据权利要求14所述的非暂态计算机可读存储介质,其中所述电路被配置为随后执行着色以确定所述非反馈对象的保留片段数据的像素属性。
20.根据权利要求14所述的非暂态计算机可读存储介质,其中所述设计信息指定所述电路还包括像素调度电路,所述像素调度电路被配置为将来自所述缓冲电路的数据清除到所述着色器处理元件以用于着色。

说明书全文

用于图形处理的穿通技术

背景技术

技术领域

[0001] 本公开整体涉及图形处理器,并且更具体地涉及用于渲染需要着色以确定可见度的图形对象的技术。
[0002] 相关技术的描述
[0003] 一些图形处理器使用片上缓冲器来存储已被光栅化以有利于延迟渲染的对象(其也可称为基元)的可见片段。分式延迟渲染(TBDR)是使用图块缓冲器的一个示例。当后续对象被光栅化时(例如,基于图形程序的绘制顺序),它们可复写图块缓冲器中的现有对象的数据。因此,在给定时间点处,图块缓冲器可存储当前被确定为可见,但随后可在被着色之前被后续对象复写的片段数据。最终,来自图块缓冲器的数据被发送至可编程着色器以用于着色器处理以确定像素属性(其可存储在例如可用于生成待显示的数据的缓冲器的颜色缓冲器中)。使用图块缓冲器并丢弃遮蔽对象的数据可减少图形单元中的总体着色器处理。一般来讲,相对于即时模式渲染,TBDR技术在图形处理器中可能需要较少的专用带宽。
[0004] 然而,一些对象需要片段着色操作来确定其最终可见度。这些对象可被称为反馈对象,并且与图块缓冲器中的先前数据重叠(例如,在像素或样本粒度处)的反馈对象可迫使将图块缓冲器的一部分清除至可编程着色器,并且可导致图形单元使比所需的更多的像素被着色(其通常被称为“过度绘制”)。减少过度绘制通常会提高图形单元中的性能和/或降低功耗。发明内容
[0005] 本文公开了涉及渲染需要着色器操作以确定可见度的图形对象的技术。在一些实施方案中,图形单元被配置为处理反馈对象,该反馈对象可能需要着色以确定它们是否相对于先前处理的对象是可见的,不按绘制顺序。例如,在其中缓冲器用于存储用于延迟渲染的片段数据的实施方案中,图形单元可绕过缓冲器并且在更早的非反馈对象之前将反馈对象进行着色,该非反馈对象的片段数据存储在该缓冲器中。这可允许确定是否从缓冲器中移除遮蔽的非反馈片段数据,这可例如相对于传统技术(其中反馈对象将强制对先前非反馈对象的数据进行清除和着色)来减少过度绘制。
[0006] 在一些实施方案中,绕过的反馈数据用于基于着色来更新颜色缓冲器。在一些实施方案中,双扫描技术涉及允许反馈对象的数据绕过缓冲器以用于可见度着色,然后在缓冲器中存储反馈对象的当前可见数据以等待第二次扫描来执行片段着色并实际确定像素属性。在一些实施方案中,该双扫描技术还可例如通过以下操作来进一步减少过度绘制:当绘制顺序在反馈对象之后的对象在第一次扫描和第二次扫描之间被存储在缓冲器中时,允许其遮蔽反馈对象的片段数据。附图说明
[0007] 图1A是示出示例性图形处理流的框图
[0008] 图1B是示出了图形单元的一个实施方案的框图。
[0009] 图2是示出根据一些实施方案的示例性片段流线的框图。
[0010] 图3是示出根据一些实施方案的用于延迟渲染的示例性排序和缓冲电路的框图。
[0011] 图4是示出分别使用快速路径和双扫描穿通技术的反馈对象和非反馈对象的示例性处理指令的示意图。
[0012] 图5是示出根据一些实施方案的用于针对反馈对象绕过缓冲器的示例性方法的流程图
[0013] 图6是示出包括图形单元的设备的一个实施方案的框图。
[0014] 图7是示出根据一些实施方案的示例性计算机可读介质的框图。
[0015] 本说明书包括对各种实施方案的参考,以指示本公开并非旨在提及一个特定具体实施,而是提及落入包括所附权利要求书的本公开的实质内的一系列实施方案。特定特征、结构或特性可以与本公开一致的任何合适的方式被组合。
[0016] 在本公开内,不同实体(其可被不同地称为“单元”、“电路”、其他部件等)可被描述或声称成“被配置为”执行一个或多个任务或操作。此表达方式—被配置为[执行一个或多个任务]的[实体]—在本文中用于指代结构(即,物理的事物,诸如电子电路)。更具体地,此表达方式用于指示此结构被布置成在操作期间执行一个或多个任务。结构可被说成“被配置为”执行某个任务,即使该结构当前并非正被操作。“被配置为生成输出时钟信号的时钟电路”旨在覆盖例如在操作期间执行此功能的电路,即使论述中的电路当前并未被使用(例如,该电路并未连接到功率)。因此,被描述或表述为“被配置为”执行某个任务的实体指代用于实施该任务的物理的事物,诸如设备、电路、存储有可执行程序指令的存储器等。此短语在本文中不被用于指代无形的事物。
[0017] 术语“被配置为”并不旨在意指“可配置为”。例如,未经编程的FPGA不会被认为是“被配置为”执行某个特定功能,虽然其可能“可配置为”执行该功能。在适当编程之后,FPGA然后可被配置为执行该功能。
[0018] 所附权利要求书中的表述结构“被配置为”执行一个或多个任务明确地旨在对该权利要求要素不援引35U.S.C.§112(f)。于是,所提交的本申请中没有任何权利要求旨在要被解释为具有装置-加-功能要素。如果申请人在申请过程期间想要援引节段112(f),则其将使用“用于”[执行功能]“的装置”结构来表述权利要求要素。
[0019] 如本文所用,术语“基于”用于描述影响确定的一个或多个因素。此术语不排除可能有附加因素可影响确定。也就是说,确定可仅基于指定的因素或基于所指定的因素及其他未指定的因素。考虑短语“基于B确定A”。此短语指定B是用于确定A的因素或者B影响A的确定。此短语并不排除A的确定也可基于某个其他因素诸如C。此短语也旨在覆盖A仅基于B来确定的实施方案。如本文所用,短语“基于”与短语“至少部分地基于”是同义的。
[0020] 此外,如本文所用,术语“第一”、“第二”、“第三”等并不一定暗示元件之间的排序(例如,时间顺序)。例如,对“第一”图形操作和“第二”图形操作的参考并不暗示对图形操作的排序,缺少限制这些操作之间的时间关系的附加语言。简而言之,诸如“第一”、“第二”等的参考用作标记,以便于在说明书和所附权利要求中进行参考。

具体实施方式

[0021] 本公开首先参考图1A至图1B描述了图形处理流程和示例性图形单元的一般化概述。图2至图3示出了用于延迟渲染的片段流水线和遮蔽电路的示例性具体实施。图4示出了用于允许反馈图形对象绕过缓冲器以便不按绘制顺序将那些对象进行着色的两种技术的示例性排序。图5示出了示例性方法,图6示出了示例性设备,图7示出了示例性计算机可读介质。在各种实施方案中,所公开的技术可减少渲染期间的图形过度绘制,这继而可改善性能和/或降低功率消耗。
[0022] 图形处理概述
[0023] 参见图1A,其示出了示出用于处理图形数据的示例性处理流程100的流程图。在一个实施方案中,变换和照明步骤110可涉及基于限定的光源位置、反射率等处理从应用程序接收的顶点的照明信息,将顶点组装成多边形(例如三形),和/或基于三维空间中的位置来将多边形转换为正确的尺寸和取向。剪辑步骤115可涉及丢弃在可视区域之外的多边形或顶点。光栅化步骤120可涉及在每个多边形内限定片段并且例如基于多边形顶点的纹理坐标来为每个片段分配初始色值。片段可指定它们重叠的像素的属性,但可基于组合多个片段(例如,在帧缓冲器中)和/或忽略一个或多个片段(例如,如果它们被其他对象覆盖)来确定实际像素属性。着色步骤130可涉及基于照明、着色、隆起映射、半透明度等来改变像素分量。可将着色像素组装在帧缓冲器135中。现代GPU通常包括允许应用开发者定制着色和其他处理步骤的可编程着色器。因此,在各种实施方案中,图1A的示例性步骤可以各种顺序执行,并行执行或省略。还可实施另外的处理步骤。
[0024] 现在参考图1B,示出了示出图形单元150的一个实施方案的简化框图。在例示的实施方案中,图形单元150包括可编程着色器160、顶点管185、片段管175、纹理处理单元(TPU)165、图像写入单元170、存储器接口180和纹理状态高速缓存190。在一些实施方案中,图形单元150被配置为使用可编程着色器160来处理顶点数据和片段数据两者,该可编程着色器可被配置为使用多个执行流水线或实例来并行处理图形数据。
[0025] 在图示实施方案中,顶点管185可包括被配置为处理顶点数据的各种固定功能硬件。顶点管185可被配置为与可编程着色器160通信,以便协调顶点处理。在图示实施方案中,顶点管185被配置为将经处理的数据发送至片段管175和/或可编程着色器160以用于进一步处理。
[0026] 在图示实施方案中,片段管175可包括被配置为处理像素数据的各种固定功能硬件。片段管175可被配置为与可编程着色器160通信,以便协调片段处理。片段管175可被配置为在来自顶点管185和/或可编程着色器160的多边形上执行光栅化以生成片段数据。顶点管185和/或片断管175可耦接到存储器接口180(未示出耦接)以便访问图形数据。
[0027] 在图示实施方案中,可编程着色器160被配置为接收来自顶点管185的顶点数据和来自片段管175和/或TPU 165的片段数据。可编程着色器160可被配置为对顶点数据执行顶点处理任务,该顶点处理任务可包括顶点数据的各种转换和/或调整。在例示的实施方案中,可编程着色器160还被配置为对像素数据执行片段处理任务,诸如像纹理和着色处理。可编程着色器160可包括用于并行处理数据的多个执行实例。
[0028] 在例示的实施方案中,TPU 165被配置为调度来自可编程着色器160的片段处理任务。在一些实施方案中,TPU 165被配置为预先提取纹理数据并将初始颜色分配给片段,以供可编程着色器160进一步处理(例如,经由存储器接口180)。TPU 165可被配置为提供例如在规格化整数格式或浮点格式的片段分量。在一些实施方案中,TPU 165被配置为提供呈2x2格式的四个(“片段四元组”)组的片段,该片段由可编程着色器160中的一组四个执行流水线处理。
[0029] 在一些实施方案中,图像写入单元(IWU)170被配置为存储图像的已处理图块,并且可在将其传输以用于显示或存储用于存储器之前对所渲染图像执行操作。在一些实施方案中,图形单元150被配置为执行分块式延迟渲染(TBDR)。在分块式渲染中,可单独处理屏幕空间的不同部分(例如,像素的正方形或矩形)。在各种实施方案中,存储器接口180可促进与各种存储器分级结构中的一个或多个的通信。
[0030] 在各种实施方案中,可编程着色器诸如可编程着色器160可以各种适当构型中的任一种耦接到图形单元中的其他可编程和/或固定功能元件。图1B的示例性实施方案示出了图形单元150的一个可能的配置用于示例性目的。
[0031] 片段管概述
[0032] 图2是示出根据一些实施方案的示例性片段管175的框图。在例示的实施方案中,片段管175包括参数提取电路210、扫描转换器220、排序电路230和像素数据主控器240。在例示的实施方案中,片段管175的各种元件被配置为与可编程着色器160通信。
[0033] 在例示的实施方案中,参数提取电路210被配置为接收正在处理的当前图块的图块和顶点数据205。这可经由例如可包含各种高速缓存级别、共享存储器结构等的图形存储器分级结构的一个或多个元件来获得。顶点数据可在与正在处理的图块相交的基元列表中指定每个基元的顶点坐标。数据205还可包含与正在处理的图块的顶点信息相关联和/或描述正在处理的图块的各种信息。如本文所用,术语“基元”和“对象”在图形上下文中可互换使用,并且是指图形单元被配置为处理的简单几何对象,例如,线、三角形、其他类型的多边形、曲线等。
[0034] 在例示的实施方案中,扫描转换器220被配置为执行光栅化以基于顶点数据生成片段数据。术语“片段”旨在根据其熟知的含义来解释,并且片段数据可指定基于给定基元(例如,对片段的可编程着色器160要执行的一个或多个着色器程序的引用,片段的坐标等)对像素进行着色所需的数据,以及测试片段是否存在以贡献对应像素的属性(深度、α、模版剪刀、窗口ID等)所需的数据。在一些渲染模式中,片段数据可包括针对每个片段/像素的多个样本的数据。片段数据可以各种程度的粒度中的一个或多个指定(例如,片段数据可以每个样本存储,或者可以按每个片段、每个对象、每个图块等进行聚合)。
[0035] 在例示的实施方案中,排序电路230包括一个或多个图块缓冲器235,并且被配置为确定跟踪哪些片段当前可见,直到它们被着色。例如,被渲染场景中靠近屏幕的不透明对象所覆盖的片段的数据可从图块缓冲器235丢弃,因为其被确定为不可见。在各种实施方案中,这些遮蔽技术可减少可编程着色器160所需的处理。在一些实施方案中,排序电路230包括用于正在处理的每个图块的独立的图块缓冲器,这可允许并行地渲染多个图块。此外,片段管175的多个实例可包括在给定图形单元中,从而进一步增加用于并行处理的资源。
[0036] 在一些实施方案中,排序电路230被配置为根据图形程序中指定的绘制顺序来接收对象的片段数据。在一些实施方案中,排序电路230被配置为以与绘制顺序不同的顺序来遮挡对象的片段,如下文结合图3更详细地讨论。例如,在一些实施方案中,排序电路230被配置为使用所示复用器(MUX)绕过图块缓冲器235,并且在(或不)将它们存储在图块缓冲器235之前,至少部分地对某些类型的片段进行着色。
[0037] 在例示的实施方案中,可编程着色器160被配置为基于着色片段数据来将深度反馈信息215发送至扫描转换器220。在其他实施方案中,可编程着色器160可直接向排序电路230提供深度反馈215。该反馈信息可指示着色反馈对象的深度,其可用于确定图块缓冲器
235中的数据是否被遮蔽。在一些实施方案中,该反馈信息215可包括用于放置在图块缓冲器235中以用于进一步着色的反馈对象的数据(例如,在双扫描技术的第一次扫描之后,如下文进一步详细讨论)。一旦完成对反馈对象的着色以确定深度,排序电路230就可被配置为丢弃来自图块缓冲器235的任何遮蔽数据。
[0038] 如本文所用,片段数据的“遮蔽”是指其中确定片段数据将实际上不会对图形数据的帧中的像素属性作出贡献的情况。例如,当片段数据是针对正在渲染的场景中的另一个对象后面的对象并且该另一个对象是不透明的时,发生遮蔽。
[0039] 在例示的实施方案中,像素数据主控器240被配置为将着色器工作发送至可编程着色器160,例如,以便对图块缓冲器235的内容进行着色。在一些实施方案中,像素数据主控器240可被配置为响应于各种事件来清除图块缓冲器235的内容的全部或一部分以用于着色。在一些实施方案中,图形单元150包括多个数据主控器,其可包括被配置为向可编程着色器160发送顶点工作的顶点数据主控器和被配置为向可编程着色器160发送计算工作的计算数据主控器。在一些实施方案中,可编程着色器160包括被配置为在可编程着色器160中分配硬件资源以用于来自各种数据主控器的工作的调度电路。
[0040] 反馈对象概述
[0041] 如上所述,“反馈”对象可能需要着色,然后排序电路230才能确定反馈对象的片段当前是可见的还是被先前处理的对象遮蔽。相比之下,不透明对象是“非反馈”对象类型的一个示例,其当前可见度(相对于其深度已知的其他先前对象)可在没有着色的情况下确定。如本文所用,术语“反馈对象”和“穿通对象”可互换使用。
[0042] 在一些实施方案中,“快速路径”技术允许反馈对象不按绘制顺序被着色,例如,以使用路径217绕过图块缓冲器235,并且在绘制顺序中的较早的重叠对象之前被着色。换句话讲,排序电路230可不将反馈对象存储在用于延迟渲染的缓冲器中,但可立即对这些对象进行着色。这样,反馈对象的着色可允许更新用于确定其他对象是否可见的深度缓冲器。这可减少过度绘制,其中执行着色以相对于非快速路径技术来生成实际上不用于最终像素属性的片段数据。例如,在非快速路径技术中,可将图块缓冲器中的非反馈数据清除到可编程着色器160以用于着色,然后将反馈数据发送至可编程着色器160以用于着色,即使在存在遮蔽的情况下实际上只需要对反馈或非反馈数据的着色。另外,在一些实施方案中,某些反馈对象的着色器的至少一部分不能被遮蔽,因此延迟渲染可能不有助于这些类型的反馈对象。在快速路径技术中,反馈结果可穿过图块缓冲器235中的非反馈数据,从而允许从缓冲器中移除非反馈对象的数据而不需要着色,而着色反馈对象的结果可用于更新颜色缓冲器。
[0043] 在下文进一步详细讨论的一些实施方案中,用于反馈对象的着色器程序被拆分成两个部分:可见度着色器和片段着色器。可编程着色器160可单独处理这两个部分,例如,通过经由旁路路径执行可见度着色器,并且随后在将数据存储在图块缓冲器235中之后执行片段着色器。这些技术可称为“双扫描”穿通。双扫描穿通可具有快速路径穿通的有益效果,并且可进一步减少过度绘制。例如,当反馈对象的数据在缓冲器235中等待其第二次扫描时(在已执行着色器的可见度部分之后),后续对象可遮蔽缓冲器中的数据,这允许移除数据以防止过度绘制着色(其中在使用单次扫描快速路径穿通技术时,该数据可能已被不必要地着色)。因此,双扫描技术可允许快速确定可见度,同时仍为反馈对象提供延迟渲染的有益效果。
[0044] 示例性排序电路
[0045] 图3是例示了根据一些实施方案的排序电路230的示例性元件的框图。在例示的实施方案中,排序电路230包括深度排序电路310和标签排序电路320。在其他实施方案中,由元件310和320执行的本文所述功能可通过组合电路来执行。所公开的图2至图3的电路提供用于说明的目的,但并不旨在限制本公开的范围。在其他实施方案中,可将元件组合或省略,并且可结合附加元件。
[0046] 在例示的实施方案中,深度排序电路310包括深度和模版测试电路324、深度缓冲器330和模版缓冲器340。
[0047] 在一些实施方案中,深度和模版测试电路325被配置为接收来自扫描转换器220的每个处理过的样本的光栅化深度值(其可称为z值)和坐标。电路325可被配置为执行各种测试来确定片段数据是否应被着色,例如通过将所接收的样本的深度与相同坐标处的先前接收的样本进行比较(例如,如保存在深度缓冲器330中,其可被配置为存储在每个坐标处的屏幕空间中最近的先前接收的样本的指示)。类似地,电路325可被配置为将输入样本的坐标与模版缓冲器340中的值进行比较,以限制渲染区域。在例示的实施方案中,扫描样本306是在电路325的测试期间存活的样品,并且应当基于当前已知的数据(尽管它们可能被后续对象遮蔽)而被着色。
[0048] 在一些实施方案中,深度排序电路310包括电路325的多个实例,以便并行处理来自扫描转换器220的数据(例如,针对正在处理的不同图块)。在一些实施方案中,深度排序电路310包括针对当前正在处理的每个图块的独立的深度缓冲器和模版缓冲器。
[0049] 在例示的实施方案中,深度排序电路310被配置为将来自用于反馈对象的扫描转换器220的数据直接发送到标签排序电路320,而不执行深度和模版测试。这可允许反馈数据不按绘制顺序被发送至可编程着色器160,相对于非反馈数据而言。这可有利于上述的快速路径和双扫描穿通技术。因此,扫描转换器220可被配置为向排序电路230提供指示哪个数据用于反馈对象的信令。
[0050] 在例示的实施方案中,标签排序电路320包括分配单元355和标签缓冲器360。在一些实施方案中,分配单元355被配置为当被新的扫描样本306遮蔽时处理标签缓冲器360中的旧数据的丢弃。在一些实施方案中,标签缓冲器360是被配置为存储片段数据直到其被着色或替换的图块缓冲器。因此,标签缓冲器360可存储当前被确定为可见但在其被着色之前可能被遮蔽的数据。在例示的实施方案中,标签排序电路320包括MUX,该MUX被配置为在来自反馈旁路317和标签缓冲器360的数据之间进行选择,以发送至可编程着色器160以用于着色。这可允许使用相同的接口来传输此片段数据。在其他实施方案中,独立的接口可用于反馈和非反馈数据。
[0051] 在各种实施方案中,标签缓冲器360被配置为存储片段数据。标签缓冲器360可被配置为聚集片段和/或样本的某些信息。片段和/或样本的各种编码中的任一种可用于将数据存储在标签缓冲器360中。
[0052] 在双扫描实施方案中,标签缓冲器360可被配置为在第一次扫描和第二次扫描之间存储片段数据。在经由反馈旁路317进行第一次扫描之后,反馈对象的片段数据可在被存储在标签缓冲器360中之前由电路325处理。可编程着色器160随后可执行用于使反馈对象的片段数据在标签缓冲器360中存活的第二次扫描。
[0053] 快速路径和双扫描穿通排序示例
[0054] 图4是示出用于不同穿通技术的示例性处理步骤的示意图。在例示的实施方案中,绘制顺序410从对象A(非反馈对象)开始,然后是对象B(反馈对象),该对象随后接着是对象C(另一个非反馈对象)。如上所述,在一些实施方案中,片段管175被配置为不按绘制顺序来对反馈对象和非反馈对象进行着色。
[0055] 操作420示出了使用快速路径穿通来对对象A-C进行着色的示例性排序。在例示的示例中,扫描转换器220光栅化对象A,然后深度排序电路310对对象A执行深度测试,然后标签排序电路320存储标签缓冲器360中的对象A的扫描数据。在例示的示例中,扫描转换器220然后光栅化对象B,然后深度排序电路310继续使用旁路317发送对象B以用于着色。需注意,该着色可在对象A的数据被存储在标签缓冲器360中之前或之后执行,但在各种实施方案中,在对象A的片段数据全部被着色之前执行。
[0056] 在例示的示例中,标签排序电路320然后从标签缓冲器360移除已被遮蔽(基于对象B的着色)的对象A的任何数据。例如,可编程着色器160可向扫描转换器220和/或排序电路230指示应当移除哪些数据或可指示来自对象B的着色的深度信息,其可用于确定对象A的哪些数据被遮蔽。
[0057] 随后,在例示的示例中,可编程着色器160对标签缓冲器360的内容(包括标签缓冲器360中的对象A的任何剩余数据)进行着色。需注意,在该示例中,对象B数据可能已经基于其着色而更新了颜色缓冲器,而从未被存储在标签缓冲器360中,并且对象A的着色也可更新颜色缓冲器(相比之下,对于双扫描穿通,对象B的数据可被存储在标签缓冲器360中)。
[0058] 操作430示出了使用双扫描穿通来对对象A-C进行着色的示例性顺序。在例示的示例中,扫描转换器220光栅化对象A,然后深度排序电路310对对象A执行深度测试,然后标签排序电路320存储标签缓冲器360中的对象A的扫描数据。在例示的示例中,扫描转换器220然后光栅化对象B,然后深度排序电路310继续使用旁路317发送对象B以用于着色。
[0059] 对于双扫描穿通实施方案,片段流水线175被配置为将用于反馈对象的着色器程序分成两部分,足以确定可见度的第一部分和指定附加片段着色的第二部分。此时,在例示的示例中,使用着色器程序的第一部分(第一着色器扫描)将对象B着色以用于可见度。
[0060] 在例示的示例中,深度排序电路310然后接收指示来自可编程着色器160的可见度着色的结果的数据,电路325对结果执行一个或多个测试,并且将对象B的扫描样本存储在标签缓冲器360中(导致移除标签缓冲器360中的对象A的任何遮蔽数据)。
[0061] 在例示的示例中,可编程着色器160然后在随后的时间对来自标签缓冲器360的数据进行着色,包括对象A和对象B的任何剩余数据。在该示例中,该着色是对象B的双扫描穿通的第二着色器扫描。
[0062] 需注意,示例420和430两者均可避免被对象B遮蔽的对象A的样本的过度绘制。另外,当对象B的数据在标签缓冲器360中时,示例430可避免被任何后续对象遮蔽的对象B的样本的过度绘制。
[0063] 示例性方法
[0064] 图5是示出根据一些实施方案的用于针对反馈对象绕过存储用于延迟渲染的图形数据的缓冲器的示例性方法500的流程图。除了其他设备之外,图5所示的方法可结合本文公开的计算机系统、设备、元件或部件中的任一者来使用。在各种实施方案中,所示的方法要素中的一些可按与所示次序不同的次序并发执行,或者可被省去。也可根据需要执行附加的方法要素。
[0065] 在510处,在例示的实施方案中,光栅电路(例如,扫描转换器220)根据由图形程序指定的绘制顺序来生成图形对象的片段数据。在一些实施方案中,在每个样品粒度下指定片段数据。在例示的实施方案中,光栅电路生成两个反馈对象(相对于绘制顺序中的先前对象,反馈对象的可见度在执行一个或多个着色器操作之后被确定)和非反馈对象(相对于绘制顺序中的先前对象,非反馈对象的可见度在针对对象执行任何着色操作之前被确定)的片段数据。片段数据可包括坐标、深度信息、指向着色器代码的指针、绘制状态等。
[0066] 在520处,在例示的实施方案中,缓冲器(例如,标签缓冲器360或图块缓冲器235)存储未被先前处理的对象遮蔽的片段数据。在例示的实施方案中,图形单元丢弃来自被后续处理的对象遮蔽的缓冲器的片段数据。该缓冲可基于每个图块进行,并且可用于启用延迟渲染。一般来讲,缓冲可尝试聚集尽可能多的片段数据并且在着色之前检测尽可能多的遮蔽,以减少过度绘制。
[0067] 在530处,在例示的实施方案中,排序电路绕过缓冲器,并且在对绘制顺序比反馈对象更早的非反馈对象进行着色之前,对所述反馈对象进行着色。在一些实施方案中,诸如快速路径实施方案,着色可更新颜色缓冲器。在双扫描实施方案中,着色可用于确定可见度,并且可见的片段数据可存储在图块缓冲器中。
[0068] 在540处,在例示的实施方案中,排序电路基于所述反馈对象的着色,确定是将所述非反馈对象的片段数据保留在所述缓冲电路中还是从所述缓冲电路中移除所述非反馈对象的片段数据。可在样品粒度下执行该操作。对于双扫描技术,当移除非反馈对象的数据时,可将来自反馈对象的遮蔽数据放置在缓冲电路中,并且随后可将其着色。对于其他技术,反馈对象的着色可用于更新颜色缓冲器中的像素属性,并且反馈对象的数据可从不存储在缓冲器中。在一些实施方案中,调度电路诸如像素数据主控器240被配置为确定何时从缓冲电路清除片段数据以用于着色。
[0069] 如上所述,在双扫描技术中,图形单元可被配置为将针对所述反馈对象的着色器程序拆分成用于确定所述反馈对象的可见度的第一组着色器指令以及用于确定所述反馈对象的像素属性的第二组着色器指令。另外,图形单元可被配置为绕过第一组指令的缓冲电路(例如,以快速确定可见度),并且基于缓冲器中的第一组着色器指令来存储被确定为当前可见的片段数据,以用于使用第二组着色器指令进行后续处理。
[0070] 在一些实施方案中,所述图形单元被配置为执行分块式延迟渲染,并且所述缓冲电路被配置为存储当前针对正在处理的图块不被遮蔽的片段数据。因此,可确定缓冲器中的数据不被先前处理的对象遮蔽,但随后可在着色之前被后续处理的对象遮蔽。如上所述,在一些实施方案中,确定可见度可在深度排序和标签排序电路之间分割。此外,图形单元可包括用于并行处理多个图块的多个不同深度缓冲器、模版缓冲器和/或标签缓冲器。
[0071] 示例性设备
[0072] 现在参考图6,其示出了例示设备600的示例性实施方案的框图。在一些实施方案中,可将设备600的元件包括在片上系统内。在一些实施方案中,可将设备600包括在可以是电池供电的移动设备中。因此,设备6 00的功率消耗可能是重要的设计考虑因素。在例示的实施方案中,设备600包括结构体610、计算复合体620、输入/输出(I/O)桥接部650、高速缓存/存储器控制器645、图形单元680和显示单元665。在一些实施方案中,除所示的部件之外和/或代替所示的部件,设备6 00可包括其他部件(未示出),诸如视频处理器编码器解码器图像处理或识别元件、计算机视觉元件等。
[0073] 结构体610可以包括各种互连器、总线、MUX、控制器等,并且可以被配置为促进设备600的各种元件之间的通信。在一些实施方案中,结构体610的部分可被配置为实现各种不同的通信协议。在其他实施方案中,结构体610可实现单个通信协议,并且耦接到结构体610的元件可在内部从单个通信协议转换到其他通信协议。
[0074] 在例示的实施方案中,计算复合体620包括总线接口单元(BIU)625、高速缓存630和内核635和640。在各种实施方案中,计算复合体620可包括各种数量的处理器、处理器内核和/或高速缓存。例如,计算复合体620可以包括1个、2个或4个处理器内核,或任何其他合适的数量。在一个实施方案中,高速缓存630是一组关联L2高速缓存。在一些实施方案中,内核635和/或6 40可包括内部指令和/或数据高速缓存。在一些实施方案中,结构体610、高速缓存630或设备600中的其他地方的一致性单元(未示出)可被配置为维持设备600的各个高速缓存之间的一致性。BIU 625可被配置为管理计算复合体620和设备600的其他元件之间的通信。处理器内核诸如内核635和640可被配置为执行特定指令集架构(ISA)的指令,该指令集架构可包括操作系统指令和用户应用指令。
[0075] 高速缓存/存储器控制器645可被配置为管理结构体610与一个或多个高速缓存和/或存储器之间的数据传输。例如,可将高速缓存/存储器控制器645耦接到L3高速缓存,继而可将该L3高速缓存耦接到系统存储器。在其他实施方案中,可将高速缓存/存储器控制器645直接耦接到存储器。在一些实施方案中,高速缓存/存储器控制器645可包括一个或多个内部高速缓存。
[0076] 如本文所用,术语“耦接到”可指示元件之间的一个或多个连接,并且耦接可包括中间元件。例如,在图6中,图形单元150可被描述为通过结构体610和高速缓存/存储器控制器645“耦接到”存储器。相比之下,在图6的例示的实施方案中,图形单元150“直接耦接”到结构体610,因为不存在中间元件。
[0077] 图形单元150可包括一个或多个处理器和/或一个或多个图形处理单元(GPU)。例如,图形单元150可接收面向图形的指令,诸如 Metal或 指令。图形单元150可基于所接收的面向图形的指令执行专用GPU指令或执行其他操作。图形单元
150通常可被配置为并行处理大块数据,并且可在帧缓冲器中构建图像以输出到显示器。图形单元150可包括在一个或多个图形处理流水线中的变换、照明、三角形和/或渲染引擎。图形单元150可输出用于显示图像的像素信息。在一些实施方案中,图形单元150被配置为执行上述存储器一致性、中间渲染计算、本地图像块和/或像素资源同步技术中的一者或多者。
[0078] 显示单元665可被配置为从帧缓冲器读取数据并且提供像素值流以用于显示。在一些实施方案中,显示单元665可被配置为显示流水线。另外,显示单元665可被配置为将多个帧混合以产生输出帧。此外,显示单元665可以包括用于耦接到用户显示器(例如,触摸屏或外部显示器)的一个或多个接口(例如, 或嵌入式显示端口(eDP))。
[0079] I/O桥接部650可以包括被配置为实现例如通用串行总线(USB)通信、安全性、音频和/或低功率永远在线功能的各种元件。I/O桥接部650还可以包括例如脉冲宽度调制(PWM)、通用输入/输出(GPIO)、串行外围接口(SPI)和/或内部集成电路(I2C)的接口。可将各种类型的外围设备和设备经由I/O桥接部650耦接到设备600。
[0080] 在一些实施方案中,设备600的各种元件可包括分级布置的时钟卫,包括被耦接以将时钟信号递送到时钟树的不同部分的各系列DET时钟门卫。所公开的技术可减少设备600中的切换功率消耗,将时钟延迟平衡到设备600的不同部分,减少设备600中的错误,实现更高的频率,在较低的电源电压下实现所需的频率,减少每个循环(或每个任务、每个像素或每个字节等)消耗的能量等。
[0081] 示例性计算机可读介质
[0082] 本公开已经在上文中详细描述了各种示例性电路。意图在于本公开不仅涵盖包括此类电路系统的实施方案,而且还涵盖包括指定此类电路系统的设计信息的计算机可读存储介质。因此,本公开旨在支持不仅涵盖包括所公开电路系统的装置、而且还涵盖以被配置为生成包括所公开电路系统的硬件(例如集成电路)的制造系统识别的格式指定电路系统的存储介质的权利要求。对此类存储介质的权利要求旨在涵盖例如生成电路设计但本身不制造该设计的实体。
[0083] 图7是示出根据一些实施方案的存储电路设计信息的示例性非暂态计算机可读存储介质的框图。在例示的实施方案中,半导体制造系统720被配置为处理存储在非暂态计算机可读介质710上的设计信息715并基于设计信息715制造集成电路730。
[0084] 非暂态计算机可读介质710可包括各种适当类型的存储器设备或存储设备中的任何设备。介质710可以是安装介质,例如CD-ROM、软盘或磁带设备;计算机系统存储器或随机存取存储器诸如DRAM、DDR RAM、SRAM、EDO RAM、Rambus RAM等;非易失性存储器诸如闪存、磁介质,例如,硬盘驱动器或光学存储装置;寄存器,或其他类似类型的存储器元件等。介质710也可包括其他类型的非暂态存储器或它们的组合。介质710可包括可驻留在不同位置例如通过网络连接的不同计算机系统中的两个或更多个存储器介质。
[0085] 设计信息715可利用各种适当的计算机语言中的任何语言来指定,包括硬件描述语言诸如但不限于:VHDL、Verilog、SystemC、SystemVerilog、RHDL、M、MyHDL等。设计信息715可以能被半导体制造系统720用来制造集成电路730的至少一部分。设计信息715的格式可以被至少一个半导体制造系统720识别。在一些实施方案中,设计信息715还可以包括指定集成电路730的综合和/或布局的一个或多个单元库。在一些实施方案中,设计信息整体或部分地以指定单元库元素及其连接性的网表的形式来指定。单独获取的设计信息715可以包括或可以不包括用于制造对应集成电路的足够信息。例如,设计信息715可以指定要制造的电路元件,但不指定它们的物理布局。在这种情况下,设计信息715可能需要与布局信息组合以实际制造指定的电路。
[0086] 半导体制造系统720可以包括被配置为制造集成电路的各种适当元件中的任何元件。这可以包括例如用于(例如在可包括掩膜的晶片上)沉积半导体材料、移除材料、改变所沉积材料的形状、(例如通过掺杂材料或利用紫外处理修改介电常数)对材料改性等等的元件。半导体制造系统720还可被配置为对于所制造电路的各种测试以保证正确操作。
[0087] 在各种实施方案中,集成电路730被配置为根据设计信息715指定的电路设计来操作,这可包括执行本文所述的功能性中的任何功能性。例如,集成电路730可包括图1B、图2和/或图3中所示的各种元件中的任何元件。另外,集成电路730可以被配置为执行本文结合其他部件所述的各种功能。另外,本文所述的功能性可由多个连接的集成电路来执行。
[0088] 如本文所用,形式为“指定被配置为…的电路的设计的设计信息”的短语并不暗示为了满足该要素就必须制造所涉及的电路。相反,该短语表明设计信息描述了一种电路,该电路在被制造时将被配置为执行所指示的动作或者将包括所指定的部件。
[0089] ***
[0090] 尽管上文已经描述了具体实施方案,但这些实施方案并非要限制本公开的范围,即使仅相对于特定特征描述单个实施方案的情况下也是如此。本公开中提供的特征示例意在进行例示,而非限制,除非做出不同表述。上述说明书意在涵盖此类替代形式、修改形式和等价形式,这对知晓本公开有效效果的本领域技术人员将是显而易见的。
[0091] 本公开的范围包括本文(明确或暗示)公开的任意特征或特征的组合或其任意概括,而无论其是否减轻本文解决的任何或所有问题。因此,在本专利申请(或要求享有其优先权的专利申请)进行期间可针对特征的任何此类组合作出新的权利要求。具体地,参考所附权利要求书,可将从属权利要求的特征与独立权利要求的特征进行组合,并可通过任何适当的方式而不是仅通过所附权利要求书中所列举的特定组合来组合来自相应独立权利要求的特征。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈