圖形處理方法、系統(tǒng)和設(shè)備的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明總體涉及圖形處理。更具體地,本發(fā)明涉及一種用于合并圖形處理過程中的上下文(context)方法、系統(tǒng)和設(shè)備。
【背景技術(shù)】
[0002]圖形上下文(graphics context)和圖形對象(graphics object)是圖形處理的基本部分。為了渲染圖形,通常,中央處理器(CPU)將命令包發(fā)送給圖形處理器(GPU)。該命令包包含命令和對象。該命令限定圖形上下文,即,GPU應(yīng)當(dāng)如何繪圖。此處,圖形上下文可被認(rèn)為是一組繪圖設(shè)置。這些設(shè)置通常被記錄在寄存器中。寄存器是GPU內(nèi)部的快速存儲器,并且該GPU能夠讀/寫這些寄存器并應(yīng)用該設(shè)置。所述對象是GPU應(yīng)當(dāng)繪制的客體。GPU會分配資源、遵循該命令并繪制該對象以用于在顯示裝置上顯示。
[0003]在圖形處理的現(xiàn)有的方法中,當(dāng)CPU發(fā)送第一個命令包時,GPU會分配資源,包括存儲空間和寄存器,產(chǎn)生上下文及其標(biāo)識號碼(ID),并分析命令和對象。當(dāng)CPU發(fā)送第二個命令包時,GPU將會作同樣的工作。當(dāng)完成一個命令包后,GPU會轉(zhuǎn)向下一個命令包。只有在完成了第一個命令包后,GPU才會去處理第二個命令包。GPU將會重復(fù)該項工作,直到CPU停止發(fā)送任何命令包。
[0004]圖1顯示了一種當(dāng)前的被配置成執(zhí)行現(xiàn)有的圖形處理方法的GPU的示意圖。如圖1所示,該當(dāng)前的GPU包括環(huán)形緩沖區(qū)(Ring Buffer (RB)),讀指針和寫指針。該環(huán)形緩沖區(qū)包含一些包存儲槽(packet slot)。所有發(fā)送自CPU的命令包P0、P1、P2、P3……等等都被存儲在該環(huán)形緩沖區(qū)內(nèi)的包存儲槽中。該命令包包含圖形上下文和圖形對象。所述讀指針指向當(dāng)前的命令包,例如圖1所示的P0。該GPU將讀取當(dāng)前的命令包并應(yīng)用該圖形上下文去繪制所述圖形對象。當(dāng)當(dāng)前的命令包完成后,該讀指針將指向下一個新的命令包(例如圖1所示的P1),并且GPU將會讀取該下一個新的命令包的內(nèi)容并且處理該新的命令包。所述寫指針指向第一個空的包存儲槽。當(dāng)CPU發(fā)送新的命令包至GPU時,GPU會把該命令包存儲在該寫指針?biāo)赶虻脑摰谝粋€空的包存儲槽中。然后,該寫指針將指向下一個空的包存儲槽。
[0005]當(dāng)該讀指針和該寫指針都指向同一個包存儲槽時,即表示該環(huán)形緩沖區(qū)是空的。當(dāng)該讀指針指向該寫指針?biāo)傅陌鎯Σ鄣南乱粋€包存儲槽時,即表示該環(huán)形緩沖區(qū)是滿的。如果該環(huán)形緩沖區(qū)是滿的,GPU會停止從CPU接收任何命令包,直到該環(huán)形緩沖區(qū)中的至少一個包存儲槽被釋放。
【發(fā)明內(nèi)容】
[0006]在現(xiàn)有的圖形處理設(shè)備和方法中,當(dāng)CPU發(fā)送多個命令包時,GPU要耗費大量的資源和時間來分配存儲空間、應(yīng)用上下文和繪制對象。對此,在上下文的轉(zhuǎn)換上會耗費許多資源和時間,因為對于命令包中的每一個上下文,GPU都必須作一次轉(zhuǎn)換。
[0007]例如,如果GPU想要繪制具有很多樹的山,每一棵樹具有其自己的上下文。對于每一個命令包,GPU需要等待當(dāng)前命令包的結(jié)束,為新的上下文初始化新的環(huán)境,并且繪制新的對象,即便這些上下文是相同的。這浪費了許多資源和時間,因為如果繪制一棵樹、然后轉(zhuǎn)換上下文并繪制另一棵,將會在上下文的轉(zhuǎn)換方面浪費許多時間和資源,并且將會占用許多重要的資源,因為GPU必須不斷地應(yīng)用“新”的上下文。
[0008]而且,在現(xiàn)有的圖形處理設(shè)備和方法中,如果CPU發(fā)送很多命令包,環(huán)形緩沖區(qū)將會很容易被充滿,這會降低GPU的工作效率。
[0009]為了克服現(xiàn)有的圖形處理設(shè)備和方法中的缺陷,本發(fā)明提供了一種圖形處理方法、系統(tǒng)和設(shè)備,其能夠節(jié)約許多資源和時間并且能夠提高圖形處理的工作效率。
[0010]在體現(xiàn)本發(fā)明第一方面的示例性實施方式中,提供了一種圖形處理方法,該圖形處理方法包括:從命令包中分離圖形上下文和圖形對象;計算該圖形上下文的魔術(shù)數(shù)字;將該圖形上下文的魔術(shù)數(shù)字與存儲在上下文表中的魔術(shù)數(shù)字進(jìn)行比較,其中每個魔術(shù)數(shù)字與一個具體的圖形上下文相對應(yīng);以及如果在所述上下文表中的魔術(shù)數(shù)字中不存在所述圖形上下文的所述魔術(shù)數(shù)字,則將該圖像上下文加入到圖形上下文存儲器的圖形上下文存儲槽中、將所述圖形對象加入到與所述圖像上下文存儲器分離的圖形對象列表中,并將所述圖形上下文存儲槽與該圖形對象相關(guān)聯(lián)。
[0011]在體現(xiàn)本發(fā)明第二方面的示例性實施方式中,提供了一種圖形處理系統(tǒng),該圖形處理系統(tǒng)包括:裝置,用于將來自命令包的圖形上下文和圖形對象分離;圖形上下文存儲裝置,用于存儲所述圖形上下文,所述圖形上下文存儲裝置包括圖形上下文存儲槽;圖形對象存儲裝置,用于存儲所述圖形對象,所述圖形對象存儲裝置與所述圖形上下文存儲裝置是分離的;裝置,用于計算所述圖形上下文的魔術(shù)數(shù)字以確定該圖形對象的魔術(shù)數(shù)字;魔術(shù)數(shù)字存儲裝置,用于存儲所述圖形上下文的魔術(shù)數(shù)字;裝置,用于將所述圖形上下文的被計算的魔術(shù)數(shù)字與存儲在所述魔術(shù)數(shù)字存儲裝置中的魔術(shù)數(shù)字進(jìn)行比較,以確定所述魔術(shù)數(shù)字存儲裝置中的魔術(shù)數(shù)字中是否存在該計算的魔術(shù)數(shù)字,其中每個魔術(shù)數(shù)字與一個具體的圖形上下文相對應(yīng);以及裝置,用于如果所述魔術(shù)數(shù)字存儲裝置中的魔術(shù)數(shù)字中不存在該計算的魔術(shù)數(shù)字時,將所述圖形上下文加入到所述圖形上下文存儲裝置的圖形上下文存儲槽中,將所述圖形對象加入到所述圖形對象存儲裝置中,以及將所述圖形上下文存儲槽與所述存儲的圖形對象相關(guān)聯(lián)。
[0012]在體現(xiàn)本發(fā)明第三方面的示例性實施方式中,提供了一種圖形處理設(shè)備,該圖形處理設(shè)備包括:可編程計算單元,其被配置成將來自命令包的圖形上下文和圖形對象分離,并且計算該圖形上下文的魔術(shù)數(shù)字;圖形上下文緩沖區(qū),其被配置成存儲所述圖形上下文,所述圖形上下文緩沖區(qū)包括多個圖形上下文存儲槽;圖形對象列表,其被配置成存儲所述圖形對象,所述圖形對象列表與所述圖形上下文緩沖區(qū)是分離的;上下文表,用于存儲所述圖形上下文的魔術(shù)數(shù)字;裝置,用于將所述圖形上下文的被計算的魔術(shù)數(shù)字與存儲在所述上下文表中的魔術(shù)數(shù)字進(jìn)行比較,以確定所述上下文表中的魔術(shù)數(shù)字中是否存在所述圖形上下文的該計算的魔術(shù)數(shù)字,其中每個魔術(shù)數(shù)字與一個具體的圖形上下文相對應(yīng);以及裝置,用于如果所述上下文表的魔術(shù)數(shù)字中不存在所述計算的魔術(shù)數(shù)字,則所述將所述圖形上下文加入到所述圖形上下文緩沖區(qū)的圖形上下文存儲槽中,將所述圖形對象加入到所述圖形對象列表中,以及將所述圖形上下文存儲槽與存儲在所述圖形對象列表中的圖形對象相關(guān)聯(lián)。
[0013]本申請的下文描述了本發(fā)明的其它方面和實施方式。
【附圖說明】
[0014]附圖以示例的方式圖示了本發(fā)明,其并不構(gòu)成對本發(fā)明的限制。在附圖中相同的數(shù)字表示相同的部件,其中:
[0015]圖1為現(xiàn)有技術(shù)中的圖形處理設(shè)備的示意圖;
[0016]圖2為顯示了根據(jù)本發(fā)明的一個示例性實施方式的圖形處理設(shè)備的示意圖;
[0017]圖3為顯示了根據(jù)本發(fā)明的一個示例性實施方式的圖形處理方法的示意流程圖;
[0018]圖4顯示了根據(jù)本發(fā)明的一個示例性實施方式的用于讀取和應(yīng)用上下文緩存區(qū)中的上下文的方法的示例性流程圖;
[0019]圖5為根據(jù)本發(fā)明的一個示例性實施方式的用于在上下文緩存區(qū)中寫上下文的方法的示例性流程圖;
【具體實施方式】
[0020]下面將參照附圖中所示的一些實施例具體描述本發(fā)明的一些示例性實施方式。在下文的描述中,描述了一些具體的細(xì)節(jié)以提供對本發(fā)明的更深的理解。然而,對于本領(lǐng)域的技術(shù)人員來說顯而易見的是,即使不具有這些具體細(xì)