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

文档序号:9893645阅读:来源:国知局
可包含例如像素着色操作、渗合操作、纹理映射操作、可 编程像素着色器操作等。在一些示例中,像素处理级58中的一些或全部可在一起处理在源 图块中的所述样本。在其它示例中,像素处理级58中的一些或全部可彼此独立处理源图块 中的所述样本中的每个。在一些示例中,像素处理级58可包含将源图块合并或合成为处于 相同位置的目的地图块(即,具有与所述源图块相同的位置的目的地图块)的输出合并级。 在一些情况下,由像素处理级58生成的所述目的地图块可被放置在擅染目标中(例如,帖缓 冲器或分格缓冲器)中。
[0154] 图4为根据本发明的说明用于执行分层Z剔除的示例技术的流程图。在一些示例 中,如图4所示的技术可在图1和2的GPU 12中和/或在图3的Z剔除级56中实施。出于描述之 目的,所述技术将描述为通过GPU 12来执行,虽然应理解,所述技术可通过其它部件或装置 或在其它类型的图形处理系统中执行。
[0155] 如图4所示的技术采用增大Z坐标系,其中,所述Z值随着离开所述相机的距离增大 而增大。因此,在如图4所示的大于或小于比较的情况下,应理解在减小Z坐标系中,其中,所 述Z值随着离开所述相机的距离增大而减小,此些比较应被颠倒。也就是说,大于或小于比 较应被互换。
[0156] GPU 12可响应于从图形管线中的光栅化器或另一个处理级收到源图块而开始所 述源图块技术的过程。在一些示例中,光栅化器级54可生成所述源图块,W及Z剔除级56可 从光栅化器级54接收所述源图块。在其它示例中,光栅化器级54也可生成并且Z剔除级56可 从光栅化器级54接收W下中的一或多个:用于所述源图块的覆盖掩模(即,Src_Mask)、指示 所述源图块是否被完全覆盖(即,彻底地覆盖)的信息、用于所述源图块的保守最接近Z值 (即,Z_S;rc_Nea;r)和用于所述源图块的保守最远Z值(即,Z_S;rc_Fa;r)。
[0157] 响应于收到要处理的源图块,GPU 12可获得对应于所述源图块的图块位置的用于 所述图块位置的剔除Z值(即,化lling_Z)。在一些示例中,GPU 12可从存储剔除Z值的存储 器或缓冲器(例如LRZ缓冲器60)获得所述剔除Z值。所述剔除Z值可指示对应于所述源图块 的所述图块位置的用于目的地图块的所有样本的保守最远Z值。
[0158] GPU 12确定用于所述源图块的所述保守最接近Z值是否大于所述剔除Z值(100) (即,比所述剔除Z值更远)。响应于确定用于所述源图块的所述保守最接近Z值大于所述剔 除Z值(即,比所述剔除Z值更远),GPU 12丢弃所述源图块(102)并且结束用于所述源图块的 处理。丢弃所述源图块可包含不将所述源图块传送到图形管线的一或多个后续级(例如,图 形管线50的像素处理级58)上。在GPU 12丢弃所述源图块时,因为在所述源图块中的所有Z 值比已经在使用的所述剔除Z值更远,所W出于更新所述剔除Z值之目的,GPU 12并不进一 步分析所述源图块。
[0159] 返回到决策块100,响应于确定用于所述源图块的所述保守最接近Z值不大于所述 剔除Z值(即,不比所述剔除Z值更远),GPU 12并不丢弃所述源图块(104)。不丢弃所述源图 块可包含将所述源图块传送到图形管线的一或多个后续级(例如,图形管线50的像素处理 级58)上W供进一步处理。在GPU 12并不丢弃所述源图块时,GPU 12对所述源图块执行进一 步分析,W基于所述源图块来确定所述剔除Z值是否应被更新和/或W确定是否合并所述源 图块和用于所述图块位置的合并源图块。
[0160] 更具体地说,如果所述源图块并未丢弃,贝化PU 12确定用于所述源图块的所述保 守最远Z值是否小于所述剔除Z值(即,比所述剔除Z值更接近)(106)。响应于确定用于所述 源图块的所述保守最远Z值并不小于所述剔除Z值(即,不比所述剔除Z值更接近),GPU 12并 不合并所述源图块和用于所述图块位置的所述合并源图块(108) dGPU 12也并不更新所述 剔除Z值。而是因为用于所述源图块的所述保守最远Z值比已经在使用的所述剔除Z值更远, 改为GPU 12结束所述源图块的处理W确定是否更新所述剔除Z值。然而,所述图形管线的后 续级(例如,图形管线50的像素处理级58)可对所述源图块执行另外的像素处理。
[0161] 返回到决策块106,响应于确定用于所述源图块的所述保守最远Z值小于所述剔除 Z值(即,比所述剔除Z值更接近),GPU 12确定所述源图块是否被完全覆盖(110)。在源图块 的所有样本被对应于所述源图块的基元覆盖时,所述源图块可被完全覆盖。如果基元的区 域包含所述样本位置,则所述样本可被所述基元覆盖。如果所述源图块响应于光栅化基元 而生成,则所述基元可对应于所述源图块。
[0162] 响应于确定所述源图块被完全覆盖,GPU 12并不合并所述源图块(112)。而是GPU 12基于所述完全覆盖源图块的所述保守最远Z值来更新所述剔除Z值(114)。例如,GPU 12可 设定所述剔除Z值等于所述完全覆盖源图块的所述保守最远Z值。GPU 12使与所述源图块的 所述图块位置相关联的合并高速缓存行(如果存在的话)无效(116)。用于分层Z剔除目的的 所述源图块的所述处理结束。然而,所述图形管线的后续级(例如,图形管线50的像素处理 级58)可对所述源图块执行另外的像素处理。
[0163] 返回到决策块110,响应于确定所述源图块并不被完全覆盖(即,所述源图块被部 分覆盖),GPU 12合并所述源图块和用于所述图块位置的合并源图块W生成所述合并源图 块的经更新版本(118)。关于所述合并操作的进一步细节在下文中关于图5讨论。
[0164] 在合并所述源图块之后,GPU 12确定所述合并源图块的所述经更新版本是否被完 全覆盖(120)。在所述合并源图块的所述经更新版本的所有样本被对应于所述合并源图块 的所述经更新版本的一组基元覆盖时,所述合并源图块的所述经更新版本可被完全覆盖。 对应于所述合并源图块的所述经更新版本的所述组基元可包含对应于被合并到所述合并 源图块的所述经更新版本中的所述部分覆盖源图块中的每个的所述基元。如果部分覆盖的 源图块响应于光栅化基元而生成,则所述基元可对应于所述部分覆盖的源图块。
[0165] 响应于确定所述合并源图块的所述经更新版本被完全覆盖,GPU 12基于所述完全 覆盖合并源图块的所述保守最远Z值来更新所述剔除Z值(122)。例如,GPU 12可设定所述剔 除Z值等于所述完全覆盖合并源图块的所述保守最远Z值。贝化PU 12使与所述源图块的所述 图块位置相关联的所述合并高速缓存行无效(124)。用于分层Z剔除目的的所述源图块的所 述处理结束。然而,所述图形管线的后续级(例如,图形管线50的像素处理级58)可对所述源 图块执行另外的像素处理。
[0166] 响应于确定所述合并源图块的所述经更新版本未被完全覆盖,GPU 12并不更新所 述剔除Z值。而是GPU 12存储供在处理后续源图块时使用的所述合并源图块数据。用于分层 Z剔除目的的所述源图块的所述处理结束。然而,所述图形管线的后续级(例如,图形管线50 的像素处理级58)可对所述源图块执行另外的像素处理。
[0167] 图5为根据本发明的说明在执行分层z剔除时,用于合并部分覆盖源图块的示例技 术的流程图。在一些示例中,如图5所示的技术可在图1和2的GPU 12中和/或在图3的Z剔除 级56中实施。出于描述之目的,所述技术将描述为通过GPU 12来执行,虽然应理解,所述技 术可通过其它部件或装置或在其它类型的图形处理系统中执行。
[0168] 在一些示例中,如图5所示的技术可用于实施图4中的过程块118。类似于图4,如图 5所示的技术采用增大Z坐标系,其中,所述Z值随着离开所述相机的距离增大而增大。因此, 在如图5所示的大于或小于比较的情况下,应理解在减小Z坐标系中,其中,所述Z值随着离 开所述相机的距离增大而减小,此些比较应被颠倒。也就是说,大于或小于比较应被互换。 类似地,在减小Z坐标系中,最大值函数应被替换为最小值函数。
[0169] 响应于收到部分覆盖的源图块,GPU 12可开始如图5所示的所述合并源图块技术。 在一些示例中,响应于确定源未被完全覆盖并响应于确定用于所述源图块的所述保守最远 Z值小于如图4中的决策块106和110所示的所述剔除Z值(即,比所述剔除Z值更接近),GPU 12可开始如图5所示的所述合并源图块技术。
[0170] GPU 12在高速缓存单元(例如,合并高速缓存62)中捜索具有对应于所述部分覆盖 源图块的图块位置的合并源图块(140) dGPU 12确定在所述高速缓存单元中是否发现用于 所述图块位置的合并源图块(142)。换句话说,GPU 12确定所述高速缓存中是否存在用于所 述图块位置的命中。
[0171] 响应于确定未发现所述合并源图块,GPU 12在所述高速缓存单元中分配用于与对 应于所述部分覆盖源图块的所述图块位置相关联的合并源图块的新高速缓存行(144)。在 一些示例中,所述高速缓存单元的所述映射方案可将所述图块位置(例如,地址)中的每个 映射至一组一或多个高速缓存行。在一些示例中,如果没有所述图块位置可映射的高速缓 存行可用,则所述高速缓存单元可利用与当前处理的图块位置相关联的所述合并源图块数 据覆写存储在映射到所述图块位置的所述组高速缓存行中的用于另一图块位置的所述合 并源图块数据。
[0172] GPU 12设定用于所述合并源图块的所述保守最远Z值(即,Z_Me巧e)等于用于所述 源图块的所述保守最远z值(即,Z_Src_Far)α46)。GPU12设定用于所述合并源图块的所述 覆盖掩模(即,Merge_Mask)等于用于所述部分覆盖源图块的所述覆盖掩模(即,Src_Mask)。 GPU 12设定合并完全变量为假W表示所述合并源图块未被完全覆盖、输出所述合并完全变 量(150),并结束所述合并过程。所述合并完全变量可被图4中的技术(例如,决策块120)用 于确定所述合并源图块的所述经更新版本是否被完全覆盖。
[0173] 返回到决策块142,响应于确定发现所述合并源图块,GPU 12从所述高速缓存单元 获得所述合并源图块数据。所述合并源图块数据可包含用于所述合并源图块的保守最远Z 值(即,Z_M&rge)和用于所述合并源图块的覆盖掩模(即,M&rge_Mask)。
[0174] GPU 12确定被所述合并源图块覆盖的所有样本位置是否也被所述部分覆盖源图 块覆盖(152)。在一些示例中,为执行此操作,GPU 12可对用于所述合并源图块的所述覆盖 掩模和用于所述部分覆盖源图块的所述覆盖掩模执行逐位"与"运算,并确定所述逐位"与" 运算的结果是否等于用于所述合并源图块的所述覆盖掩模。如果所述逐位"与"运算的结果 等于用于所述合并源图块的所述覆盖掩模,则被所述合并源图块覆盖的所有样本位置也被 所述部分覆盖源图块覆盖。
[0175] 响应于确定被所述合并源图块覆盖的所有样本位置也被所述部分覆盖源图块覆 盖,GPU 12确定用于所述源图块的所述保守最远Z值(即,Z_Src_Far)是否小于用于所述合 并源图块的所述保守最远Z值(即,Z_Merge)(即,比用于所述合并源图块的所述保守最远Z 值更接近)(154)。响应于确定用于所述源图块的所述保守最远Z值小于用于所述合并源图 块的所述保守最远Z值(即,比用于所述合并源图块的所述保守最远Z值更接近),GPU 12设 定用于所述合并源图块的所述经更新版本的所述保守最远Z值(即,Z_Merge)等于用于所述 源图块的所述保守最远z值(即,Z_Src_Far)α56)。GPU12也设定用于所述合并源图块的所 述经更新版本的所述覆盖掩模等于用于所述源图块的所述覆盖掩模(即,Src_Mask)和用于 所述合并源图块的先前版本的所述覆盖掩模(即,Merge_Mask_Prev)的逐位"或"运算的结 果(160)。所述合并源图块的所述先前版本可对应于在所述合并源图块的所述经更新版本 之前的所述合并源图块的所述版本,并且在一些示例中,可W替代地被称为所述合并源图 块的当前版本。
[0176] 在此情况下,用于所述合并源图块的所述经更新版本的所述保守最远Z值可W设 定成用于所述源图块的所述保守最远Z值,因为在所述合并源图块中的所述先前版本的所 有样本将被所述源图块中的所述样本遮挡。因为在此情况下,用于所述源图块的所述保守 最远Z值比用于所述源图块的所述保守最远Z值和所述合并源图块的所述当前版本中的最 大值更接近所述相机,可获得用于所述合并源图块的较好质量保守最远Z值,运可产生用于 所述图块位置的较好质量剔除Z值。较好质量剔除Z值可提高所述Z剔除算法的丢弃率。
[0177] 返回到决策块152和154,响应于确定被所述合并源图块覆盖的所有样本位置也未 被所述部分覆盖源图块覆盖,或响应于确定用于所述源图块的所述保守最远Z值并不小于 用于所述合并源图块的所述保守最远Z值(即,不比用于所述合并源图块的所述保守最远Z 值更接近),GPU 12设定用于所述合并源图块的所述经更新版本的所述保守最远Z值(即,Z_ Merge)等于用于所述源图块的所述保守最远Z值(即,Z_Src_Far)和用于所述合并源图块的 所述先前版本的所述保守最远Z值(即,Merge_Mask_Prev)中的最大值(即,最远值)(158)。 GPU 12也设定用于所述合并源图块的所述经更新版本的所述覆盖掩模等于用于所述源图 块的所述覆盖掩模(即,Src_Mask)和用于所述合并源图块的所述先前版本的所述覆盖掩模 (即,Merge_Mask_Prev)的逐位"或"运算的结果(160)。
[0178] GPU 12确定所述合并源图块是否被完全覆盖(162)。在所述合并源图块中的所有 样本被对应于所述合并源图块的所述组基元覆盖时,所述合并源图块可被完全覆盖。对应 于所述合并源图块的所述组基元可包含对应于先前被合并到所述合并源图块中的所述部 分覆盖源图块中的每个的所述基元。
[0179] 响应于确定所述合并源图块被完全覆盖,GPU 12设定所述合并完全传回变量为 真,W表示所述合并源图块被完全覆盖(164)。所述合并完全变量可被图4中的技术(例如, 决策块120)用于确定所述合并源图块的所述经更新版本是否被完全覆盖。GPU 12也输出用 于所述合并源图块的所述经更新版本的所述保守最远Z值(即,Z_Merge)(166)。用于所述合 并源图块的所述经更新版本的所述保守最远Z值可被图4中的技术(例如过程块114和122) 用于更新所述剔除Z值。GPU 12结束所述合并过程。
[0180] 返回到决策块162,响应于确定所述合并源图块未被完全覆盖,GPU 12设定所述合 并完全变量为假,W表示所述合并源图块未被完全覆盖,输出所述合并完全变量(168)并结 束所述合并过程。此外,所述合并完全变量可被图4中的技术(例如,决策块120)用于确定所 述合并源图块的所述经更新版本是否被完全覆盖。
[0181] 需要指出,虽然图5中的决策块152和154被示为独立的决策,但在其它示例中,在 决策块152和154中列出的所述标准可在一起评估。在此些示例中,如果满足两个标准,则处 理可前进到过程块156, W及如果不满足两个标准,则处理可前进到过程块158。
[0182] 如图5所述的部分覆盖源图块合并技术被描述为使用无需底层存储器(出于示例 性目的)运行的高速缓存单元。应理解,除了或代替无需底层存储器运行的高速缓存单元, 如图5所述的技术还可使用其它类型的存储器装置、存储器单元和/或存储器子系统。
[0183] 如图4和5所示,基于所述源图块的保守最接近Z值是否比与所述图块位置相关联 的剔除Z值更远,GPU 12从图形管线50选择性丢弃与所述图块位置相关联的样本的源图块 α00、102、104)。例如,响应于确定所述源图块的所述保守最接近z值比与所述图块位置相 关联的所述剔除Z值更远,GPU 12丢弃所述源图块(100-是、102),W及响应于确定所述源图 块的所述保守最接近Z值并不比与所述图块位置相关联的所述剔除Z值更远,GPU 12不丢弃 所述源图块(100-否104)。
[0184] 如图4和5所进一步示出,GPU 12基于源图块是否被对应于所述源图块的基元完全 覆盖W及基于所述源图块的保守最远Z值是否小于与图块位置相关联的所述剔除Z值,选择 性合并与所述图块位置相关联的样本的所述源图块和用于所述图块位置的合并源图块,W 生成所述合并源图块的经更新版本(106、108、110、112、118)。例如,响应于确定所述源图块 未被对应于所述源图块的所述基元完全覆盖W及所述源图块的所述保守最远Z值小于与所 述图块位置相关联的所述剔除Z值,GPU 12合并所述源图块和用于所述图块位置的所述合 并源图块(106-是;110-否;118),W及响应于确定所述源图块被对应于所述源图块的所述 基元完全覆盖或所述源图块的所述保守最远Z值不小于与所述图块位置相关联的所述剔除 Z值,GPU 12不合并所述源图块和用于所述图块位置的所述合并源图块(106-否,108; 110- 是;112)。
[0185] 如图4和5所进一步示出,GPU 12基于所述合并源图块的所述经更新版本是否被对 应于所述合并源图块的所述经更新版本的一组基元完全覆盖,选择性设定所述剔除Z值等 于用于所述合并源图块的所述经更新版本的保守最远Z值(120、122)。例如,响应于确定所 述合并源图块的所述经更新版本被所述组基元完全覆盖,GPU 12设定所述剔除Z值等于用 于所述合并源图块的所述经更新版本的所述保守最远Z值(120-是、122),W及响应于确定 所述合并源图块的所述经更新版本未被所述组基元完全覆盖,GPU 12不设定所述剔除Z值 等于用于所述合并源图块的所述经更新版本的所述保守最远Z值(120-否)。
[0186] 如图4和5所进一步示出,GPU 12基于所述源图块的所述保守最远Z值W及用于所 述合并源图块的先前版本的保守最远Z值生成用于所述合并源图块的经更新版本的保守最 远Z值(158)。例如,GPU 12可设定用于所述合并源图块的所述经更新版本的所述保守最远Z 值等于所述源图块的所述保守最远Z值和用于所述合并源图块的先前版本的所述保守最远 Z值之中的最大值(即,最远的)。
[0187] 如图4和5所进一步示出,GPU 12基于用于所述源图块的覆盖掩模和用于所述合并 源图块的先前版本的覆盖掩模生成用于所述合并源图块的所述经更新版本的覆盖掩模 (160)。例如,GPU 12可利用用于所述合并源图块的所述覆盖掩模对用于所述部分覆盖源图 块的所述覆盖掩模执行逐位"或"运算,w生成用于所述合并源图块的所述经更新版本的覆 盖掩模。
[0188] 如图4和5所进一步示出,GPU 12基于所述源图块是否被对应于所述源图块的所述 基元完全覆盖,选择性使存储用于所述合并源图块的数据记录的高速缓存单元中的高速缓 存行无效(11〇、116、120、124)。例如,响应于确定源图块被对应于所述源图块的所述基元完 全覆盖,GPU 12使高速缓存行无效(110-是、116)。作为另一示例,基于所述合并源图块的所 述经更新版本是否被对应于所述合并源图块的所述经更新版本的所述组基元完全覆盖,响 应于确定所述源图块未被对应于所述源图块的所述基元完全覆盖,GPU 12选择性使所述高 速缓存行无效(120、124)。例如,响应于确定所述合并源图块的所述经更新版本被所述组基 元完全覆盖,GPU 12使所述高速缓存行无效(120-是、124),W及响应于确定所述合并源图 块的所述经更新版本未被所述组基元完全覆盖,GPU 12并不使所述高速缓存行无效(120- 否)。
[0189] 图6为根据本发明的说明待擅染的示例基元组和与示例基元组的擅染相关联的对 应合并高速缓存状态的原理图。如图6所示,所述擅染目标包含四个图块位置(A、B、C、D)W 及Ξ个Ξ角形基元(1、2和3)。在此示例中所述基元W数字顺序被擅染。所述图块位置中的 每个可对应于目的地图块、一或多个源图块W及合并源图块。
[0190] 基元1完全覆盖源图块A并且部分覆盖源图块B、C和D。未在所述合并高速缓存中生 成用于所述完全覆盖源图块A的高速缓存行。而是,用于源图块A的所述保守最大Z值可用于 直接更新用于图块位置A的所述剔除Z值(即,用于目的地图块A的所述保守最大Z值)而无需 任何合并。在所述合并高速缓存中生成用于部分覆盖源图块B、C和D中的每个的高速缓存 行。如图6所示,在擅染基元1之后,所述合并高速缓存包含用于合并源图块B、C和D
当前第5页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1