選擇性合并部分覆蓋圖塊以執(zhí)行分層z剔除的制作方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明設(shè)及圖形處理系統(tǒng),且更明確地說,設(shè)及在圖形處理系統(tǒng)中使用的Z剔除技 術(shù)。
【背景技術(shù)】
[0002] 圖形處理單元(GPU)可由不同類型的計算裝置用來加快顯示器的圖形數(shù)據(jù)的擅 染。此些計算裝置可包含例如計算機(jī)工作站、移動電話(例如,智能電話)、嵌入式系統(tǒng)、個人 計算機(jī)、平板計算機(jī)及視頻游戲控制臺。
[0003] 擅染通常指代將可包含一或多個3D圖形對象的Ξ維(3D)圖形場景轉(zhuǎn)換為二維 (2D)光柵化圖像數(shù)據(jù)的過程。為擅染3D圖形對象,GPU可光柵化對應(yīng)于所述3D圖形對象中的 每個的一或多個基元,W便生成對應(yīng)于所述3D圖形對象中的每個的多個像素。所述像素隨 后可使用多種像素處理操作來處理W生成所得圖像。像素處理操作可包含像素著色操作、 滲合操作、紋理-映射操作、可編程像素著色器操作等。
[0004] 由于GPU已變得越來越快,增加了由GPU擅染的圖形場景的復(fù)雜度。高度復(fù)雜的場 景可包含大量的3D對象,運些3D對象中的每個可對應(yīng)于數(shù)百或數(shù)千個像素。處理運些像素 中的每個可能消耗大量的處理周期和相對大量的存儲器帶寬。
[0005] 3D圖形對象通常在光柵化之前細(xì)分為一或多個圖形基元(例如點、線、Ξ角形)。時 常,從檢視區(qū)的角度,基元中的一些可能阻塞或閉塞其它基元,使得所述閉塞基元可能在所 得擅染圖像中是不可見的。對閉塞基元的像素執(zhí)行像素處理操作可能導(dǎo)致執(zhí)行不必要的像 素操作,運可能消耗圖形處理系統(tǒng)中的不必要的處理周期和存儲器帶寬。
[0006] 已有人提出處理與閉塞基元相關(guān)聯(lián)的像素的不必要處理的問題的各種解決方案。 一種解決方案是執(zhí)行分層Z剔除,運可包括在圖形管線中的相對早期階段丟棄在最終所得 擅染圖像中不可見的源像素,W便減小GPU的工作負(fù)荷和/或降低GPU的存儲器帶寬使用率。 例如,分層Z剔除算法可比較像素的輸入源圖塊的保守最小Z值和與所述源圖塊具有相同圖 塊位置的像素的目的地圖塊的保守最大Z值,并在所述源圖塊的保守最小Z值比所述圖塊位 置的保守最大Z值更大時,丟棄像素的源圖塊。像素的目的地圖塊的保守最大Z值可為大于 或等于像素的所述目的地圖塊的實際最大Z值的值。
[0007] 大體而言,所述保守最大Z值越接近所述目的地圖塊的實際最大Z值(即,等于在所 述目的地圖塊中的所有像素的最大Z值的值),則在所述圖形管線中可早期丟棄的不可見源 像素的數(shù)量越大,并因此,通過執(zhí)行分層Z剔除可獲得的性能好處就越大。然而,就算法復(fù)雜 度、內(nèi)存占用率、存儲器帶寬和處理器工作負(fù)荷而言,實現(xiàn)相對接近目的地圖塊的實際最大 Z值的保守最大Z值可能是昂貴的。
【發(fā)明內(nèi)容】
[000引本發(fā)明描述用于在圖形處理系統(tǒng)中執(zhí)行分層Z剔除的技術(shù)。在一些示例中,用于執(zhí) 行分層Z剔除的技術(shù)可包括基于用于與圖塊位置相關(guān)聯(lián)的部分覆蓋源圖塊的保守最遠(yuǎn)Z值 是否比用于圖塊位置的剔除z值更接近,將部分覆蓋源圖塊選擇性合并為完全覆蓋合并的 源圖塊,并使用與所述完全覆蓋合并源圖塊相關(guān)聯(lián)的保守最遠(yuǎn)Z值來更新用于所述圖塊位 置的所述剔除Z值。所述剔除Z值可用于形成所述圖塊位置的剔除確定,并可指示與所述圖 塊位置對應(yīng)的目的地圖塊的所有樣本的保守最遠(yuǎn)Z值。部分覆蓋的源圖塊的所述合并可在 W下意義上是選擇性的:用于圖塊位置的具有比用于所述圖塊位置的所述剔除Z值更接近 所述檢視區(qū)的保守最遠(yuǎn)Z值的部分覆蓋源圖塊可被合并,而用于所述圖塊位置的其它部分 覆蓋的源圖塊可不被合并。W此方式的選擇性合并源圖塊可提高用于執(zhí)行分層Z剔除的剔 除Z值的質(zhì)量,運可提高Z剔除算法的拒絕效率。W此方式,可提高執(zhí)行分層Z剔除的圖形處 理器的性能和/或存儲器帶寬使用率。
[0009] 在一個示例中,本發(fā)明描述一種方法,其包含基于與圖塊位置相關(guān)聯(lián)的樣本的源 圖塊是否被對應(yīng)于所述源圖塊的基元完全覆蓋并基于所述源圖塊的保守最遠(yuǎn)Z值是否比與 圖塊位置相關(guān)聯(lián)的剔除Z值更接近,利用圖形處理單元(GPU)選擇性合并源圖塊和用于所述 圖塊位置的合并源圖塊,W生成所述合并源圖塊的經(jīng)更新版本。所述剔除Z值指示用于與所 述圖塊位置對應(yīng)的目的地圖塊的所有樣本的保守最遠(yuǎn)Z值。
[0010] 在另一示例中,本發(fā)明描述一種裝置,其包含圖形處理單元(GPU),所述圖形處理 單元(GPU)經(jīng)配置基于與圖塊位置相關(guān)聯(lián)的樣本的源圖塊是否被對應(yīng)于所述源圖塊的基元 完全覆蓋并基于所述源圖塊的保守最遠(yuǎn)Z值是否比與圖塊位置相關(guān)聯(lián)的剔除Z值更接近,選 擇性合并源圖塊和用于所述圖塊位置的合并源圖塊,W生成所述合并源圖塊的經(jīng)更新版 本。所述剔除Z值指示用于與所述圖塊位置對應(yīng)的目的地圖塊的所有樣本的保守最遠(yuǎn)Z值。
[0011] 在另一示例中,本發(fā)明描述一種設(shè)備,其包含用于確定與圖塊位置相關(guān)聯(lián)的樣本 的源圖塊的保守最遠(yuǎn)Z值是否比與所述圖塊位置相關(guān)聯(lián)的剔除Z值更接近的裝置。所述剔除 Z值指示用于與所述圖塊位置對應(yīng)的目的地圖塊的所有樣本的保守最遠(yuǎn)Z值。所述設(shè)備進(jìn)一 步包含用于基于源圖塊是否被對應(yīng)于所述源圖塊的基元完全覆蓋并基于所述源圖塊的保 守最遠(yuǎn)Z值是否比與所述圖塊位置相關(guān)聯(lián)的剔除Z值更接近,選擇性合并所述源圖塊和用于 所述圖塊位置的合并源圖塊W生成所述合并源圖塊的經(jīng)更新版本的裝置。
[0012] 在另一示例中,本發(fā)明描述一種計算機(jī)可讀存儲媒體存儲指令,其在被執(zhí)行時,致 使一或多個處理器基于與圖塊位置相關(guān)聯(lián)的樣本的源圖塊是否被對應(yīng)于所述源圖塊的基 元完全覆蓋并基于所述源圖塊的保守最遠(yuǎn)Z值是否比與所述圖塊位置相關(guān)聯(lián)的剔除Z值更 接近,選擇性合并源圖塊和用于所述圖塊位置的合并源圖塊,W生成所述合并源圖塊的經(jīng) 更新版本。所述剔除Z值指示用于與所述圖塊位置對應(yīng)的目的地圖塊的所有樣本的保守最 遠(yuǎn)Z值。
[0013] 在附圖和W下描述中闡明本發(fā)明的一或多個示例的細(xì)節(jié)。本發(fā)明的其它特征、目 標(biāo)和優(yōu)點將從所述描述和附圖W及權(quán)利要求書而顯而易見。
【附圖說明】
[0014] 圖1為說明可用于實施本發(fā)明的分層Z剔除技術(shù)的示例計算裝置的框圖。
[001引圖2為更詳細(xì)說明在圖1中示出的計算裝置的CPU、GPU和存儲器的框圖。
[0016] 圖3為說明可用于實施本發(fā)明的分層Z剔除技術(shù)的示例圖形管線的框圖。
[0017] 圖4為根據(jù)本發(fā)明的說明用于執(zhí)行分層Z剔除的示例技術(shù)的流程圖。
[0018] 圖5為根據(jù)本發(fā)明的說明在執(zhí)行分層z剔除時,用于合并部分覆蓋源圖塊的示例技 術(shù)的流程圖。
[0019] 圖6為根據(jù)本發(fā)明的說明待擅染的示例基元組和與示例基元組的擅染相關(guān)聯(lián)的對 應(yīng)合并高速緩存狀態(tài)的原理圖。
【具體實施方式】
[0020] 本發(fā)明描述用于在圖形處理系統(tǒng)中執(zhí)行分層Z剔除的技術(shù)。在一些示例中,用于執(zhí) 行分層Z剔除的技術(shù)可包括基于用于部分覆蓋源圖塊的保守最遠(yuǎn)Z值是否比用于圖塊位置 的剔除Z值更接近,將與圖塊位置相關(guān)聯(lián)的部分覆蓋源圖塊選擇性合并為完全覆蓋合并的 源圖塊,并使用與所述完全覆蓋合并源圖塊相關(guān)聯(lián)的保守最遠(yuǎn)Z值來更新用于所述圖塊位 置的剔除Z值。所述剔除Z值可用于形成所述圖塊位置的剔除確定,并可指示與所述圖塊位 置對應(yīng)的目的地圖塊的所有樣本的保守最遠(yuǎn)Z值。所述部分覆蓋的源圖塊的合并可在W下 意義上是選擇性的:用于圖塊位置的具有比用于所述圖塊位置的所述剔除Z值更接近檢視 區(qū)的保守最遠(yuǎn)Z值的部分覆蓋源圖塊可被合并,而用于所述圖塊位置的其它部分覆蓋的源 圖塊可不被合并。W此方式的選擇性合并源圖塊可提高用于執(zhí)行分層Z剔除的剔除Z值的質(zhì) 量,運可提高Z剔除算法的拒絕效率。W此方式,可提高執(zhí)行分層Z剔除的圖形處理器的性能 和/或存儲器帶寬使用率。
[0021] 在其它示例中,用于執(zhí)行分層Z剔除的技術(shù)可使用高速緩存單元來存儲所累積的 保守最遠(yuǎn)Z值和所累積的用于合并源圖塊的覆蓋掩模。所述高速緩存單元的容量可比存儲 所累積的保守最遠(yuǎn)Z值和用于在擅染目標(biāo)中的所有圖塊位置的所累積的覆蓋掩模所需的高 速緩存的大小更小。另外,所述高速緩存單元可不與底層存儲器相關(guān)聯(lián)。也就是說,所述高 速緩存單元可充當(dāng)用于合并源圖塊數(shù)據(jù)的主數(shù)據(jù)存儲,非僅充當(dāng)用于存儲初次存儲在另一 個底層存儲器中的數(shù)據(jù)的復(fù)本的被高速緩存的數(shù)據(jù)存儲。使用W上述方式配置的高速緩存 來存儲所累積的保守最遠(yuǎn)Z值和所累積的覆蓋掩??商岣逩PU的存儲器帶寬使用率的性能 和/或GPU的存儲器占用面積,所述GPU基于所累積的與合并源圖塊相關(guān)聯(lián)的保守最遠(yuǎn)Z值執(zhí) 行分層Z剔除。
[0022] 在另外示例中,在用于所述圖塊位置的剔除Z值響應(yīng)于處理用于所述圖塊位置的 完全覆蓋的非合并源圖塊而被更新時,用于執(zhí)行分層Z剔除的技術(shù)可使高速緩存單元的存 儲用于圖塊位置的合并源圖塊數(shù)據(jù)的高速緩存行無效。例如,響應(yīng)于確定用于所述圖塊位 置的源圖塊被對應(yīng)于所述源圖塊的基元完全覆蓋和所述源圖塊的保守最遠(yuǎn)Z值比與所述圖 塊位置相關(guān)聯(lián)的剔除Z值更接近,用于執(zhí)行分層Z剔除的技術(shù)可使與圖塊位置相關(guān)聯(lián)的高速 緩存行無效。在響應(yīng)于處理用于圖塊位置的完全覆蓋的非合并源圖塊已更新剔除Z值之后, 在一些情況下,對應(yīng)于所述圖塊位置的所述合并源圖塊可具有保守最遠(yuǎn)Z值,其比所述已更 新剔除Z值更遠(yuǎn)。如果所述剔除Z值經(jīng)更新等于比已經(jīng)使用的剔除Z值更遠(yuǎn)的保守最遠(yuǎn)Z值, 則可減少被剔除樣本的量,借此降低所述分層Z剔除算法的效率。使存儲用于此些圖塊位置 的所述合并源圖塊數(shù)據(jù)的高速緩存行無效可確保存儲在所述合并高速緩存中的保守最遠(yuǎn)Z 值并不隨后用于更新所述剔除Z值。W此方式清除出所述合并高速緩存可提高所得剔除Z值 的質(zhì)量,借此提高所述分層Z剔除算法的丟棄效率。
[0023] 分層Z剔除可由GPU用于在所述圖形管線中在相對早期階段丟棄在最終所得擅染 圖像中不可見的源樣本,W便減小GPU的工作負(fù)荷和/或降低GPU的存儲器帶寬使用率。在一 些示例中,分層Z剔除可使用用于在擅染目標(biāo)中的圖塊位置中的每個的剔除Z值W確定不可 見并因此可W丟棄的源樣本。剔除Z值可指示用于與所述圖塊位置對應(yīng)的目的地圖塊的所 有樣本的保守最遠(yuǎn)Z值。用于目的地圖塊的保守最遠(yuǎn)Z值可為與在所述樣本的目的地圖塊中 的最遠(yuǎn)Z值至少一樣遠(yuǎn)或比所述最遠(yuǎn)Z值更遠(yuǎn)的Z值。用于圖塊中的個別樣本的Z值可W指指 示在所述樣本和垂直于相機(jī)(例如檢視區(qū))的方向的平面之間的距離的值,其中,所述相機(jī) 與包含所述樣本的擅染圖形帖相關(guān)聯(lián)。樣本可W指像素或像素的子樣本。
[0024] -種分層Z剔除算法可比較樣本的輸入源圖塊的保守最接近Z值和樣本的目的地 圖塊的剔除Z值,并在所述源圖塊的所述保守最接近Z值與所述目的地圖塊的剔除Z值相比 更遠(yuǎn)時,丟棄樣本的源圖塊。運類分層Z剔除技術(shù)使用表示用于目的地圖塊中所有樣本的保 守最遠(yuǎn)Z值的圖塊寬剔除Z值,而不管在所述目的地圖塊中的樣本是否被基元覆蓋。例如,在 向所述目的地圖塊擅染任何基元之前,在所述剔除Z值經(jīng)初始化用于所述目的地圖塊時,所 述剔除Z值可設(shè)定成用于所述系統(tǒng)的最遠(yuǎn)可能Z剔除值。只要在不被基元覆蓋的所述目的地 圖塊中存在至少一個樣本,所述剔除Z值就可保持在所述最遠(yuǎn)的可能Z剔除值。相對于使用 表示僅用于在目的地圖塊中被基元覆蓋的那些樣本的保守最遠(yuǎn)Z值的剔除Z值,使用表示用 于在目的地圖塊中的所有樣本的保守最遠(yuǎn)Z值的圖塊寬剔除Z值而不管所述樣本是否被基 元覆蓋可降低在分層Z剔除期間所執(zhí)行的丟棄比較的復(fù)雜度,借此提高實施分層Z剔除技術(shù) 的圖形系統(tǒng)的性能。
[0025] 對于如上文所論述的使用并不在覆蓋樣本和未覆蓋樣本之間區(qū)別的剔除Z值的分 層Z剔除算法而言,如果用于輸入源圖塊的保守最遠(yuǎn)Z值比用于所述目的地圖塊的剔除Z值 更接近,并且所述輸入源圖塊被對應(yīng)于所述輸入源圖塊的基元完全覆蓋,則用于所述目的 地圖塊的剔除Z值可利用用于所述輸入源圖塊的保守最遠(yuǎn)Z值來更新。然而,如果所述輸入 源圖塊僅被對應(yīng)于所述源圖塊的基元部分覆蓋而不是完全覆蓋,則所述剔除Z值可不始終 能夠W類似方式更新,因為使用所述保守最遠(yuǎn)Z值用于所述部分覆蓋源圖塊是否將產(chǎn)生用 于所述全部目的地圖塊的保守最遠(yuǎn)Z值是不確定的。運可產(chǎn)生用于所述目的地圖塊的不太 理想的保守最遠(yuǎn)Z值,運可能減少早期在所述圖形管線中可W丟棄的樣本的數(shù)量。
[0026] -種用于允許部分覆蓋圖塊影響用于目的地圖塊的保守最遠(yuǎn)Z值的更新的技術(shù)是 將具有相同圖塊位置的部分覆蓋源圖塊合并為完全覆蓋的圖塊,并且使用與所述合并的完 全覆蓋圖塊相關(guān)聯(lián)的所累積的保守最遠(yuǎn)Z值來更新在相同圖塊位置的用于目的地圖塊的剔 除Z值。使用與所述合并的源圖塊相關(guān)聯(lián)的所累積的保守最遠(yuǎn)Z值來更新用于目的地圖塊的 所述保守最遠(yuǎn)Z值可減小在所述保守最遠(yuǎn)Z值和用于所述目的地圖塊的實際最遠(yuǎn)Z值之間的 差,借此允許丟棄另外的源樣本。W此方式,可提高執(zhí)行分層Z剔除的GPU的性能。
[0027] -種用于合并部分覆蓋的源圖塊的方法包括合并用于特定圖塊位置的所有部分 覆蓋的源圖塊,而不管待合并的所述源圖塊的保守最遠(yuǎn)Z值是否大于或小于所述目的地圖 塊的保守最遠(yuǎn)Z值。此方法可產(chǎn)生用于圖塊位置的合并的源圖塊,其具有比用于所述圖塊位 置的所述剔除Z值距離所述檢視區(qū)更遠(yuǎn)的保守最遠(yuǎn)Z值。用于合并源圖塊的保守最遠(yuǎn)Z值可 為與用于所述合并源圖塊的所有覆蓋樣本的最遠(yuǎn)Z值至少一樣遠(yuǎn)或比所述最遠(yuǎn)Z值更遠(yuǎn)的Z 值。利用比所述剔除Z值距離所述檢視區(qū)更遠(yuǎn)的保守最遠(yuǎn)Z值替換所述剔除Z值可減少被所 述分層Z剔除算法丟棄的樣本的量,借此減少通過執(zhí)行分層Z剔除獲得的性能好處。
[0028] 對于其中用于合并源圖塊的保守最遠(yuǎn)z值比用于所述圖塊位置的對應(yīng)剔除z值距 離所述檢視區(qū)更遠(yuǎn)的所述合并源圖塊而言,用于形成所述合并源圖塊的所述部分覆蓋源圖 塊中的一些可包含比剔除Z值更接近所述檢視區(qū)的保守最遠(yuǎn)Z值。將部分覆蓋源圖塊彼此無 差別地合并,而不管用于此些源圖塊的所述保守最遠(yuǎn)Z值相對于所述剔除Z值的取向的系統(tǒng) 可阻止比所述剔除Z值更接近所述檢視區(qū)的部分覆蓋源圖塊正面影響所述剔除Z值的質(zhì)量, 借此潛在減少被所述分層Z剔除算法丟棄的樣本的量。
[0029] 根據(jù)本發(fā)明的一些方面,所描述的技術(shù)是基于用于部分覆蓋源圖塊的保守最遠(yuǎn)Z 值是否比所述圖塊位置的剔除Z值更接近,用于將與所述圖塊位置相關(guān)聯(lián)的所述部分覆蓋 源圖塊選擇性合并為用于所述圖塊位置的完全覆蓋的合并源圖塊。部分覆蓋的源圖塊的合 并可在W下意義上是選擇性的:用于圖塊位置的具有比用于所述圖塊位置的所述剔除Z值 更接近的保守最遠(yuǎn)Z值的部分覆蓋源圖塊可被合并,而用于所述圖塊位置的其它部分覆蓋 的源圖塊可不被合并。W此方式選擇性合并源圖塊可提高用于執(zhí)行Z剔除的剔除Z值的質(zhì) 量,運可提高所述Z剔除算法的丟棄率。W此方式,可提高執(zhí)行分層Z剔除的圖形處理器的性 能和/或存儲器帶寬使用率。
[0030] 現(xiàn)將描述根據(jù)上述方法更新目的地圖塊的保守最遠(yuǎn)Z值的過程。在完全覆蓋的輸 入源圖塊被處理并且所述輸入源圖塊的保守最遠(yuǎn)Z值比具有與所述輸入源圖塊相同圖塊位 置的所述目的地圖塊的保守最遠(yuǎn)Z值更接近時,則用于所述目的地圖塊的保守最遠(yuǎn)Z值利用 所述輸入源圖塊的保守最遠(yuǎn)Z值來更新。如果所述完全覆蓋輸入源圖塊的保守最遠(yuǎn)Z值并不 比所述目的地圖塊的保守最遠(yuǎn)Z值更接近,則用于所述目的地圖塊的保守最遠(yuǎn)Z值并不被更 新。
[0031] 在部分覆蓋輸入源圖塊被處理時,用于所述輸入源圖塊的保守最遠(yuǎn)Z值可與所述 剔除Z值相比。如果用于所述輸入源圖塊的保守最遠(yuǎn)Z值并不比所述剔除Z值更接近所述檢 視區(qū),則所述部分覆蓋的源圖塊可不被合并。另一方面,如果用于所述輸入源圖塊的保守最 遠(yuǎn)Z值比所述剔除Z值更接近所述檢視區(qū),則所述部分覆蓋的輸入圖塊可與此前已被合并用 于相同圖塊位置的任何部分覆蓋的輸入源圖塊合并。
[0032] 如果所述合并操作產(chǎn)生完全覆蓋的合并圖塊,則用于所述圖塊位置的所述剔除Z 值利用所述完全覆蓋的合并圖塊的最遠(yuǎn)Z值來更新。另外,如果所述合并操作并不產(chǎn)生完全 覆蓋的圖塊,則用于所述目的地圖塊的保守最遠(yuǎn)Z值并不更新,但定義所述合并源圖塊的數(shù) 據(jù)可經(jīng)存儲用于后續(xù)的合并操作。
[0033] -種用于存儲定義合并源圖塊的數(shù)據(jù)的方法在存儲器中為擅染目標(biāo)的圖塊位置 中的每個分配存儲器條目,并在存儲器條目中的每個中存儲用于所述圖塊位置中的相應(yīng)一 個的所累積的覆蓋掩模和所累積的保守最遠(yuǎn)Z值。用于特定圖塊位置的所累積覆蓋掩模可 對應(yīng)于已被合并用于該特定圖塊位置的用于所述部分覆蓋源圖塊中的每個的所述覆蓋掩 模的合并版本。用于源圖塊的覆蓋掩模可包含用于所述源圖塊中的所述樣本中的每個的 位,其中,所述位中的每個表示對應(yīng)于所述源圖塊的基元是否覆蓋對應(yīng)于相應(yīng)位的樣本。如 果樣本的源圖塊響應(yīng)于光柵化基元而生成,則所述基元可對應(yīng)于樣本的所述源圖塊。多個 覆蓋掩模的合并版本可對應(yīng)于相對于所有多個覆蓋掩模執(zhí)行的逐位"或"運算的結(jié)果。所累 積的用于特定圖塊位置的保守最遠(yuǎn)Z值可與已被合并用于該特定圖塊位置的用于所述部分 覆蓋輸入圖塊中的每個的保守最遠(yuǎn)Z值的最遠(yuǎn)Z值對應(yīng)。
[0034] 在利用此前已被合并用于相同圖塊位置的部分覆蓋源圖塊合并部分覆蓋的源圖 塊之后,所述累積的覆蓋掩??山?jīng)檢測W確定所述合并源圖塊是否為完全覆蓋的合并源圖 塊或部分覆蓋的合并源圖塊。對于完全覆蓋的合并源圖塊而言,所述覆蓋掩??蓪⑺形?設(shè)定成表示在所述合并源圖塊中的所述樣本中的每個被將在所述擅染目標(biāo)上顯示的至少 一個基元覆蓋。對于部分覆蓋的源圖塊合并而言,所述覆蓋掩模可具有被設(shè)定的一些位和 未設(shè)定的一些位,所述未設(shè)定的一些位表明所述合并源圖塊所述樣本中的一些未被基元覆 單 rm 〇
[0035] 擅染目標(biāo)可包含大量的用于執(zhí)行分層Z剔除的不同圖塊位置。存儲用于所述不同 圖塊位置中的每個的所累積覆蓋掩模和所累積最遠(yuǎn)Z值會消耗大量的存儲器。此外,存取用 于所述不同圖塊位置中的每個的所累積覆蓋掩模和所累積最遠(yuǎn)Z值會消耗大量的存儲器帶 寬。另外,存儲合并源圖塊數(shù)據(jù)所需的存儲器的量可能需要在與存取所述數(shù)據(jù)的GPU不同的 忍片(即,忍片外)上實施的存儲器。在存取此些數(shù)據(jù)時由所述GPU執(zhí)行的大量忍片外存儲器 存取可能導(dǎo)致大量的處理延遲。
[0036] 根據(jù)本發(fā)明的一些方面,存儲器單元可用于存儲在執(zhí)行分層Z剔除時可用于合并 部分覆蓋源圖塊的所累積的覆蓋掩模和所累積的最遠(yuǎn)Z值。所述存儲器單元的大小可比存 儲用于擅染目標(biāo)中的所有圖塊位置的所累積的覆蓋掩模和所累積的最遠(yuǎn)Z值所需的存儲器 的大小更小。運可減小存儲所累積的覆蓋掩模和所累積的最遠(yuǎn)Z值所需的存儲器占用面積。 設(shè)定大小相對較小的存儲器單元也可允許所述存儲器單元在與所述GHJ相同的忍片上實 施,借此減少存取所述數(shù)據(jù)所需的忍片外存儲器帶寬的量。另外,允許存儲器在與所述GPU 相同的忍片上實施可減小存取所述數(shù)據(jù)所需的延遲的量,借此提高分層Z剔除操作的性能。
[0037] 因為用于存儲所累積的覆蓋掩模和所累積的最遠(yuǎn)Z值的所述存儲器單元可比存儲 用于擅染目標(biāo)中的所有圖塊位置的所累積覆蓋掩模和所累積最遠(yuǎn)Z值所需的存儲器的大小 更小,所W在兩個不同圖塊位置映射到相同存儲器條目的情況下,用于兩個不同圖塊位置 的數(shù)據(jù)可彼此覆寫是有可能的。雖然運會降低所述保守最遠(yuǎn)Z值的質(zhì)量(即,所述保守最遠(yuǎn)Z 值如何接近實際最遠(yuǎn)Z值),但是在一些情況下,通過使用忍片上存儲器實現(xiàn)的性能好處可 比由于數(shù)據(jù)覆寫造成的任何性能下降更重要。
[0038] 在一些示例中,所述存儲器單元可為高速緩存單元。所述高速緩存單元的大小可 比存儲用于擅染目標(biāo)中的所有圖塊位置的所累積的覆蓋掩模和所累積的最遠(yuǎn)Z值所需的高 速緩存的大小更小。另外,所述高速緩存單元可不與底層存儲器相關(guān)聯(lián)。也就是說,所述高 速緩存單元可充當(dāng)用于所合并的源圖塊數(shù)據(jù)的主數(shù)據(jù)存儲而非僅充當(dāng)用于存儲初次存儲 在其它地方的數(shù)據(jù)的復(fù)本的高速緩存數(shù)據(jù)存儲。高速緩存單元通常經(jīng)設(shè)計存儲比此些高速 緩存單元為其提供高速緩沖存儲服務(wù)的所述底層存儲器空間更少量的數(shù)據(jù)。因此,高速緩 存單元往往實施多種映射策略(例如,導(dǎo)向映射、組相聯(lián)、完全相聯(lián)等)和替代策略(例如,最 近最少使用、最不頻繁使用、隨機(jī)等)W確定數(shù)據(jù)將被存儲在所述高速緩存中的什么地方和 哪些數(shù)據(jù)將在所述高速緩存中被覆寫。使用高速緩存單元作為用于存儲合并源圖塊數(shù)據(jù)的 主存儲裝置單元可允許圖形系統(tǒng)充分利用運些內(nèi)置式機(jī)理來確定數(shù)據(jù)被存儲在高速緩存 單元中的什么地方和哪些數(shù)據(jù)在高速緩存單元中被覆寫,即使所述高速緩存單元并不在所 述底層存儲器中保持額外復(fù)本。運可簡化實施用于存儲合并源圖塊數(shù)據(jù)的存儲器單元所需 的面積的設(shè)計和/或減小所述面積的量。
[0039] 在用于存儲合并源圖塊數(shù)據(jù)的存儲器被實施為高速緩存單元時,所述高速緩存單 元可包含多個不同的高速