基于平鋪塊的呈現(xiàn)中的鑲嵌的制作方法
【專利摘要】所揭示技術(shù)包含:針對幀的每一平鋪塊產(chǎn)生輸入可見性流,所述輸入可見性流指示輸入基元在被呈現(xiàn)時在每一平鋪塊中是否可見;及針對所述幀的每一平鋪塊產(chǎn)生輸出可見性流,所述輸出可見性流指示輸出基元在被呈現(xiàn)時在每一平鋪塊中是否可見,其中所述輸出基元是通過對所述輸入基元進(jìn)行鑲嵌而產(chǎn)生。這樣,基于所述輸入可見性流,針對在所述平鋪塊中不可見的整個輸入基元,可跳過鑲嵌。而且,基于所述輸出可見性流,針對在所述平鋪塊中不可見的所述輸出基元中的某些輸出基元,可跳過鑲嵌,即使所述輸入基元中的一些不可見。
【專利說明】基于平鋪塊的呈現(xiàn)中的鑲嵌
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及用于圖形處理的技術(shù),且更具體來說涉及當(dāng)使用基于平鋪塊的呈現(xiàn)架構(gòu)時的鑲嵌的技術(shù)。
【背景技術(shù)】
[0002]用于顯示的視覺內(nèi)容(例如,用于圖形用戶接口和視頻游戲的內(nèi)容)可由圖形處理單元(GPU)產(chǎn)生。GPU可將二維或三維(3D)物體轉(zhuǎn)換成可顯示的二維(2D)像素表示。將關(guān)于3D物體的信息轉(zhuǎn)換成可顯示的位圖被稱為像素呈現(xiàn)(pixel rendering),且需要相當(dāng)大的存儲和處理能力。過去,3D圖形能力僅可在功能強(qiáng)大的工作站實現(xiàn)。然而,現(xiàn)在,3D圖形加速器一股供給個人計算機(jī)(PC)以及嵌入式裝置(例如,智能手機(jī)、平板計算機(jī)、便攜式媒體播放器、便攜式視頻游戲控制臺和其類似物)。通常,與常規(guī)PC相比,嵌入式裝置具有較小計算能力和存儲器容量。因而,3D圖形呈現(xiàn)技術(shù)的增加復(fù)雜性在嵌入式系統(tǒng)上實施此些技術(shù)時帶來困難。
【發(fā)明內(nèi)容】
[0003]一股來說,本發(fā)明描述用于圖形處理的技術(shù),且明確地說,用于具有利用鑲嵌的基于平鋪塊的處理架構(gòu)的計算裝置中的圖形處理的技術(shù)。本發(fā)明提出產(chǎn)生指示幀的平鋪塊中的圖形基元的可見性的輸出及/或輸入可見性流。此些可見性流允許基于平鋪塊的圖形處理架構(gòu)跳過對在幀中不可見的圖形基元的呈現(xiàn)。這樣,可避免不必要的處理,因此改善性倉泛。
[0004]在本發(fā)明的一個實例中,提出一種用于基于平鋪塊的圖形中的鑲嵌的方法。所述方法包括包含:針對幀的每一平鋪塊產(chǎn)生輸入可見性流,所述輸入可見性流指示輸入基元在被呈現(xiàn)時在每一平鋪塊中是否可見;及針對所述幀的每一平鋪塊產(chǎn)生輸出可見性流,所述輸出可見性流指示輸出基元在被呈現(xiàn)時在每一平鋪塊中是否可見,其中所述輸出基元是通過對所述輸入基元進(jìn)行鑲嵌而產(chǎn)生。
[0005]在本發(fā)明的另一實例中,提出一種經(jīng)配置以執(zhí)行基于平鋪塊的圖形呈現(xiàn)管線中的鑲嵌的設(shè)備。所述設(shè)備包括包含經(jīng)配置以針對幀的每一平鋪塊產(chǎn)生輸入可見性流的箱化分格管線。所述輸入可見性流指示輸入基元在被呈現(xiàn)時在每一平鋪塊中是否可見。所述箱化分格管線經(jīng)進(jìn)一步配置以針對所述幀的每一平鋪塊產(chǎn)生輸出可見性流。所述輸出可見性流指示輸出基元在被呈現(xiàn)時在每一平鋪塊中是否可見,其中所述輸出基元是通過對所述輸入基元進(jìn)行鑲嵌而產(chǎn)生。
[0006]在本發(fā)明的另一實例中,提出用于基于平鋪塊的呈現(xiàn)管線中的鑲嵌的方法。所述方法包含:針對幀的每一平鋪塊的每一輸入基元產(chǎn)生可見性流,所述可見性流具有N個位的長度,其中每一位指示輸出基元在被呈現(xiàn)時在每一平鋪塊中是否可見,且其中所述輸出基元是通過對所述輸入基元進(jìn)行鑲嵌而產(chǎn)生。
[0007]在本發(fā)明的另一實例中,提出一種經(jīng)配置以執(zhí)行基于平鋪塊的呈現(xiàn)管線中的鑲嵌的設(shè)備。所述設(shè)備包含經(jīng)配置以針對幀的每一平鋪塊的每一輸入基元產(chǎn)生可見性流的分格管線,所述可見性流具有N個位的長度,其中每一位指示輸出基元在被呈現(xiàn)時在每一平鋪塊中是否可見,且其中所述輸出基元是通過對所述輸入基元進(jìn)行鑲嵌而產(chǎn)生。
[0008]在附圖和以下描述中闡述一或多個實例的細(xì)節(jié)。其它特征、目標(biāo)和優(yōu)點從描述和圖式以及從權(quán)利要求書顯而易見。
【專利附圖】
【附圖說明】
[0009]圖1為說明基于平鋪塊的呈現(xiàn)架構(gòu)中的幀的平鋪塊的概念圖。
[0010]圖2為說明實例圖形處理系統(tǒng)的框圖。
[0011]圖3為說明使用鑲嵌的實例圖形管線的框圖。
[0012]圖4為說明產(chǎn)生輸入可見性流和輸出可見性流的實例分格管線的框圖。
[0013]圖5為說明實例輸入可見性流和實例輸出可見性流的概念圖。
[0014]圖6為說明用于對輸入基元進(jìn)行鑲嵌的實例技術(shù)的概念圖。
[0015]圖7為說明用于對輸入基元進(jìn)行鑲嵌的實例技術(shù)的概念圖。
[0016]圖8為說明產(chǎn)生輸入可見性流的實例分格管線的框圖。
[0017]圖9為說明實例單個可見性流的概念圖。
[0018]圖10為說明用于執(zhí)行基于平鋪塊的呈現(xiàn)管線中的鑲嵌的實例方法的流程圖。
[0019]圖11為說明基于平鋪塊的呈現(xiàn)管線中的分格過程的實例方法的流程圖。
[0020]圖12為說明用于執(zhí)行基于平鋪塊的呈現(xiàn)管線中的鑲嵌的另一實例方法的流程圖。
[0021]圖13為說明基于平鋪塊的呈現(xiàn)管線中的分格過程的另一實例方法的流程圖。【具體實施方式】
[0022]本發(fā)明涉及用于圖形處理的技術(shù),且更具體來說涉及當(dāng)使用基于平鋪塊的呈現(xiàn)架構(gòu)時的鑲嵌的技術(shù)。
[0023]包含Microsoft的DirectXll (DXll)應(yīng)用程序編程接口(API)的一些圖形呈現(xiàn)管線包含允許圖形基元的鑲嵌的額外處理級。鑲嵌是用來將圖形基元劃分成較小圖形基元從而允許顯示圖像中的較精細(xì)細(xì)節(jié)的過程。
[0024]關(guān)于鑲嵌器級的參考實施方案是由Microsoft DXll軟件參考光柵器明確定義,但是此實施方案并不非常有效率地映射到基于平鋪塊的呈現(xiàn)架構(gòu),例如嵌入式裝置(例如,平板計算機(jī)、移動電話、移動游戲裝置、移動媒體播放器等)中的圖形處理器中所使用的呈現(xiàn)架構(gòu)?;谄戒亯K的呈現(xiàn)(有時被稱為分格)通過將幀拆分成較小部分(例如,矩形平鋪塊)及分開呈現(xiàn)這些部分中的每一者來呈現(xiàn)3D場景的一個幀?;谄戒亯K的呈現(xiàn)對小的專用圖形存儲器可用的應(yīng)用(例如,對移動應(yīng)用)有用。圖1為說明基于平鋪塊的呈現(xiàn)架構(gòu)中的幀的平鋪塊的概念圖。幀22可劃分成多個平鋪塊(例如平鋪塊24),接著對每個平鋪塊執(zhí)行圖形處理以呈現(xiàn)整個幀。
[0025]用包含Microsoft DXll軟件參考光柵器的鑲嵌級來呈現(xiàn)圖形數(shù)據(jù)的常規(guī)技術(shù)是基于3D場景的整個幀將作為整體來呈現(xiàn)的假設(shè)而設(shè)計。因而,這些參考光柵器中所使用的鑲嵌算法始終將完整輸入基元鑲嵌成輸出基元的完整集合。在基于平鋪塊的呈現(xiàn)架構(gòu)中,這可導(dǎo)致大量不相關(guān)圖形處理單元(GPU)和鑲嵌處理,因為僅經(jīng)鑲嵌的輸出基元的部分可實際上對當(dāng)前經(jīng)呈現(xiàn)的平鋪塊有貢獻(xiàn)(即,一些輸出基元將在當(dāng)前經(jīng)呈現(xiàn)的平鋪塊外,在另一平鋪塊中)。
[0026]這樣,本發(fā)明提出用于基于平鋪塊的圖形呈現(xiàn)架構(gòu)中的鑲嵌的方法和設(shè)備。所揭示的技術(shù)包含:針對幀的每一平鋪塊產(chǎn)生輸入可見性流,所述輸入可見性流指示輸入基元在被呈現(xiàn)時在每一平鋪塊中是否可見;及針對所述幀的每一平鋪塊產(chǎn)生輸出可見性流,所述輸出可見性流指示輸出基元在被呈現(xiàn)時在每一平鋪塊中是否可見,其中所述輸出基元是通過對所述輸入基元進(jìn)行鑲嵌而產(chǎn)生。這樣,基于所述輸入可見性流,針對在平鋪塊中不可見的整個輸入基元,可跳過鑲嵌。而且,基于所述輸出可見性流,針對在平鋪塊中不可見的輸出基元中的某些輸出基元,可跳過鑲嵌,即使輸入基元中的一些不可見。因而,避免了不必要鑲嵌。此外,由于一些輸出基元由于鑲嵌被跳過而沒有創(chuàng)建,因此在圖形管線的稍后級處避免對未創(chuàng)建輸出基元的處理。
[0027]在本發(fā)明的另一實例中,單個可見性流是針對幀的每一平鋪塊的每一輸入基元而產(chǎn)生。所述可見性流具有N個位的長度,其中每一位指示輸出基元在被呈現(xiàn)時在每一平鋪塊中是否可見,且其中所述輸出基元是通過對所述輸入基元進(jìn)行鑲嵌而產(chǎn)生。
[0028]圖2為說明可經(jīng)配置以實施本發(fā)明的技術(shù)的裝置2的框圖。裝置2的實例包含(但不限于)無線裝置、移動電話、個人數(shù)字助理(PDA)、便攜式媒體播放器、視頻游戲控制臺(具有或不具集成顯示器)、移動視頻會議單元、膝上型計算機(jī)、桌上型計算機(jī)、電視機(jī)頂盒、平板計算裝置、電子書閱讀器和其類似物。裝置2可包含處理器4、圖形處理單元(GPU)6、顯示器8、幀緩沖器10、存儲裝置12、收發(fā)器模塊14、用戶接口 16、低分辨率緩沖器18 (其可被稱為低分辨率z緩沖器或LRZ緩沖器)和平鋪塊存儲器20。裝置2可包含為清楚起見圖2中未展示的額外模塊或單元。舉例來說,在裝置2為移動無線電話的實例中,裝置2可包含皆未在圖2中展示的揚聲器和麥克風(fēng)以實現(xiàn)電話通信。此外,裝置2中所展示的各種模塊和單元可不必在裝置2的每一個實例中。舉例來說,在裝置2為桌上型計算機(jī)或視頻游戲控制臺的實例中,用戶接口 16和顯示器8可在裝置2外。
[0029]處理器4可執(zhí)行一或多個應(yīng)用程序。所述應(yīng)用程序的實例包含網(wǎng)頁瀏覽器、電子郵件應(yīng)用程序、電子表格、視頻游戲,或產(chǎn)生用于顯示的看得見物體的其它應(yīng)用程序。所述一或多個應(yīng)用程序可存儲在存儲裝置12內(nèi)。在一些例子中,處理器4可經(jīng)由收發(fā)器模塊14(例如,從因特網(wǎng)或其它網(wǎng)絡(luò))下載所述一或多個應(yīng)用程序。處理器4可基于用戶經(jīng)由用戶接口 16作出的選擇來執(zhí)行所述一或多個應(yīng)用程序。在一些實例中,處理器4可在無用戶互動的情況下執(zhí)行所述一或多個應(yīng)用程序。
[0030]處理器4的實例包含(但不限于)數(shù)字信號處理器(DSP)、通用微處理器、專用集成電路(ASIC)、現(xiàn)場可編程邏輯陣列(FPGA)或其它等效集成或離散邏輯電路。存儲裝置12可包括一或多個計算機(jī)可讀存儲媒體。存儲裝置12的實例包含(但不限于)隨機(jī)存取存儲器(RAM)、只讀存儲器(ROM)、電可擦除可編程只讀存儲器(EEPROM)、CD-ROM、藍(lán)光或其它光盤存儲裝置、磁盤存儲裝置或其它磁性存儲裝置、快閃存儲器,或可用以運載或存儲呈指令或數(shù)據(jù)結(jié)構(gòu)的形式所要程序代碼且可由計算機(jī)或處理器存取的任何其它媒體。在一些方面中,存儲裝置12可包含使主處理器4和/或GPU6執(zhí)行本發(fā)明中的歸于主處理器4和GPU6的功能的指令。[0031]在一些實例中,存儲裝置12可被視為非暫時性存儲媒體。術(shù)語“非暫時性”可指示存儲媒體不是以載波或傳播信號體現(xiàn)的。然而,術(shù)語“非暫時性”不應(yīng)解釋為意謂存儲裝置12是不可移動的。作為一個實例,存儲裝置12可從裝置2移開,且移動到另一裝置。作為另一實例,實質(zhì)上類似于存儲裝置12的存儲裝置可插入到裝置2中。在某些實例中,非暫時性存儲媒體可存儲可隨時間變化(例如,在RAM中)的數(shù)據(jù)。
[0032]用戶接口 16的實例包含(但不限于)跟蹤球、鼠標(biāo)、鍵盤、游戲控制器和其它類型的輸入裝置。用戶接口 16也可為觸摸屏且可合并為顯示器8的部分。收發(fā)器模塊14可包含用以允許裝置2與另一裝置或網(wǎng)絡(luò)之間的無線或有線通信的電路。收發(fā)器模塊14可包含調(diào)制器、解調(diào)器、放大器和用于有線及無線通信的其它此類電路。
[0033]GPU6為經(jīng)設(shè)計以使用高平行結(jié)構(gòu)快速地操縱數(shù)據(jù)的專用處理器。明確地說,GPU6可經(jīng)配置以執(zhí)行呈現(xiàn)管線的可編程和固定功能級以執(zhí)行圖形處理。在一個實例中,GPU6可經(jīng)配置以執(zhí)行三維圖形呈現(xiàn)管線以將三維物體呈現(xiàn)到二維空間以供顯示。舉例來說,GPU6可執(zhí)行多個功能,例如著色(shading)、混合(blending)、照明和用以產(chǎn)生將顯示在顯示器8上的像素的像素值的其它功能。由GPU6產(chǎn)生的像素在顯示之前可存儲在幀緩沖器10中。在一些實例中,在執(zhí)行例如著色、混合和照明等功能之前,GPU6可執(zhí)行也被稱為平鋪(tiling)功能的分格過程。
[0034]雖然在圖1中說明一個GPU6,但是本發(fā)明的方面不限于此。在一些實例中,裝置2可包含類似于GPU6的多個GPU或GPU核心。圖形處理任務(wù)可分散在這些GPU或GPU核心之間。
[0035]為了執(zhí)行分格過程,GPU6可將顯示器8上的像素劃分成被稱為平鋪塊的多個像素塊,如圖1所示。舉例來說,假設(shè)顯示器8經(jīng)配置以包含640x480個像素。作為一個實例,GPU6可將顯示劃分成10x10個平鋪塊,其中每一平鋪塊包含64x48個像素。
[0036]在分格過程期間,平鋪塊存儲器20可指示圖像表面所屬的特定平鋪塊。在一些實例中,平鋪塊存儲器20可形成為存儲裝置12的部分,雖然本發(fā)明的方面不限于此。在針對圖像表面的分格過程期間,GPU6可基于所述圖像表面所屬的平鋪塊而將所述圖像表面的表面識別符值存儲在平鋪塊存儲器20的適當(dāng)存儲位置內(nèi)。平鋪塊存儲器20可被視為包含多個層。每一層可對應(yīng)于圖像表面中的一者。每一層可為包含多個存儲位置的二維層。每一存儲位置可對應(yīng)于顯示器8的平鋪塊中的一者。
[0037]低分辨率緩沖器18可為具有多個存儲位置的二維緩沖器。在一些實例中,低分辨率緩沖器18可形成為存儲裝置12的部分,雖然本發(fā)明的方面不限于此。如下文所較詳細(xì)描述,低分辨率緩沖器18可促進(jìn)哪些像素應(yīng)加以呈現(xiàn)以避免不必要地呈現(xiàn)隨后封閉的像素的有效指示。低分辨率緩沖器18中的每一存儲位置可對應(yīng)于表現(xiàn)在顯示器8上的像素塊。舉例來說,表現(xiàn)在顯示器8上的4x4像素塊可對應(yīng)于低分辨率緩沖器18中的一個存儲位置。4x4像素塊是出于說明目的而提供,且不應(yīng)被視為限制性的。低分辨率緩沖器18可被視為低分辨率緩沖器,因為低分辨率緩沖器18的每一存儲位置對應(yīng)于多個像素,而不是單一像素。
[0038]圖3描繪可由圖2的GPU6執(zhí)行的實例圖形管線30。如上文所提及,圖形管線30可以基于平鋪塊的呈現(xiàn)架構(gòu)來實施,其中整個幀的平鋪塊被分開呈現(xiàn)且接著組合以用于顯不。圖形管線 30 可根據(jù) Microsoft 的 DirectXll API 來實施。DirectXll API 包含 DirectXAPI的以前迭代法中未提供的三個級:可編程外殼著色器(HS) 36、固定功能鑲嵌器(TS) 38和可編程域著色器(DS) 40。外殼著色器36、鑲嵌器38和域著色器40有時一起被稱為“鑲
嵌管線”。
[0039]輸入?yún)R編器(IA)32從用于基本基元的存儲器讀出頂點。所述基本基元可存儲在資源50的存儲器(例如,圖2的平鋪塊存儲器20)中。在一些實例中,用于圖形管線的基本基元為三角形。對于包含鑲嵌級的圖形管線,如圖形管線30,基本基元可為補(bǔ)丁。補(bǔ)丁本質(zhì)上為表面或網(wǎng)格的表示。補(bǔ)丁可包含I到32個不同控制點以界定表面。圖形管線的剩余討論將假設(shè)基本基元為補(bǔ)丁 ;然而,本發(fā)明的技術(shù)可適用于其它基本基元類型。
[0040]頂點著色器(VS) 34為對補(bǔ)丁的每一控制點執(zhí)行操作的可編程級。頂點著色器34將每一控制點在虛擬空間中的3D位置變換成所述控制點出現(xiàn)在屏幕上所在的2D坐標(biāo)以及深度值。頂點著色器可操縱例如位置、顏色和紋理坐標(biāo)等性質(zhì),但不能創(chuàng)建新控制點。頂點著色器34的輸出控制點轉(zhuǎn)到外殼著色器36。
[0041]外殼著色器36執(zhí)行兩個操作。對于大部分補(bǔ)丁,來自頂點著色器的經(jīng)變換控制點僅傳遞到域著色器40。表示較復(fù)雜表面的補(bǔ)丁的控制點在被傳遞到域著色器40之前可能需要外殼著色器36的額外處理。外殼著色器還確定將對每一補(bǔ)丁執(zhí)行的鑲嵌的程度,且將此“鑲嵌因數(shù)”發(fā)送到鑲嵌器38。
[0042]鑲嵌器38的基本功能為將3D場景的輸入基元(例如,補(bǔ)丁)鑲嵌(即,細(xì)分)成多個輸出基兀。鑲嵌器38根據(jù)由外殼著色器36提供的鑲嵌因數(shù)將這些補(bǔ)丁細(xì)分成較小輸出基元,例如三角形、四邊形或等值線。鑲嵌器38的輸出為界定輸出基元的一組頂點。鑲嵌允許呈現(xiàn)較平滑的彎曲表面,從而產(chǎn)生圖形上較詳細(xì)的圖像。
[0043]域著色器40為鑲嵌管線的最后級。域著色器40對由鑲嵌器38創(chuàng)建的輸出頂點進(jìn)行操作。域著色器40負(fù)責(zé)根據(jù)從外殼著色器36接收的控制點計算最終輸出頂點位置和屬性。
[0044]幾何著色器(GS)42是可用以根據(jù)從鑲嵌管線接收的經(jīng)鑲嵌輸出基元創(chuàng)建額外基元的可選可編程級。幾何著色器42允許圖形上更詳細(xì)的圖像。
[0045]在所述管線的剩余級中,光柵器(RS) 44將來自鑲嵌管線和/或幾何著色器42的輸出基元從3D空間變換成2D空間中的像素值??删幊滔袼刂?PS) 46可接著對像素執(zhí)行更多操作,例如深度測試、剪輯、剪裁、混合等。像素著色器46的輸出被存儲在幀緩沖器10中,且可接著顯示在例如顯示器8 (參看圖2)等顯示器上。
[0046]為了避免不必要的GPU處理且為了最有效率地使用基于平鋪塊的呈現(xiàn)架構(gòu)的有限圖形存儲器,本發(fā)明提出具有鑲嵌級的圖形管線(例如,圖3的圖形管線)使用可見性流??梢娦粤鳛獒槍γ恳粋€基元描述其是否對經(jīng)呈現(xiàn)平鋪塊有貢獻(xiàn)的一系列位(0/1)。BP,可見性流向呈現(xiàn)管線的不同級指示基元在當(dāng)前經(jīng)呈現(xiàn)的幀中是否可見??梢娦粤魇窃谟诔尸F(xiàn)平鋪塊之前執(zhí)行的“分格”過程中在每一幀的開頭產(chǎn)生。對于幀中的每一平鋪塊,產(chǎn)生一或多個可見性流。在平鋪塊呈現(xiàn)期間,所述平鋪塊的對應(yīng)可見性流被用來去除(cull)對經(jīng)呈現(xiàn)平鋪塊沒有貢獻(xiàn)的不相關(guān)基元(即,所述基元將不會被看到)。
[0047]本發(fā)明提出產(chǎn)生將鑲嵌器輸入(即,補(bǔ)丁)基元和輸出(即,三角形、四邊形或等值線)基元兩者編碼成每個平鋪塊的一或多個可見性流的可見性流。通過利用輸入和輸出基元的可見性信息,此鑲嵌算法去除對當(dāng)前經(jīng)呈現(xiàn)的平鋪塊沒有貢獻(xiàn)的完整輸入補(bǔ)丁(例如,使用輸入基元可見性流),且還去除對當(dāng)前經(jīng)呈現(xiàn)的平鋪塊沒有貢獻(xiàn)的鑲嵌器級輸出基元(例如,使用輸出基元可見性流)。通過在鑲嵌器級的輸入和輸出兩者使用這些可見性流,可達(dá)成呈現(xiàn)管線中的稍后級(例如,域著色器40)中的不相關(guān)或加倍調(diào)用的數(shù)目的減小?;旧希梢娦粤髟试S對于由輸入和輸出可見性流指示為不可見的輸入或輸出基元跳過呈現(xiàn)管線的一或多個級。另外,達(dá)成鑲嵌器硬件對一個輸入補(bǔ)丁進(jìn)行鑲嵌需要消耗的時鐘周期的數(shù)目的減小,因為可避免處理不相關(guān)或不可見的輸出基元。
[0048]在本發(fā)明的一個方面中,在呈現(xiàn)之前的分格過程中為每個平鋪塊產(chǎn)生兩個可見性流。一個可見性流用于鑲嵌輸入基元(補(bǔ)丁),且一個可見性流用于鑲嵌輸出基元(三角形)。在本發(fā)明的另一方面中,輸入和輸出可見性流可合并成單個可見性流,或可與幾何著色器一起使用。
[0049]圖4為說明產(chǎn)生輸入可見性流和輸出可見性流的實例分格管線的框圖。分格管線可由圖2的GPU6執(zhí)行。為了產(chǎn)生可見性流,分格管線60執(zhí)行處理整個幀的輸入基元的分格過程。分格管線為圖3所示的完整呈現(xiàn)管線的簡化版本。對于包含鑲嵌級(即,HS/TS/DS)和可選幾何著色器的圖形管線,分格管線60可包含分格頂點著色器62、分格外殼著色器64、分格鑲嵌器66、分格域著色器68、可選分格幾何著色器70、分格光柵器72和分格深度測試74。
[0050]分格頂點著色器62也可被稱為分格著色器。分格著色器可為頂點著色器的改進(jìn)版本,其中僅有的輸出為頂點位置。通常由頂點著色器執(zhí)行的所有參數(shù)導(dǎo)出可從分格著色器以及與所述參數(shù)導(dǎo)出有關(guān)的任何計算移除。
[0051]根據(jù)由分格頂點著色器62輸出的頂點,分格外殼著色器64、分格鑲嵌器68和分格域著色器產(chǎn)生經(jīng)鑲嵌輸出基元,其方式與圖3的鑲嵌管線相同。相對于圖3的鑲嵌管線中的對應(yīng)級,分格外殼著色器64和分格鑲嵌器68可為最佳的。確切地說,分格外殼著色器64和分格鑲嵌器68對僅計算位置相關(guān)變量來說可為最佳的。
[0052]如果幾何著色器能夠用于完整呈現(xiàn)管線,那么分格管線60還可包含根據(jù)由分格鑲嵌器產(chǎn)生的經(jīng)鑲嵌輸出基兀產(chǎn)生額外輸出基兀的分格幾何著色器7O。
[0053]分格光柵器72產(chǎn)生輸出基元在2D空間中的低分辨率表示(即,像素)。每一像素表示最終圖像中的像素區(qū)(例如,4x4像素區(qū))。所產(chǎn)生的低分辨率像素可具有兩個值:部分被覆蓋或完全被覆蓋。分格光柵器72使用與普通光柵化級相同的去除規(guī)則(面性(faceness)、平截面等),且因此僅產(chǎn)生場景中實際可見的那些三角形。
[0054]分格過程中的最后級為分格深度測試單元74 (也被稱為低分辨率Z測試)。分格深度測試單元74確定從輸出基元經(jīng)光柵化的像素在最終場景中可見。分格深度測試單元74僅在像素被三角形完全覆蓋的情況下對低分辨率緩沖器18 (參見圖2,也被稱為低分辨率z緩沖器)進(jìn)行寫入。部分被覆蓋的像素未被寫入到所述低分辨率緩沖器。在分格過程的最后,低分辨率緩沖器18可寫出到外部存儲器,且稍后可用于初始化Z緩沖器以供在呈現(xiàn)過程期間使用。此提供呈現(xiàn)期間(例如,在圖3的像素著色器46中)的經(jīng)改善深度測試。GPU6的內(nèi)部圖形存儲器在分格過程期間也可用作低分辨率緩沖器。由于呈現(xiàn)過程是以4x4像素塊進(jìn)行的,因此圖形存儲器中的Z緩沖器也為此分辨率。此外,不需要圖形存儲器中的色彩緩沖器。此意謂,與全分辨率相比,低分辨率緩沖器18可覆蓋極大的屏幕上區(qū)。
[0055]通過針對特定平鋪塊的分格深度測試的基元(即,通過光柵化基元產(chǎn)生的像素在所述平鋪塊中可見)在可見性流中被標(biāo)記為可見。未通過針對特定平鋪塊的低分辨率Z測試的基元(即,通過光柵化基元產(chǎn)生的像素在所述平鋪塊中不可見)在可見性流中被標(biāo)記為不可見。由于從大部分三角形光柵化而來的大部分像素對任何給定平鋪塊來說將是不可見,因此每一平鋪塊的可見性流可由大量零組成,零指示相應(yīng)基元是不可見的。因而,可見性流可使用行程長度壓縮算法(run length compression algorithm)來壓縮。
[0056]輸出可見性流82對輸出基元(例如,三角形)的可見性編碼。輸出可見性流每個輸出基元包含一個位,其指示輸出基元在對應(yīng)平鋪塊中是否可見(例如,I表示可見,O表示不可見,或相反)。輸入可見性流80對輸入基元(例如,在DXll中,補(bǔ)丁)的可見性編碼。如果由補(bǔ)丁形成的至少一個輸出基元由分格深度測試單元74確定為可見,那么補(bǔ)丁被視為可見的。如果由補(bǔ)丁形成的輸出基元都是不可見的,那么整個補(bǔ)丁可被指示為在輸入可見性流中不可見。在這種情況下,輸入可見性流中的對應(yīng)位可設(shè)定為零。或者,如果由路徑形成的至少一個輸出基元是可見的,那么整個補(bǔ)丁可被指示為在輸入可見性流中可見,例如,通過將對應(yīng)位設(shè)定為一。
[0057]圖5為說明實例輸入可見性流和實例輸出可見性流的概念圖。輸入可見性流80可包含針對每一補(bǔ)丁的一串一和零,其中一個位指示補(bǔ)丁的至少一部分在最終場景中可見(例如,補(bǔ)丁 3的位I),且另一位指示整個補(bǔ)丁在最終場景中不可見(例如,補(bǔ)丁 O的位O)。輸出可見性流82可包含針對每一三角形的一串一和零,其中一個位指示三角形對在最終場景中可見的像素有貢獻(xiàn)(例如,三角形O的位I),且另一位指示三角形對在最終場景中可見的像素沒有貢獻(xiàn)(例如,三角形2的位O)。如圖5所示,輸出可見性流可基于每個補(bǔ)丁來創(chuàng)建。即,對于每一平鋪塊,每個補(bǔ)丁有一個輸出可見性流。在另一實例中,每一平鋪塊可具有將由輸入基元形成的所有輸出基元串接在一起的一個輸出可見性流。
[0058]回頭參看圖3,輸出和輸入可見性流可存儲在存儲器(例如,平鋪塊存儲器20)中且通過資源50使其可供呈現(xiàn)管線級使用。當(dāng)基于分別由輸入可見性流和輸出可見性流指示的可見性呈現(xiàn)輸入基元或輸出基元時,可跳過一或多個呈現(xiàn)級。
[0059]作為一個實例,利用輸出可見性流,鑲嵌器38在大量輸出三角形不可見或位于當(dāng)前經(jīng)呈現(xiàn)的平鋪塊中時可略過所述三角形。同樣地,如果輸入可見性流指示補(bǔ)丁是可見的,那么在呈現(xiàn)過程期間針對當(dāng)前平鋪塊處理所述補(bǔ)丁,否則,去除所述補(bǔ)丁(即,針對所述補(bǔ)丁跳過呈現(xiàn))。
[0060]確切地說,針對不可見輸入跳過呈現(xiàn)可涉及當(dāng)輸入可見性流指示輸入基元不可見時避免整個輸入基元的鑲嵌。因而,不為所述輸入基元創(chuàng)建輸出基元,且因此,所述輸出基元不可由管線的其它級進(jìn)行處理。同樣,針對不可見輸出基元跳過呈現(xiàn)可涉及跳過將產(chǎn)生不可見輸出基元的補(bǔ)丁的特定部分的鑲嵌。所使用的跳過過程可依賴于鑲嵌硬件。參看圖6和7在下文描述一個實例。圖6和7為說明用于對輸入基元進(jìn)行鑲嵌的實例技術(shù)的概念圖。
[0061]輸入補(bǔ)丁鑲嵌通常涉及在輸入三角形內(nèi)添加較小三角形,和通過將來自兩個三角形的一個邊緣視為成對的(即,來自較大三角形的一個邊緣和來自較小三角形的一個邊緣定向在相同方向上)而對所述兩個三角形之間的區(qū)進(jìn)行鑲嵌。如圖6所示,鑲嵌可在邊緣對83a與83b之間、邊緣對84a與84b之間及邊緣對85a與85b之間發(fā)生。在針對所述三個邊緣對完成鑲嵌之后,接著在以前的較小三角形內(nèi)插入新的較小輸入三角形(參看圖7)。如圖7所示,邊緣83b、84b和85b現(xiàn)在分別與邊緣83c、84c和85c成對。此過程繼續(xù),直到輸入三角形被完全鑲嵌。鑲嵌的量(即,鑲嵌程序)是由外殼著色器36 (參見圖3)所產(chǎn)生的鑲嵌因數(shù)界定。
[0062]如從上文的實例鑲嵌程序可知道,鑲嵌過程一次沿著一個邊緣對進(jìn)行。通過使用來自輸出可見性流的三角形可見性信息,如果當(dāng)前鑲嵌的區(qū)的輸出三角形沒有一個將在當(dāng)前經(jīng)呈現(xiàn)的平鋪塊中可見,那么增強(qiáng)的鑲嵌器實施方案可跳過所有邊緣對的處理。舉例來說,邊緣對85b與85c之間的區(qū)可含有由輸出可見性流指示為不可見的輸出基元。因此,針對此邊緣對,可跳過鑲嵌,且不創(chuàng)建輸出三角形,如圖7所示。也可能用單測試跳過若干邊緣對,因為對于一個三角形對,在設(shè)置階段之后,基于從外殼著色器接收的鑲嵌因數(shù),能夠知道有多少個三角形將在兩個三角形之間的區(qū)中產(chǎn)生(多個邊緣對可被視為平行的或可能合在一起)。
[0063]在本發(fā)明的另一實例中,與其創(chuàng)建輸入基元的可見性流和輸出基元的單獨可見性流,不如創(chuàng)建單個可見性流。在這些情況下,將針對最大鑲嵌輸出對單個可見性流編碼。換句話說,給定如針對特定呈現(xiàn)管線界定的最大可能鑲嵌因數(shù)和補(bǔ)丁大小,可見性流的長度將由經(jīng)鑲嵌的基元的最大量來界定。舉例來說,最大鑲嵌輸出可由DirectXll API界定。單個可見性流將對于每一平鋪塊基于每個補(bǔ)丁指示輸出基元的可見性。如果單個可見性流中的用于補(bǔ)丁的一個輸出基元是可見的,那么所述補(bǔ)丁也是可見的。每一補(bǔ)丁的可見性流可具有長度N,其中N對應(yīng)于最大鑲嵌輸出(即,可能的輸出三角形的最大數(shù)目)。
[0064]圖8為說明產(chǎn)生單個可見性流的實例分格管線的框圖。分格管線90將以類似于圖4的分格管線60的方式操作。然而,替代創(chuàng)建兩個可見性流,分格管線90創(chuàng)建單個可見性流104。默認(rèn)地,可用O來編碼整個補(bǔ)丁的可見性流104中的每一位(即,鑲嵌器的輸出三角形沒有一個被假定為可見的)。如果任何鑲嵌器輸出三角形由分格深度測試單元74發(fā)現(xiàn)在當(dāng)前經(jīng)呈現(xiàn)的平鋪塊中可見,那么來自可見性流的對應(yīng)位被設(shè)定成I。當(dāng)呈現(xiàn)平鋪塊時,可見性流可經(jīng)簡單檢查以確定,可見性位中的任一者在單個可見性流的單個補(bǔ)丁區(qū)內(nèi)是否將為I。如果補(bǔ)丁內(nèi)的所有值為0,那么此情形可(例如)在一個時鐘周期中確定。如果補(bǔ)丁的所有可見性位為0,那么對于所述補(bǔ)丁,可跳過頂點著色器和鑲嵌管線兩者。如果可見性流中的可見性位中的任一者為I,那么所述補(bǔ)丁將被正常處理。然而,現(xiàn)在,鑲嵌器可經(jīng)配置以跳過由可見性流定義為不可見(O)的某些輸出基元的鑲嵌。因而,通過跳過不可見補(bǔ)丁和三角形兩者,避免頂點著色器、鑲嵌管線以及光柵器的不必要處理。
[0065]圖9為說明實例單個可見性流的概念圖。可見性流104具有長度N,其中N定義如呈現(xiàn)管線定義的每個補(bǔ)丁的輸出基元的最大數(shù)目。
[0066]回頭參看圖8,在本發(fā)明的另一實例中,當(dāng)啟用幾何著色器時,也可使用單個可見性流。如上文所提及,幾何著色器可從由鑲嵌管線輸出的基元產(chǎn)生更多基元。單個幾何著色器調(diào)用可產(chǎn)生的數(shù)據(jù)的最大量由DXll API限為4kB。類似于如上所述地基于最大鑲嵌輸出將輸入和輸出可見性流合并在一起,幾何著色器啟用情況下的單個輸出可見性流可編碼乘以幾何著色器產(chǎn)生的基元的最大數(shù)目的經(jīng)鑲嵌基元的最大數(shù)目。即,如果鑲嵌輸出基元的最大數(shù)目為N,且來自幾何著色器的輸出基元的最大數(shù)目為M,那么當(dāng)幾何著色器被啟用時,所述可見性流的長度可為NxM。在此實例中,分格幾何著色器70可被啟用,使得分格深度測試單元74可確定由幾何著色器產(chǎn)生的基元在最終場景中是否可見。[0067]此外,用于此單個可見性流的默認(rèn)值為O。如果任何幾何著色器輸出三角形在分格過程期間由分格深度測試單元74確定為在當(dāng)前經(jīng)呈現(xiàn)的平鋪塊中可見,那么輸出三角形的對應(yīng)可見性位可設(shè)定成I。當(dāng)呈現(xiàn)平鋪塊時,檢查可見性流以確定可見性位的任一者在單個可見性流的單個補(bǔ)丁區(qū)內(nèi)是否被設(shè)定成I。如果補(bǔ)丁內(nèi)的所有值為0,那么此情形可在一個時鐘周期中確定。對應(yīng)地,如果任何幾何著色器輸出基元是可見的,以確定是否需要產(chǎn)生并發(fā)送當(dāng)前經(jīng)鑲嵌的三角形以供域著色器40或幾何著色器42處理,那么鑲嵌器38(參見圖3)可檢查每一個幾何著色器輸出可見性位范圍(范圍大小為幾何著色器輸出基元的最大數(shù)目)。
[0068]回頭參看圖9,單個可見性流104'被用于具有鑲嵌級以及啟用的幾何著色器兩者的圖形管線。單個可見性流104'具有長度NxM,其中N定義如由呈現(xiàn)管線定義的每個補(bǔ)丁的輸出基元的最大數(shù)目,且M定義幾何著色器可產(chǎn)生的輸出基元的最大數(shù)目。
[0069]圖10為說明用于執(zhí)行基于平鋪塊的呈現(xiàn)管線中的鑲嵌的實例方法的流程圖。作為一個實例,所述方法可由圖2的GPU6執(zhí)行。GPU6可經(jīng)配置以針對幀的每一平鋪塊產(chǎn)生輸入可見性流(110),且針對所述幀的每一平鋪塊產(chǎn)生輸出可見性流(112)。所述輸入可見性流指示輸入基元在被呈現(xiàn)時在每一平鋪塊中是否可見。所述輸出可見性流指示輸出基元在被呈現(xiàn)時在每一平鋪塊中是否可見。所述輸出基元是通過對所述輸入基元進(jìn)行鑲嵌而產(chǎn)生。
[0070]GPU6可經(jīng)進(jìn)一步配置以呈現(xiàn)幀的當(dāng)前平鋪塊,其中分別基于所述輸入可見性流和所述輸出可見性流而針對輸入基元和輸出基元跳過呈現(xiàn)(114)。確切地說,針對輸出基元跳過呈現(xiàn)可包含針對由所述輸出可見性流指示為在所述當(dāng)前幀中不可見的輸出基元跳過鑲嵌。
[0071]產(chǎn)生輸入可見性流(110)和產(chǎn)生輸出可見性流(112)的步驟可在分格過程(116)中一起執(zhí)行。圖11為說明基于平鋪塊的呈現(xiàn)管線中的分格過程的實例方法的流程圖。GPU6也可經(jīng)配置以執(zhí)行分格過程116。GPU6可經(jīng)進(jìn)一步配置以對輸入基元進(jìn)行頂點著色(118)、對經(jīng)頂點著色的輸入基元進(jìn)行鑲嵌以產(chǎn)生多個輸出基元(120)、光柵化所述多個輸出基元(122),且對經(jīng)光柵化的輸出基元執(zhí)行深度測試以針對幀的平鋪塊確定輸出基元是否可見
(124)。
[0072]GPU6基于所述深度測試在所述輸入可見性流中產(chǎn)生所述輸入基元在所述平鋪塊中是否可見的指示,其中如果通過對所述輸入基元進(jìn)行鑲嵌產(chǎn)生的輸出基元經(jīng)確定為可見的,那么所述輸入基元經(jīng)確定為可見的(126)。同樣地,GPU6基于所述深度測試在所述輸出可見性流中產(chǎn)生所述輸出基元在所述平鋪塊中是否可見的指示(128)。
[0073]圖12為說明用于執(zhí)行基于平鋪塊的呈現(xiàn)管線中的鑲嵌的另一實例方法的流程圖。在此實例中,為每個輸入基元產(chǎn)生單個可見性流,其指示可由輸入基元形成的輸出基元的可見性。GPU6可經(jīng)配置以對輸入基元進(jìn)行頂點著色(140)、對經(jīng)頂點著色的輸入基元進(jìn)行鑲嵌以產(chǎn)生多個輸出基兀(142)、光柵化所述多個輸出基兀(144),且對經(jīng)光柵化的輸出基元執(zhí)行深度測試以針對幀的平鋪塊確定輸出基元是否可見(146)。
[0074]GPU6可經(jīng)進(jìn)一步配置以基于所述深度測試在可見性流中產(chǎn)生所述輸出基元在所述平鋪塊中是否可見的指示(148)。所述可見性流可具有N個位的長度,其中每一位指示輸出基元在被呈現(xiàn)時在每一平鋪塊中是否可見。所述長度N是由如由呈現(xiàn)管線定義的每個輸入基元的輸出基元的最大數(shù)目確定。GPU6還可經(jīng)進(jìn)一步配置以呈現(xiàn)幀的當(dāng)前平鋪塊,其中在所述可見性流中的每一個位指示不可見輸出基元的情況下針對輸入基元跳過呈現(xiàn),且其中針對由所述可見性流指示為在所述當(dāng)前幀中不可見的輸出基元跳過呈現(xiàn)(150)。
[0075]圖13為說明基于平鋪塊的呈現(xiàn)管線中的分格過程的另一實例方法的流程圖。除了增加幾何步驟(152)之外,圖13所示的過程與圖12所示的過程相同。在GPU6具有啟用的幾何著色器的情況下,在鑲嵌(142)與光柵化(144)步驟之間執(zhí)行對所述多個輸出基元執(zhí)行幾何著色以產(chǎn)生額外輸出基元的額外步驟(152)。在此實例中,可見性流將具有NxM個位的增加長度,其中M為由幾何著色器產(chǎn)生的輸出基元的最大數(shù)目。
[0076]在一或多個實例中,上述功能可以硬件、軟件、固件或其任何組合來實施。如果以軟件實施,那么所述功能可作為一或多個指令或代碼而存儲在包括非暫時性計算機(jī)可讀媒體的制品上。計算機(jī)可讀媒體可包含計算機(jī)數(shù)據(jù)存儲媒體。數(shù)據(jù)存儲媒體可為可由一或多個計算機(jī)或一或多個處理器存取以得到用于實施本發(fā)明中所描述的技術(shù)的指令、代碼和/或數(shù)據(jù)結(jié)構(gòu)的任何可用媒體。舉例來說,而非限制,這些計算機(jī)可讀媒體可包括RAM、ROM、EEPROM、CD-ROM或其它光盤存儲裝置、磁盤存儲裝置或其它磁性存儲裝置、快閃存儲器,或可用以運載或存儲呈指令或數(shù)據(jù)結(jié)構(gòu)的形式的所要程序代碼且可由計算機(jī)存取的任何其它媒體。如本文中所使用,磁盤和光盤包含壓縮光盤(CD)、激光光盤、光學(xué)光盤、數(shù)字多功能光盤(DVD)、軟性磁盤和藍(lán)光光盤,其中磁盤通常以磁性方式再現(xiàn)數(shù)據(jù),而光盤使用激光以光學(xué)方式再現(xiàn)數(shù)據(jù)。以上各物的組合也應(yīng)包含在計算機(jī)可讀媒體的范圍內(nèi)。
[0077]代碼可由一或多個處理器(例如,一或多個DSP、通用微處理器、ASIC、FPGA或其它等效集成或離散邏輯電路)來執(zhí)行。另外,在一些方面中,本文中所描述的功能性可提供在專用硬件和/或軟件模塊內(nèi)。而且,可將所述技術(shù)完全實施于一或多個電路或邏輯元件中。
[0078]本發(fā)明的技術(shù)可以廣泛多種裝置或設(shè)備(包含無線手持機(jī)、集成電路(IC)或一組IC(例如,芯片組))來實施。各種組件、模塊或單元在本發(fā)明中予以描述以強(qiáng)調(diào)經(jīng)配置以執(zhí)行所揭示技術(shù)的裝置的功能方面,但是未必需要通過不同硬件單元來實現(xiàn)。更確切地說,如上所述,各種單元可組合成編解碼器硬件單元,或由互操作硬件單元的集合(包含如上所述的一或多個處理器)與合適軟件和/或固件一起提供。
[0079]已描述各種實例。這些和其它實例在所附權(quán)利要求書的范圍內(nèi)。
【權(quán)利要求】
1.一種由圖形處理器進(jìn)行的用于基于平鋪塊的圖形呈現(xiàn)管線中的鑲嵌的方法,所述方法包括: 針對幀的每一平鋪塊產(chǎn)生輸入可見性流,所述輸入可見性流指示輸入基元在被呈現(xiàn)時在每一平鋪塊中是否可見;及 針對所述幀的每一平鋪塊產(chǎn)生輸出可見性流,所述輸出可見性流指示輸出基元在被呈現(xiàn)時在每一平鋪塊中是否可見,其中所述輸出基元是通過對所述輸入基元進(jìn)行鑲嵌而產(chǎn)生。
2.根據(jù)權(quán)利要求1所述的方法,其中產(chǎn)生所述輸入可見性流和所述輸出可見性流包括: 對所述輸入基元進(jìn)行頂點著色; 對所述經(jīng)頂點著色的輸入基元進(jìn)行外殼著色; 對所述經(jīng)外殼著色的輸入基元進(jìn)行鑲嵌以產(chǎn)生多個輸出基元; 對所述多個輸出基元進(jìn)行域著色; 光柵化所述多個輸出基元以產(chǎn)生像素; 執(zhí)行深度測試以針對幀的平鋪塊確定所述像素是否可見;及 基于所述深度測試在所述輸入可見性流中產(chǎn)生所述輸入基元在所述平鋪塊中是否可見的指示,其中如果通過光柵化與所述輸入基元相關(guān)的所述輸出基元產(chǎn)生的所述像素中的任一者經(jīng)確定為可見的,那么所述輸入基元經(jīng)確定為可見的。
3.根據(jù)權(quán)利要求2所述的方法,其進(jìn)一步包括: 基于所述深度測試在所述輸出可見性流中產(chǎn)生所述輸出基元在所述平鋪塊中是否可見的指示,其中如果通過光柵化所述輸出基元產(chǎn)生的任何像素經(jīng)確定為可見的,那么所述輸出基元經(jīng)確定為可見的。
4.根據(jù)權(quán)利要求1所述的方法,其中所述輸入基元為補(bǔ)丁,且其中所述輸出基元為三角形、四邊形或等值線。
5.根據(jù)權(quán)利要求1所述的方法,其進(jìn)一步包括: 呈現(xiàn)幀的當(dāng)前平鋪塊,其中針對由所述輸入可見性流指示為在所述當(dāng)前幀中不可見的輸入基元跳過呈現(xiàn)。
6.根據(jù)權(quán)利要求1所述的方法,其進(jìn)一步包括: 呈現(xiàn)幀的當(dāng)前平鋪塊,其中針對由所述輸出可見性流指示為在所述當(dāng)前幀中不可見的輸出基元跳過呈現(xiàn)。
7.根據(jù)權(quán)利要求6所述的方法,其進(jìn)一步包括: 針對由所述輸出可見性流指示為在所述當(dāng)前幀中不可見的輸出基元跳過鑲嵌。
8.—種由圖形處理器進(jìn)行的用于基于平鋪塊的圖形呈現(xiàn)管線中的鑲嵌的方法,所述方法包括: 針對幀的每一平鋪塊的每一輸入基元產(chǎn)生可見性流,所述可見性流具有N個位的長度,其中每一位指示輸出基元在被呈現(xiàn)時在每一平鋪塊中是否可見,且其中所述輸出基元是通過對所述輸入基元進(jìn)行鑲嵌而產(chǎn)生。
9.根據(jù)權(quán)利要求8所述的方法,其中所述長度N是由如呈現(xiàn)管線所定義的每個輸入基元的輸出基元的最大數(shù)目確定。
10.根據(jù)權(quán)利要求8所述的方法,其中產(chǎn)生可見性流包括: 對所述輸入基元進(jìn)行頂點著色; 對所述經(jīng)頂點著色的輸入基元進(jìn)行外殼著色; 對所述經(jīng)外殼著色的輸入基元進(jìn)行鑲嵌以產(chǎn)生多個輸出基元; 對所述多個輸出基元進(jìn)行域著色; 光柵化所述多個輸出基元以產(chǎn)生像素; 執(zhí)行深度測試以針對幀的平鋪塊確定所述像素是否可見;及 基于所述深度測試在所述可見性流中產(chǎn)生所述輸出基元在所述平鋪塊中是否可見的指示,其中如果通過光柵化所述輸出基元產(chǎn)生的任何像素經(jīng)確定為可見的,那么所述輸出基元經(jīng)確定為可見的。
11.根據(jù)權(quán)利要求8所述的方法,其進(jìn)一步包括: 呈現(xiàn)幀的當(dāng)前平鋪塊,其中在所述可見性流中的每一個位指示不可見輸出基元的情況下針對輸入基元跳過呈現(xiàn)。
12.根據(jù)權(quán)利要求8 所述的方法,其進(jìn)一步包括: 呈現(xiàn)幀的當(dāng)前平鋪塊,其中針對由所述可見性流指示為在所述當(dāng)前幀中不可見的輸出基元跳過呈現(xiàn)。
13.根據(jù)權(quán)利要求8所述的方法,其中所述基于平鋪塊的呈現(xiàn)架構(gòu)具有啟用的幾何著色器,且其中所述可見性流具有NxM個位的長度,其中M為由所述幾何著色器產(chǎn)生的輸出基元的最大數(shù)目,且其中產(chǎn)生可見性流進(jìn)一步包括在對所述多個輸出基元進(jìn)行域著色之后對所述輸出基元進(jìn)行幾何著色。
14.一種經(jīng)配置以執(zhí)行基于平鋪塊的圖形呈現(xiàn)管線中的鑲嵌的設(shè)備,其包括: 圖形處理器,其經(jīng)配置以執(zhí)行分格管線,所述分格管線經(jīng)配置以針對幀的每一平鋪塊產(chǎn)生輸入可見性流,所述輸入可見性流指示輸入基元在被呈現(xiàn)時在每一平鋪塊中是否可見,所述分格管線經(jīng)進(jìn)一步配置以針對所述幀的每一平鋪塊產(chǎn)生輸出可見性流,所述輸出可見性流指示輸出基元在被呈現(xiàn)時在每一平鋪塊中是否可見,其中所述輸出基元是通過對所述輸入基元進(jìn)行鑲嵌而產(chǎn)生。
15.根據(jù)權(quán)利要求14所述的設(shè)備,其中所述分格管線包括: 分格頂點著色器,其經(jīng)配置以對所述輸入基元執(zhí)行頂點著色; 分格外殼著色器,其經(jīng)配置以對所述經(jīng)頂點著色的輸入基元執(zhí)行外殼著色; 分格鑲嵌器級,其經(jīng)配置以對所述經(jīng)外殼著色的輸入基元進(jìn)行鑲嵌以產(chǎn)生多個輸出基元; 分格域著色器,其經(jīng)配置以對所述多個輸出基元執(zhí)行域著色; 分格光柵器,其經(jīng)配置以光柵化所述多個輸出基元以產(chǎn)生像素;及分格深度測試級,其經(jīng)配置以對所述像素執(zhí)行深度測試以針對幀的平鋪塊確定所述像素是否可見, 其中所述分格管線基于所述深度測試在所述輸入可見性流中產(chǎn)生所述輸入基元在所述平鋪塊中是否可見的指示,其中如果通過光柵化與所述輸入基元相關(guān)的所述輸出基元產(chǎn)生的所述像素中的任一者經(jīng)確定為可見的,那么所述輸入基元經(jīng)確定為可見的,且 其中所述分格管線基于所述深度測試在所述輸出可見性流中產(chǎn)生所述輸出基元在所述平鋪塊中是否可見的指示,其中如果通過光柵化所述輸出基元產(chǎn)生的任何像素經(jīng)確定為可見的,那么所述輸出基元經(jīng)確定為可見的。
16.根據(jù)權(quán)利要求14所述的設(shè)備,其中所述輸入基元為補(bǔ)丁,且其中所述輸出基元為三角形、四邊形或等值線。
17.根據(jù)權(quán)利要求14所述的設(shè)備,其進(jìn)一步包括: 經(jīng)配置以呈現(xiàn)幀的當(dāng)前平鋪塊的呈現(xiàn)管線,其中針對由所述輸入可見性流指示為在所述當(dāng)前幀中不可見的輸入基元跳過呈現(xiàn),且其中針對由所述輸出可見性流指示為在所述當(dāng)前幀中不可見的輸出基元跳過呈現(xiàn)。
18.根據(jù)權(quán)利要求17所述的設(shè)備,其中所述呈現(xiàn)管線包含呈現(xiàn)鑲嵌器級,且其中針對由所述輸出可見性流指示為在所述當(dāng)前幀中不可見的輸出基元跳過所述呈現(xiàn)鑲嵌器級。
19.一種經(jīng)配置以執(zhí)行基于平鋪塊的呈現(xiàn)管線中的鑲嵌的設(shè)備,其包括: 圖形處理器,其經(jīng)配置以執(zhí)行分格管線,所述分格管線經(jīng)配置以針對幀的每一平鋪塊的每一輸入基元產(chǎn)生可見性流,所述可見性流具有N個位的長度,其中每一位指示輸出基元在被呈現(xiàn)時在每一平鋪塊中是否可見,且其中所述輸出基元是通過對所述輸入基元進(jìn)行鑲嵌而產(chǎn)生。
20.根據(jù)權(quán)利要求19所述的設(shè)備,其中所述長度N是由如呈現(xiàn)管線所定義的每個輸入基兀的輸出基兀的最大數(shù)目確定。
21.根據(jù)權(quán)利要求19所述的設(shè)備,其中所述分格管線包括: 分格頂點著色器,其經(jīng)配置以對所述輸入基元執(zhí)行頂點著色; 分格外殼著色器,其經(jīng)配置以對所述經(jīng)頂點著色的輸入基元執(zhí)行外殼著色; 分格鑲嵌器級,其經(jīng)配置以對所述經(jīng)外殼著色的輸入基元進(jìn)行鑲嵌以產(chǎn)生多個輸出基元; 分格域著色器,其經(jīng)配置以對所述多個輸出基元執(zhí)行域著色; 分格光柵器,其經(jīng)配置以光柵化所述多個輸出基元以產(chǎn)生像素;及 分格深度測試級,其經(jīng)配置以對所述像素執(zhí)行深度測試以針對幀的平鋪塊確定所述像素是否可見, 其中所述分格管線基于所述深度測試在所述可見性流中產(chǎn)生所述輸出基元在所述平鋪塊中是否可見的指示,其中如果通過光柵化所述輸出基元產(chǎn)生的任何像素經(jīng)確定為可見的,那么所述輸出基元經(jīng)確定為可見的。
22.根據(jù)權(quán)利要求19所述的設(shè)備,其進(jìn)一步包括: 經(jīng)配置以呈現(xiàn)幀的當(dāng)前平鋪塊的呈現(xiàn)管線,其中在所述可見性流中的每一個位指示不可見輸出基元的情況下針對輸入基元跳過呈現(xiàn)。
23.根據(jù)權(quán)利要求19所述的設(shè)備,其中針對由所述可見性流指示為在所述當(dāng)前幀中不可見的輸出基元跳過呈現(xiàn)。
24.根據(jù)權(quán)利要求19所述的設(shè)備,其中所述呈現(xiàn)管線包含幾何著色器,且其中所述可見性流具有NxM個位的長度,其中M為由所述幾何著色器產(chǎn)生的輸出基元的最大數(shù)目,且其中所述分格管線進(jìn)一步包括在所述域著色器后面的經(jīng)配置以對所述多個輸出基元執(zhí)行幾何著色的分格幾何著色器。
25.—種經(jīng)配置以執(zhí)行基于平鋪塊的圖形呈現(xiàn)管線中的鑲嵌的設(shè)備,其包括:用于針對幀的每一平鋪塊產(chǎn)生輸出可見性流的裝置,所述輸入可見性流指示輸入基元在被呈現(xiàn)時在每一平鋪塊中是否可見;及 用于針對所述幀的每一平鋪塊產(chǎn)生輸出可見性流的裝置,所述輸出可見性流指示輸出基元在被呈現(xiàn)時在每一平鋪塊中是否可見,其中所述輸出基元是通過對所述輸入基元進(jìn)行鑲嵌而產(chǎn)生。
26.根據(jù)權(quán)利要求25所述的設(shè)備,其中用于產(chǎn)生所述輸入可見性流和所述輸出可見性流的裝置包括: 用于對所述輸入基元進(jìn)行頂點著色的裝置; 用于對所述經(jīng)頂點著色的輸入基元進(jìn)行外殼著色的裝置; 用于對所述經(jīng)外殼著色的輸入基元進(jìn)行鑲嵌以產(chǎn)生多個輸出基元的裝置; 用于對所述多個輸出基元進(jìn)行域著色的裝置; 用于光柵化所述多個輸出基元以產(chǎn)生像素的裝置; 用于對所述像素執(zhí)行深度測試以針對幀的平鋪塊確定所述像素是否可見的裝置;及用于基于所述深度測試在所述輸入可見性流中產(chǎn)生所述輸入基元在所述平鋪塊中是否可見的指示的裝置,其中如果通過光柵化與所述輸入基元相關(guān)的所述輸出基元產(chǎn)生的所述像素中的任一者經(jīng)確定為可見的,那么所述輸入基元經(jīng)確定為可見的。
27.根據(jù)權(quán)利要求26所述的設(shè)備,其進(jìn)一步包括: 用于基于所述深度測試在所述輸出可見性流中產(chǎn)生所述輸出基元在所述平鋪塊中是否可見的指示的裝置,其中如果通過光柵化所述輸出基元產(chǎn)生的任何像素經(jīng)確定為可見的,那么所述輸出基元經(jīng)確定為可見的。
28.根據(jù)權(quán)利要求25所述的設(shè)備,其中所述輸入基元為補(bǔ)丁,且其中所述輸出基元為三角形、四邊形或等值線。
29.根據(jù)權(quán)利要求25所述的設(shè)備,其進(jìn)一步包括: 用于呈現(xiàn)幀的當(dāng)前平鋪塊的裝置,其中針對由所述輸入可見性流指示為在所述當(dāng)前幀中不可見的輸入基元跳過呈現(xiàn)。
30.根據(jù)權(quán)利要求25所述的設(shè)備,其進(jìn)一步包括: 用于呈現(xiàn)幀的當(dāng)前平鋪塊的裝置,其中針對由所述輸出可見性流指示為在所述當(dāng)前幀中不可見的輸出基元跳過呈現(xiàn)。
31.根據(jù)權(quán)利要求30所述的設(shè)備,其進(jìn)一步包括: 用于針對由所述輸出可見性流指示為在所述當(dāng)前幀中不可見的輸出基元跳過鑲嵌的>j-U ρ?α裝直。
32.—種經(jīng)配置以執(zhí)行基于平鋪塊的呈現(xiàn)管線中的鑲嵌的設(shè)備,其包括: 用于針對幀的每一平鋪塊的每一輸入基元產(chǎn)生可見性流的裝置,所述可見性流具有N個位的長度,其中每一位指示輸出基元在被呈現(xiàn)時在每一平鋪塊中是否可見,且其中所述輸出基元是通過對所述輸入基元進(jìn)行鑲嵌而產(chǎn)生。
33.根據(jù)權(quán)利要求32所述的設(shè)備,其中所述長度N是由如呈現(xiàn)管線所定義的每個輸入基兀的輸出基兀的最大數(shù)目確定。
34.根據(jù)權(quán)利要求32所述的設(shè)備,其中用于產(chǎn)生可見性流的裝置包括: 用于對所述輸入基元進(jìn)行頂點著色的裝置;用于對所述經(jīng)頂點著色的輸入基元進(jìn)行外殼著色的裝置; 用于對所述經(jīng)外殼著色的輸入基元進(jìn)行鑲嵌以產(chǎn)生多個輸出基元的裝置; 用于對所述多個輸出基元進(jìn)行域著色的裝置; 用于光柵化所述多個輸出基元以產(chǎn)生像素的裝置; 用于對所述像素執(zhí)行深度測試以針對幀的平鋪塊確定所述像素是否可見的裝置;及用于基于所述深度測試在所述可見性流中產(chǎn)生所述輸出基元在所述平鋪塊中是否可見的指示的裝置,其中如果通過光柵化所述輸出基元產(chǎn)生的任何像素經(jīng)確定為可見的,那么所述輸出基元經(jīng)確定為可見的。
35.根據(jù)權(quán)利要求32所述的設(shè)備,其進(jìn)一步包括: 用于呈現(xiàn)幀的當(dāng)前平鋪塊的裝置,其中在所述可見性流中的每一個位指示不可見輸出基元的情況下針對輸入基元跳過呈現(xiàn)。
36.根據(jù)權(quán)利要求32所述的設(shè)備,其進(jìn)一步包括: 用于呈現(xiàn)幀的當(dāng)前平鋪塊的裝置,其中針對由所述可見性流指示為在所述當(dāng)前幀中不可見的輸出基元跳過呈現(xiàn)。
37.根據(jù)權(quán)利要求32所述的設(shè)備,其中所述基于平鋪塊的呈現(xiàn)架構(gòu)具有啟用的幾何著色器,且其中所述可見性流具有NxM個位的長度,其中M為由所述幾何著色器產(chǎn)生的輸出基元的最大數(shù)目,且其中用于產(chǎn)生可見性流的裝置進(jìn)一步包括在用于對所述多個輸出基元進(jìn)行域著色的裝置后面的用于對所述輸出基元進(jìn)行幾何著色的裝置。
38.一種包括計算機(jī)可讀存儲媒體的計算機(jī)程序產(chǎn)品,所述計算機(jī)可讀存儲媒體包括在執(zhí)行時致使用于執(zhí)行基于平鋪塊的圖形呈現(xiàn)管線中的鑲嵌的裝置的處理器進(jìn)行以下操作的指令: 針對幀的每一平鋪塊產(chǎn)生輸入可見性流,所述輸入可見性流指示輸入基元在被呈現(xiàn)時在每一平鋪塊中是否可見,所述分格管線經(jīng)進(jìn)一步配置以針對所述幀的每一平鋪塊產(chǎn)生輸出可見性流,所述輸出可見性流指示輸出基元在被呈現(xiàn)時在每一平鋪塊中是否可見,其中所述輸出基元是通過對所述輸入基元進(jìn)行鑲嵌而產(chǎn)生。
39.根據(jù)權(quán)利要求38所述的計算機(jī)程序產(chǎn)品,其進(jìn)一步致使處理器進(jìn)行以下操作: 對所述輸入基元執(zhí)行頂點著色; 對所述經(jīng)頂點著色的輸入基元執(zhí)行外殼著色; 對所述經(jīng)外殼著色的輸入基元進(jìn)行鑲嵌以產(chǎn)生多個輸出基元; 對所述多個輸出基元執(zhí)行域著色; 光柵化所述多個輸出基元以產(chǎn)生像素;及 對所述像素執(zhí)行深度測試以針對幀的平鋪塊確定所述像素是否可見, 其中所述處理器基于所述深度測試在所述輸入可見性流中產(chǎn)生所述輸入基元在所述平鋪塊中是否可見的指示,其中如果通過光柵化與所述輸入基元相關(guān)的所述輸出基元產(chǎn)生的所述像素中的任一者經(jīng)確定為可見的,那么所述輸入基元經(jīng)確定為可見的,且 其中所述處理器基于所述深度測試在所述輸出可見性流中產(chǎn)生所述輸出基元在所述平鋪塊中是否可見的指示,其中如果通過光柵化所述輸出基元產(chǎn)生的任何像素經(jīng)確定為可見的,那么所述輸出基元經(jīng)確定為可見的。
40.根據(jù)權(quán)利要求38所述的計算機(jī)程序產(chǎn)品,其中所述輸入基元為補(bǔ)丁,且其中所述輸出基元為三角形、四邊形或等值線。
41.根據(jù)權(quán)利要求38所述的計算機(jī)程序產(chǎn)品,其進(jìn)一步致使處理器進(jìn)行以下操作: 呈現(xiàn)幀的當(dāng)前平鋪塊,其中針對由所述輸入可見性流指示為在所述當(dāng)前幀中不可見的輸入基元跳過呈現(xiàn),且其中針對由所述輸出可見性流指示為在所述當(dāng)前幀中不可見的輸出基元跳過呈現(xiàn)。
42.根據(jù)權(quán)利要求41所述的計算機(jī)程序產(chǎn)品,其中所述指令進(jìn)一步致使處理器執(zhí)行包含呈現(xiàn)鑲嵌器級的呈現(xiàn)管線,且其中針對由所述輸出可見性流指示為在所述當(dāng)前幀中不可見的輸出基元跳過所述呈現(xiàn)鑲嵌器級。
43.一種包括計算機(jī)可讀存儲媒體的計算機(jī)程序產(chǎn)品,所述計算機(jī)可讀存儲媒體包括在執(zhí)行時致使用于執(zhí)行基于平鋪塊的圖形呈現(xiàn)管線中的鑲嵌的裝置的處理器進(jìn)行以下操作的指令: 針對幀的每一平鋪塊的每一輸入基元產(chǎn)生可見性流,所述可見性流具有N個位的長度,其中每一位指示輸出基元在被呈現(xiàn)時在每一平鋪塊中是否可見,且其中所述輸出基元是通過對所述輸入基元進(jìn)行鑲嵌而產(chǎn)生。
44.根據(jù)權(quán)利要求43所述的計算機(jī)程序產(chǎn)品,其中所述長度N是由如呈現(xiàn)管線所定義的每個輸入基元的輸出基元的最大數(shù)目確定。
45.根據(jù)權(quán)利要求43所述的計算機(jī)程序產(chǎn)品,其進(jìn)一步致使處理器進(jìn)行以下操作: 對所述輸入基元執(zhí)行頂點著色; 對所述經(jīng)頂點著色的輸入基元執(zhí)行外殼著色; 對所述經(jīng)外殼著色的輸入基元進(jìn)行鑲嵌以產(chǎn)生多個輸出基元; 對所述多個輸出基元執(zhí)行域著色; 光柵化所述多個輸出基元以產(chǎn)生像素;及 對所述像素執(zhí)行深度測試以針對幀的平鋪塊確定所述像素是否可見, 其中所述處理器基于所述深度測試在所述可見性流中產(chǎn)生所述輸出基元在所述平鋪塊中是否可見的指示,其中如果通過光柵化所述輸出基元產(chǎn)生的任何像素經(jīng)確定為可見的,那么所述輸出基元經(jīng)確定為可見的。
46.根據(jù)權(quán)利要求43所述的計算機(jī)程序產(chǎn)品,其進(jìn)一步致使處理器進(jìn)行以下操作: 呈現(xiàn)幀的當(dāng)前平鋪塊,其中在所述可見性流中的每一個位指示不可見輸出基元的情況下針對輸入基元跳過呈現(xiàn)。
47.根據(jù)權(quán)利要求43所述的計算機(jī)程序產(chǎn)品,其中針對由所述可見性流指示為在所述當(dāng)前幀中不可見的輸出基元跳過呈現(xiàn)。
48.根據(jù)權(quán)利要求43所述的計算機(jī)程序產(chǎn)品,其中所述指令進(jìn)一步致使處理器執(zhí)行包含幾何著色器的呈現(xiàn)管線,且其中所述可見性流具有NxM個位的長度,其中M為由所述幾何著色器產(chǎn)生的輸出基元的最大數(shù)目,且其中所述指令進(jìn)一步致使處理器在執(zhí)行域著色之后對所述多個輸出基元執(zhí)行幾何著色。
【文檔編號】G06T15/00GK103946895SQ201280056404
【公開日】2014年7月23日 申請日期:2012年10月16日 優(yōu)先權(quán)日:2011年11月16日
【發(fā)明者】基亞·卡波·卡利奧, 尤卡·佩卡·阿爾沃 申請人:高通股份有限公司