這種情況下,線程的剩余指令(例如,針對(duì)剩余頂點(diǎn)著色計(jì)算)然后優(yōu)選地基于存儲(chǔ)在(被確定存儲(chǔ)在)例如與所關(guān)注的線程(頂點(diǎn))相對(duì)應(yīng)的頂點(diǎn)位圖條目中的值有條件地執(zhí)行。
[0115]例如,如果針對(duì)該頂點(diǎn)進(jìn)行存儲(chǔ)的信息(值)指示該頂點(diǎn)不應(yīng)進(jìn)一步處理,則線程優(yōu)選在該點(diǎn)上結(jié)束(使得其不執(zhí)行針對(duì)該頂點(diǎn)的剩余頂點(diǎn)著色指令),但如果針對(duì)該頂點(diǎn)進(jìn)行存儲(chǔ)的信息(值)指示該頂點(diǎn)應(yīng)進(jìn)一步處理,則線程執(zhí)行剩余指令,以針對(duì)該頂點(diǎn)執(zhí)行所述第二頂點(diǎn)著色操作。
[0116]這里將理解,雖然在這種設(shè)置中,將生成針對(duì)每個(gè)頂點(diǎn)的線程(即使將不需要某些頂點(diǎn)(因此線程)),但是這種設(shè)置仍然能夠(顯著地)通過(guò)不一定非要執(zhí)行針對(duì)某些線程的整個(gè)頂點(diǎn)著色器(超出檢查操作)來(lái)減少系統(tǒng)的處理負(fù)荷。
[0117]在已針對(duì)已被確定為已應(yīng)進(jìn)一步處理的頂點(diǎn)的所述第二頂點(diǎn)著色操作時(shí),則針對(duì)頂點(diǎn)的完整的頂點(diǎn)著色后的屬性數(shù)據(jù)(即,來(lái)自所述第一頂點(diǎn)著色操作和第二頂點(diǎn)著色操作的頂點(diǎn)著色數(shù)據(jù))與例如由圖塊器生成的基元列表能夠被傳遞到所述圖形處理流水線的剩余階段(并被使用),以生成所述圖形處理流水線的期望輸出(渲染目標(biāo))。
[0118]如本領(lǐng)域已知,該處理能夠包括尤其是基元(例如三角形)設(shè)置、柵格化和渲染。這些過(guò)程能夠例如依賴于所關(guān)注的所述圖形處理流水線的性質(zhì)以任何期望且合適的方式執(zhí)行。然后,所述圖形處理操作的最終輸出能夠例如被寫入例如主存儲(chǔ)器中的幀緩沖區(qū),然后所述最終輸出被從該幀緩沖區(qū)提供到顯示器用于顯示或者處理。
[0119]然后該過(guò)程可以針對(duì)下一個(gè)渲染輸出(例如,要顯示的下一幀等)進(jìn)行重復(fù)。(本發(fā)明優(yōu)選針對(duì)要顯示的一系列幀實(shí)現(xiàn),例如優(yōu)選針對(duì)要顯示的一系列幀中的每個(gè)幀來(lái)實(shí)現(xiàn)。)
[0120]雖然本發(fā)明在每當(dāng)所述圖形處理流水線正生成期望的渲染輸出時(shí)都能夠使用,但是申請(qǐng)人已經(jīng)意識(shí)到,還可能存在可能不那么期望以本發(fā)明的方式實(shí)現(xiàn)該操作的情況。
[0121]因此,在特別優(yōu)選的實(shí)施方式中,按照本發(fā)明的方式的操作能夠例如基于逐幀的輸出針對(duì)各自的渲染輸出選擇性地使用(啟用)。
[0122](當(dāng)按照本發(fā)明的方式的頂點(diǎn)著色被禁用時(shí),所述圖形處理流水線優(yōu)選操作以在單次頂點(diǎn)著色操作中使頂點(diǎn)“完全”進(jìn)行頂點(diǎn)著色(即,其中在單次初始頂點(diǎn)著色操作中針對(duì)全部的頂點(diǎn)屬性執(zhí)行頂點(diǎn)著色計(jì)算)。)
[0123]因此,在優(yōu)選實(shí)施方式中,本發(fā)明的方法還包括確定(并且所述圖形處理流水線進(jìn)一步被配置為確定)是否啟用本發(fā)明的頂點(diǎn)著色操作。
[0124]這可以例如每當(dāng)新繪制調(diào)用要進(jìn)行渲染、每當(dāng)新幀要進(jìn)行渲染等時(shí)針對(duì)要處理的每個(gè)新組頂點(diǎn)來(lái)完成,或者其可以例如在給定、優(yōu)選選定、選優(yōu)預(yù)定數(shù)量的繪制調(diào)用和/或幀已經(jīng)處理之后更加間歇地完成和/或定期地進(jìn)行重復(fù)。
[0125]確定是否啟用本發(fā)明的頂點(diǎn)著色操作能夠基于任何合適且期望的標(biāo)準(zhǔn)。在優(yōu)選實(shí)施方式中,其基于關(guān)于已經(jīng)處理的先前圖形輸出(例如,幀)的信息以及關(guān)于當(dāng)前正在處理的圖形輸出(例如,幀)的信息中的一個(gè)或更多個(gè)并且優(yōu)選地雙方。
[0126]屬于先前輸出(例如,先前幀或多個(gè)幀)和當(dāng)前輸出(例如,幀)的信息能夠是例如能夠被用來(lái)評(píng)估其是否將有利于以本發(fā)明的方式執(zhí)行頂點(diǎn)著色操作的任何合適且希望的信息。
[0127]在優(yōu)選實(shí)施方式中,屬于先前輸出(幀或多個(gè)幀)的信息是指示系統(tǒng)在其當(dāng)前操作模式下的特性的信息。
[0128]在優(yōu)選實(shí)施方式中,屬于先前輸出(例如,先前輸出幀或多個(gè)幀)的信息包括指示以下內(nèi)容中的一個(gè)或多個(gè)的數(shù)據(jù):在前一輸出(幀或多個(gè)幀)中的可見(和/或不可見)基元的數(shù)目,以及曾在前一輸出(幀或多個(gè)幀)中被剔除的后向基元的數(shù)目。
[0129]在這個(gè)方面申請(qǐng)人已經(jīng)意識(shí)到,在前一幀或多個(gè)幀中可見(和/或不可見)基元的數(shù)目能夠被用來(lái)確定啟用本發(fā)明的操作的頂點(diǎn)著色模式的可能的利益。例如,如果前一幀中可見基元的數(shù)目較低(例如,低于一定閥值),則圖形處理系統(tǒng)將更期望以本發(fā)明的方式運(yùn)行,反之亦然。
[0130]諸如可見(和/或不可見)基元的數(shù)目等的信息能夠根據(jù)需要例如通過(guò)使用合適的特性計(jì)數(shù)器(每當(dāng)識(shí)別出可見(或不可見)基元時(shí),所述特性計(jì)數(shù)器例如通過(guò)圖塊器例如進(jìn)行增值)來(lái)確定。
[0131]屬于被用來(lái)確定是否啟用按照本發(fā)明的方式的頂點(diǎn)著色操作的當(dāng)前輸出(幀)能夠相應(yīng)地采用任何合適且期望的形式。
[0132]在優(yōu)選實(shí)施方式中,該信息包括以下內(nèi)容中的一個(gè)或多個(gè),并且優(yōu)選地包括以下內(nèi)容的全部:要執(zhí)行的頂點(diǎn)著色器(頂點(diǎn)著色程序)的復(fù)雜性;要進(jìn)行頂點(diǎn)著色的頂點(diǎn)屬性的數(shù)目;要由頂點(diǎn)著色過(guò)程寫出的數(shù)據(jù)的數(shù)量;所處理的輸出(例如,繪制調(diào)用)中頂點(diǎn)和基元的比率;針對(duì)輸出(例如,繪制調(diào)用)的頂點(diǎn)和/或基元的數(shù)目;以及指示針對(duì)每個(gè)頂點(diǎn)的不同數(shù)據(jù)的數(shù)量(非位置頂點(diǎn)屬性的數(shù)目)的信息。
[0133]在一個(gè)優(yōu)選實(shí)施方式中,屬于當(dāng)前幀的信息包括基于包括在所關(guān)注的繪制調(diào)用中的靜態(tài)信息的信息。
[0134]再一次,申請(qǐng)人已經(jīng)意識(shí)到,該信息能夠給出頂點(diǎn)著色器將需要進(jìn)行的工作的量和復(fù)雜性的指示、有多少數(shù)據(jù)將需要由系統(tǒng)進(jìn)行發(fā)送和接收的指示、以及其對(duì)帶寬要求的指示。
[0135]因此,在優(yōu)選實(shí)施方式中,按照本發(fā)明的方式的頂點(diǎn)著色在一個(gè)或更多個(gè)給定特性標(biāo)準(zhǔn),例如前一幀或多個(gè)幀中的可見和/或不可見基元的數(shù)目在給定、優(yōu)選選定、優(yōu)選預(yù)定閥值之上(或之下)的情況下進(jìn)行啟用。
[0136]從上述內(nèi)容中將要理解,在至少本發(fā)明的優(yōu)選實(shí)施方式中,所述圖形處理流水線被配置為在使要處理的基元進(jìn)行圖塊化之前執(zhí)行更加有限的、部分頂點(diǎn)著色操作,然后僅對(duì)與圖塊器已將其包括在圖塊列表中的基元相關(guān)聯(lián)的這些頂點(diǎn)進(jìn)行剩余的頂點(diǎn)著色處理。換句話說(shuō),至少某些頂點(diǎn)著色處理被延遲直至圖塊化階段之后。
[0137]因此,根據(jù)本發(fā)明的另一方面,提供有一種操作基于圖塊的圖形處理流水線的方法,該基于圖塊的圖形處理流水線包括多個(gè)處理階段,所述多個(gè)處理階段包括:頂點(diǎn)著色階段,該頂點(diǎn)著色階段執(zhí)行對(duì)頂點(diǎn)屬性數(shù)據(jù)的頂點(diǎn)著色操作以生成頂點(diǎn)著色后的屬性數(shù)據(jù);以及圖塊化階段,該圖塊化階段將要由所述圖形處理流水線處理的基元分類成針對(duì)所述圖形處理流水線的渲染目標(biāo)輸出針對(duì)渲染目的而已經(jīng)被劃分成的各自圖塊的基元列表,所述方法包括以下步驟:
[0138]當(dāng)生成要由所述圖形處理流水線生成的渲染目標(biāo)時(shí):
[0139]使當(dāng)生成所述渲染目標(biāo)時(shí)的要處理的頂點(diǎn)的至少某些屬性的頂點(diǎn)著色延遲,直至所述圖形處理流水線的所述圖塊化階段已經(jīng)準(zhǔn)備好針對(duì)渲染目的針對(duì)所述圖形處理流水線的所述渲染目標(biāo)已經(jīng)被劃分成的所述圖塊的所述基元列表之后。
[0140]根據(jù)本發(fā)明的另一方面,提供有一種基于圖塊的圖形處理流水線,該基于圖塊的圖形處理流水線包括:
[0141]多個(gè)處理階段,所述多個(gè)處理階段包括:頂點(diǎn)著色階段,該頂點(diǎn)著色階段執(zhí)行對(duì)頂點(diǎn)屬性數(shù)據(jù)的頂點(diǎn)著色操作以生成頂點(diǎn)著色后的屬性數(shù)據(jù);以及圖塊化階段,該圖塊化階段將要由所述圖形處理流水線處理的基元分類成針對(duì)所述圖形處理流水線的渲染輸出針對(duì)渲染目的而已經(jīng)被劃分成的各自圖塊的基元列表;
[0142]其中,所述流水線被配置為,當(dāng)生成要由要求頂點(diǎn)著色操作的所述圖形處理流水線生成的渲染輸出時(shí),
[0143]使當(dāng)生成所述渲染輸出時(shí)的要處理的頂點(diǎn)的至少某些屬性的頂點(diǎn)著色延遲,直至所述圖形處理流水線的所述圖塊化階段已準(zhǔn)備好針對(duì)所述圖形處理流水線的渲染目標(biāo)針對(duì)渲染目的而已經(jīng)被劃分成的圖塊的所述基元列表之后。
[0144]如本領(lǐng)域技術(shù)人員所理解的,本發(fā)明的這些方面能夠并且優(yōu)選地確實(shí)包括本文酌情所公開的本發(fā)明的優(yōu)選和可選特征的任何一個(gè)或多個(gè)或者全部。
[0145]因此,例如,某些(而非全部)頂點(diǎn)屬性(并且優(yōu)選地僅針對(duì)位置屬性)的頂點(diǎn)著色優(yōu)選在所述圖塊化階段準(zhǔn)備所述圖塊列表之前執(zhí)行。相應(yīng)地,經(jīng)延遲的頂點(diǎn)著色優(yōu)選僅針對(duì)屬于(要被用于)已經(jīng)通過(guò)所述圖塊化階段被包括在基元列表中的基元的這些頂點(diǎn)來(lái)執(zhí)行。
[0146]上面描述了包括在按照本發(fā)明的方式的操作中的所述圖形處理流水線的元件。如本領(lǐng)域技術(shù)人員將理解的,所述圖形處理流水線還能包括并且優(yōu)選地確實(shí)包括圖形處理流水線通常包括的任何一個(gè)或者一個(gè)或多個(gè)并且優(yōu)選地全部的其它處理階段。因此,例如,所述圖形處理流水線優(yōu)選還包括基元設(shè)置階段、柵格化器和渲染器。在優(yōu)選實(shí)施方式中,渲染器是可編程片段著色器的形式或者包括可編程片段著色器。
[0147]所述圖形處理流水線還可以包括圖形處理流水線可以包括的諸如深度(或者深度和模板)測(cè)試器、混合器等的任何其它合適的其期望的處理階段。
[0148]在優(yōu)選實(shí)施方式中,所述圖形處理流水線包括和/或與存儲(chǔ)本文描述的所述數(shù)據(jù)和/或存儲(chǔ)用于執(zhí)行本文描述的過(guò)程的一個(gè)或更多個(gè)存儲(chǔ)器和/或存儲(chǔ)設(shè)備進(jìn)行通信。所述圖形處理流水線還可以與主微處理器,和/或與用于基于所述圖形處理流水線的輸出顯示圖像的顯示器進(jìn)行通信。
[0149]要生成的渲染輸出可以包括要由所述圖形處理流水線生成的任何渲染輸出。因此,其可以包括例如要在基于圖塊的圖形處理系統(tǒng)中生成的圖塊,和/或輸出片段數(shù)據(jù)的幀。本發(fā)明能夠被用于圖形處理流水線可以被用來(lái)生成的全部形式的輸出,例如用于顯示的幀、渲染到紋理輸出等。在優(yōu)選實(shí)施方式中,渲染輸出是輸出幀。
[0150]本發(fā)明可以通過(guò)任何類型的圖形處理系統(tǒng)來(lái)執(zhí)行。然而,在優(yōu)選實(shí)施方式中,圖形處理流水線和系統(tǒng)是基于圖塊的(圖塊化)圖形處理流水線和系統(tǒng)。在這種情況下,所述流水線優(yōu)選還包括用于存儲(chǔ)圖塊采用值的圖塊緩沖區(qū)和/或操作以將所述圖塊緩沖區(qū)中的數(shù)據(jù)(例如,在所述圖塊緩沖區(qū)中的數(shù)據(jù)完整時(shí))寫出到外部(主)存儲(chǔ)器(例如,寫出到幀緩沖區(qū))。
[0151]在特別優(yōu)選的實(shí)施方式中,本發(fā)明的各種功能在生成并輸出例如被寫出到用于顯示設(shè)備的幀緩沖區(qū)的經(jīng)渲染的片段數(shù)據(jù)的單個(gè)圖形處理平臺(tái)上執(zhí)行。
[0152]本發(fā)明能夠在任何合適的系統(tǒng),例如合適配置的基于微處理器的系統(tǒng)中實(shí)現(xiàn)。在某些實(shí)施方式中,本發(fā)明在計(jì)算機(jī)和/或基于微處理器的系統(tǒng)中實(shí)現(xiàn)。
[0153]本發(fā)明優(yōu)選在便攜式設(shè)備,例如并且優(yōu)選地移動(dòng)電話或平板電腦中實(shí)現(xiàn)。
[0154]本發(fā)明的各種功能能夠以任何合適且期望的方式來(lái)執(zhí)行。例如,如所期望的,本發(fā)明的功能能夠在硬件或軟件中實(shí)現(xiàn)。因此,例如,本發(fā)明的各種功能元件和“手段”可以包括能夠被操作為執(zhí)行各種功能等的合適的處理器或多個(gè)處理器、控制器或多個(gè)控制器、功能單元、電路、處理邏輯器、微處理器裝置等,例如能夠被編程為以期望的方式運(yùn)行的適當(dāng)專用的硬件元件(處理電路)和/或可編程硬件元件(處理電路)。
[0155]這里應(yīng)當(dāng)注意的是,如本領(lǐng)域技術(shù)人員將要理解的,本發(fā)明的各種功能等可以在給定的處理器上重復(fù)和/或執(zhí)行。同樣地,如果需要的話,各種處理階段可以共享處理電路等。
[0156]本領(lǐng)域技術(shù)人員還將理解的是,如合適的話,本發(fā)明的全部所述的實(shí)施方式可以包括本文所述的優(yōu)選的和可選的特征中的任何一個(gè)或多個(gè)或者全部。
[0157]根據(jù)本發(fā)明的方法可以至少部分地利用軟件,例如計(jì)算機(jī)程序,來(lái)實(shí)現(xiàn)。因此可見,當(dāng)從其他實(shí)施方式來(lái)看時(shí),本發(fā)明提供:計(jì)算機(jī)軟件,當(dāng)安裝在數(shù)據(jù)處理裝置上時(shí),該計(jì)算機(jī)軟件具體適用于執(zhí)行本文所述的方法的;計(jì)算機(jī)程序元件,其包括當(dāng)該程序元件在數(shù)據(jù)處理裝置上運(yùn)行時(shí)用于執(zhí)行本文所述的方法的計(jì)算機(jī)軟件代碼部分;以及計(jì)算機(jī)程序,當(dāng)該程序在數(shù)據(jù)處理系統(tǒng)上運(yùn)行時(shí),該計(jì)算機(jī)程序包括適用于執(zhí)行本文所述的方法或多種方法的全部步驟的代碼裝置。數(shù)據(jù)處理系統(tǒng)可以是微處理器、可編成FPGA(現(xiàn)場(chǎng)可編程門陣列)等。
[0158]本發(fā)明還延伸至包括用來(lái)操作圖形處理器的這種軟件的計(jì)算機(jī)軟件載體,包括數(shù)據(jù)處理裝置的渲染器或其他系統(tǒng)促進(jìn)與所述數(shù)據(jù)處理裝置和所述處理器、渲染器或系統(tǒng)的連接,以執(zhí)行本發(fā)明的方法的步驟。這種計(jì)算機(jī)軟件載體可以是諸如ROM芯片