选择性合并部分覆盖图块以执行分层z剔除的制作方法

文档序号:9893645阅读:336来源:国知局
选择性合并部分覆盖图块以执行分层z剔除的制作方法
【技术领域】
[0001] 本发明设及图形处理系统,且更明确地说,设及在图形处理系统中使用的Z剔除技 术。
【背景技术】
[0002] 图形处理单元(GPU)可由不同类型的计算装置用来加快显示器的图形数据的擅 染。此些计算装置可包含例如计算机工作站、移动电话(例如,智能电话)、嵌入式系统、个人 计算机、平板计算机及视频游戏控制台。
[0003] 擅染通常指代将可包含一或多个3D图形对象的Ξ维(3D)图形场景转换为二维 (2D)光栅化图像数据的过程。为擅染3D图形对象,GPU可光栅化对应于所述3D图形对象中的 每个的一或多个基元,W便生成对应于所述3D图形对象中的每个的多个像素。所述像素随 后可使用多种像素处理操作来处理W生成所得图像。像素处理操作可包含像素着色操作、 渗合操作、纹理-映射操作、可编程像素着色器操作等。
[0004] 由于GPU已变得越来越快,增加了由GPU擅染的图形场景的复杂度。高度复杂的场 景可包含大量的3D对象,运些3D对象中的每个可对应于数百或数千个像素。处理运些像素 中的每个可能消耗大量的处理周期和相对大量的存储器带宽。
[0005] 3D图形对象通常在光栅化之前细分为一或多个图形基元(例如点、线、Ξ角形)。时 常,从检视区的角度,基元中的一些可能阻塞或闭塞其它基元,使得所述闭塞基元可能在所 得擅染图像中是不可见的。对闭塞基元的像素执行像素处理操作可能导致执行不必要的像 素操作,运可能消耗图形处理系统中的不必要的处理周期和存储器带宽。
[0006] 已有人提出处理与闭塞基元相关联的像素的不必要处理的问题的各种解决方案。 一种解决方案是执行分层Z剔除,运可包括在图形管线中的相对早期阶段丢弃在最终所得 擅染图像中不可见的源像素,W便减小GPU的工作负荷和/或降低GPU的存储器带宽使用率。 例如,分层Z剔除算法可比较像素的输入源图块的保守最小Z值和与所述源图块具有相同图 块位置的像素的目的地图块的保守最大Z值,并在所述源图块的保守最小Z值比所述图块位 置的保守最大Z值更大时,丢弃像素的源图块。像素的目的地图块的保守最大Z值可为大于 或等于像素的所述目的地图块的实际最大Z值的值。
[0007] 大体而言,所述保守最大Z值越接近所述目的地图块的实际最大Z值(即,等于在所 述目的地图块中的所有像素的最大Z值的值),则在所述图形管线中可早期丢弃的不可见源 像素的数量越大,并因此,通过执行分层Z剔除可获得的性能好处就越大。然而,就算法复杂 度、内存占用率、存储器带宽和处理器工作负荷而言,实现相对接近目的地图块的实际最大 Z值的保守最大Z值可能是昂贵的。

【发明内容】

