以下描述涉及一種圖形處理設備和執(zhí)行圖形管線的方法。
背景技術:
圖形處理設備(諸如圖形處理單元(gpu))在計算設備(諸如,工作站、個人計算機(pc)、筆記本計算機、視頻游戲控制臺以及嵌入式裝置)中渲染圖形數(shù)據(jù)。嵌入式裝置的一些示例為智能電話、平板裝置和可穿戴裝置。圖形處理設備通過將與二維(2d)或三維(3d)對象相應的圖形數(shù)據(jù)轉換為2d像素表達來產(chǎn)生用于顯示的幀。嵌入式裝置具有相對低的處理能力和高功耗,而工作站、pc、筆記本計算機以及視頻游戲控制臺確保充足的存儲空間和處理能力。因此,嵌入式裝置未適當?shù)嘏鋫淇膳c工作站比擬的圖形處理性能。由于嵌入式裝置已變得更加被廣泛使用,因此用戶比以前更頻繁地通過智能電話或平板裝置玩游戲或觀看內(nèi)容(諸如,電影、肥皂劇)。因此,圖形處理設備的制造商已進行研究,從而即使在嵌入式裝置中也提高圖形處理設備的性能和處理效率。
技術實現(xiàn)要素:
提供本發(fā)明內(nèi)容來以簡化形式介紹以下在具體實施方式中進一步描述的構思的選擇。本發(fā)明內(nèi)容不意圖識別請求保護的主題的關鍵特征或必要特征,也不意圖用來幫助確定請求保護的主題的范圍。
在一個總的方面,提供一種在圖形處理設備中執(zhí)行圖形管線的方法,所述方法包括:像素組合以產(chǎn)生與需要曲面細分的繪制調(diào)用相應的包圍盒比特流;響應于在將被處理的當前圖塊中識別到由包圍盒比特流分配的包圍盒,通過對與識別的包圍盒相應的繪制調(diào)用執(zhí)行選擇性的曲面細分來渲染當前圖塊。
包圍盒比特流可包括:指示是否將針對每個輸入繪制調(diào)用執(zhí)行曲面細分的信息以及關于覆蓋與需要曲面細分的繪制調(diào)用相應的包圍盒的圖塊列表的信息。
像素組合的步驟可包括:由像素組合管線產(chǎn)生包括指示每個輸入繪制調(diào)用的可視性的信息的繪制調(diào)用比特流以及包括指示包括在該輸入繪制調(diào)用中的圖元的可視性的信息的圖元比特流。
所述方法可包括:由像素組合管線確定每個輸入繪制調(diào)用是需要曲面細分的第一類繪制調(diào)用還是不需要曲面細分的第二類繪制調(diào)用;由像素組合管線執(zhí)行圖塊像素組合以識別覆蓋與第一類繪制調(diào)用相應的包圍盒的圖塊列表;由像素組合管線產(chǎn)生包括指示第一類繪制調(diào)用的標識信息、指示第二類繪制調(diào)用的標識信息以及關于圖塊列表的信息的包圍盒比特流。
曲面細分可在渲染管線中被延遲執(zhí)行。
在渲染管線渲染當前圖塊的步驟可包括:使用包圍盒比特流針對需要曲面細分的第一類繪制調(diào)用以及針對不需要曲面細分的第二類繪制調(diào)用按照不同的渲染方案渲染當前圖塊。
第一類繪制調(diào)用可通過包括曲面細分階段的第一子渲染管線來處理,第二類繪制調(diào)用可通過不包括曲面細分階段的第二子渲染管線來處理。
響應于確定尚未在先前圖塊中執(zhí)行針對第一類繪制調(diào)用的曲面細分,第一子渲染管線可對當前圖塊中將被處理的第一類繪制調(diào)用執(zhí)行曲面細分,并且響應于確定已經(jīng)在先前圖塊中產(chǎn)生針對第一類繪制調(diào)用的曲面細分圖元,第一子渲染管線可跳過針對當前圖塊中將被處理的第一類繪制調(diào)用的曲面細分。
所述方法可包括:由渲染管線基于包圍盒比特流的圖塊像素組合的結果安排圖塊的渲染次序,以使得更高優(yōu)先級被分配給覆蓋包圍盒的圖塊;由渲染管線根據(jù)安排的渲染次序以每個圖塊為基礎執(zhí)行渲染。
所述方法可包括:響應于針對第一類繪制調(diào)用的曲面細分圖元未在其他圖塊中使用,從存儲器刪除與所述曲面細分圖元關聯(lián)的數(shù)據(jù)。
在另一總的方面,提供一種用于執(zhí)行圖形管線的計算設備,所述計算設備包括:圖形處理單元(gpu),被配置為:執(zhí)行像素組合管線以產(chǎn)生與需要曲面細分的繪制調(diào)用相應的包圍盒比特流,響應于在將被處理的當前圖塊中識別到由包圍盒比特流分配的包圍盒,執(zhí)行渲染管線以通過對與識別的包圍盒相應的繪制調(diào)用執(zhí)行選擇性的曲面細分來渲染當前圖塊;存儲器,被配置為存儲在像素組合管線中產(chǎn)生的包圍盒比特流并將存儲的包圍盒比特流提供給渲染管線。
包圍盒比特流可包括:指示是否將針對每個輸入繪制調(diào)用執(zhí)行曲面細分的信息以及關于覆蓋與需要曲面細分的繪制調(diào)用相應的包圍盒的圖塊列表的信息。
當執(zhí)行像素組合管線時,所述gpu可被配置為:產(chǎn)生包括指示每個輸入繪制調(diào)用的可視性的信息的繪制調(diào)用比特流以及包括指示包括在該輸入繪制調(diào)用中的圖元的可視性的信息的圖元比特流。
當執(zhí)行像素組合管線時,所述gpu可被配置為:確定每個輸入繪制調(diào)用是需要曲面細分的第一類繪制調(diào)用還是不需要曲面細分的第二類繪制調(diào)用;執(zhí)行圖塊像素組合以識別覆蓋與第一類繪制調(diào)用相應的包圍盒的圖塊列表;產(chǎn)生包括指示第一類繪制調(diào)用的標識信息、指示第二類繪制調(diào)用的標識信息以及關于圖塊列表的信息的包圍盒比特流。
所述gpu可被配置為基于延遲的曲面細分執(zhí)行圖形管線。
當執(zhí)行渲染管線時,所述gpu還可被配置為:使用包圍盒比特流針對需要曲面細分的第一類繪制調(diào)用以及針對不需要曲面細分的第二類繪制調(diào)用按照不同的渲染方案渲染當前圖塊。
第一類繪制調(diào)用可通過包括曲面細分階段的第一子渲染管線來處理,第二類繪制調(diào)用可通過不包括曲面細分階段的第二子渲染管線來處理。
當執(zhí)行渲染管線時,所述gpu可被配置為:基于包括在包圍盒比特流中的圖塊像素組合的結果安排圖塊的渲染次序,以使得更高優(yōu)先級被分配給覆蓋包圍盒的圖塊;根據(jù)安排的渲染次序以每個圖塊為基礎執(zhí)行渲染。
存儲器可被配置為:響應于針對第一類繪制調(diào)用的經(jīng)曲面細分的圖元未在其他圖塊中使用,在執(zhí)行渲染管線時刪除與所述經(jīng)曲面細分的圖元關聯(lián)的數(shù)據(jù)。
其他特征和方面從以下的具體實施方式、附圖和權利要求將是清楚的。
附圖說明
圖1是示出計算設備的示例的示圖。
圖2是示出用于描述基于圖塊的渲染(tbr)的示例的示圖。
圖3至圖5是示出用于描述曲面細分管線的示例的示圖。
圖6是示出圖1的圖形處理單元(gpu)的硬件配置的示例的示圖。
圖7是示出圖形管線的示例的示圖。
圖8是示出像素組合管線的示例的示圖。
圖9是示出產(chǎn)生包圍盒比特流的方法的示例的示圖。
圖10是示出由2×2的圖塊覆蓋的繪制調(diào)用的示例的示圖。
圖11是示出用于描述包圍盒的空間與由曲面細分的圖元限定的空間之間的包含關系的示例的示圖。
圖12是示出用于描述包圍盒比特流的產(chǎn)生的示例的示圖。
圖13是示出用于描述各種類型的可視性比特流的示例的示圖。
圖14是示出用于描述渲染管線的示例的示圖。
圖15是示出執(zhí)行渲染管線的方法的示例的示圖。
圖16是示出計算設備的硬件配置的示例的示圖。
圖17是示出執(zhí)行圖形管線的方法的示例的示圖。
貫穿附圖和具體實施方式,除非另外描述或提供,否則相同的標號將被理解為表示相同的元件、特征和結構。為了清楚、說明和方便,附圖可以不按比例繪制,并且附圖中的元件的相對尺寸、比例和描繪可以被夸大。
具體實施方式
提供以下具體實施方式以幫助讀者獲得對在此描述的方法、設備和/或系統(tǒng)的全面理解。然而,在理解本公開之后,在此描述的方法、設備和/或系統(tǒng)的各種改變、修改和等同物對本領域普通技術人員來說將是顯而易見的。這里描述的操作的順序僅為示例,除了必須按照特定次序發(fā)生的操作以外,操作的順序不限于在此闡述的順序,而可如本領域普通技術人員將清楚的那樣改變。此外,在理解本公開之后,為了更加清楚和簡明,對于本領域普通技術人員來說會是公知的功能和結構的描述可被省略。
在此描述的特征可以以不同的形式被實施,而不應被解釋為受在此描述的示例所限制。相反,已提供在此描述的示例以使本公開將是徹底和完整的,并將本公開的完整范圍傳達給本領域普通技術人員。
可對描述的實施例進行各種變更和修改,在附圖和具體實施方式中將示出所描述的實施例中的一些。然而,應該理解,這些實施例將不被解釋為限于示出的形式并且包括本公開的理念和技術范圍內(nèi)的所有改變、等同物或替代物。
在此使用的術語僅用于解釋具體實施例,因此不意味著限制。除了兩個表達在語境上彼此不同之外,單數(shù)表達包括復數(shù)表達。例如,如在此使用,除非上下文明確地另有指示,否則單數(shù)形式意圖也包括復數(shù)形式。術語“包括”或“具有”應該被理解為不預先排除一個或更多個其他的特性、形狀、操作、組件、元件或它們的組合的存在或另外的可能性。此外,包括諸如“第一”、“第二”等的序數(shù)的術語被用于描述各種元件或在各種元件之間區(qū)分的描述方便,但是這些元件不應被這些術語所限制,并且除非在語境上具有不同的含義否則不意圖表示需求的順序或次序。
圖1是根據(jù)實施例的計算設備1的示圖。
參照圖1,計算設備1包括圖形處理單元(gpu)10、中央處理器(cpu)20、存儲器30和總線40。雖然在圖1的計算設備1中示出關于本示例的組件,但是本領域技術人員應理解,計算設備1可包括其他通用組件。
僅作為非窮盡說明,在此描述的計算設備1可表示諸如以下的裝置:移動電話、蜂窩電話、智能電話、可穿戴智能裝置(諸如,戒指、手表、眼鏡、眼鏡式裝置、手鐲、踝部支架、帶、項鏈、耳環(huán)、頭帶、頭盔、嵌入衣服中的裝置)、個人計算機(pc)、膝上型電腦、筆記本、小型筆記本、上網(wǎng)本、或超移動pc(umpc)、平板個人計算機(平板)、平板手機、移動互聯(lián)網(wǎng)裝置(mid)、個人數(shù)字助理(pda)、企業(yè)數(shù)字助理(eda)、數(shù)碼相機、數(shù)碼攝像機、便攜式游戲機、mp3播放器、便攜式/個人多媒體播放器(pmp)、手持電子書、超移動個人計算機(umpc)、便攜式桌面pc、電子游戲機、電視機頂盒、電子書閱讀器、全球定位系統(tǒng)(gps)導航、個人導航裝置或便攜式導航裝置(pnd)、手持游戲機、電子書、以及諸如高清晰度電視(hdtv)、光盤播放器、dvd播放器、藍光播放器、機頂盒、機器人清潔器、家用電器、內(nèi)容播放器、通信系統(tǒng)、圖像處理系統(tǒng)、圖形處理系統(tǒng)的裝置,或者任何其他消費電子/信息技術(ce/it)裝置。在示例中,所述裝置可被實現(xiàn)為能夠感測用戶的眼睛運動的各種裝置。所述裝置還可被實現(xiàn)為智能家電、智能車輛或者在智能家居系統(tǒng)中實現(xiàn)。因此,計算設備1可以是具有用于內(nèi)容顯示的圖形處理功能的任何設備并且可包括各種類型的設備。
在示例中,所述裝置可被實現(xiàn)為穿戴在用戶的身體上的可穿戴裝置。在一個示例中,可穿戴裝置可以是可自安裝在用戶身體上的,諸如,手表、手鐲或者包括單眼眼鏡或雙眼眼鏡的眼鏡顯示器(egd)。在另一非窮盡示例中,可穿戴裝置可通過附接裝置被安裝到用戶的身體上,諸如,使用臂帶將智能電話或平板電腦附接到用戶的手臂、將可穿戴裝置并入用戶的衣服中或者使用掛繩將可穿戴裝置懸掛在用戶的頸部周圍。
cpu20可以是控制計算設備1的整體操作和功能的硬件元件。例如,cpu20可驅動操作系統(tǒng)(os),調(diào)用用于gpu10的圖形應用程序編程接口(api),并執(zhí)行gpu10的驅動器。cpu20可執(zhí)行存儲在存儲器30中的各種應用,例如,網(wǎng)頁瀏覽應用、游戲應用和視頻應用等。
gpu10可以是執(zhí)行各種版本或類型的圖形管線100的專用圖形處理器,例如,開放圖形庫(opengl)、directx和統(tǒng)一計算設備架構(cuda)。在示例中,gpu10可以是執(zhí)行三維(3d)圖形管線以便將用于轉換的3d圖像上的3d對象渲染為將被顯示的二維(2d)圖像的硬件元件。例如,gpu10可執(zhí)行各種功能,諸如著色、混合、照明以及產(chǎn)生像素的將被顯示的像素值的各種功能。
gpu10可執(zhí)行基于圖塊的圖形管線或基于圖塊的渲染(tbr)。在此使用的術語“基于圖塊”意思是在視頻的每幀被劃分或分割為多個圖塊之后以每個圖塊為基礎執(zhí)行渲染。在基于圖塊的架構中,與以每個像素為基礎處理幀的情況相比可降低計算量。因此,基于圖塊的架構可以是適合于具有相對低處理性能的裝置的圖形渲染方法。
參照圖1,gpu10可執(zhí)行包括像素組合管線101和渲染管線102的圖形管線100。在示例中,像素組合管線101是產(chǎn)生指示組成2d或3d對象的頂點、圖元或貼片(patch,小片,補片)所屬的圖塊的圖塊列表的處理。像素組合管線101可與其他術語“圖塊化管線”或“像素組合階段”互換使用。渲染管線102是基于由像素組合管線101產(chǎn)生的圖塊列表以每個圖塊為基礎來渲染對象的處理。當渲染管線102完成時,可確定將被顯示在2d顯示屏幕上的2d或3d對象的像素表達。渲染管線102可與其他術語“渲染階段”互換使用。
圖形管線的一些示例包括諸如微軟的directx11(dx11)api、opengl4.0api的管線,可包括用于圖形圖元或圖形貼片的曲面細分的另外的處理階段(曲面細分階段)。曲面細分可以是將圖形貼片劃分為更小的圖形圖元以使圖像的顯示具有更細微的細節(jié)的處理。由計算設備1的gpu10驅動的圖形管線100可支持曲面細分。在示例中,可由gpu10來執(zhí)行以下示例。
存儲器30可以是存儲由計算設備1處理的各種數(shù)據(jù)的硬件元件。例如,存儲器30可存儲由gpu10和cpu20處理的數(shù)據(jù)以及將被gpu10和cpu20處理的數(shù)據(jù)。此外,存儲器30可存儲將被gpu10和cpu20驅動的應用、驅動器等。存儲器30可包括只讀存儲器(rom)、電可擦除可編程只讀存儲器(eeprom)、隨機存取存儲器(ram)、動態(tài)隨機存取存儲器(dram)、靜態(tài)隨機存取存儲器(sram)、閃存、非易失性存儲器、cd-rom、cd-r、cd+r、cd-rw、cd+rw、dvd-rom、dvd-r、dvd+r、dvd-rw、dvd+rw、dvd-ram、bd-rom、bd-r、bd-rlth、bd-re、藍光或光盤存儲、硬盤驅動(hdd)、固態(tài)驅動(ssd)、磁帶、軟盤、磁光數(shù)據(jù)存儲裝置、光數(shù)據(jù)存儲裝置、硬盤、固態(tài)盤以及本領域普通技術人員公知的任何裝置,所述本領域普通技術人員公知的任何裝置能夠以非暫時性方式存儲指令或軟件以及任何關聯(lián)數(shù)據(jù)、數(shù)據(jù)文件和數(shù)據(jù)結構,并能向處理器或計算機提供指令或軟件以及任何關聯(lián)數(shù)據(jù)、數(shù)據(jù)文件和數(shù)據(jù)結構,以使處理器或計算機能執(zhí)行指令。在示例中,存儲器30可包括可由計算設備1訪問的外部存儲裝置。
總線40可以是例如連接計算設備1的硬件元件以使得在硬件元件之間發(fā)送和接收數(shù)據(jù)的硬件元件。總線40可包括各種類型的總線,例如,外圍組件互連(pci)總線和pciexpress總線。
圖2是用于描述tbr的示圖的示例。
參照圖2,3d車輛對象220對應于視頻的一幀。圖1的gpu10可將包括3d汽車對象220的一幀劃分為n×m個圖塊210(其中,n和m為自然數(shù))。在示例中,圖1的像素組合管線101可將包括3d車輛對象220的幀劃分為多個圖塊210并確定3d車輛對象220存在于哪些圖塊中。圖1的gpu10可通過基于每個圖塊渲染3d車輛對象220來將包括在圖塊210中的3d車輛對象220轉換為像素表達。在這種情況下,圖1的渲染管線102可通過基于每個圖塊渲染3d車輛對象220來將3d車輛對象220轉換為像素表達。如上所述,通過使用圖塊210而不是基于每個像素來渲染包括在一幀中的3d車輛對象220被稱為基于圖塊的渲染(tbr)。
圖3至圖5是用于描述曲面細分管線300的示圖的示例。將參照圖3至圖5給出以下描述。如上所述,將參照圖3至圖5描述的曲面細分管線(或曲面細分階段)300可被包括在圖1的圖形管線100中。
參照圖3,可通過控制著色器121、曲面細分器123和曲面細分評估著色器125來執(zhí)行曲面細分管線300。結合在本說明書中描述的曲面細分管線300使用的術語可根據(jù)圖形管線100的版本和類型與其他術語互換使用。例如,術語“控制著色器”可與“外殼著色器”互換使用,術語“曲面細分評估著色器”可與“域著色器”互換使用。
控制著色器121可將表示低階表面的輸入控制點轉換為組成貼片的輸出控制點。例如,控制著色器121可執(zhí)行輸入控制點的轉換以產(chǎn)生由如圖4所示的控制點p00、p01、p02、p03、p10、p11、p12、p13、p20、p21、p22、p23、p30、p31、p32和p33組成的網(wǎng)格的貼片410。貼片410可具有多邊形形狀,諸如三角形、矩形或等值線。
除了產(chǎn)生組成貼片的輸出控制點之外,控制著色器121可確定曲面細分因子(tf)或曲面細分等級(tl)。曲面細分因子(tf)或曲面細分等級(tl)可以是指示貼片將被劃分成多少片或者貼片將被如何劃分的指標。圖5示出的表格500是定義曲面細分因子(tf)和將被劃分的三角形的數(shù)量之間的關系的表格。由于當曲面細分因子(tf)為1時,表格500中的三角形的數(shù)量為1,因此可不對貼片執(zhí)行曲面細分。然而,隨著曲面細分因子(tf)的數(shù)增大,三角形的數(shù)量以指數(shù)方式增大。將被劃分的三角形的數(shù)量隨著曲面細分因子(tf)的增大而增大可意味著由gpu10針對貼片進行處理的計算量的增大。當曲面細分因子(tf)的數(shù)增大時,對象的貼片可被更柔軟地表達。在圖5的表格500中將三角形作為將被劃分的多邊形的示例,但是多邊形不限于此。貼片可被劃分為其他多邊形,諸如矩形或等值線。
控制著色器121可將關于輸出貼片的曲面細分因子(tf)和輸出控制點的信息傳送到曲面細分器123和曲面細分評估著色器125。
曲面細分器123可使用從控制著色器121接收的曲面細分因子(tf)來針對輸出控制點計算重心坐標系上的uvw坐標和權重值。
曲面細分評估著色器125可使用從控制著色器121接收的關于輸出貼片的曲面細分因子(tf)和輸出控制點的信息以及從曲面細分器123接收的uvw坐標和權重值來產(chǎn)生曲面細分的頂點。在示例中,w坐標是可選的。參照圖4,曲面細分的頂點的位置可組成表面420??赏ㄟ^執(zhí)行曲面細分管線將貼片410轉換為被做得更軟的表面420上的頂點(或圖元)。
圖6是示出圖1的gpu10的硬件配置的示例的示圖。
參照圖6,gpu10可包括執(zhí)行圖形管線100的輸入裝配器110、頂點著色器115、控制著色器121、曲面細分器123、曲面細分評估著色器125、圖元裝配器130、像素組合器140、光柵化器150和片元著色器160。在示例中,gpu10還包括控制器170和緩沖器180。在gpu10內(nèi)執(zhí)行圖形管線100的以上元件可基于以下將描述的功能被分類,并且執(zhí)行圖形管線100的以上元件可通過包括在gpu10中的子處理單元(或處理器核)被實現(xiàn)。即,執(zhí)行圖形管線100的以上元件的實現(xiàn)可不具體地限制于任何一個。執(zhí)行圖形管線100的以上元件的名稱可基于以下將描述的功能而被給出,但是本領域普通技術人員將會理解,這些名稱可被各種改變。
為了便于描述,在gpu10內(nèi)執(zhí)行圖形管線100的元件被分配在開放圖形庫(opengl)中定義的名稱,但是這些元件的名稱不限于此。在示例中,在gpu10內(nèi)執(zhí)行圖形管線100的元件可對應于在其他類型的api(諸如微軟directx11(dx11)和統(tǒng)一計算設備架構(cuda)6.0)中定義的相似元件。例如,本領域普通技術人員將理解,曲面細分評估著色器125可對應于在directx11中使用的域著色器,并且類似地,gpu10中的其他元件可對應于在其他api中使用的元件。
輸入裝配器110可基于輸入繪制調(diào)用(drawcall)將存儲在存儲器(圖1中的30)中的與對象關聯(lián)的頂點的數(shù)據(jù)提供給圖形管線100。由圖形管線100提供的頂點可與作為表面的表達的網(wǎng)格或貼片有關,但是不限于此。繪制調(diào)用是指示將在其上渲染對象的幀以及將在該幀上渲染的對象的命令。例如,繪制調(diào)用可以是用于在圖像或幀上繪制圖元(諸如三角形或矩形)的命令。
頂點著色器115可將由輸入裝配器110提供的頂點作為控制著色器121的輸入控制點來傳輸。
控制著色器121、曲面細分器123和曲面細分評估著色器125可執(zhí)行以上參照圖3描述的曲面細分管線300。在一個示例中,輸入到控制著色器121的輸入控制點可被曲面細分評估著色器125輸出為與輸出貼片關聯(lián)的曲面細分的頂點。
當執(zhí)行曲面細分管線300時,圖元裝配器130可將經(jīng)曲面細分的頂點轉換為圖元(即,經(jīng)曲面細分的圖元)。當未執(zhí)行曲面細分管線300時,圖元裝配器130可將從頂點著色器115輸出的頂點轉換為圖元。
像素組合器140可使用從圖元裝配器130輸出的圖元(或曲面細分的圖元)來執(zhí)行像素組合或圖塊化。在示例中,像素組合器140可通過執(zhí)行深度測試(或圖塊z測試)產(chǎn)生(像素組合)指示與每個輸出圖元所屬的圖塊有關的信息的圖塊列表。在另一示例中,像素組合器140可產(chǎn)生可視性比特流,諸如,將參照圖8至圖11描述的包圍盒比特流(第一比特流)、繪制調(diào)用比特流(第二比特流)、圖元比特流(第三比特流)或曲面細分比特流。
光柵化器150可基于產(chǎn)生的圖塊列表將輸出圖元轉換為2d空間的像素值。片元可意味著被圖元覆蓋的像素。片元著色器160可產(chǎn)生圖元并確定片元的深度值、模板(stencil)值、顏色值等。片元著色器160的著色結果可被存儲在緩沖器180(例如,幀緩沖器)中并可作為視頻的幀被顯示。
控制器170可控制圖形管線100的元件110至150以及緩沖器180的整體操作和功能。
圖7是根據(jù)實施例的圖形管線的示圖。
參照圖7,控制器170可控制像素組合管線101和渲染管線102的操作。
在像素組合管線101中不存在曲面細分。如以上參照圖3所述,由于當執(zhí)行曲面細分管線300時產(chǎn)生關于多個三角形的數(shù)據(jù),因此需要許多硬件/軟件資源來處理這些數(shù)據(jù)。因此,當在像素組合管線101和渲染管線102二者中重復執(zhí)行曲面細分并因此產(chǎn)生許多曲面細分的圖元時,計算量可呈以指數(shù)方式增大并且計算處理速度可被降低。在示例中,圖形管線(圖1中的100)可執(zhí)行推遲的曲面細分。圖形管線(圖1中的100)可在渲染管線102中執(zhí)行曲面細分,而不在像素組合管線101中執(zhí)行曲面細分。
在示例中,渲染管線102可包括第一子渲染管線102-1和第二子渲染管線102-2。第一子渲染管線102-1可以是執(zhí)行曲面細分管線300的管線,第二子渲染管線102-2可以是不執(zhí)行曲面細分管線300的管線。出于在像素組合管線101中不執(zhí)行曲面細分同樣的原因(例如,減小計算量、提高處理速度等),不執(zhí)行曲面細分的子管線甚至可存在于渲染管線102中。
圖8是根據(jù)實施例的像素組合管線101的示圖。
將結合參照圖6描述的gpu10的硬件配置來描述圖8所示的像素組合管線。在圖8中,僅描述與本實施例關聯(lián)的元件和管線階段。因此,本領域普通技術人員將理解,在不脫離所描述的說明性示例的精神和范圍的情況下,可包括除圖8所示的元件和管線階段以外的其他通用元件和管線階段。
從存儲器30提供的繪制調(diào)用821可被輸入到像素組合管線101。繪制調(diào)用821可對應于與將在當前圖像幀中被渲染的對象關聯(lián)的繪制命令。
頂點著色器115可執(zhí)行用于從輸入繪制調(diào)用821產(chǎn)生頂點的頂點著色801。頂點著色器115可將產(chǎn)生的頂點傳送到圖元裝配器130。圖元裝配器130可執(zhí)行圖元裝配802以將從頂點著色器115輸出的頂點轉換為圖元的集合。像素組合管線101可被設置以使得在頂點著色801和圖元裝配802之間不執(zhí)行曲面細分。因此,在像素組合管線101中可不產(chǎn)生曲面細分圖元。
像素組合器140可使用從圖元裝配器130輸出的圖元執(zhí)行像素組合803或圖塊化。像素組合器140可執(zhí)行像素組合803以通過執(zhí)行深度測試(或圖塊z測試)、剔除(culling,挑選)、裁剪、隱藏面消除(hsr)等來預測指示關于圖元屬于哪些圖塊的信息的圖塊列表。在示例中,預測的圖塊列表可作為比特流822被存儲在存儲器30中。在另一示例中,為了更快訪問,通過像素組合器140的像素組合803的結果可被存儲在設置于gpu10的緩沖器180中的高速緩存185中,而不是存儲器30中。像素組合器140可執(zhí)行像素組合803以產(chǎn)生可視性比特流,諸如包圍盒比特流、繪制調(diào)用比特流、圖元比特流等。繪制調(diào)用可視性比特流可包括指示每個圖塊中的每個繪制調(diào)用的可視性的信息,圖元比特流可包括指示每個圖塊中的每個圖元的可視性的信息。
圖9是示出產(chǎn)生包圍盒比特流的方法的示例的示圖。圖9中的操作可按照所示的順序和方式來執(zhí)行,但是在不脫離描述的說明性示例的精神和范圍的情況下,一些操作的次序可被改變或者一些操作可被省略。圖9所示的許多操作可被并行執(zhí)行或被同時執(zhí)行。除了以下圖9的描述之外,圖1至圖8的以上描述也可應用于圖9,并且通過引用包含于此。因此,以上描述在這里不會再重復。
參照圖9,在901,像素組合器140可確定每個輸入繪制調(diào)用是需要曲面細分的第一類繪制調(diào)用還是不需要曲面細分的第二類繪制調(diào)用。
在902,像素組合器140可執(zhí)行圖塊像素組合以識別覆蓋與第一類繪制調(diào)用對應的包圍盒的圖塊列表。在另一示例中,因為不需要曲面細分的第二類繪制調(diào)用即使在渲染管線中也將不被曲面細分,所以像素組合器140可不對與第二類繪制調(diào)用相應的包圍盒執(zhí)行圖塊像素組合。
在903,像素組合器140可基于包圍盒的圖塊像素組合的結果產(chǎn)生包括指示第一類繪制調(diào)用的標識信息、指示第二類繪制調(diào)用的標識信息以及關于圖塊列表的信息的包圍盒比特流。包圍盒比特流可包括指示是否對于每個輸入繪制調(diào)用需要曲面細分的信息和關于覆蓋與需要曲面細分的第一類繪制調(diào)用對應的包圍盒的圖塊列表的信息。
在另一示例中,在操作901至903產(chǎn)生包圍盒比特流的處理可在參照圖8描述的像素組合803的階段中被執(zhí)行。
圖10是示出由2×2的圖塊覆蓋的繪制調(diào)用的示例的示圖。
參照圖10,第零繪制調(diào)用1000、第一繪制調(diào)用1001和第二繪制調(diào)用1002可由2×2的圖塊(即,圖塊0至圖塊3)覆蓋。圖10的示例僅為了便于描述,本實施例不限于此。第零繪制調(diào)用1000、第一繪制調(diào)用1001和第二繪制調(diào)用1002中的每個可包括三個圖元。在這種情況下,假設第零繪制調(diào)用1000對應于需要曲面細分的繪制調(diào)用而第一繪制調(diào)用1001和第二繪制調(diào)用1002對應于不需要曲面細分的繪制調(diào)用。
參照以上參照圖9描述的901,像素組合器135可確定第零繪制調(diào)用1000對應于第一類繪制調(diào)用而第一繪制調(diào)用1001和第二繪制調(diào)用1002對應于第二類繪制調(diào)用。參照以上參照圖9描述的操作902,像素組合器135可確定與第零繪制調(diào)用1000相應的包圍盒并通過圖塊像素組合來識別覆蓋與第零繪制調(diào)用1000相應的包圍盒的圖塊列表(圖塊0和圖塊2)。通過對從第一類繪制調(diào)用產(chǎn)生的曲面細分圖元所執(zhí)行的圖塊像素組合識別的圖塊列表可被包括在通過對與第一類繪制調(diào)用相應的包圍盒所執(zhí)行的圖塊像素組合識別的圖塊列表中。這是因為由從第一類繪制調(diào)用產(chǎn)生的曲面細分圖元所定義的空間與相應于第一類繪制調(diào)用的包圍盒沒有不同。以下將參照圖11描述細節(jié)。
圖11是示出用于描述包圍盒1110的空間與由曲面細分圖元1102定義的空間之間的包含關系的示例的示圖。
參照圖11,與第一類繪制調(diào)用1101相應的包圍盒1110可包括由第一類繪制調(diào)用1101定義的空間。在第一類繪制調(diào)用1101被曲面細分之后,由曲面細分圖元1102定義的空間可不偏離包圍盒1110,因為圖形api設置包圍盒1110以使得由曲面細分圖元1102定義的空間被包括在包圍盒1110中。
當即使在像素組合管線(圖8中的101)中未執(zhí)行曲面細分但還是對包圍盒執(zhí)行圖塊像素組合時,可獲取與通過對曲面細分圖元執(zhí)行圖塊像素組合所獲取的結果類似的結果。因此,在像素組合管線(圖8中的101)中可跳過曲面細分管線(曲面細分階段)。因此,與在像素組合管線(圖8中的101)中執(zhí)行的曲面細分相比,在gpu10中減少計算量并且提高處理速度。
圖12是根據(jù)實施例的用于描述包圍盒比特流的產(chǎn)生的示圖。
參照圖12,假設第零繪制調(diào)用1000對應于需要曲面細分的繪制調(diào)用而第一繪制調(diào)用1001和第二繪制調(diào)用1002對應于不需要曲面細分的繪制調(diào)用。
關于圖12所示的包圍盒比特流中的“102”,為首的“1”可意味著針對第零繪制調(diào)用1000需要曲面調(diào)用,而1之后的“02”可意味著覆蓋與繪制調(diào)用1000相應的包圍盒1200的圖塊為“圖塊0”和“圖塊2”。包圍盒比特流中的“102”之后的“00”可意味著針對第一繪制調(diào)用1001和第二繪制調(diào)用1002不需要曲面細分。
包圍盒比特流可包括指示針對每個輸入繪制調(diào)用1000、1001和1002是否需要曲面細分的信息,以及關于覆蓋與需要曲面細分的繪制調(diào)用1000相應的包圍盒1200的圖塊列表的信息。在其他示例中,只要比特流能夠包括上述信息,則可對比特流的形式(諸如以上參照圖12描述的“10200”)進行各種改變。
圖13是根據(jù)實施例的用于描述各種類型的可視性比特流的示例的示圖。
參照圖13,像素組合器140可產(chǎn)生包圍盒比特流、繪制調(diào)用比特流、圖元比特流和曲面細分比特流。包圍盒比特流可以是在像素組合管線101中產(chǎn)生的比特流,曲面細分比特流可以是在渲染管線102中產(chǎn)生的比特流。
由于包圍盒比特流與參照圖12描述的基本相同,因此包圍盒比特流的詳細描述將被省略。
因為需要曲面細分的第一類繪制調(diào)用(例如,第零繪制調(diào)用1000)的可視性已被反映到包圍盒比特流,所以繪制調(diào)用比特流和圖元比特流可針對不需要曲面細分的第二類繪制調(diào)用(例如,第一繪制調(diào)用1001和第二繪制調(diào)用1002)而產(chǎn)生。
繪制調(diào)用比特流是用于識別每個圖塊中的可視性繪制調(diào)用的比特流。例如,由于圖塊0覆蓋第一繪制調(diào)用1001,因此“10”被分配給圖塊0。由于圖塊1覆蓋第一繪制調(diào)用1001和第二繪制調(diào)用1002二者,因此“11”被分配給圖塊1。由于圖塊2既不覆蓋第一繪制調(diào)用1001也不覆蓋第二繪制調(diào)用1002,因此“00”被分配給圖塊2。由于圖塊3覆蓋第二繪制調(diào)用1002,因此“01”被分配給圖塊3。
圖元比特流是用于識別每個圖塊中的可視的圖元的比特流。例如,由于圖塊0僅覆蓋第一繪制調(diào)用1001的圖元p0,因此“100000”被分配給圖塊0。由于圖塊1覆蓋第一繪制調(diào)用1001和第二繪制調(diào)用1002的所有圖元,因此“111111”被分配給圖塊1。由于圖塊2不覆蓋第一繪制調(diào)用1001和第二繪制調(diào)用1002中的任何圖元,因此“000000”被分配給圖塊2。由于圖塊3覆蓋第二繪制調(diào)用1002的圖元p0、p1和p3,因此“000111”被分配給圖塊3。
如上所述,在渲染管線102中執(zhí)行曲面細分之后可產(chǎn)生曲面細分比特流。曲面細分比特流是用于識別每個圖塊中的可視的曲面細分圖元的比特流。由于僅對第零繪制調(diào)用1000執(zhí)行曲面細分并且與第零繪制調(diào)用1000相應的包圍盒在包圍盒比特流中被定義為“02”,因此曲面細分比特流可僅包括圖塊0和圖塊2的可視性信息。由于圖塊0覆蓋第零繪制調(diào)用1000的圖元p0、p1和p3,因此“111”被分配給圖塊0。由于圖塊2也覆蓋第零繪制調(diào)用1000的圖元p0、p1和p3,因此“111”被分配給圖塊2。
如上所述,渲染管線102可使用將被處理的當前圖塊中的可視的包圍盒、可視的繪制調(diào)用和可視的圖元基于各種類型的可視性比特流來執(zhí)行渲染,并且還可跳過對不存在可視的對象的圖塊的渲染的步驟,從而在gpu10中減少計算量并提高處理速度。
圖14是根據(jù)實施例的用于描述渲染管線102的示圖。
關于結合圖6描述的gpu10的硬件配置來描述圖14所示的渲染管線102。以下將描述與本實施例關聯(lián)的元件和管線階段。因此,本領域普通技術人員將理解,除了圖14所示的元件和管線階段以外,還可包括其他通用元件和管線階段。
渲染管線102可使用在像素組合管線101中產(chǎn)生的包圍盒比特流,針對需要曲面細分的第一類繪制調(diào)用和不需要曲面細分的第二類繪制調(diào)用以不同的渲染方案來渲染圖塊。在示例中,可由包括曲面細分階段的第一子渲染管線102-1處理第一類繪制調(diào)用,并且可由不包括曲面細分階段的第二子渲染管線102-2處理第二類繪制調(diào)用。當在將被處理的當前圖塊中識別到由包圍盒比特流分配的包圍盒時,渲染管線102可通過執(zhí)行選擇性曲面細分(即,渲染管線102可對與識別的包圍盒相應的繪制調(diào)用執(zhí)行曲面細分而不對其他繪制調(diào)用執(zhí)行曲面細分)來渲染當前圖塊。
gpu10的控制器170可基于包括在包圍盒比特流中的圖塊像素組合的結果安排圖塊的渲染次序,以使得將高優(yōu)先級分配給覆蓋包圍盒的圖塊。因此,渲染管線102可根據(jù)安排的圖塊的渲染次序以每個圖塊為基礎執(zhí)行渲染。
從存儲器30提供的繪制調(diào)用821被輸入到渲染管線102。控制器170可確定每個輸入繪制調(diào)用821是第一類繪制調(diào)用還是第二類繪制調(diào)用??刂破?70可控制針對第一類繪制調(diào)用的第一子渲染管線102-1的操作并且控制針對第二類繪制調(diào)用的第二子渲染管線102-2的操作。
第一子渲染管線102-1可對在先前圖塊中尚未執(zhí)行曲面細分的第一類繪制調(diào)用執(zhí)行操作1411至1418的渲染階段。第一子渲染管線102-1可對在先前圖塊中已執(zhí)行曲面細分并且通過曲面細分產(chǎn)生的曲面細分比特流已被存儲在存儲器30中的第一類繪制調(diào)用執(zhí)行操作1401、1417和1418的渲染階段。因此,通過不對已執(zhí)行曲面細分的第一類繪制調(diào)用重復曲面細分操作,可減少gpu10的計算量。
在以下描述中,將采取上面已參照圖10至圖13描述的由2×2的圖塊覆蓋的第零繪制調(diào)用1000、第一繪制調(diào)用1001和第二繪制調(diào)用1002作為示例。對第零繪制調(diào)用1000執(zhí)行第一子渲染管線102-1,對第一繪制調(diào)用1001和第二繪制調(diào)用1002執(zhí)行第二子渲染管線102-2。在另一示例中,可假設與第零繪制調(diào)用1000相應的包圍盒被圖塊0和圖塊2覆蓋,并且安排渲染次序以使得圖塊0比圖塊2更早被渲染。由于第零繪制調(diào)用1000的所有圖元p0、p1和p2被覆蓋在圖塊0中,因此當完成對圖塊0的曲面細分時,圖元p0、p1和p2的曲面細分圖元可被產(chǎn)生并可被存儲在存儲器30的比特流822中。當渲染圖塊2(當前圖塊)時,因為通過渲染圖塊0(先前圖塊)而被曲面細分的圖元已經(jīng)產(chǎn)生,所以可不需要曲面細分。因此,當渲染圖塊2(當前圖塊)時,跳過曲面細分,加載存儲在存儲器30的比特流822中的曲面細分圖元的數(shù)據(jù),并執(zhí)行剩余的渲染階段。
以下將描述將對在先前圖塊中尚未執(zhí)行曲面細分的第一類繪制調(diào)用(即,將被初始曲面細分的繪制調(diào)用)執(zhí)行的操作1411至1418的渲染階段。
頂點著色器115可執(zhí)行頂點著色1411以從繪制調(diào)用821之中的第一類繪制調(diào)用產(chǎn)生頂點。頂點著色器115可將產(chǎn)生的頂點傳送到控制著色器121。
如以上參照圖3描述的,控制著色器121、曲面細分器123和曲面細分評估著色器125可通過使用頂點執(zhí)行控制著色1412、曲面細分1413和曲面細分評估著色1414來產(chǎn)生曲面細分的頂點。
圖元裝配器130可執(zhí)行圖元裝配1415,以將曲面細分的頂點轉換成曲面細分圖元的集合。
像素組合器140可使用從圖元裝配器130輸出的曲面細分的圖元執(zhí)行像素組合1416或圖塊化。即,像素組合器140可執(zhí)行像素組合1416以通過執(zhí)行深度測試(或圖塊z測試)、剔除(culling,挑選)、裁剪、隱藏面消除(hsr)等來預測指示關于曲面細分圖元屬于哪些圖塊的信息的圖塊列表。此外,像素組合器140可通過執(zhí)行像素組合1416產(chǎn)生可視性比特流(諸如曲面細分比特流)并將可視性比特流存儲在存儲器30的比特流822中。如上所述,為了更快訪問,所產(chǎn)生的可視性比特流可被存儲在設置于gpu10的緩沖器180中的高速緩存(圖8中的185)中,而不是存儲器30中。關于曲面細分的圖元的坐標的信息也可被存儲在存儲器30或高速緩存185中。
光柵化器150可執(zhí)行光柵化1417以通過使用存儲在存儲器30或高速緩存185中的可視性比特流將曲面細分圖元轉換成2d空間中的像素值。片元著色器160可產(chǎn)生片元并執(zhí)行片元著色1418以確定片元的深度值、模板值、顏色值等。由片元著色器160執(zhí)行的片元著色1418的結果可被存儲在緩沖器180(例如,幀緩沖器)中并可作為視頻的幀被顯示。
以下將描述將對在先前圖塊中已執(zhí)行曲面細分的第一類繪制調(diào)用執(zhí)行的操作1401、1417和1418的渲染階段。
在操作1401,從存儲器30或高速緩存185加載曲面細分圖元的曲面細分比特流和坐標數(shù)據(jù)。光柵化器150可使用曲面細分圖元的加載的曲面細分比特流和加載的坐標數(shù)據(jù)執(zhí)行光柵化1417,以將曲面細分圖元轉換成2d空間中的像素值。片元著色器160可產(chǎn)生片元并執(zhí)行片元著色1418以確定片元的深度值、模板值、顏色值等。由片元著色器160執(zhí)行的片元著色1418的結果可被存儲在緩沖器180(例如,幀緩沖器)中并可作為視頻的幀被顯示。
可對第二類繪制調(diào)用執(zhí)行第二子渲染管線102-2。由于第二類繪制調(diào)用不需要曲面細分,因此第二子渲染管線102-2可不包括曲面細分管線(曲面細分階段),諸如操作1412至1414。在將在當前圖塊中處理的第一類繪制調(diào)用的曲面細分圖元已在先前圖塊中產(chǎn)生的情況下,可跳過將在當前圖塊中處理的繪制調(diào)用的曲面細分。
頂點著色器115可執(zhí)行頂點著色1421以從繪制調(diào)用821之中的第二類繪制調(diào)用產(chǎn)生頂點。頂點著色器115可將產(chǎn)生的頂點傳送到圖元裝配器130。
圖元裝配器130可執(zhí)行圖元裝配1422,圖元裝配1422將從頂點著色器115輸出的頂點轉換成圖元。
光柵化器150可執(zhí)行光柵化1423以通過使用存儲在存儲器30或高速緩存185中的可視性比特流(繪制調(diào)用比特流、圖元比特流等)將曲面細分圖元轉換成2d空間中的像素值。片元著色器160可產(chǎn)生片元并執(zhí)行片元著色1424以確定片元的深度值、模板值、顏色值等。由片元著色器160執(zhí)行的片元著色1424的結果可被存儲在緩沖器180(例如,幀緩沖器)中并可作為視頻的幀被顯示。
另一方面,在第一類繪制調(diào)用的曲面細分圖元不在將被隨后處理的其他圖塊中使用的情況下,控制器170可控制操作以使得在執(zhí)行渲染管線的同時從存儲器30和高速緩存185刪除與曲面細分圖元關聯(lián)的數(shù)據(jù)。
如上所述,在渲染管線102中,可根據(jù)輸入繪制調(diào)用的類型(即,輸入繪制調(diào)用是第一類繪制調(diào)用還是第二類繪制調(diào)用)執(zhí)行不同類型的子渲染管線102-1和102-2。僅對需要曲面細分的繪制調(diào)用執(zhí)行曲面細分,而不是對所有繪制調(diào)用無條件地執(zhí)行曲面細分,從而在減少gpu10的計算量的同時提高了處理速度。
圖15是示出執(zhí)行渲染管線102的方法的示例的示圖??砂凑杖鐖D所示的順序和方式執(zhí)行圖15的操作,但是在不脫離描述的說明性示例的精神和范圍的情況下,一些操作的次序可被改變或者一些操作可被省略。圖15所示的許多操作可被并行執(zhí)行或被同時執(zhí)行。除了以下圖15的描述之外,圖1至圖14的以上描述也可應用于圖15,并且通過引用包含于此。因此,以上描述在這里不會再重復。
在1501,gpu10可使用可視性比特流安排圖塊的渲染次序。在這種情況下,gpu10可安排圖塊的處理次序以使得使用包圍盒比特流將更高的優(yōu)先級分配給覆蓋包圍盒的圖塊。
在1502,gpu10可基于安排的結果確定將被處理(渲染)的當前圖塊。
在1503,gpu10可確定被當前圖塊覆蓋的繪制調(diào)用是否為需要曲面細分的繪制調(diào)用(即,第一類繪制調(diào)用)。當被當前圖塊覆蓋的繪制調(diào)用為第一類繪制調(diào)用時,gpu10進行到操作1504。然而,當被當前圖塊覆蓋的繪制調(diào)用不是第一類繪制調(diào)用而是不需要曲面細分的繪制調(diào)用(即,第二類繪制調(diào)用)時,gpu10進行到操作1505。
在1504,gpu10可確定在存儲器30或高速緩存185中是否存在曲面細分比特流。當存在曲面細分比特流時,gpu10進行到1507。當不存在曲面細分比特流(需要曲面細分)時,gpu10進行到1506。
在1505,gpu10可對不需要曲面細分的第二類繪制調(diào)用執(zhí)行第二子渲染管線102-2。
在1506,當不存在曲面細分比特流(即,初始執(zhí)行曲面細分)時,gpu10可通過對輸入到gpu10的第一類繪制調(diào)用執(zhí)行曲面細分管線300來產(chǎn)生曲面細分比特流。然后,可將曲面細分圖元的產(chǎn)生的曲面細分比特流和產(chǎn)生的坐標數(shù)據(jù)存儲在存儲器30或高速緩存185中。
在1507,gpu10可使用在渲染先前圖塊的過程中存儲的曲面細分圖元的產(chǎn)生的曲面細分比特流和產(chǎn)生的坐標數(shù)據(jù)或者在1506產(chǎn)生的曲面細分圖元的曲面細分比特流和坐標數(shù)據(jù)來執(zhí)行其他渲染階段。
在1508,gpu10可確定在將被隨后處理的其他圖塊中是否再次使用曲面細分比特流。即,gpu10可確定在將被隨后處理的其他圖塊中是否使用在當前圖塊中處理的第一類繪制調(diào)用。當在隨后的其他圖塊中使用在當前圖塊中處理的第一類繪制調(diào)用時,gpu10進行到操作1510。當在隨后的其他圖塊中不使用在當前圖塊中處理的第一類繪制調(diào)用時,gpu10進行至1509。
在1509,當在隨后的其他圖塊中不使用在當前圖塊中處理的第一類繪制調(diào)用時,gpu10可控制從存儲器30或高速緩存185刪除與曲面細分圖元關聯(lián)的數(shù)據(jù)的操作。
在1510,gpu10可確定在當前圖塊中是否存在未渲染的繪制調(diào)用。當在當前圖塊中存在未渲染的繪制調(diào)用時,gpu10返回操作1502。當在當前圖塊中不存在未渲染的繪制調(diào)用時,gpu10進行到1511。
在1511,gpu10可確定是否存在未渲染的圖塊。當存在未渲染的圖塊時,gpu10返回操作1502。當不存在未渲染的圖塊時,完成渲染管線的執(zhí)行。
圖16是示出根據(jù)實施例的計算設備1的硬件配置的示圖。
參照圖16,計算設備1可包括gpu10、cpu20、存儲器30、緩沖器35、總線40、顯示器1601、輸入單元1603和通信器1605。在圖16中僅示出與本實施例有關的計算設備1的元件。因此,本領域普通技術人員將理解,計算設備1還可包括除了圖16中示出的元件以外的其他通用元件。
gpu10、cpu20和存儲器30可執(zhí)行以上參照附圖描述的操作和功能。
緩沖器35可存儲通過基于圖塊的圖形管線或基于圖塊的渲染而輸出的圖塊信息。例如,緩沖器35可存儲在圖塊中進行深度測試的結果或在圖塊中進行渲染的結果。雖然在圖16中將緩沖器35示出為與計算設備1中的gpu10、cpu20或存儲器30分開,但是緩沖器35可被設置于gpu10、cpu20或存儲器30內(nèi)部。
顯示器1601可以是用于將各種信息(諸如由計算設備1處理的信息或將被計算設備1處理的信息)顯示給用戶的顯示界面。在一個示例中,顯示器1601可顯示用于視覺并直觀地將由計算設備1處理的信息提供給用戶的圖形用戶界面(gui)。例如,顯示器1601可顯示由gpu10處理的圖形數(shù)據(jù)。顯示器1601可以是包括提供渲染用戶界面和/或接收用戶輸入的能力的一個或更多個硬件組件的物理結構,諸如,液晶顯示器(lcd)面板、發(fā)光二極管(led)面板和等離子體顯示面板(pdp)。顯示器能夠包含顯示區(qū)域、手勢捕捉區(qū)域、觸敏顯示器和/或可配置區(qū)域的任何組合。顯示器可被嵌入信號特征提取設備中或者可以是可從信號特征提取設備附接和拆卸的外圍裝置。顯示器可以是單屏或多屏顯示器。單個物理屏幕可包括被管理為允許不同內(nèi)容被顯示在單獨的顯示器上的單獨的邏輯顯示器的多個顯示器(雖然為相同物理屏幕的部分)。顯示器還可被實現(xiàn)為包括單眼眼鏡或雙眼眼鏡的眼鏡顯示器(egd)。
輸入單元1603可以是用于允許用戶輸入信息的輸入接口。在示例中,輸入單元1603可被實現(xiàn)為觸摸板、軌跡球、鼠標、鍵盤或游戲控制器的形式。在示例中,顯示器1601和輸入單元1603可通過集成觸摸屏來實現(xiàn)。
通信器1605可包括用于移動通信的移動通信模塊、有線/無線局域網(wǎng)(lan)模塊、用于近程無線通信的wi-fi模塊、藍牙模塊、近場通信(nfc)模塊等。
圖17是示出執(zhí)行圖形管線100的方法的示例的示圖。圖17中的操作可按照如圖所示的順序和方式來執(zhí)行,但是在不脫離描述的說明性示例的精神和范圍的情況下,一些操作的次序可被改變或者一些操作可被省略。圖17所示的許多操作可被并行執(zhí)行或被同時執(zhí)行。除了以下圖17的描述之外,圖1至圖16的以上描述也可應用于圖17,并且通過引用包含于此。因此,以上描述在這里不會再重復。
在1701,gpu10可執(zhí)行像素組合管線101以產(chǎn)生包括與需要曲面細分的繪制調(diào)用相應的包圍盒的圖塊像素組合的結果的包圍盒比特流。
在1702,當在將被處理的當前圖塊中識別到由包圍盒比特流分配的包圍盒時,gpu10可執(zhí)行渲染管線102以通過對與識別的包圍盒相應的繪制調(diào)用執(zhí)行選擇性曲面細分來渲染當前圖塊。
可由硬件組件來實現(xiàn)例如可執(zhí)行在此針對圖1、圖7、圖8、圖9、圖14、圖15和圖17描述的操作的例如在圖1、圖3、圖6、圖7、圖8、圖14、圖16和圖17中示出的設備、單元、模塊、裝置和其他組件。硬件組件的示例包括控制器、傳感器、存儲器、驅動器、比較器、算術邏輯單元、加法器、減法器、乘法器、除法器、積分器和本領域普通技術人員公知的任何其他電子組件。在一個示例中,硬件組件由一個或更多個處理裝置或處理器或計算機實現(xiàn)。處理裝置、處理器或計算機由一個或更多個處理元件(諸如邏輯門陣列、控制器和算術邏輯單元、數(shù)字信號處理器、微型計算機、可編程邏輯控制器、現(xiàn)場可編程門陣列、可編程邏輯陣列、微處理器)或本領域普通技術人員公知的任何其他裝置或裝置的組合實現(xiàn),這些裝置或裝置的組合能夠以限定的方式響應并執(zhí)行指令以得到期望的結果。在一個示例中,處理裝置、處理器或計算機包括或連接到存儲被處理裝置、處理器或計算機執(zhí)行的指令或軟件以及可控制處理裝置、處理器或計算機實現(xiàn)在此描述的一個或更多個方法的一個或更多個存儲器。由處理裝置、處理器或計算機例如通過實現(xiàn)計算機執(zhí)行代碼、指令或軟件(諸如操作系統(tǒng)(os)和在os上運行的一個或更多個軟件應用)來實現(xiàn)的硬件組件可執(zhí)行針對圖1、圖7、圖8、圖9、圖14、圖15和圖17在此描述的操作(僅作為示例)。硬件組件還響應于指令或軟件的執(zhí)行來訪問、操控、處理、創(chuàng)建和存儲數(shù)據(jù)。為簡單起見,在此描述的示例的描述中使用單數(shù)術語“計算設備”、“處理器”或“計算機”,但是在其他示例中,使用多個計算設備(計算裝置)、處理器或計算機,或者一個計算設備、處理器或計算機包括多個處理元件或多種類型的處理元件,或者應用以上兩種形式。在一個示例中,硬件組件包括多個處理器,而在另一示例中,硬件組件包括一個處理器和一個控制器。硬件組件具有任意一個或更多個不同的處理配置,所述不同處理配置的示例包括單個處理器、獨立處理器、并行處理器、遠程處理環(huán)境、單指令單數(shù)據(jù)(sisd)多處理、單指令多數(shù)據(jù)(simd)多處理、多指令單數(shù)據(jù)(misd)多處理、以及多指令多數(shù)據(jù)(mimd)多處理。此外,在各種設備圖中示出的連接線或連接器意在表示示例功能關系和/或各種硬件元件之間的物理或者邏輯結合,在許多可選或另外的功能關系的情況下,物理連接或邏輯連接可存在于相應的裝置實施例中。
在圖1、圖7、圖8、圖9、圖14、圖15和圖17中示出的執(zhí)行在此描述的操作的方法可由如上所述的執(zhí)行可讀代碼、指令或軟件以執(zhí)行在此描述的操作的計算硬件、處理器或計算機來執(zhí)行。
用于控制處理器或計算機以實現(xiàn)硬件組件并執(zhí)行如上所述的方法的指令或軟件被寫為計算機程序、代碼段、指令或它們的任意組合,用于單獨或共同指示或配置處理器或者計算機作為機器或專用計算機操作,以執(zhí)行由硬件組件執(zhí)行的操作和如上所述的方法。在一個示例中,指令或軟件包括被處理器或計算機直接執(zhí)行的機器代碼(諸如由編譯器產(chǎn)生的機器代碼)。在另一示例中,指令或軟件包括被處理器或計算機使用解釋器執(zhí)行的高級代碼?;谶@里的公開,本領域普通技術程序員能夠容易地基于附圖中示出的框圖和流程圖以及說明書中的相應描述來編寫處理器或計算機可讀代碼、指令或軟件,這些框圖和流程圖以及說明書中的相應描述公開了用于執(zhí)行由硬件組件執(zhí)行的操作和如上所述的方法的算法。
用于控制計算設備(或計算裝置)、處理裝置、處理器或計算機以實現(xiàn)硬件組件(諸如在圖1、圖3、圖6、圖7、圖8、圖14、圖16和圖17中的任何圖中所討論的)并執(zhí)行如上在圖1、圖7、圖8、圖9、圖14、圖15和圖17中的任何圖中所描述的方法的處理器或計算機可讀代碼、指令或軟件、以及任何關聯(lián)數(shù)據(jù)、數(shù)據(jù)文件和數(shù)據(jù)結構被記錄、存儲或固定在一個或更多個非暫時性處理器/計算機可讀存儲介質(zhì)中或非暫時性處理器/計算機可讀存儲介質(zhì)上。非暫時性處理器/計算機可讀存儲介質(zhì)的示例包括只讀存儲器(rom)、隨機存取存儲器(ram)、閃存、cd-rom、cd-r、cd+r、cd-rw、cd+rw、dvd-rom、dvd-r、dvd+r、dvd-rw、dvd+rw、dvd-ram、bd-rom、bd-r、bd-rlth、bd-re、磁帶、軟盤、磁光數(shù)據(jù)存儲裝置、光學數(shù)據(jù)存儲裝置、硬盤、固態(tài)盤以及本領域普通技術人員公知的任何裝置,所述本領域普通技術人員公知的任何裝置能夠以非暫時性方式存儲處理器或計算機可讀代碼、指令或軟件以及任何關聯(lián)數(shù)據(jù)、數(shù)據(jù)文件和數(shù)據(jù)結構,并能向處理裝置、處理器或計算機提供處理器或計算機可讀代碼、指令或軟件以及任何關聯(lián)數(shù)據(jù)、數(shù)據(jù)文件和數(shù)據(jù)結構,以使處理裝置、處理器或計算機能執(zhí)行指令。在一個示例中,處理器或計算機可讀代碼、指令或軟件以及任何關聯(lián)數(shù)據(jù)、數(shù)據(jù)文件和數(shù)據(jù)結構被分布于聯(lián)網(wǎng)的計算機系統(tǒng)上,以使指令和軟件以及任何關聯(lián)數(shù)據(jù)、數(shù)據(jù)文件和數(shù)據(jù)結構被處理裝置、處理器或計算機以分布方式存儲、訪問和執(zhí)行。
僅作為非詳盡示例,這里的電子裝置實施例(諸如以上關于圖1、圖3、圖6、圖7、圖8、圖14、圖16和圖17描述的和/或被配置為實現(xiàn)關于圖1、圖7、圖8、圖9、圖14、圖15和圖17所述的方法的電子裝置)可包括移動裝置(諸如,移動電話、蜂窩電話、智能電話、可穿戴智能裝置(諸如,戒指、手表、眼鏡、眼鏡式裝置、手鐲、踝部支架、帶子、項鏈、耳環(huán)、頭帶、頭盔、嵌入衣服的裝置)、個人計算機(pc)、膝上型電腦、筆記本、小型筆記本、上網(wǎng)本或超移動pc(umpc)、平板個人計算機(平板)、平板手機、移動互聯(lián)網(wǎng)裝置(mid)、個人數(shù)字助理(pda)、企業(yè)數(shù)字助理(eda)、數(shù)碼相機、數(shù)碼攝像機、便攜式游戲機、mp3播放器、便攜式/個人多媒體播放器(pmp)、手持電子書、超移動個人計算機(umpc)、便攜式膝上pc、全球定位系統(tǒng)(gps)導航、個人導航裝置或便攜式導航裝置(pnd)、手持游戲機、電子書)以及諸如高清晰電視(hdtv)、光盤播放器、dvd播放器、藍牙播放器、機頂盒、機器人清潔器、家用電器、內(nèi)容播放器、通信系統(tǒng)、圖像處理系統(tǒng)、圖形處理系統(tǒng)、其他消費者電子/信息技術(ce/it)裝置的裝置或者能夠進行與在此公開相一致的無線通信或網(wǎng)絡通信的任何其他裝置。移動裝置可在智能電器、智能車輛或智能家居系統(tǒng)中實現(xiàn)。
移動裝置還可被實現(xiàn)為穿戴在用戶身體上的可穿戴裝置。在一個示例中,可穿戴裝置可以是可自安裝在用戶身體上的,諸如,手表、手鐲或者包括單眼眼鏡或雙眼眼鏡的眼鏡顯示器(egd)。在另一非詳盡示例中,可穿戴裝置可通過附接裝置被安裝到用戶的身體上,諸如,使用臂帶將智能電話或平板附接到用戶的手臂、將可穿戴裝置并入用戶的衣服中或者使用掛繩將可穿戴裝置懸掛在用戶的頸部周圍。根據(jù)實施例,移動裝置包括顯示器。
雖然本公開包括具體示例,但是本領域普通技術人員將清楚,在不脫離權利要求及其等同物的精神和范圍的情況下,可以在這些示例中進行形式和細節(jié)上的各種改變。這里描述的示例被認為僅具有描述性意義,而不用于限制的目的。每個示例中的特征或方面的描述將被認為可適用于其他示例中的類似特征或方面。如果以不同的次序執(zhí)行描述的技術和/或如果描述的系統(tǒng)、架構、裝置或電路中的組件以不同的方式被組合和/或被其他組件及其等同物替換或補充,則可得到合適的結果。因此,本公開的范圍不是由具體實施方式限定,而是由權利要求及其等同物進一步支持,并且權利要求及其等同物的范圍內(nèi)的所有變化將被解釋為包括在本公開中。