圖形處理單元及其圖形處理方法
【專利摘要】本發(fā)明提供一種圖形處理單元及其圖形處理方法。圖形處理單元的圖形處理方法包括:根據(jù)圖元數(shù)據(jù)與多個區(qū)塊的關(guān)聯(lián)來產(chǎn)生顯示區(qū)域的區(qū)塊數(shù)據(jù),其中,多個區(qū)塊對應(yīng)于顯示區(qū)域;根據(jù)偵測的自適應(yīng)條件來產(chǎn)生信號,其中,于第一幀被完全分級之前,信號指示第一幀的一個或多個區(qū)塊將以第一順序被刷新,其中,信號打斷以第二順序進(jìn)行的第二幀的區(qū)塊刷新;以第一順序刷新第一幀的一個或多個區(qū)塊;以及恢復(fù)以第二順序進(jìn)行的第二幀的區(qū)塊刷新。本發(fā)明提供的圖形處理單元及其圖形處理方法,可以防止或減輕渲染階段的失速,減少圖形處理總執(zhí)行時間,改善圖形處理單元的性能。
【專利說明】
圖形處理單元及其圖形處理方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明關(guān)于圖形處理技術(shù),特別關(guān)于一種圖形處理單元及其圖形處理方法。
【【背景技術(shù)】】
[0002]圖形處理單元(graphics processing unit,以下簡稱為GPU)于顯示裝置上處理并清染圖形對象(graphical object),例如:圖像元素(picture element)或像素。于計(jì)算機(jī)圖形中,3D圖形對象通常是由圖元(primitive)例如:點(diǎn)、線、多邊形、以及高階表面(higher order surface)的組合來表示。為了清染特定場景,圖元被單獨(dú)光柵化為像素的2D圖像。因?yàn)樵趶?fù)雜3D場景中常常有上千、上百萬、甚至是上億個的圖元,完成單獨(dú)對每個圖元的光柵化可能會導(dǎo)致次優(yōu)的(suboptimal)系統(tǒng)性能。因?yàn)楣鈻呕幚硎菑囊粋€圖元到下一個圖元,現(xiàn)有的圖形系統(tǒng)遭受著從存儲器中反復(fù)讀取以及寫入顏色及深度值。光柵化的像素的立即著色會導(dǎo)致不必要的處理開銷以及系統(tǒng)存儲器帶寬的整體低效。
[0003]延遲渲染是關(guān)于多個圖元在渲染階段被渲染之前的累積,這些圖元可能來自一個場景中的多個圖形對象。延遲渲染的一個方法是將顯示空間分為多個區(qū)域。于一個幀的多個圖形對象中累積的圖元可以是一個區(qū)域接著一個區(qū)域被渲染,而不是一個圖元接著一個圖元被渲染,以減少存儲器的存取量。使用延遲渲染可以顯著地提高系統(tǒng)性能,尤其是在功耗及系統(tǒng)帶寬都很寶貴的移動裝置中。
【
【發(fā)明內(nèi)容】
】
[0004]為了解決上述問題,本發(fā)明提出了一種圖形處理單元及其圖形處理方法。
[0005]根據(jù)本發(fā)明的第一方面,提供一種圖形處理單元,包括:分級引擎,根據(jù)圖元數(shù)據(jù)與多個區(qū)塊的關(guān)聯(lián)來產(chǎn)生顯示區(qū)域的區(qū)塊數(shù)據(jù),其中,所述多個區(qū)塊對應(yīng)于所述顯示區(qū)域;渲染引擎,渲染所述顯示區(qū)域的所述區(qū)塊數(shù)據(jù);刷新控制器,根據(jù)偵測的自適應(yīng)條件來產(chǎn)生信號,其中,于第一幀被完全分級之前,所述信號指示來自分級緩沖器的所述第一幀的一個或多個區(qū)塊將以第一順序被刷新;以及分級控制器,耦接于所述分級引擎、所述渲染引擎、以及所述刷新控制器,控制所述分級緩沖器的存取,其中,于以第二順序進(jìn)行第二幀的區(qū)塊刷新的過程中,所述分級控制器被所述信號打斷以所述第一順序刷新所述第一幀的所述一個或多個區(qū)塊,以及恢復(fù)以所述第二順序進(jìn)行的所述第二幀的所述區(qū)塊刷新。
[0006]根據(jù)本發(fā)明的第二方面,提供圖形處理單元的圖形處理方法,其特征在于,包括:根據(jù)圖元數(shù)據(jù)與多個區(qū)塊的關(guān)聯(lián)來產(chǎn)生顯示區(qū)域的區(qū)塊數(shù)據(jù),其中,所述多個區(qū)塊對應(yīng)于所述顯示區(qū)域;根據(jù)偵測的自適應(yīng)條件來產(chǎn)生信號,其中,于第一幀被完全分級之前,所述信號指示所述第一幀的一個或多個區(qū)塊將以第一順序被刷新,其中,所述信號打斷以第二順序進(jìn)行的第二幀的區(qū)塊刷新;以所述第一順序刷新所述第一幀的所述一個或多個區(qū)塊;以及恢復(fù)以所述第二順序進(jìn)行的所述第二幀的所述區(qū)塊刷新。
[0007]本發(fā)明提供的圖形處理單元及其圖形處理方法,可以防止或減輕渲染階段的失速,減少圖形處理總執(zhí)行時間,改善GPU的性能?!尽靖綀D說明】】
[0008]圖1為根據(jù)本發(fā)明實(shí)施例的包括CPU以及GPU的圖形處理系統(tǒng)的示意圖。
[0009]圖2為根據(jù)本發(fā)明實(shí)施例的GPU核心的示意圖。
[0010]圖3為根據(jù)本發(fā)明實(shí)施例的由GPU核心執(zhí)行的延遲渲染過程的示意圖。
[0011]圖4為根據(jù)本發(fā)明實(shí)施例的用于選擇區(qū)塊進(jìn)行搶占式刷新的方法的流程圖。
[0012]圖5A為根據(jù)本發(fā)明實(shí)施例的被分段或分為3x3區(qū)塊的網(wǎng)格的顯示區(qū)域的示意圖。
[0013]圖5B為根據(jù)本發(fā)明實(shí)施例的待渲染的幀的示意圖。
[0014]圖6A至圖6D為根據(jù)本發(fā)明實(shí)施例的幀的搶占式刷新的過程示意圖。
[0015]圖7為根據(jù)本發(fā)明實(shí)施例的空間選擇性分級的搶占式刷新方法的流程圖。
【【具體實(shí)施方式】】
[0016]下面的描述是實(shí)施本發(fā)明的較佳預(yù)期模式。這種描述是為了說明本發(fā)明的一般原理的目的,而不應(yīng)被理解成具有限制性的意義。但是應(yīng)當(dāng)理解,實(shí)施例可以利用軟件、硬件、固件、或其任何組合來實(shí)現(xiàn)。
[0017]在以下的描述中,闡述了很多具體細(xì)節(jié)。然而,可以理解的是,本發(fā)明的實(shí)施例可以在沒有這些具體細(xì)節(jié)的情況下實(shí)施。在其它實(shí)例中,公知的電路、結(jié)構(gòu)以及技術(shù)沒有被詳細(xì)的示出,以便不模糊對此描述的理解。然而,本領(lǐng)域的普通技術(shù)人員可以理解的是,本發(fā)明可以在沒有這些具體細(xì)節(jié)的情況下實(shí)施。本領(lǐng)域的普通技術(shù)人員利用所包括的描述,無需過多的實(shí)驗(yàn)就能夠?qū)崿F(xiàn)適當(dāng)?shù)墓δ堋?br>[0018]本發(fā)明是有關(guān)于圖形處理系統(tǒng);特別是是關(guān)于延遲圖形處理(deferred graphicsprocessing)。
[0019]有限的存儲器帶寬是增強(qiáng)現(xiàn)有的3D圖形管線的性能的一個主要的障礙。如先前所描述的,延遲渲染可以減少3D圖形管線中的存儲器帶寬的需求。延遲渲染的一個方法包括兩個階段。第一階段是分級階段(binning pass),于分級階段中,幀的圖元被分類為(或等效于“相關(guān)于”)一組區(qū)塊(a set of bins)。這些區(qū)塊包括將在顯示空間中被渲染的區(qū)塊數(shù)據(jù)(bin data)。顯示空間是空間或區(qū)域,在顯示空間中一系列的幀待渲染。顯示空間被分段為規(guī)則網(wǎng)格的區(qū)塊區(qū)域(bin area)(例如,32像素x 32像素或其它合適的大小),每個區(qū)塊區(qū)域顯示對應(yīng)區(qū)塊的已渲染的區(qū)塊數(shù)據(jù)。
[0020]第二階段為渲染階段,于渲染階段,區(qū)塊數(shù)據(jù)逐區(qū)塊被渲染。通過在一個時間渲染一個區(qū)塊的數(shù)據(jù),位于相同區(qū)塊的多個圖形對象的圖元數(shù)據(jù)可以在相同的階段被處理,這樣就可以進(jìn)行有效率的數(shù)據(jù)存取。因此,一般而言,延遲渲染可以提高系統(tǒng)性能。
[0021]現(xiàn)有技術(shù)中,在進(jìn)行渲染處理之前,區(qū)塊數(shù)據(jù)是臨時儲存在存儲器中。于某些系統(tǒng)中,存儲器是附屬于GPU的動態(tài)隨機(jī)存取存儲器(dynamic random-access memory,以下簡稱為DRAM)。于某些系統(tǒng)中,DRAM可以由GPU以及CPU來共用??梢灾付ù鎯ζ鞯囊徊糠謥韮Υ鎱^(qū)塊數(shù)據(jù)。然而,于現(xiàn)有的系統(tǒng)中,于對幀分級的中間,此存儲器的指定部分可能達(dá)到其最大容量,且整個幀被刷新到渲染硬件,以開始立即渲染。整個幀刷新的代價是很昂貴的,因?yàn)樗チ岁P(guān)于存儲器I/O存儲的延遲渲染的優(yōu)點(diǎn)。S卩,刷新沒有被分級的圖元,其結(jié)果是整個幀的刷新是按照對逐個圖元進(jìn)行渲染來處理的,而不是對逐個區(qū)塊進(jìn)行渲染。因此,存儲器I/O開銷將增加,且系統(tǒng)性能將顯著地降低。
[0022]現(xiàn)有的GPU系統(tǒng)還會受到渲染硬件的不均衡工作負(fù)載(workload)分布的影響。因?yàn)閺姆旨売布答伒膮^(qū)塊數(shù)據(jù)不足,渲染硬件可能會不時地停止。例如,當(dāng)一個幀的圖元都集中在少數(shù)幾個區(qū)塊,分級硬件就需要花較長的時間段來完成一個區(qū)塊的處理,并將該區(qū)塊的區(qū)塊數(shù)據(jù)輸出到渲染硬件。在這個時間段,渲染硬件可能會停止或利用不足(under-utilized)。導(dǎo)致高度集中區(qū)塊的一個場景是鑲嵌(tessellat1n)。當(dāng)圖形對象被鑲嵌,圖形對象被表示為很多小的圖元,這些圖元通常是群集于局部區(qū)塊。于現(xiàn)有的系統(tǒng)中,這些高度集中區(qū)塊不僅會導(dǎo)致臨時的工作負(fù)載失衡,還可能占用很多存儲器容量,進(jìn)而又會導(dǎo)致降低系統(tǒng)性能的整個幀刷新。
[0023]根據(jù)本發(fā)明的實(shí)施例,提供了一種系統(tǒng)以及方法,根據(jù)偵測一個或多個自適應(yīng)條件來對幀的一個或多個區(qū)塊啟用搶占式刷新(preemptive flushing)。刷新是搶占式的,因?yàn)樗⑿掳l(fā)生于幀被完全分級之前以及另一幀的正常刷新過程期間。搶占式刷新可防止存儲器溢出,因?yàn)樗x擇的區(qū)塊可以在存儲器達(dá)到其最大容量之前被刷新。搶占式刷新也減輕了不均衡工作負(fù)載的分布,因?yàn)樨?fù)載較重的區(qū)塊可以被刷新以保持渲染硬件的忙碌程度。此外,系統(tǒng)可以控制將刷新哪些區(qū)塊,以何種順序刷新這些區(qū)塊,且在某些場景中,刷新這些區(qū)塊的哪一部分。在一個幀的所選擇的一個或多個區(qū)塊被搶占式地刷新后,該幀中未被分級的部分(即,幀中還沒有被分級的部分)可以繼續(xù)被分級且接著被刷新。
[0024]如本文所使用的,當(dāng)幀被分類為區(qū)塊并被儲存于分級緩沖器(bin buffer)時,表示幀被“分級”。“分級緩沖器”用于臨時存儲區(qū)塊數(shù)據(jù),且將在圖2中做詳細(xì)的參考描述。當(dāng)一個幀中所有的圖元都被分類到區(qū)塊并被儲存于分級緩沖器時,此幀就全部地或完全地被分級。類似地,當(dāng)圖元被分類到一個區(qū)塊并被儲存到分級緩沖器中,圖元被分級。當(dāng)對應(yīng)于區(qū)塊的區(qū)塊區(qū)域中的圖元中的至少一個被渲染,圖形對象“接觸”或“截取”一個區(qū)塊。術(shù)語“區(qū)塊”以及“區(qū)塊區(qū)域”是可以互換使用的,以表示分級以及渲染的工作單元。被分類到一個區(qū)塊的圖元被稱為區(qū)塊的區(qū)塊數(shù)據(jù)。術(shù)語“刷新”是指從分級緩沖器中移動或裝載區(qū)塊數(shù)據(jù)到渲染引擎,其啟用區(qū)塊數(shù)據(jù)的立即渲染,并釋放被占用的緩沖器空間以重利用(reuse)。此外,“刷新區(qū)塊的區(qū)塊數(shù)據(jù)”與“刷新區(qū)塊”或“區(qū)塊刷新”是可以互換使用的。
[0025]圖1為根據(jù)本發(fā)明實(shí)施例的包括CPU 110以及GPU 120的圖形處理系統(tǒng)100的示意圖。雖然圖1中只顯示了一個CPU以及一個GPU,要理解的是,圖形處理系統(tǒng)100可包含任何數(shù)量的CPU、GPU、以及任何數(shù)量的其它處理器。在一個實(shí)施例中,圖形處理系統(tǒng)100可由片上系統(tǒng)(system-on-a-chip,SoC)來實(shí)現(xiàn),片上系統(tǒng)可用于計(jì)算和/或通信系統(tǒng)。雖然在本實(shí)施例中CPU 110以及GPU 120包含四個核心(分別表示為核心115以及核心125),但是每個CPU 110以及GPU 120可包含任何數(shù)量的核心以執(zhí)行計(jì)算任務(wù)。在一個實(shí)施例中,CPU 110以及GPU 120經(jīng)由系統(tǒng)互連140以及存儲器控制器150與系統(tǒng)存儲器130(例如,DRAM或其它易失性或非易失性隨機(jī)存取存儲器)進(jìn)行通信。要理解,為了簡化說明,許多其它系統(tǒng)元件被省略。
[0026]在一個實(shí)施例中,GPU 120 (更具體地,一個或多個GPU核心125)接收描述待渲染的圖形對象的命令以及數(shù)據(jù)。根據(jù)此命令以及數(shù)據(jù),GPU 120產(chǎn)生一組圖元來表示圖形對象。圖元是圖形處理系統(tǒng)100可以繪制并儲存的一組最簡單的幾何對象,例如:線段、曲線、三角形、多邊形等。每個圖元可以由一個或多個頂點(diǎn)來描述,每個圖元是一個包括一組屬性(例如:位置、移動、亮度、顏色等)的數(shù)據(jù)結(jié)構(gòu)。GPU 120執(zhí)行延遲渲染,延遲渲染包括分級階段以及渲染階段。每個區(qū)塊包括待渲染的區(qū)塊數(shù)據(jù),每個區(qū)塊位于顯示區(qū)域的對應(yīng)區(qū)塊區(qū)域內(nèi)。例如,如果顯示區(qū)域被分為3x3區(qū)塊的網(wǎng)格,總的9個區(qū)塊被設(shè)置以累積一個或多個幀的圖元。
[0027]圖2為根據(jù)本發(fā)明實(shí)施例的GPU核心125的示意圖。GPU核心125包括分級引擎210以及渲染引擎220。需要理解的是,為了簡化說明,許多其它GPU元件被省略。GPU核心125還包含分級緩沖器230的芯片上元件230A,分級控制器240以及刷新控制器250。在一個實(shí)施例中,分級緩沖器230包括芯片上元件(on-chip component) 230A (即,位于與GPU核心125相同的芯片上)以及芯片外元件(off-chip component) 230B,芯片外元件230B位于圖1中系統(tǒng)存儲器130的指定的空間中。芯片上元件230A可以通過靜態(tài)RAM(staticRAM, SRAM)或其它存儲器元件來實(shí)現(xiàn)。分級緩沖器230的芯片上元件230A以及芯片外元件230B —起保存(hold)區(qū)塊數(shù)據(jù)。區(qū)塊數(shù)據(jù)被臨時存入芯片上元件230A,當(dāng)必要時,區(qū)塊數(shù)據(jù)被寫入到芯片外元件230B。除非另有規(guī)定,本文中的術(shù)語“分級緩沖器230”是芯片上元件230A以及芯片外元件230B的統(tǒng)稱。
[0028]圖2中的元件(例如:分級引擎210、渲染引擎220、分級控制器240、以及刷新控制器250)可以由硬件、軟件、固件、或以上任何的組合來實(shí)現(xiàn)。雖然圖2所示的這些元件是單獨(dú)的功能模塊,在一些實(shí)施例中,某些或所有的這些元件可以共用相同的硬件、軟件、固件、或任何以上的組合,以執(zhí)行其指定任務(wù)的某些部分。此外,于變化實(shí)施例中,元件的位置可能會不同于圖2所示的元件的位置。例如,雖然圖2中所示的分級控制器240以及刷新控制器250位于分級引擎210以及渲染引擎220外部,在一些實(shí)施例中,分級控制器240以及刷新控制器250可以全部或部分地位于分級引擎210和/或渲染引擎220內(nèi)。在一些實(shí)施例中,分級緩沖器230的芯片上元件230A可以位于級控制器240內(nèi)。在一些實(shí)施例中,所示的位于GPU核心125內(nèi)的某些元件可以由GPU 120的多個GPU核心來共用。
[0029]圖3為根據(jù)本發(fā)明實(shí)施例的由GPU核心125 (例如,圖2所示的GPU核心125)執(zhí)行的延遲渲染過程300的示意圖。在本實(shí)施例中,延遲渲染過程300包括由渲染階段320跟隨的分級階段310。于分級階段310中,頂點(diǎn)負(fù)載(vertex load) 311從頂點(diǎn)負(fù)載緩沖器中加載頂點(diǎn)數(shù)據(jù)以及屬性。頂點(diǎn)表示(vertex representat1n)通常被用于計(jì)算機(jī)圖形,以描述圖形對象。圖形對象通常由一組被稱為圖元的基礎(chǔ)元件來表示,例如:線、曲線、三角形、以及多邊形等。每個圖元是由一個或多個頂點(diǎn)組成并通過頂點(diǎn)來指定。每個頂點(diǎn)與一組屬性(例如:位置,顏色,常量,紋理等)相關(guān)聯(lián)。對于每個頂點(diǎn),頂點(diǎn)著色器312將其3D位置轉(zhuǎn)換為2D坐標(biāo)以及深度值。頂點(diǎn)著色器312操作是由剔除、修剪以及設(shè)置(culling,clippingand setup) 313跟隨,其將在進(jìn)一步的處理中移除沒有面對(facing)觀察者(例如,照相機(jī))的圖元以及視場(field of view)外的圖元。區(qū)塊光柵化314將每個圖元關(guān)聯(lián)到一個區(qū)塊。最終的區(qū)塊數(shù)據(jù)被加載到分級緩沖器230,于分級緩沖器230中,發(fā)生區(qū)塊儲存以及刷新330。
[0030]于渲染階段320,由分級緩沖器230刷新的數(shù)據(jù)進(jìn)一步被修剪以及設(shè)置(clippingand setup) 321。接著,像素光柵化322、像素著色器以及紋理323處理數(shù)據(jù),且渲染結(jié)果(例如,顏色以及Z(深度)值)進(jìn)入到渲染輸出324。
[0031]需要理解的是,于可選實(shí)施例中,與圖3所示的操作相比,分級階段310以及渲染階段320可包含更少的、更多的,和/或不同的操作。再次參考圖2,在一個實(shí)施例中,分級階段310的一個或多個操作可由分級引擎210來執(zhí)行,且渲染階段320的一個或多個操作可由渲染引擎220來執(zhí)行。分級控制器240以及刷新控制器250可以執(zhí)行用于區(qū)塊儲存以及刷新330過程的操作。在一些實(shí)施例中,圖3中的某些單獨(dú)的操作可由相同的硬件來執(zhí)行。例如,在GPU中包含統(tǒng)一著色器系統(tǒng),可以對統(tǒng)一著色器系統(tǒng)進(jìn)行編程以執(zhí)行其他任務(wù)中的頂點(diǎn)著色器312以及像素著色器及紋理323的任務(wù)。
[0032]再次參考圖2,對于幀中的每個圖形對象,分級引擎210識別一個或多個圖形對象接觸的區(qū)塊。接著,分級引擎210將圖形對象所產(chǎn)生的圖元關(guān)聯(lián)到所識別的一個或多個區(qū)塊。分級引擎210對幀中所有的圖形對象重復(fù)此分級過程,且接著對下一幀重復(fù)相同的過程。
[0033]在一個實(shí)施例中,分級引擎210也在圖形對象上執(zhí)行鑲嵌。鑲嵌是一個眾所周知的技術(shù),將表面細(xì)分成位于原始表面的平面和邊界內(nèi)的許多較小的連續(xù)銜接的表面(adjoined surfaces) 0可以對圖形對象執(zhí)行多于一個層次的鑲嵌。在任何給定的幀中,可以鑲嵌一個或多個圖形對象。如上所述,通常圖形對象的鑲嵌會導(dǎo)致大量圖元。這些圖元可以以與非鑲嵌對象產(chǎn)生的圖元相同的方式來分級。
[0034]在一個實(shí)施例中,渲染引擎220對區(qū)塊數(shù)據(jù)執(zhí)行渲染階段320以產(chǎn)生2D顯示。渲染引擎220從分級緩沖器230加載區(qū)塊數(shù)據(jù),分級緩沖器230臨時儲存由分級引擎210產(chǎn)生的區(qū)塊數(shù)據(jù)。分級控制器240控制分級緩沖器230的存取。當(dāng)分級引擎210寫入?yún)^(qū)塊數(shù)據(jù)到分級緩沖器230時,分級控制器240控制何時將區(qū)塊數(shù)據(jù)傳送到渲染引擎220以進(jìn)行刷新。在一個實(shí)施例中,分級控制器240根據(jù)刷新控制器250發(fā)出的信號控制分級緩沖器230的存取。當(dāng)偵測到自適應(yīng)條件時,刷新控制器250產(chǎn)生這樣的信號到分級控制器240。于下文的示例中,幀N+1表示正在進(jìn)行分級階段的幀,且?guī)琋表示幀N+1之前的幀。
[0035]作為第一示例,當(dāng)遇到鑲嵌對象時,可以偵測自適應(yīng)條件。這個條件是“自適應(yīng)”于鑲嵌因子(tessellat1n factor)的,鑲嵌因子是鑲嵌所產(chǎn)生的新的圖元的數(shù)量的指示符。如果鑲嵌因子較小(例如,鑲嵌所產(chǎn)生的新的圖元的數(shù)量小于閾值),則刷新控制器250可能不會選擇執(zhí)行搶占式刷新。當(dāng)執(zhí)行搶占式刷新時,刷新控制器250可以僅刷新幀N+1中的鑲嵌對象接觸的區(qū)塊。
[0036]作為第二示例,如果渲染引擎220處于空閑狀態(tài)或利用不足(例如,當(dāng)其利用,或每單位時間的工作周期的數(shù)量低于閾值)時,刷新控制器250可以選擇搶占式地刷新幀N+1中負(fù)載最重的區(qū)塊。此條件是“自適應(yīng)”于渲染引擎250中的臨時工作負(fù)載失衡。通過刷新幀中所選擇的區(qū)塊,可增加渲染引擎220的利用率。
[0037]作為第三示例,刷新控制器250根據(jù)先前的幀N確定是否搶占式地刷新幀N+1。此條件是“自適應(yīng)”于先前幀。該確定是基于來自幀N以及幀N+1的類似性的預(yù)測繪制(predict1n drawn)。即,如果幀N以及幀N+1是“類似”的,且?guī)琋的至少一部分是被搶占式地刷新,則可以預(yù)測幀N+1也會搶占式地被刷新。有多個類似性指標(biāo)(similaritymetric)用于確定兩個幀之間的類似性。作為示例,根據(jù)類似性指標(biāo),如果兩個幀包含具有細(xì)微的不同位置(例如,當(dāng)兩個幀的每個圖形對象或每個其組成圖元的之間的位置差別小于閾值時)的相同圖形對象,則兩個幀會被認(rèn)為是“類似”的。關(guān)于區(qū)塊的刷新,如果幀N+1的區(qū)塊達(dá)到幀N的相同的區(qū)塊所達(dá)到的圖元計(jì)數(shù)(primitive count),接著這個區(qū)塊待選擇為用于搶占式刷新的目標(biāo)區(qū)塊,因?yàn)檫@個區(qū)塊最接近于刷新的“成熟”條件(換句話說,最有可能沒有更多的圖元與幀N+1中的區(qū)塊相交)。此外,如果由于鑲嵌對象的存在,幀N的區(qū)塊被搶占式地刷新,則可以預(yù)測幀N+1的相同的區(qū)塊也具有相同的鑲嵌對象,且當(dāng)鑲嵌對象到達(dá)以用于分級時,可以被搶占式地刷新。此預(yù)測刷新避免了鑲嵌對象的接觸區(qū)域的重新計(jì)算(re-calculat1n),因?yàn)橹匦掠?jì)算會消耗計(jì)算資源。此外,關(guān)于此預(yù)測刷新,當(dāng)鑲嵌對象的區(qū)塊數(shù)據(jù)進(jìn)入到分級緩沖器230的芯片上元件230A時,鑲嵌對象的區(qū)塊數(shù)據(jù)被直接及立即地刷新。因此,于分級緩沖器230的芯片上元件230A中,不需要進(jìn)行區(qū)塊數(shù)據(jù)的累積,也不需要增量地刷新區(qū)塊數(shù)據(jù),這將于接下來的變化實(shí)施例中做更詳細(xì)的描述。
[0038]作為附加的示例,當(dāng)任何下文的情形發(fā)生時,可以偵測自適應(yīng)條件:當(dāng)幀N+1的圖元的總數(shù)量p_total達(dá)到閾值p_threshold(例如,當(dāng)p_total>p_threshold時);當(dāng)用于儲存區(qū)塊數(shù)據(jù)的分級緩沖器230中的字節(jié)的數(shù)量b_total達(dá)到閾值13_1:11^81101(1 (例如,當(dāng)b_total>b_threshold時);當(dāng)圖形對象被鑲嵌且被分級,或當(dāng)預(yù)測到圖形對象會產(chǎn)生大量的被分級的圖元(例如,當(dāng)其預(yù)測的圖元計(jì)數(shù) > 預(yù)測的閾值)。即,搶占式刷新是自適應(yīng)于幀N+1及幀N的狀態(tài)以及特性,可用的存儲器、和/或一個或多個預(yù)設(shè)、預(yù)測、歷史、比較、或用于設(shè)置有關(guān)閾值的經(jīng)驗(yàn)值。在一個實(shí)施例中,閾值被決定及設(shè)置,這樣一來,區(qū)塊數(shù)據(jù)就能在分級緩沖器230已滿之前被刷新。在一個實(shí)施例中,刷新控制器250使用圖元計(jì)數(shù)器來計(jì)數(shù)幀中所產(chǎn)生的圖元(即,圖元的總數(shù)量P_total),以及一個監(jiān)視邏輯用于監(jiān)視分級緩沖器230的存儲器使用(即,分級緩沖器230中的字節(jié)的數(shù)量13_切丨&1)。
[0039]繼續(xù)描述以上示例,刷新控制器250還可使用圖元計(jì)數(shù)器來計(jì)數(shù)每個區(qū)塊的圖元數(shù)量。每個區(qū)塊的圖元計(jì)數(shù)值由p_cnt[bin]來表示,當(dāng)確定刷新哪個圖元時,圖元計(jì)數(shù)值是非常有用的。例如:當(dāng)區(qū)塊的?_(3#[1^11]達(dá)到一個預(yù)測值時,選擇這個區(qū)塊來進(jìn)行搶占式刷新。例如,當(dāng)區(qū)塊的p_cnt[bin]達(dá)到一個預(yù)設(shè)值、當(dāng)區(qū)塊的p_cnt [bin]達(dá)到由先前幀(即,幀N)預(yù)測的值、或當(dāng)區(qū)塊的p_cnt[bin]是所有的區(qū)塊的p_cnt[bin]中最大的值時,選擇這個區(qū)塊來進(jìn)行搶占式刷新。當(dāng)區(qū)塊的p_cnt[bin]是所有的區(qū)塊的p_cnt [bin]中最大的值時,表示這個區(qū)塊是所有區(qū)塊中負(fù)載最重的區(qū)塊。在一個實(shí)施例中,刷新控制器250可以使用口_(3社[1^11]值在所有將刷新的區(qū)塊中選擇負(fù)載最重的前η個區(qū)塊(S卩,最大η ρ_cnt[bin]值),其中,η是一個能在運(yùn)行時間適應(yīng)性地被確定的數(shù)字。
[0040]圖4為根據(jù)本發(fā)明實(shí)施例的用于選擇區(qū)塊進(jìn)行搶占式刷新的方法400的流程圖。分級引擎210對幀(例如,幀Ν+1)中的每個圖形對象產(chǎn)生一組圖元(步驟410),并識別這些圖元關(guān)聯(lián)的是哪些區(qū)塊(即,圖形對象接觸的是那些區(qū)塊)(步驟420)。當(dāng)幀Ν+1被分級且?guī)琋被刷新,更新一組計(jì)數(shù)器值以及指標(biāo)值。也就是說,當(dāng)幀Ν+1被分級到所識別的區(qū)塊,刷新控制器250更新一組計(jì)數(shù)器值以及指標(biāo)值:例如:幀Ν+1的總圖元計(jì)數(shù)、分級緩沖器230中使用的字節(jié)數(shù)量、所識別區(qū)塊的圖元計(jì)數(shù)、幀Ν+1的鑲嵌因子、渲染硬件的利用率、先前幀(即,幀N)以及幀Ν+1之間的類似性指標(biāo)等,和/或任何以上的組合(步驟430)。當(dāng)幀Ν+1被分級,刷新控制器250從分級緩沖器230中移動(即,刷新)幀N的區(qū)塊到渲染引擎220以用于渲染。在一個實(shí)施例中,刷新控制器250發(fā)送命令信號觸發(fā)分級控制器240以進(jìn)行刷新。為了反映幀N刷新的效果并保持系統(tǒng)狀態(tài)的跟蹤,刷新控制器250也更新一組計(jì)數(shù)器值以及指標(biāo)值,例如:幀N的總圖元計(jì)數(shù)、分級緩沖器230中使用的字節(jié)數(shù)量、所刷新區(qū)塊的圖元計(jì)數(shù)、渲染硬件的利用率、幀N中鑲嵌對象(如果存在)接觸的區(qū)塊類似性指標(biāo)等(步驟430)。刷新控制器250確定是否存在任何自適應(yīng)條件(步驟440)。例如,刷新控制器250將已更新的計(jì)數(shù)器值以及指標(biāo)值與一組閾值做比較,以確定已更新的計(jì)數(shù)器值以及指標(biāo)值是否達(dá)到或超過任何閾值,例如:是否p_total>p_threshold、b_total>b_threshold、鑲嵌因子 >t_threshold、清染利用率 <u_threshold、幀類似性 >s_threshold 等(步驟440)。如果這些計(jì)數(shù)器值都沒有達(dá)到或超過相應(yīng)閾值,則當(dāng)幀N+1被分級時,幀N是逐個區(qū)塊被刷新(步驟450)。如果刷新控制器250偵測到自適應(yīng)條件,例如,通過將任意計(jì)數(shù)器值或指標(biāo)值與其相應(yīng)閾值做比較,刷新控制器250還確定幀N+1中的哪個區(qū)塊需要被搶占式地刷新,以及如果多于一個區(qū)塊需要被占式地刷新,刷新控制器250還確定這些區(qū)塊的刷新順序(步驟460)。于一個場景中,刷新控制器250使用圖元計(jì)數(shù)器值p_cnt[bin]來確定被搶占式地刷新的區(qū)塊以及區(qū)塊刷新的順序。接著,刷新控制器250發(fā)送信號到分級控制器240以指示幀N+1的哪個區(qū)塊待刷新,以什么順序開始搶占式刷新幀N+1的區(qū)塊(步驟470)。于搶占式刷新的過程中,幀N的刷新以及幀N+1的分級被暫停。于搶占式刷新之后,分級控制器240恢復(fù)幀N的刷新,且分級引擎210恢復(fù)幀N+1的分級(步驟480)。
[0041]在一個實(shí)施例中,刷新控制器250使用分級引擎210發(fā)送的信息來確定是否進(jìn)行刷新。例如,分級引擎210可指示刷新控制器250圖形對象正在被鑲嵌。分級引擎210還可指示刷新控制器250具有大量圖元的圖形對象(例如,當(dāng)圖元的數(shù)量達(dá)到閾值時)正在被分級。由鑲嵌或其它復(fù)雜的圖形對象產(chǎn)生的圖元在數(shù)量上可能會是巨大的,因此,分級緩沖器230的芯片上元件230A可能沒有充分的容量來儲存其所有的圖元。為增加區(qū)塊數(shù)據(jù)的存取速度,在一個實(shí)施例中,鑲嵌(或其它復(fù)雜)圖形對象的分級以及刷新可以多個迭代的方式增量地被執(zhí)行。于每個迭代過程中,由圖形對象產(chǎn)生的區(qū)塊數(shù)據(jù)的一部分(也被稱作局部區(qū)塊數(shù)據(jù))被加載到分級緩沖器230的芯片上元件230A。接著,搶占式刷新被觸發(fā),以刷新局部區(qū)塊數(shù)據(jù)。迭代會一直重復(fù),直到圖形對象的所有區(qū)塊數(shù)據(jù)被分級并被完全地刷新。于每個迭代中,確定被加載及刷新的局部區(qū)塊數(shù)據(jù)的大小,以使分級緩沖器230的芯片上元件230A不會溢出。因此,在被渲染之前,圖形對象的區(qū)塊數(shù)據(jù)將不會到達(dá)分級緩沖器230的芯片外元件230B。其結(jié)果是,在這樣的場景下,因?yàn)樗袇^(qū)塊數(shù)據(jù)都適合于分級緩沖器230的芯片上元件230A,增強(qiáng)了系統(tǒng)性能(例如:效率)被。
[0042]圖5A為根據(jù)本發(fā)明實(shí)施例的被分段或分為3x3區(qū)塊的網(wǎng)格的顯示區(qū)域500的示意圖。于變化實(shí)施例中,顯示區(qū)域500可以被分段為任何數(shù)量的區(qū)塊(例如,上百個或上千個),這由顯示裝置的解決方案來限定。顯示區(qū)域500是指幀序列的每個幀被渲染及顯示的區(qū)域。在此示例中,區(qū)塊由B1、B2、B3、…、以及B9來表示。箭頭520顯示了來自分級緩沖器230的區(qū)塊刷新的正常順序(例如:以B1、B2、B3、…、B9的順序)。當(dāng)沒有區(qū)塊被搶占式地刷新時,根據(jù)此“正常”順序來刷新幀。于變換實(shí)施例中,可能會使用不同的序列。
[0043]圖5B為根據(jù)本發(fā)明實(shí)施例的待渲染的幀580的示意圖。在此示例中,幀580包括三個圖形對象:位于背景中的椎體530、位于中景(midground)的茶壺540、以及位于前景(foreground)的三角形550。當(dāng)椎體530以及三角形550是非鑲嵌時,茶壺540是鑲嵌的。假設(shè)分級引擎210以椎體530、茶壺540、以及三角形550的順序接收到三個重疊的圖形對象。三個圖形對象中的每個的區(qū)塊數(shù)據(jù)是與以椎體530、茶壺540、以及三角形550相同的順序來產(chǎn)生。在此示例中,于椎體530被完全分級后,茶壺540被鑲嵌并被分級為區(qū)塊4-9 (即:B4、B5、B6、B7、B8、以及B9)。當(dāng)茶壺540被完全地或部分地鑲嵌以及分級時,刷新控制器250偵測自適應(yīng)條件。其結(jié)果是,于幀580被全部分級之前,與茶壺540相接觸的幀580的區(qū)塊4-9被搶占式地刷新。于一個場景中,落入?yún)^(qū)塊4-9的椎體530的一部分也與茶壺540 —起被搶占式地刷新。對于每個刷新的區(qū)塊,將首先刷新從椎體530產(chǎn)生的區(qū)塊數(shù)據(jù),然后刷新從茶壺540產(chǎn)生的區(qū)塊數(shù)據(jù)。搶占式刷新打斷了先前幀的刷新過程。于搶占式刷新后,分級引擎210繼續(xù)分級茶壺540的未分級的部分(如果存在任何未分級的部分)以及三角形550,而先前幀恢復(fù)其刷新過程。于可變中場景,刷新控制器250可以選擇要刷新區(qū)塊4-9的哪個部分的區(qū)塊數(shù)據(jù),例如:茶壺540的區(qū)塊數(shù)據(jù)可以單獨(dú)被刷新,而椎體530的區(qū)塊數(shù)據(jù)不會被刷新。
[0044]圖6A至圖6D為根據(jù)本發(fā)明實(shí)施例的幀(例如,幀N+1)的搶占式刷新的過程示意圖,其中,幀(例如,幀N+1)的搶占式刷新打斷了另一幀(例如,幀N,其為先前幀)的正常刷新過程。圖6A為支持乒乓(ping-pong)數(shù)據(jù)存取的分級緩沖器230的示意圖。在此示例中,分級緩沖器230包括兩個區(qū)域:區(qū)域#1以及區(qū)域#2。幀N+1的圖元被加載到區(qū)域#1。已經(jīng)被加載到區(qū)域#2的幀N的圖元,被從分級緩沖器230刷新以開始渲染過程。
[0045]參考圖6B,假設(shè)來自區(qū)域#2的幀N正在根據(jù)圖5A所示的正常順序被逐區(qū)塊刷新。當(dāng)幀N被刷新時,幀N+1正在被加載到區(qū)域#1。已經(jīng)準(zhǔn)備好從分級緩沖器230中被刷新的幀N+1的部分由傾斜陰影線列圖案(slanted hatched-line pattern)來指示。在此示例中,于幀N的BI以及B2被刷新后,且當(dāng)幀N的B3被部分地刷新時,自適應(yīng)條件出現(xiàn),且由刷新控制器250偵測到。刷新控制器250發(fā)送信號到分級控制器240以打斷幀N的刷新。信號指示幀N+1中被選擇的區(qū)塊(例如:B6、B7以及B4)待按照順序來刷新。參考圖6C,根據(jù)接收到的信號,分級控制器240首先完成目前區(qū)塊的刷新(即,幀N的B3),暫停幀N進(jìn)一步的刷新,且接下來切換到刷新幀N+1的B6、B7以及B4。于圖6C中,幀N+1的B6、B7以及B4以水平線表示,用來指示B6、B7以及B4于搶占式刷新過程中。參考圖6D,于幀N+1的B6、B7以及B4被刷新后,分級控制器240恢復(fù)來自區(qū)域#2的幀N的其余區(qū)塊(S卩,幀N的B4-B9)的刷新,而分級引擎210繼續(xù)將幀N+1中未分級的部分分級到區(qū)域#1。
[0046]需要注意的是,幀N+1的區(qū)塊可以以刷新控制器250所確定的任何順序被刷新。區(qū)塊刷新可以根據(jù)一個或多個場景或參數(shù)來進(jìn)行優(yōu)先級排序,例如:每個區(qū)塊的圖元計(jì)數(shù)(即,p_cnt[bin])。例如,如果 p_cnt[B6]>p_cnt[B7]>p_cnt[B4],接著,區(qū)塊可以以 B6、B7以及B4的順序被刷新。因此,在此示例中,幀N+1的B6、B7以及B4將以所描述的順序被刷新,即使通常這些區(qū)塊是以不同的順序(例如,如圖5A所示的B1、B2、…、B9)被刷新。因此,于圖6A至圖6D的示例中,于搶占式刷新的過程中,幀N+1所選擇的區(qū)塊的刷新順序與幀N的區(qū)塊刷新順序不同。
[0047]還需要注意的是,如果在區(qū)塊刷新過程中自適應(yīng)條件的出現(xiàn)多于一次,則幀N的區(qū)塊刷新可以被幀N+1的搶占式刷新多次打斷。于幀N被完全地刷新且?guī)琋+1被完全地分級后,幀N+1可以正常的順序被刷新,且?guī)琋+1的區(qū)塊刷新還可被下一幀(例如,幀N+2)進(jìn)行任何次數(shù)的打斷。
[0048]圖7為根據(jù)本發(fā)明實(shí)施例的空間選擇性分級的搶占式刷新方法700的流程圖。參考圖2以及圖7,在一個實(shí)施例中,當(dāng)GPU(例如,圖2所示的GPU核心125)根據(jù)圖元數(shù)據(jù)與多個與顯示區(qū)域?qū)?yīng)的區(qū)塊的關(guān)聯(lián)來產(chǎn)生顯示區(qū)域的區(qū)塊數(shù)據(jù)時,搶占式刷新方法700開始(步驟710)。根據(jù)偵測的自適應(yīng)條件,GPU產(chǎn)生信號來指示在第一幀被完全分級前,第一幀的一個或多個區(qū)塊將以第一順序來刷新。此信號打斷以第二順序刷新的第二幀的區(qū)塊(步驟720),來以第一順序刷新第一幀的一個或多個區(qū)塊(步驟730)。于第一幀的一個或多個區(qū)塊被刷新后,恢復(fù)以第二順序進(jìn)行的第二幀的區(qū)塊刷新(步驟740)。
[0049]搶占式刷新方法700空間地選擇,于搶占式刷新方法700中啟用了待刷新的幀的區(qū)塊的子集,其中,區(qū)塊的子集對應(yīng)于顯示區(qū)域的一部分。區(qū)塊的子集可保持具有復(fù)雜特征的圖形對象(例如,具有大量的圖元)所產(chǎn)生的區(qū)塊數(shù)據(jù)。因此,那些待渲染及顯示的具有復(fù)雜特征的區(qū)塊待給出優(yōu)先級以開始渲染。區(qū)塊的子集的搶占式刷新防止這些區(qū)塊具有過度的負(fù)載很重的區(qū)塊數(shù)據(jù)。
[0050]此外,一般來說,復(fù)雜圖形對象比簡單圖形對象所需的分級時間更長。其結(jié)果是,當(dāng)?shù)却旨夒A段產(chǎn)生復(fù)雜圖形對象的輸出時,渲染階段可能會停止。如本文所描述的搶占式刷新,可以防止或減輕渲染階段的失速(stalling)。由于搶占式刷新,分級階段可以更早的輸出數(shù)據(jù)(比沒有搶占式刷新要早)以將區(qū)塊數(shù)據(jù)送入渲染階段。這允許渲染階段更早地開始其工作。因此,由于搶占式刷新,分級階段以及渲染階段的總執(zhí)行時間減少了,可改善GPU性能。
[0051]處理方法700可以由硬件(例如,電路、專屬邏輯、可編程邏輯、微碼等)、軟件(例如,處理裝置上運(yùn)行的指令)、或其組合來執(zhí)行。在一個實(shí)施例中,方法700由圖1中的GPU120 (或更具體地,圖1以及圖2中的GPU核心125)來執(zhí)行。在一個實(shí)施例中,GPU 120可以是移動計(jì)算和/或通信裝置(例如,智能電話,平板電腦,筆記本電腦等)的一部分。在一個實(shí)施例中,GPU 120可以是服務(wù)器系統(tǒng)或云計(jì)算系統(tǒng)的一部分。
[0052]圖4以及圖7所示的流程圖中的操作已經(jīng)參考圖1以及圖2的示范性實(shí)施例做了描述。然而,應(yīng)該理解的是,本發(fā)明實(shí)施例的圖4以及圖7的流程圖的操作可以不同于關(guān)于圖1以及圖2中所討論的,且關(guān)于圖1以及圖2所討論的實(shí)施例可以執(zhí)行不同于所討論的參考流程圖的操作。而由本發(fā)明的某些實(shí)施例執(zhí)行的圖4以及圖7所示的流程圖顯示了特定的操作順序,應(yīng)該理解的是,這樣的操作順序是示范性的(例如,備選實(shí)施例可以以不同的操作順序來操作,可以組合某些操作,可以重疊某些操作等)。
[0053]本發(fā)明雖以較佳實(shí)施例揭露如上,然其并非用以限定本發(fā)明的范圍,任何本領(lǐng)域技術(shù)人員,在不脫離本發(fā)明的精神和范圍內(nèi),當(dāng)可做些許的更動與潤飾,因此本發(fā)明的保護(hù)范圍當(dāng)視權(quán)利要求所界定者為準(zhǔn)。
【主權(quán)項(xiàng)】
1.一種圖形處理單元,其特征在于,包括: 分級引擎,根據(jù)圖元數(shù)據(jù)與多個區(qū)塊的關(guān)聯(lián)來產(chǎn)生顯示區(qū)域的區(qū)塊數(shù)據(jù),其中,所述多個區(qū)塊對應(yīng)于所述顯示區(qū)域; 渲染引擎,渲染所述顯示區(qū)域的所述區(qū)塊數(shù)據(jù); 刷新控制器,根據(jù)偵測的自適應(yīng)條件來產(chǎn)生信號,其中,于第一幀被完全分級之前,所述信號指示來自分級緩沖器的所述第一幀的一個或多個區(qū)塊將以第一順序被刷新;以及 分級控制器,耦接于所述分級引擎、所述渲染引擎、以及所述刷新控制器,控制所述分級緩沖器的存取, 其中,于以第二順序進(jìn)行第二幀的區(qū)塊刷新的過程中,所述分級控制器被所述信號打斷以所述第一順序刷新所述第一幀的所述一個或多個區(qū)塊,以及恢復(fù)以所述第二順序進(jìn)行的所述第二幀的所述區(qū)塊刷新。2.如權(quán)利要求1所述的圖形處理單元,其特征在于,所述刷新控制器進(jìn)一步計(jì)數(shù)所述第一幀中圖元的總數(shù)量,以及當(dāng)所述總數(shù)量達(dá)到第一閾值時,偵測所述自適應(yīng)條件。3.如權(quán)利要求1所述的圖形處理單元,其特征在于,所述刷新控制器進(jìn)一步監(jiān)視所述分級緩沖器中存儲器的使用,以及當(dāng)所述存儲器使用達(dá)到第二閾值時,偵測所述自適應(yīng)條件。4.如權(quán)利要求1所述的圖形處理單元,其特征在于,所述刷新控制器進(jìn)一步產(chǎn)生與所述第一幀的每個區(qū)塊相關(guān)聯(lián)的圖元計(jì)數(shù),以及當(dāng)所述區(qū)塊的所述圖元計(jì)數(shù)達(dá)到預(yù)設(shè)值、從先前幀預(yù)測的值、以及所有所述區(qū)塊的圖元計(jì)數(shù)中最大值中的一個時,所述刷新控制器根據(jù)偵測的所述自適應(yīng)條件產(chǎn)生所述信號來刷新區(qū)塊。5.如權(quán)利要求1所述的圖形處理單元,其特征在于,當(dāng)所述第一幀的鑲嵌對象產(chǎn)生的圖元計(jì)數(shù)大于閾值時,所述刷新控制器偵測所述自適應(yīng)條件。6.如權(quán)利要求1所述的圖形處理單元,其特征在于,當(dāng)所述渲染引擎的利用率小于閾值時,所述刷新控制器偵測所述自適應(yīng)條件。7.如權(quán)利要求1所述的圖形處理單元,其特征在于,當(dāng)所述第一幀以及所述第二幀之間的類似性指標(biāo)在閾值內(nèi),且所述第二幀的至少一部分是被搶占式地刷新時,所述刷新控制器偵測所述自適應(yīng)條件。8.如權(quán)利要求7所述的圖形處理單元,其特征在于,當(dāng)鑲嵌對象到達(dá)分級時,所述刷新控制器使所述第一幀中的一組區(qū)塊待刷新,其中,所述的一組區(qū)塊與所述第二幀的所述鑲嵌對象接觸。9.如權(quán)利要求1所述的圖形處理單元,其特征在于,所述分級控制器進(jìn)一步刷新所述一個或多個區(qū)塊以移除多個迭代的圖形對象產(chǎn)生的區(qū)塊數(shù)據(jù),以及其中,在每個所述多個迭代期間所述區(qū)塊數(shù)據(jù)的一部分產(chǎn)生于所述圖形對象且被刷新,以使所述分級緩沖器的芯片上元件具有充分的容量來儲存遍及所述多個迭代的所述區(qū)塊數(shù)據(jù),直到所述圖形對象被完全地刷新。10.如權(quán)利要求1所述的圖形處理單元,其特征在于,當(dāng)所述分級控制器恢復(fù)刷新所述第二幀時,所述分級引擎進(jìn)一步恢復(fù)對所述第一幀中未分級部分的分級。11.一種圖形處理單元的圖形處理方法,其特征在于,包括: 根據(jù)圖元數(shù)據(jù)與多個區(qū)塊的關(guān)聯(lián)來產(chǎn)生顯示區(qū)域的區(qū)塊數(shù)據(jù),其中,所述多個區(qū)塊對應(yīng)于所述顯示區(qū)域; 根據(jù)偵測的自適應(yīng)條件來產(chǎn)生信號,其中,于第一幀被完全分級之前,所述信號指示所述第一幀的一個或多個區(qū)塊將以第一順序被刷新,其中,所述信號打斷以第二順序進(jìn)行的第二幀的區(qū)塊刷新; 以所述第一順序刷新所述第一幀的所述一個或多個區(qū)塊;以及 恢復(fù)以所述第二順序進(jìn)行的所述第二幀的所述區(qū)塊刷新。12.如權(quán)利要求11所述的圖形處理單元的圖形處理方法,其特征在于,還包括: 計(jì)數(shù)所述第一幀中圖元的總數(shù)量;以及 當(dāng)所述總數(shù)量達(dá)到第一閾值時,偵測所述自適應(yīng)條件。13.如權(quán)利要求11所述的圖形處理單元的圖形處理方法,其特征在于,還包括: 監(jiān)視所述分級緩沖器中存儲器的使用;以及 當(dāng)所述存儲器使用達(dá)到第二閾值時,偵測所述自適應(yīng)條件。14.如權(quán)利要求11所述的圖形處理單元的圖形處理方法,其特征在于,還包括: 產(chǎn)生與所述第一幀的每個區(qū)塊相關(guān)聯(lián)的圖元計(jì)數(shù);以及 當(dāng)所述區(qū)塊的所述圖元計(jì)數(shù)達(dá)到預(yù)設(shè)值、從先前幀預(yù)測的值、以及所有所述區(qū)塊的圖元計(jì)數(shù)中最大值中的一個時,偵測所述自適應(yīng)條件以產(chǎn)生所述信號來刷新區(qū)塊。15.如權(quán)利要求11所述的圖形處理單元的圖形處理方法,其特征在于,所述根據(jù)偵測的自適應(yīng)條件來產(chǎn)生信號的步驟還包括: 當(dāng)所述第一幀的鑲嵌對象產(chǎn)生的圖元計(jì)數(shù)大于閾值時,偵測所述自適應(yīng)條件。16.如權(quán)利要求11所述的圖形處理單元的圖形處理方法,其特征在于,所述根據(jù)偵測的自適應(yīng)條件來產(chǎn)生信號的步驟還包括: 當(dāng)所述渲染引擎的利用率小于閾值時,偵測所述自適應(yīng)條件。17.如權(quán)利要求11所述的圖形處理單元的圖形處理方法,其特征在于,所述根據(jù)偵測的自適應(yīng)條件來產(chǎn)生信號的步驟還包括: 當(dāng)所述第一幀以及所述第二幀之間的類似性指標(biāo)在閾值內(nèi),且所述第二幀的至少一部分是被搶占式地刷新時,偵測所述自適應(yīng)條件。18.如權(quán)利要求11所述的圖形處理單元的圖形處理方法,其特征在于,所述刷新所述第一幀的所述一個或多個區(qū)塊的步驟還包括: 當(dāng)鑲嵌對象到達(dá)分級時,使所述第一幀中的一組區(qū)塊待刷新,其中,所述的一組區(qū)塊與所述第二幀的所述鑲嵌對象接觸。19.如權(quán)利要求11所述的圖形處理單元的圖形處理方法,其特征在于,還包括: 刷新所述一個或多個區(qū)塊以移除多個迭代的圖形對象產(chǎn)生的區(qū)塊數(shù)據(jù),其中,在每個所述多個迭代的所述區(qū)塊數(shù)據(jù)的一部分產(chǎn)生于所述圖形對象且被刷新,以使所述分級緩沖器的芯片上元件具有充分的容量來儲存遍及所述多個迭代的所述區(qū)塊數(shù)據(jù),直到所述圖形對象被完全地刷新。20.如權(quán)利要求11所述的圖形處理單元的圖形處理方法,其特征在于,還包括: 當(dāng)恢復(fù)刷新所述第二幀時,恢復(fù)對所述第一幀中未分級部分的分級。
【文檔編號】G06T1/20GK105825468SQ201510456551
【公開日】2016年8月3日
【申請日】2015年7月30日
【發(fā)明人】呂堅(jiān)平, 廖群峰, 黃錫霖, 趙夏陽
【申請人】聯(lián)發(fā)科技(新加坡)私人有限公司