[000引本发明描述用于在图形处理系统中执行分层Z剔除的技术。在一些示例中,用于执 行分层Z剔除的技术可包括基于用于与图块位置相关联的部分覆盖源图块的保守最远Z值 是否比用于图块位置的剔除z值更接近,将部分覆盖源图块选择性合并为完全覆盖合并的 源图块,并使用与所述完全覆盖合并源图块相关联的保守最远Z值来更新用于所述图块位 置的所述剔除Z值。所述剔除Z值可用于形成所述图块位置的剔除确定,并可指示与所述图 块位置对应的目的地图块的所有样本的保守最远Z值。部分覆盖的源图块的所述合并可在 W下意义上是选择性的:用于图块位置的具有比用于所述图块位置的所述剔除Z值更接近 所述检视区的保守最远Z值的部分覆盖源图块可被合并,而用于所述图块位置的其它部分 覆盖的源图块可不被合并。W此方式的选择性合并源图块可提高用于执行分层Z剔除的剔 除Z值的质量,运可提高Z剔除算法的拒绝效率。W此方式,可提高执行分层Z剔除的图形处 理器的性能和/或存储器带宽使用率。
[0009] 在一个示例中,本发明描述一种方法,其包含基于与图块位置相关联的样本的源 图块是否被对应于所述源图块的基元完全覆盖并基于所述源图块的保守最远Z值是否比与 图块位置相关联的剔除Z值更接近,利用图形处理单元(GPU)选择性合并源图块和用于所述 图块位置的合并源图块,W生成所述合并源图块的经更新版本。所述剔除Z值指示用于与所 述图块位置对应的目的地图块的所有样本的保守最远Z值。
[0010] 在另一示例中,本发明描述一种装置,其包含图形处理单元(GPU),所述图形处理 单元(GPU)经配置基于与图块位置相关联的样本的源图块是否被对应于所述源图块的基元 完全覆盖并基于所述源图块的保守最远Z值是否比与图块位置相关联的剔除Z值更接近,选 择性合并源图块和用于所述图块位置的合并源图块,W生成所述合并源图块的经更新版 本。所述剔除Z值指示用于与所述图块位置对应的目的地图块的所有样本的保守最远Z值。
[0011] 在另一示例中,本发明描述一种设备,其包含用于确定与图块位置相关联的样本 的源图块的保守最远Z值是否比与所述图块位置相关联的剔除Z值更接近的装置。所述剔除 Z值指示用于与所述图块位置对应的目的地图块的所有样本的保守最远Z值。所述设备进一 步包含用于基于源图块是否被对应于所述源图块的基元完全覆盖并基于所述源图块的保 守最远Z值是否比与所述图块位置相关联的剔除Z值更接近,选择性合并所述源图块和用于 所述图块位置的合并源图块W生成所述合并源图块的经更新版本的装置。
[0012] 在另一示例中,本发明描述一种计算机可读存储媒体存储指令,其在被执行时,致 使一或多个处理器基于与图块位置相关联的样本的源图块是否被对应于所述源图块的基 元完全覆盖并基于所述源图块的保守最远Z值是否比与所述图块位置相关联的剔除Z值更 接近,选择性合并源图块和用于所述图块位置的合并源图块,W生成所述合并源图块的经 更新版本。所述剔除Z值指示用于与所述图块位置对应的目的地图块的所有样本的保守最 远Z值。
[0013] 在附图和W下描述中阐明本发明的一或多个示例的细节。本发明的其它特征、目 标和优点将从所述描述和附图W及权利要求书而显而易见。
【附图说明】
[0014] 图1为说明可用于实施本发明的分层Z剔除技术的示例计算装置的框图。
[001引图2为更详细说明在图1中示出的计算装置的CPU、GPU和存储器的框图。
[0016] 图3为说明可用于实施本发明的分层Z剔除技术的示例图形管线的框图。
[0017] 图4为根据本发明的说明用于执行分层Z剔除的示例技术的流程图。
[0018] 图5为根据本发明的说明在执行分层z剔除时,用于合并部分覆盖源图块的示例技 术的流程图。
[0019] 图6为根据本发明的说明待擅染的示例基元组和与示例基元组的擅染相关联的对 应合并高速缓存状态的原理图。
【具体实施方式】
[0020] 本发明描述用于在图形处理系统中执行分层Z剔除的技术。在一些示例中,用于执 行分层Z剔除的技术可包括基于用于部分覆盖源图块的保守最远Z值是否比用于图块位置 的剔除Z值更接近,将与图块位置相关联的部分覆盖源图块选择性合并为完全覆盖合并的 源图块,并使用与所述完全覆盖合并源图块相关联的保守最远Z值来更新用于所述图块位 置的剔除Z值。所述剔除Z值可用于形成所述图块位置的剔除确定,并可指示与所述图块位 置对应的目的地图块的所有样本的保守最远Z值。所述部分覆盖的源图块的合并可在W下 意义上是选择性的:用于图块位置的具有比用于所述图块位置的所述剔除Z值更接近检视 区的保守最远Z值的部分覆盖源图块可被合并,而用于所述图块位置的其它部分覆盖的源 图块可不被合并。W此方式的选择性合并源图块可提高用于执行分层Z剔除的剔除Z值的质 量,运可提高Z剔除算法的拒绝效率。W此方式,可提高执行分层Z剔除的图形处理器的性能 和/或存储器带宽使用率。
[0021] 在其它示例中,用于执行分层Z剔除的技术可使用高速缓存单元来存储所累积的 保守最远Z值和所累积的用于合并源图块的覆盖掩模。所述高速缓存单元的容量可比存储 所累积的保守最远Z值和用于在擅染目标中的所有图块位置的所累积的覆盖掩模所需的高 速缓存的大小更小。另外,所述高速缓存单元可不与底层存储器相关联。也就是说,所述高 速缓存单元可充当用于合并源图块数据的主数据存储,非仅充当用于存储初次存储在另一 个底层存储器中的数据的复本的被高速缓存的数据存储。使用W上述方式配置的高速缓存 来存储所累积的保守最远Z值和所累积的覆盖掩模可提高GPU的存储器带宽使用率的性能 和/或GPU的存储器占用面积,所述GPU基于所累积的与合并源图块相关联的保守最远Z值执 行分层Z剔除。
[0022] 在另外示例中,在用于所述图块位置的剔除Z值响应于处理用于所述图块位置的 完全覆盖的非合并源图块而被更新时,用于执行分层Z剔除的技术可使高速缓存单元的存 储用于图块位置的合并源图块数据的高速缓存行无效。例如,响应于确定用于所述图块位 置的源图块被对应于所述源图块的基元完全覆盖和所述源图块的保守最远Z值比与所述图 块位置相关联的剔除Z值更接近,用于执行分层Z剔除的技术可使与图块位置相关联的高速 缓存行无效。在响应于处理用于图块位置的完全覆盖的非合并源图块已更新剔除Z值之后, 在一些情况下,对应于所述图块位置的所述合并源图块可具有保守最远Z值,其比所述已更 新剔除Z值更远。如果所述剔除Z值经更新等于比已经使用的剔除Z值更远的保守最远Z值, 则可减少被剔除样本的量,借此降低所述分层Z剔除算法的效率。使存储用于此些图块位置 的所述合并源图块数据的高速缓存行无效可确保存储在所述合并高速缓存中的保守最远Z 值并不随后用于更新所述剔除Z值。W此方式清除出所述合并高速缓存可提高所得剔除Z值 的质量,借此提高所述分层Z剔除算法的丢弃效率。
[0023] 分层Z剔除可由GPU用于在所述图形管线中在相对早期阶段丢弃在最终所得擅染 图像中不可见的源样本,W便减小GPU的工作负荷和/或降低GPU的存储器带宽使用率。在一 些示例中,分层Z剔除可使用用于在擅染目标中的图块位置中的每个的剔除Z值W确定不可 见并因此可W丢弃的源样本。剔除Z值可指示用于与所述图块位置对应的目的地图块的所 有样本的保守最远Z值。用于目的地图块的保守最远Z值可为与在所述样本的目的地图块中 的最远Z值至少一样远或比所述最远Z值更远的Z值。用于图块中的个别样本的Z值可W指指 示在所述样本和垂直于相机(例如检视区)的方向的平面之间的距离的值,其中,所述相机 与包含所述样本的擅染图形帖相关联。样本可W指像素或像素的子样本。
[0024] -种分层Z剔除算法可比较样本的输入源图块的保守最接近Z值和样本的目的地 图块的剔除Z值,并在所述源图块的所述保守最接近Z值与所述目的地图块的剔除Z值相比 更远时,丢弃样本的源图块。运类分层Z剔除技术使用表示用于目的地图块中所有样本的保 守最远Z值的图块宽剔除Z值,而不管在所述目的地图块中的样本是否被基元覆盖。例如,在 向所述目的地图块擅染任何基元之前,在所述剔除Z值经初始化用于所述目的地图块时,所 述剔除Z值可设定成用于所述系统的最远可能Z剔除值。只要在不被基元覆盖的所述目的地 图块中存在至少一个样本,所述剔除Z值就可保持在所述最远的可能Z剔除值。相对于使用 表示仅用于在目的地图块中被基元覆盖的那些样本的保守最远Z值的剔除Z值,使用表示用 于在目的地图块中的所有样本的保守最远Z值的图块宽剔除Z值而不管所述样本是否被基 元覆盖可降低在分层Z剔除期间所执行的丢弃比较的复杂度,借此提高实施分层Z剔除技术 的图形系统的性能。
[0025] 对于如上文所论述的使用并不在覆盖样本和未覆盖样本之间区别的剔除Z值的分 层Z剔除算法而言,如果用于输入源图块的保守最远Z值比用于所述目的地图块的剔除Z值 更接近,并且所述输入源图块被对应于所述输入源图块的基元完全覆盖,则用于所述目的 地图块的剔除Z值可利用用于所述输入源图块的保守最远Z值来更新。然而,如果所述输入 源图块仅被对应于所述源图块的基元部分覆盖而不是完全覆盖,则所述剔除Z值可不始终 能够W类似方式更新,因为使用所述保守最远Z值用于所述部分覆盖源图块是否将产生用 于所述全部目的地图块的保守最远Z值是不确定的。运可产生用于所述目的地图块的不太 理想的保守最远Z值,运可能减少早期在所述图形管线中可W丢弃的样本的数量。
[0026] -种用于允许部分覆盖图块影响用于目的地图块的保守最远Z值的更新的技术是 将具有相同图块位置的部分覆盖源图块合并为完全覆盖的图块,并且使用与所述合并的完 全覆盖图块相关联的所累积的保守最远Z值来更新在相同图块位置的用于目的地图块的剔 除Z值。使用与所述合并的源图块相关联的所累积的保守最远Z值来更新用于目的地图块的 所述保守最远Z值可减小在所述保守最远Z值和用于所述目的地图块的实际最远Z值之间的 差,借此允许丢弃另外的源样本。W此方式,可提高执行分层Z剔除的GPU的性能。
[0027] -种用于合并部分覆盖的源图块的方法包括合并用于特定图块位置的所有部分 覆盖的源图块,而不管待合并的所述源图块的保守最远Z值是否大于或小于所述目的地图 块的保守最远Z值。此方法可产生用于图块位置的合并的源图块,其具有比用于所述图块位 置的所述剔除Z值距离所述检视区更远的保守最远Z值。用于合并源图块的保守最远Z值可 为与用于所述合并源图块的所有覆盖样本的最远Z值至少一样远或比所述最远Z值更远的Z 值。利用比所述剔除Z值距离所述检视区更远的保守最远Z值替换所述剔除Z值可减少被所 述分层Z剔除算法丢弃的样本的量,借此减少通过执行分层Z剔除获得的性能好处。
[0028] 对于其中用于合并源图块的保守最远z值比用于所述图块位置的对应剔除z值距 离所述检视区更远的所述合并源图块而言,用于形成所述合并源图块的所述部分覆盖源图 块中的一些可包含比剔除Z值更接近所述检视区的保守最远Z值。将部分覆盖源图块彼此无 差别地合并,而不管用于此些源图块的所述保守最远Z值相对于所述剔除Z值的取向的系统 可阻止比所述剔除Z值更接近所述检视区的部分覆盖源图块正面影响所述剔除Z值的质量, 借此潜在减少被所述分层Z剔除算法丢弃的样本的量。
[0029] 根据本发明的一些方面,所描述的技术是基于用于部分覆盖源图块的保守最远Z 值是否比所述图块位置的剔除Z值更接近,用于将与所述图块位置相关联的所述部分覆盖 源图块选择性合并为用于所述图块位置的完全覆盖的合并源图块。部分覆盖的源图块的合 并可在W下意义上是选择性的:用于图块位置的具有比用于所述图块位置的所述剔除Z值 更接近的保守最远Z值的部分覆盖源图块可被合并,而用于所述图块位置的其它部分覆盖 的源图块可不被合并。W此方式选择性合并源图块可提高用于执行Z剔除的剔除Z值的质 量,运可提高所述Z剔除算法的丢弃率。W此方式,可提高执行分层Z剔除的图形处理器的性 能和/或存储器带宽使用率。
[0030] 现将描述根据上述方法更新目的地图块的保守最远Z值的过程。在完全覆盖的输 入源图块被处理并且所述输入源图块的保守最远Z值比具有与所述输入源图块相同图块位 置的所述目的地图块的保守最远Z值更接近时,则用于所述目的地图块的保守最远Z值利用 所述输入源图块的保守最远Z值来更新。如果所述完全覆盖输入源图块的保守最远Z值并不 比所述目的地图块的保守最远Z值更接近,则用于所述目的地图块的保守最远Z值并不被更 新。
[0031] 在部分覆盖输入源图块被处理时,用于所述输入源图块的保守最远Z值可与所述 剔除Z值相比。如果用于所述输入源图块的保守最远Z值并不比所述剔除Z值更接近所述检 视区,则所述部分覆盖的源图块可不被合并。另一方面,如果用于所述输入源图块的保守最 远Z值比所述剔除Z值更接近所述检视区,则所述部分覆盖的输入图块可与此前已被合并用 于相同图块位置的任何部分覆盖的输入源图块合并。
[0032] 如果所述合并操作产生完全覆盖的合并图块,则用于所述图块位置的所述剔除Z 值利用所述完全覆盖的合并图块的最远Z值来更新。另外,如果所述合并操作并不产生完全 覆盖的图块,则用于所述目的地图块的保守最远Z值并不更新,但定义所述合并源图块的数 据可经存储用于后续的合并操作。
[0033] -种用于存储定义合并源图块的数据的方法在存储器中为擅染目标的图块位置 中的每个分配存储器条目,并在存储器条目中的每个中存储用于所述图块位置中的相应一 个的所累积的覆盖掩模和所累积的保守最远Z值。用于特定图块位置的所累积覆盖掩模可 对应于已被合并用于该特定图块位置的用于所述部分覆盖源图块中的每个的所述覆盖掩 模的合并版本。用于源图块的覆盖掩模可包含用于所述源图块中的所述样本中的每个的 位,其中,所述位中的每个表示对应于所述源图块的基元是否覆盖对应于相应位的样本。如 果样本的源图块响应于光栅化基元而生成,则所述基元可对应于样本的所述源图块。多个 覆盖掩模的合并版本可对应于相对于所有多个覆盖掩模执行的逐位"或"运算的结果。所累 积的用于特定图块位置的保守最远Z值可与已被合并用于该特定图块位置的用于所述部分 覆盖输入图块中的每个的保守最远Z值的最远Z值对应。
[0034] 在利用此前已被合并用于相同图块位置的部分覆盖源图块合并部分覆盖的源图 块之后,所述累积的覆盖掩模可经检测W确定所述合并源图块是否为完全覆盖的合并源图 块或部分覆盖的合并源图块。对于完全覆盖的合并源图块而言,所述覆盖掩模可将所有位 设定成表示在所述合并源图块中的所述样本中的每个被将在所述擅染目标上显示的至少 一个基元覆盖。对于部分覆盖的源图块合并而言,所述覆盖掩模可具有被设定的一些位和 未设定的一些位,所述未设定的一些位表明所述合并源图块所述样本中的一些未被基元覆 单 rm 〇
[0035] 擅染目标可包含大量的用于执行分层Z剔除的不同图块位置。存储用于所述不同 图块位置中的每个的所累积覆盖掩模和所累积最远Z值会消耗大量的存储器。此外,存取用 于所述不同图块位置中的每个的所累积覆盖掩模和所累积最远Z值会消耗大量的存储器带 宽。另外,存储合并源图块数据所需的存储器的量可能需要在与存取所述数据的GPU不同的 忍片(即,忍片外)上实施的存储器。在存取此些数据时由所述GPU执行的大量忍片外存储器 存取可能导致大量的处理延迟。
[0036] 根据本发明的一些方面,存储器单元可用于存储在执行分层Z剔除时可用于合并 部分覆盖源图块的所累积的覆盖掩模和所累积的最远Z值。所述存储器单元的大小可比存 储用于擅染目标中的所有图块位置的所累积的覆盖掩模和所累积的最远Z值所需的存储器 的大小更小。运可减小存储所累积的覆盖掩模和所累积的最远Z值所需的存储器占用面积。 设定大小相对较小的存储器单元也可允许所述存储器单元在与所述GHJ相同的忍片上实 施,借此减少存取所述数据所需的忍片外存储器带宽的量。另外,允许存储器在与所述GPU 相同的忍片上实施可减小存取所述数据所需的延迟的量,借此提高分层Z剔除操作的性能。
[0037] 因为用于存储所累积的覆盖掩模和所累积的最远Z值的所述存储器单元可比存储 用于擅染目标中的所有图块位置的所累积覆盖掩模和所累积最远Z值所需的存储器的大小 更小,所W在两个不同图块位置映射到相同存储器条目的情况下,用于两个不同图块位置 的数据可彼此覆写是有可能的。虽然运会降低所述保守最远Z值的质量(即,所述保守最远Z 值如何接近实际最远Z值),但是在一些情况下,通过使用忍片上存储器实现的性能好处可 比由于数据覆写造成的任何性能下降更重要。
[0038] 在一些示例中,所述存储器单元可为高速缓存单元。所述高速缓存单元的大小可 比存储用于擅染目标中的所有图块位置的所累积的覆盖掩模和所累积的最远Z值所需的高 速缓存的大小更小。另外,所述高速缓存单元可不与底层存储器相关联。也就是说,所述高 速缓存单元可充当用于所合并的源图块数据的主数据存储而非仅充当用于存储初次存储 在其它地方的数据的复本的高速缓存数据存储。高速缓存单元通常经设计存储比此些高速 缓存单元为其提供高速缓冲存储服务的所述底层存储器空间更少量的数据。因此,高速缓 存单元往往实施多种映射策略(例如,导向映射、组相联、完全相联等)和替代策略(例如,最 近最少使用、最不频繁使用、随机等)W确定数据将被存储在所述高速缓存中的什么地方和 哪些数据将在所述高速缓存中被覆写。使用高速缓存单元作为用于存储合并源图块数据的 主存储装置单元可允许图形系统充分利用运些内置式机理来确定数据被存储在高速缓存 单元中的什么地方和哪些数据在高速缓存单元中被覆写,即使所述高速缓存单元并不在所 述底层存储器中保持额外复本。运可简化实施用于存储合并源图块数据的存储器单元所需 的面积的设计和/或减小所述面积的量。
[0039] 在用于存储合并源图块数据的存储器被实施为高速缓存单元时,所述高速缓存单 元可包含多个不同的高速
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1