專利名稱:圖形處理系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及圖形處理系統(tǒng),并且更具體地涉及圖形處理系統(tǒng)中的所謂的“累積緩 (accumulation buffer)” 桑作。
背景技術(shù):
如本領(lǐng)域中已知的,在圖形處理中存在通常被稱為“累積緩沖”的過(guò)程。該過(guò)程是 作為例如桌面Open GL (開(kāi)放圖形庫(kù))標(biāo)準(zhǔn)的一部分的公知特征?!袄鄯e緩沖”過(guò)程基本上牽涉例如從若干不同視角對(duì)“幀”的若干不同版本進(jìn)行 再現(xiàn),并且將幀的所有不同再現(xiàn)版本的所期望的加權(quán)平均累積在單個(gè)緩沖器(“累積緩沖器 (accumulation buffer)”)中。這種所得到的不同幀的“累積緩沖”平均版本然后被用作輸 出幀(例如并且典型地,用作將顯示的幀)?!袄鄯e緩沖”典型地用于模擬許多不同的效果,諸如景深、運(yùn)動(dòng)模糊、軟陰影和圖形保真。使用累積緩沖的一個(gè)缺陷在于在現(xiàn)有的實(shí)施方式中,需要使用(圖形處理器)外 部的全幀浮點(diǎn)緩沖器來(lái)充當(dāng)累積緩沖器。盡管這在功率較大的桌面圖形處理系統(tǒng)的情況下 可能是可接受的,但是申請(qǐng)人認(rèn)識(shí)到,這樣的布置在諸如用于便攜式設(shè)備的系統(tǒng)和/或嵌 入式圖形處理系統(tǒng)的功率較低的圖形處理系統(tǒng)中是不合需要的。實(shí)際上,出于該原因和其 他原因,例如Open GLES標(biāo)準(zhǔn)不包括累積緩沖的使用。因此申請(qǐng)人認(rèn)為,對(duì)圖形處理系統(tǒng)中的累積緩沖操作和實(shí)施仍存在改進(jìn)的余地。
發(fā)明內(nèi)容
根據(jù)本發(fā)明的第一方面,提供一種在基于圖塊(tile)的圖形處理系統(tǒng)中提供幀的 若干再現(xiàn)傳遞(pass)的累積結(jié)果作為輸出幀的方法,該方法包括
針對(duì)輸出幀將被劃分成的每個(gè)圖塊單獨(dú)地執(zhí)行若干再現(xiàn)傳遞并且累積這些再現(xiàn)傳遞 的結(jié)果,以便針對(duì)每個(gè)圖塊生成包括該圖塊的再現(xiàn)傳遞的累積結(jié)果的輸出圖塊,并且使得 在對(duì)其他圖塊開(kāi)始該過(guò)程之前,至少針對(duì)一個(gè)圖塊完成所有再現(xiàn)傳遞以及這些再現(xiàn)傳遞的 結(jié)果的累積;以及
組合如此生成的輸出圖塊以提供包括幀的若干再現(xiàn)傳遞的累積結(jié)果的輸出幀。根據(jù)本發(fā)明的第二方面,提供一種基于圖塊的圖形處理系統(tǒng),該系統(tǒng)包括 用于針對(duì)輸出幀將被劃分成的每個(gè)圖塊單獨(dú)地執(zhí)行若干再現(xiàn)傳遞并且累積這些再現(xiàn)
傳遞的結(jié)果的部件,以便針對(duì)每個(gè)圖塊生成包括該圖塊的再現(xiàn)傳遞的累積結(jié)果的輸出圖 塊,并且使得在對(duì)其他圖塊開(kāi)始該過(guò)程之前,至少針對(duì)一個(gè)圖塊完成所有再現(xiàn)傳遞以及這 些再現(xiàn)傳遞的結(jié)果的累積;以及
用于組合如此生成的輸出圖塊以提供包括每個(gè)圖塊的若干再現(xiàn)傳遞的累積結(jié)果的輸 出幀的部件。根據(jù)本發(fā)明的第三方面,提供一種操作基于圖塊的圖形處理系統(tǒng)的方法,包括圖形處理系統(tǒng)
針對(duì)將輸出的幀的第一圖塊或者第一多個(gè)圖塊集合,對(duì)該圖塊或者單獨(dú)地對(duì)該集合中 的每個(gè)圖塊執(zhí)行多次再現(xiàn)傳遞并且累積相應(yīng)圖塊或者每個(gè)相應(yīng)圖塊的這些再現(xiàn)傳遞的結(jié) 果以為該圖塊或者該圖塊集合中的每個(gè)圖塊提供表示該圖塊的多次再現(xiàn)傳遞的累積結(jié)果 的圖塊輸出;以及
向輸出再現(xiàn)目標(biāo),優(yōu)選地向幀緩沖器輸出該圖塊或者該圖塊集合中的每個(gè)圖塊的累積 圖塊輸出;以及 此后
針對(duì)將輸出的幀的第二圖塊或者第二多個(gè)圖塊集合,對(duì)該圖塊或者單獨(dú)地對(duì)該集合中 的每個(gè)圖塊執(zhí)行多次再現(xiàn)傳遞并且累積相應(yīng)圖塊或者每個(gè)相應(yīng)圖塊的這些再現(xiàn)傳遞的結(jié) 果以為該第二圖塊或者該第二圖塊集合中的每個(gè)圖塊提供表示該圖塊的多次再現(xiàn)傳遞的 累積結(jié)果的圖塊輸出;以及
向輸出再現(xiàn)目標(biāo),優(yōu)選地向幀緩沖器輸出該第二圖塊或者該第二圖塊集合中的每個(gè)圖 塊的累積圖塊輸出;以及
對(duì)輸出幀的剩余圖塊重復(fù)該過(guò)程; 由此
通過(guò)在逐個(gè)圖塊的基礎(chǔ)上執(zhí)行若干再現(xiàn)傳遞并且累積這些再現(xiàn)傳遞的結(jié)果,生成包括 輸出幀的若干再現(xiàn)傳遞的累積結(jié)果的輸出幀。根據(jù)本發(fā)明的第四方面,提供一種基于圖塊的圖形處理系統(tǒng),該系統(tǒng)包括 用于執(zhí)行如下操作的部件
針對(duì)將輸出的幀的第一圖塊或者第一多個(gè)圖塊集合,對(duì)該圖塊或者單獨(dú)地對(duì)該集合中 的每個(gè)圖塊執(zhí)行多次再現(xiàn)傳遞并且累積相應(yīng)圖塊或者每個(gè)相應(yīng)圖塊的這些再現(xiàn)傳遞的結(jié) 果以為該圖塊或者該圖塊集合中的每個(gè)圖塊提供表示該圖塊的多次再現(xiàn)傳遞的累積結(jié)果 的圖塊輸出;以及
向輸出再現(xiàn)目標(biāo),優(yōu)選地向幀緩沖器輸出該圖塊或者該圖塊集合中的每個(gè)圖塊的累積 圖塊輸出;以及
用于此后執(zhí)行如下操作的部件
針對(duì)將輸出的幀的第二圖塊或者第二多個(gè)圖塊集合,對(duì)該圖塊或者單獨(dú)地對(duì)該集合中 的每個(gè)圖塊執(zhí)行多次再現(xiàn)傳遞并且累積相應(yīng)圖塊或者每個(gè)相應(yīng)圖塊的這些再現(xiàn)傳遞的結(jié) 果以為該第二圖塊或者該第二圖塊集合中的每個(gè)圖塊提供表示該圖塊的多次再現(xiàn)傳遞的 累積結(jié)果的圖塊輸出;以及
向輸出再現(xiàn)目標(biāo),優(yōu)選地向幀緩沖器輸出該第二圖塊或者該第二圖塊集合中的每個(gè)圖 塊的累積圖塊輸出;以及
用于對(duì)輸出幀的剩余圖塊重復(fù)該過(guò)程的部件; 由此
通過(guò)在逐個(gè)圖塊的基礎(chǔ)上執(zhí)行若干再現(xiàn)傳遞并且累積這些再現(xiàn)傳遞的結(jié)果,生成包括 輸出幀的若干再現(xiàn)傳遞的累積結(jié)果的用于顯示的輸出幀。如上文所討論的,本發(fā)明涉及提供作為幀的多次再現(xiàn)傳遞的累積結(jié)果的輸出幀, 即涉及“累積緩沖”操作。
然而,不是通過(guò)一個(gè)接一個(gè)地對(duì)全部幀進(jìn)行多次再現(xiàn)并且累積結(jié)果來(lái)生成“累積 的”輸出巾貞,在本發(fā)明中在逐個(gè)圖塊的基礎(chǔ)上執(zhí)行累積操作,并且然后組合如此“累積的”圖 塊以提供“累積的”輸出幀。換言之,單獨(dú)地對(duì)每個(gè)圖塊執(zhí)行多次再現(xiàn)傳遞和它們的結(jié)果的 累積并且然后組合每個(gè)單獨(dú)圖塊的結(jié)果以提供(例如,將被顯示的)輸出“累積幀”。因而,本發(fā)明通過(guò)對(duì)于給定圖塊使該圖塊連續(xù)經(jīng)歷多次再現(xiàn)傳遞并且以適當(dāng)?shù)?(并且所期望的)方式單獨(dú)地累積該圖塊的這些再現(xiàn)傳遞的結(jié)果進(jìn)行操作。因此實(shí)際上,如果考慮在傳統(tǒng)的累積緩沖實(shí)施方式中,跨越整個(gè)幀(即針對(duì)幀的所 有圖塊)執(zhí)行給定的再現(xiàn)傳遞以在下一“子幀”開(kāi)始之前(在然后使整個(gè)幀經(jīng)歷下一再現(xiàn)傳 遞之前)生成給定的“子幀”,則作為替代,本發(fā)明中的再現(xiàn)順序使得在系統(tǒng)移動(dòng)到下一圖塊 (或圖塊集合)并且對(duì)該圖塊(或該圖塊集合中的圖塊)執(zhí)行再現(xiàn)傳遞序列之前,首先將對(duì)給 定圖塊(或圖塊集合中的圖塊)(而非跨越幀的所有圖塊)一個(gè)接一個(gè)地執(zhí)行再現(xiàn)傳遞序列, 以此類推。因此,實(shí)際上,給定圖塊(或圖塊集合)的每個(gè)“子塊”將在另一圖塊(或圖塊集合) 開(kāi)始之前被再現(xiàn)(并且累積)。因此,具體地在本發(fā)明中,如上文闡述的,在對(duì)輸出幀的其他圖塊開(kāi)始該過(guò)程之 前,至少針對(duì)一個(gè)圖塊(并且優(yōu)選地至少針對(duì)一些圖塊(即針對(duì)多個(gè)圖塊))完成再現(xiàn)傳遞和 這些再現(xiàn)傳遞的結(jié)果的累積。換言之,在本發(fā)明中,在繼續(xù)處理其他圖塊之前結(jié)束一個(gè)(或 多個(gè))圖塊的累積過(guò)程,而不是作為整體處理每個(gè)整個(gè)幀。類似地,在傳統(tǒng)的累積緩沖操作中,最終輸出累積幀包括一起對(duì)該最終輸出幀有 貢獻(xiàn)的若干子幀的累積,而本發(fā)明可被視為針對(duì)給定圖塊處理若干子圖塊,它們被累積在 一起以提供最終輸出累積圖塊(即然后被輸出到幀緩沖器并且與幀的每個(gè)其他圖塊的輸出 累積圖塊組合以給出總體輸出幀)。申請(qǐng)人:已認(rèn)識(shí)到本發(fā)明的布置可以帶來(lái)許多優(yōu)點(diǎn)。首先,由于針對(duì)單獨(dú)圖塊執(zhí)行累積操作,因此這消除了對(duì)具有用于“累積緩沖”操 作的全幀“累積”緩沖器的需要。而且,如下文將進(jìn)一步討論的,本發(fā)明允許使用圖形處理器自身上的緩沖器(諸如 并且優(yōu)選地,在任何情況下均將存在的圖塊緩沖器)實(shí)施累積過(guò)程。這然后消除了對(duì)作為累 積緩沖過(guò)程的一部分的任何外部存儲(chǔ)器(和外部存儲(chǔ)器訪問(wèn))的需要。這然后可以提供在消 除用于累積緩沖操作的外部存儲(chǔ)器帶寬方面的顯著節(jié)約。與使用外部累積緩沖器的傳統(tǒng)的 累積器緩沖實(shí)施方式相比,這可以導(dǎo)致例如顯著的功率使用節(jié)約以及增加的再現(xiàn)速度。實(shí)際上,申請(qǐng)人認(rèn)為,與傳統(tǒng)的累積緩沖實(shí)施方式對(duì)比,本發(fā)明使得在功率較低的 圖形處理系統(tǒng)上(諸如在便攜式設(shè)備中)高效地實(shí)施累積緩沖操作成為可能。而且,促進(jìn)在 功率較低的例如便攜式設(shè)備中使用累積緩沖過(guò)程將允許這些設(shè)備中的顯著圖形性能提升。如上文所討論的,本發(fā)明旨在被實(shí)施在基于圖塊的圖形處理系統(tǒng)中。如本領(lǐng)域中已知的,在基于圖塊的再現(xiàn)中,再現(xiàn)過(guò)程的二維輸出陣列或幀(“再現(xiàn) 目標(biāo)”)(例如并且典型地,其將被顯示以顯示正被再現(xiàn)的場(chǎng)景)被細(xì)分或者劃分成多個(gè)更小 的區(qū)域或者子區(qū)域——通常被稱為“圖塊”——用于再現(xiàn)過(guò)程。圖塊(子區(qū)域)每個(gè)均被(典 型地一個(gè)接一個(gè)地)分開(kāi)再現(xiàn)。再現(xiàn)圖塊(子區(qū)域)然后被重組以提供完整的輸出陣列(幀) (再現(xiàn)目標(biāo))例如用于顯示。因此圖塊可以被認(rèn)為是再現(xiàn)過(guò)程對(duì)其進(jìn)行操作的再現(xiàn)目標(biāo)區(qū)域(輸出幀)的細(xì)分。在這些布置中,再現(xiàn)目標(biāo)區(qū)域(輸出幀)典型地被劃分成規(guī)則尺寸和形狀的圖塊(它們通常 是例如正方形或矩形),但這不是必需的。通常用于“圖塊化的(tiling)”和“基于圖塊的”再現(xiàn)的其他術(shù)語(yǔ)包括“片式 (chunking)"(子區(qū)域被稱為“片(chunk)”)和“小塊(bucket)”再現(xiàn)。術(shù)語(yǔ)“圖塊”和“圖 塊化”在這里為便利而被使用,但是應(yīng)當(dāng)理解,這些術(shù)語(yǔ)旨在于涵蓋所有可選的和等同的術(shù) 語(yǔ)和技術(shù)。在本發(fā)明中出于再現(xiàn)目的而將再現(xiàn)目標(biāo)(輸出幀)劃分成的圖塊可以為任何所期 望的和適當(dāng)?shù)某叽缁蛐螤?。如本領(lǐng)域中示出的,所有圖塊優(yōu)選地均為相同尺寸和形狀,盡 管這不是必需的。在優(yōu)選的實(shí)施例中,每個(gè)圖塊是矩形的,并且在尺寸上優(yōu)選地是16X16、 32X32或者16X8采樣位置。這里還應(yīng)當(dāng)注意,雖然在特別優(yōu)選的實(shí)施例中,出于本發(fā)明的目的而將幀劃分成 的圖塊與再現(xiàn)過(guò)程將在其“常規(guī)”再現(xiàn)操作中對(duì)其進(jìn)行操作的圖塊相同或相似,但是如果需 要,可以使用具有與“常規(guī)”再現(xiàn)圖塊不同的尺寸和/或形狀的圖塊來(lái)執(zhí)行本發(fā)明。例如, 如果需要,本發(fā)明的“累積緩沖”過(guò)程對(duì)其進(jìn)行操作的“圖塊”可以包括多個(gè)“再現(xiàn)圖塊”或 者“再現(xiàn)圖塊”的子區(qū)域。如上文所討論的,本發(fā)明的重要特征在于,在逐個(gè)圖塊的基礎(chǔ)上執(zhí)行多次再現(xiàn)傳 遞和這些再現(xiàn)傳遞的結(jié)果的累積,而不是通過(guò)在下一再現(xiàn)傳遞開(kāi)始之前跨越整個(gè)幀執(zhí)行每 次再現(xiàn)傳遞。換言之,給定圖塊將經(jīng)歷多次再現(xiàn)傳遞,其結(jié)果將直接連續(xù)地、一個(gè)接一個(gè)地 被累積,而不是例如在對(duì)該特定圖塊執(zhí)行下一再現(xiàn)傳遞之前等待對(duì)(整個(gè)幀的)所有圖塊執(zhí) 行給定的再現(xiàn)傳遞。因而,對(duì)于正被處理的給定圖塊,一旦該圖塊的前一再現(xiàn)傳遞已結(jié)束,則該圖塊的 下一再現(xiàn)傳遞將開(kāi)始,而不是在開(kāi)始所討論的圖塊的下一再現(xiàn)傳遞之前等待完成所有其他 圖塊的前一再現(xiàn)傳遞。(該操作的效果將是如上文所討論的,在生成輸出幀的過(guò)程期間, 在開(kāi)始至少一個(gè)其他圖塊的再現(xiàn)傳遞和累積之前,將完成至少一個(gè)圖塊的再現(xiàn)傳遞和累積 (實(shí)際上,在開(kāi)始其他圖塊的再現(xiàn)和累積過(guò)程之前,將完成一些圖塊的,并且典型地許多圖 塊的再現(xiàn)和累積處理)。)。最優(yōu)選地,正被處理的給定圖塊的下一再現(xiàn)傳遞在該圖塊的前一再現(xiàn)傳遞結(jié)束時(shí) 立即開(kāi)始。然而,這不是必需的,并且例如如下文所討論的,將有可能并行地處理多個(gè)圖塊 和/或使不同圖塊的處理交織。在這種情況下,可能的是在開(kāi)始給定圖塊的下一再現(xiàn)傳遞 之前另一圖塊將經(jīng)歷再現(xiàn)傳遞(但是,情況仍然將是在其他圖塊開(kāi)始之前完成一個(gè)或多個(gè) 圖塊)。最優(yōu)選地,一個(gè)圖塊(或圖塊集合)的處理在下一圖塊(或圖塊集合)開(kāi)始之前完成 (以提供其最終累積輸出)。類似地,優(yōu)選地,在當(dāng)前正被處理的圖塊(或圖塊集合)完全結(jié)束 之前,未經(jīng)處理的圖塊(或圖塊集合)的處理不會(huì)開(kāi)始(在前一圖塊(或圖塊集合)的處理完 成之前,下一圖塊(或圖塊集合)不會(huì)開(kāi)始)。(再次地,如上文所提到的,在可選的布置中,如 果需要,將有可能在前一圖塊/圖塊集合結(jié)束之前開(kāi)始下一圖塊/圖塊集合。)。在一個(gè)特別優(yōu)選的實(shí)施例中,單個(gè)地、依次地對(duì)每個(gè)圖塊進(jìn)行處理,即所有圖塊依 次一個(gè)接一個(gè)地經(jīng)歷多次再現(xiàn)傳遞和累積過(guò)程。在這種情況下,每個(gè)單獨(dú)圖塊將優(yōu)選地在 下一圖塊開(kāi)始之前完成(完全累積)。
在另一優(yōu)選的實(shí)施例中,多個(gè)圖塊(多個(gè)圖塊集合)可以并且優(yōu)選地確實(shí)同時(shí)經(jīng)歷 再現(xiàn)傳遞和累積過(guò)程。例如并且優(yōu)選地,兩個(gè)圖塊可以按本發(fā)明的方式同時(shí)經(jīng)歷該處理。例 如,兩個(gè)圖塊的處理可以被交織。在這些情況下,構(gòu)成輸出累積幀的圖塊實(shí)際上可以被視為按圖塊集合進(jìn)行處理 (如上文所討論的),每個(gè)集合包括構(gòu)成輸出幀的圖塊中的兩個(gè)或更多個(gè)(并且優(yōu)選地兩個(gè)) 但并非所有。每個(gè)這樣的圖塊集合然后將被依次處理,其中一個(gè)集合的處理優(yōu)選地在下一 集合開(kāi)始之前完成。如果需要,其他布置將是可能的。例如,由于圖塊實(shí)際上彼此獨(dú)立,因此如上文所 提到的,如果需要,將有可能并行地和/或按交織的方式處理不同圖塊,例如以便提高并行 處理速率。在這種情況下,在前一圖塊(圖塊集合)結(jié)束之前,下一圖塊(或圖塊集合)可以 開(kāi)始。情況還可以是例如,圖塊處理機(jī)制可以導(dǎo)致圖塊處理例如在可以并行地處理針對(duì)不 同圖塊的命令的情況下在一些時(shí)間上重疊。然而,即使在這些布置中,情況仍然將是一個(gè)或 多個(gè)圖塊將在其他圖塊開(kāi)始之前完成。將對(duì)每個(gè)圖塊執(zhí)行的再現(xiàn)傳遞可以按任何適當(dāng)?shù)暮退谕姆绞綀?zhí)行。如將意識(shí) 到的,對(duì)于要求顯示幀的“累積緩沖”操作的任何應(yīng)用,將典型地指令圖形處理器執(zhí)行所期 望的再現(xiàn)傳遞序列,并且因此在本發(fā)明中,其是應(yīng)當(dāng)對(duì)每個(gè)圖塊執(zhí)行的這個(gè)所期望的(所定 義的)再現(xiàn)傳遞序列。如本領(lǐng)域中已知的,對(duì)于累積緩沖操作,這些再現(xiàn)傳遞通常將再現(xiàn)不 同幀,諸如從不同視角觀看、和/或經(jīng)歷不同照明條件、和/或空間上(其位置移位)或時(shí)間 上跳動(dòng)等的給定場(chǎng)景。因而在優(yōu)選的實(shí)施例中,再現(xiàn)傳遞對(duì)多個(gè)不同幀進(jìn)行再現(xiàn),這些幀然 后被累積以提供輸出累積幀。再現(xiàn)傳遞優(yōu)選地按圖形處理系統(tǒng)的常規(guī)方式或者用于圖形處理系統(tǒng)的常規(guī)方式 來(lái)執(zhí)行。因而優(yōu)選地,對(duì)于任何給定的再現(xiàn)傳遞,將對(duì)圖塊進(jìn)行再現(xiàn)并且生成適當(dāng)再現(xiàn)的輸 出圖塊(例如并且優(yōu)選地,至少最初該輸出圖塊將被存儲(chǔ)在圖形處理器的圖塊緩沖器中)。 這將針對(duì)在對(duì)所討論的累積輸出幀所需的(所定義的)再現(xiàn)傳遞序列中的每次再現(xiàn)傳遞進(jìn) 行重復(fù)。如上文所討論的,每次再現(xiàn)傳遞將被視為生成輸出的總體“累積”圖塊的“子圖塊”。如將意識(shí)到的,將需要是一種機(jī)制,由此給定圖塊的每次再現(xiàn)傳遞的結(jié)果可以被 累積(即累積針對(duì)給定圖塊生成的“子圖塊”)。這與對(duì)傳統(tǒng)的“累積緩沖器”布置中的累積 緩沖器的要求類似,但是不是需要為全幀緩沖器(即能夠同時(shí)存儲(chǔ)整個(gè)幀的再現(xiàn)結(jié)果),本 發(fā)明將僅要求同時(shí)存儲(chǔ)單個(gè)圖塊(或多個(gè)圖塊集合)的再現(xiàn)結(jié)果。因此,本發(fā)明中的“累積 緩沖器”將僅需要是圖塊(或圖塊集合)“累積”緩沖器(即尺寸被調(diào)整為使得能夠累積圖塊 (或者適當(dāng)?shù)膱D塊集合,其中本發(fā)明同時(shí)處理多個(gè)圖塊集合)的再現(xiàn)結(jié)果的緩沖器)。可以按任何適當(dāng)?shù)暮退谕姆绞教峁┰搱D塊“累積”緩沖器。例如,其仍然可以 按與傳統(tǒng)的累積緩沖實(shí)施方式類似的方式被提供為外部的但小很多的緩沖器。然而,在特別優(yōu)選的實(shí)施例中并且如上文所討論的,圖塊“累積”緩沖器與圖形處 理器一起(優(yōu)選地在圖形處理器內(nèi)部)被提供在片上(on-chip)。如上文所討論的,這是有 利的,原因在于其可以消除對(duì)累積過(guò)程的任何外部存儲(chǔ)器訪問(wèn)和帶寬的需要。而且,本發(fā)明 的關(guān)鍵優(yōu)點(diǎn)在于其促進(jìn)通過(guò)圖形處理器自身在片上實(shí)施累積過(guò)程和緩沖器。因此在這種 情況下,圖形處理器將具有“圖塊緩沖器”和“累積緩沖器”。因而,根據(jù)本發(fā)明的第五方面,提供一種操作基于圖塊的圖形處理器的方法,該方法包括
圖形處理器對(duì)將輸出的幀的圖塊執(zhí)行多次再現(xiàn)傳遞序列并且在圖形處理器的存儲(chǔ)器 中累積這些再現(xiàn)傳遞的結(jié)果;以及
一旦其完成了再現(xiàn)傳遞序列并且累積了這些再現(xiàn)傳遞的結(jié)果,就將圖塊的累積結(jié)果輸 出到幀緩沖器。根據(jù)本發(fā)明的第六方面,提供一種基于圖塊的圖形處理器,該圖形處理器包括 存儲(chǔ)器;
用于對(duì)將輸出的幀的圖塊執(zhí)行多次再現(xiàn)傳遞序列并且在圖形處理器的存儲(chǔ)器中累積 這些再現(xiàn)傳遞的結(jié)果的部件;以及
用于一旦完成了再現(xiàn)傳遞序列并且累積了這些再現(xiàn)傳遞的結(jié)果就將圖塊的累積結(jié)果 輸出到幀緩沖器的部件。如本領(lǐng)域的技術(shù)人員將意識(shí)到的,在適當(dāng)?shù)那闆r下,本發(fā)明的這些方面可以并且 優(yōu)選地確實(shí)包括這里描述的本發(fā)明的優(yōu)選和任選特征中的任何一個(gè)或多個(gè)或者所有。因 此,例如,優(yōu)選地依次對(duì)構(gòu)成累積輸出幀的每個(gè)圖塊或者多個(gè)圖塊集合執(zhí)行多次再現(xiàn)傳遞 和累積過(guò)程。類似地,再現(xiàn)傳遞的結(jié)果被累積在其中的圖形處理器的存儲(chǔ)器優(yōu)選地包括(如 下文所討論的)圖形處理器的圖塊緩沖器。在圖塊累積緩沖器被提供在圖形處理器自身上的情況下,則這可以例如通過(guò)在圖 形處理器上提供適當(dāng)?shù)牧硗饩彌_器(存儲(chǔ)器)來(lái)實(shí)現(xiàn)。例如,累積緩沖器可以被提供為位于 “常規(guī)”圖形處理單元外部的片上塊。這可以例如在其中可以為此目的而添加新緩沖器的新 處理器上完成。然而,在特別優(yōu)選的實(shí)施例中,通過(guò)為該目的使用處理器的現(xiàn)有存儲(chǔ)器(即通過(guò)使 用例如因?yàn)槠渚哂辛硪灰呀?jīng)現(xiàn)有功能而無(wú)論以何種方式存在和將要存在的、圖形處理器的 存儲(chǔ)器),在圖形處理器上提供圖塊累積緩沖器。在特別優(yōu)選的這種布置中,在任何情況下都將在圖形處理器上存在的圖塊緩沖器 被用作用于存儲(chǔ)在實(shí)施本發(fā)明時(shí)要使用的“圖塊累積”緩沖器的存儲(chǔ)器。因此,在特別優(yōu)選的實(shí)施例中,圖形處理器的圖塊緩沖器可以并且優(yōu)選地能夠(并 且被配置為)存儲(chǔ)(常規(guī))圖塊緩沖器和正被再現(xiàn)的圖塊的累積“圖塊”。在這些布置中,至少可以使用圖形處理器的現(xiàn)有(已經(jīng)需要和提供的)邏輯來(lái)實(shí)施 本發(fā)明,即沒(méi)有額外成本。類似地,本發(fā)明的這些布置至少可以在現(xiàn)有的圖形處理器上實(shí)施 (由于它們不要求任何另外的邏輯(硬件))并且因此本發(fā)明與現(xiàn)有的圖形處理系統(tǒng)兼容并 且可以在現(xiàn)有的圖形處理系統(tǒng)上實(shí)施。在其中將使用圖形處理器的諸如(一個(gè)或多個(gè))圖塊緩沖器的已存在的存儲(chǔ)器來(lái) 在本發(fā)明的過(guò)程中累積圖塊的結(jié)果的這些布置中,則如本領(lǐng)域的技術(shù)人員將意識(shí)到的,可 能有必要確保存儲(chǔ)器中有用于累積圖塊(或圖塊集合)的結(jié)果的空間。在必要的情況下,這可以按任何所期望的和適當(dāng)?shù)姆绞絹?lái)完成。例如,可以減少正 被執(zhí)行的多重采樣量(例如并且優(yōu)選地,減半),例如從4x減少到h,因?yàn)檫@將然后釋放例 如圖塊緩沖器中的空間。例如,四個(gè)FP16值將使用與兩個(gè)RGBA8888緩沖器相同的存儲(chǔ)量, 因此通過(guò)將這種布置中的多重采樣量從4x減少到h,“釋放的”(不再使用的)樣本(用于 這些樣本的空間)可以用于存儲(chǔ)累積“圖塊”。在一個(gè)優(yōu)選的實(shí)施例中,這被完成。
可選地,不是減少多個(gè)樣本(針對(duì)每個(gè)圖塊存儲(chǔ)的樣本)的數(shù)目,實(shí)際上可以減小 圖塊的尺寸(例如并且優(yōu)選地,減半),以便在圖塊緩沖器中為“累積”圖塊提供“空間”。例 如,在常規(guī)地使用尺寸為16X16采樣點(diǎn)的圖塊緩沖器的系統(tǒng)中,當(dāng)實(shí)施本發(fā)明時(shí),作為替 代,可以使用16X8的圖塊尺寸。這實(shí)際上將用于16X16圖塊的圖塊緩沖器一分為二,一 半是16X8 “常規(guī)”圖塊緩沖器,而另一半是用于圖塊的16X8 “累積”緩沖器。在這種情況 下,當(dāng)使用本發(fā)明時(shí)可以例如保留(即不減少)較高水平的多重采樣,并且對(duì)于累積緩沖器 可以使用較高水平的精度(例如32位值),但是將使用較小的圖塊尺寸對(duì)這些幀進(jìn)行處理。因此,在另一優(yōu)選的實(shí)施例中,當(dāng)使用本發(fā)明時(shí),圖形處理系統(tǒng)對(duì)其進(jìn)行操作的圖 塊的尺寸(與所使用的“常規(guī)”圖塊尺寸(并且例如,(一個(gè)或多個(gè))其圖塊緩沖器被配置為對(duì) 其進(jìn)行處理的圖塊尺寸))優(yōu)選地被減小一半。(這里應(yīng)注意,用于實(shí)施本發(fā)明的上文(和其他)過(guò)程和技術(shù)僅需要在圖形處理系 統(tǒng)進(jìn)行操作以按本發(fā)明的方式對(duì)幀進(jìn)行處理時(shí)使用。在其他情況下圖形處理系統(tǒng)可以照常 操作(例如對(duì)于不需要累積緩沖操作的幀)。)。本發(fā)明中的累積給定圖塊的再現(xiàn)傳遞的結(jié)果的過(guò)程可以按任何適當(dāng)?shù)暮退谕?的方式執(zhí)行。例如,可以針對(duì)整個(gè)圖塊完成相關(guān)的再現(xiàn)傳遞以為該再現(xiàn)傳遞生成經(jīng)適當(dāng)再現(xiàn)的 子圖塊(如上文所討論的),并且一旦完成,然后將該“子圖塊”適當(dāng)?shù)靥砑拥健袄鄯e圖塊”(緩 沖器)。這與其中整個(gè)子幀被再現(xiàn)并且然后在“累積傳遞”中被添加到累積器緩沖器的傳統(tǒng) 累積器緩沖操作類似。因此,在一個(gè)優(yōu)選的實(shí)施例中,本發(fā)明進(jìn)行該操作,并且使用或者包括累積傳遞階 段,即,當(dāng)其完成圖塊的再現(xiàn)傳遞時(shí),其然后在“累積傳遞”中將所得到的再現(xiàn)“子圖塊”添 加到(該圖塊的)“圖塊”累積緩沖器。在這種情況下,例如并且優(yōu)選地,通過(guò)使用圖形處理器的圖塊寫回邏輯或者適當(dāng) 的著色器,可以按所期望的那樣執(zhí)行“累積傳遞”(數(shù)據(jù)從再現(xiàn)“子圖塊”移動(dòng)到“累積緩沖 器”)。在另一特別優(yōu)選的實(shí)施例中,不是在累積該子圖塊(再現(xiàn)傳遞)的結(jié)果之前等待圖 塊的整個(gè)再現(xiàn)傳遞完成(等待生成整個(gè)最終“子圖塊”),累積圖塊(緩沖器)優(yōu)選地隨著再現(xiàn) 傳遞的進(jìn)行而連續(xù)更新。在這種情況下,圖塊的再現(xiàn)結(jié)果將隨著再現(xiàn)傳遞的進(jìn)行而被有效地添加到圖塊累 積緩沖器,而不是完成再現(xiàn)傳遞并且然后在該階段處累積所得到的子圖塊。因此,這實(shí)際上 將消除對(duì)被再現(xiàn)的每個(gè)“子圖塊”之間的分開(kāi)“累積傳遞”的需要,這可能是有利的(例如, 其將允許下一子圖塊立即開(kāi)始,而不是必須等待首先完成累積傳遞)。這可以按所期望的那樣完成,但是在特別優(yōu)選的實(shí)施例中,每當(dāng)在再現(xiàn)傳遞中對(duì) 采樣位置進(jìn)行再現(xiàn)時(shí),如果必要,對(duì)累積緩沖器(圖塊)進(jìn)行更新。換言之,當(dāng)完成再現(xiàn)傳遞期間的采樣位置(的給定實(shí)例)的再現(xiàn)時(shí),如果必要,對(duì)累 積緩沖器中的所討論的再現(xiàn)傳遞(子圖塊)的該采樣位置的累積值進(jìn)行更新,無(wú)需等待確定 子圖塊(再現(xiàn)傳遞)的該采樣位置的最終值。優(yōu)選地,如果必要,每當(dāng)生成了每個(gè)采樣位置或者采樣位置的集合(當(dāng)同時(shí)對(duì)多個(gè) 采樣位置進(jìn)行再現(xiàn)時(shí))的新再現(xiàn)結(jié)果時(shí),用該采樣位置或者多個(gè)采樣位置的再現(xiàn)結(jié)果對(duì)累積緩沖器進(jìn)行更新。申請(qǐng)人:已認(rèn)識(shí)到,在其中累積緩沖器隨著再現(xiàn)的進(jìn)行而被更新的這些布置中,針 對(duì)在再現(xiàn)傳遞期間被再現(xiàn)的采樣點(diǎn)生成的值將被再現(xiàn)圖塊的完成版本中(所討論的“子圖 塊”的最終版本中)的這些采樣點(diǎn)的后來(lái)再現(xiàn)值替換,例如,其中由于透支(over-draw),在 再現(xiàn)傳遞中早先的采樣點(diǎn)值實(shí)際上被后來(lái)的采樣值遮蔽(occlude)。此外,由于累積緩沖器實(shí)際上應(yīng)僅累積所討論的子圖塊與其他子圖塊(再現(xiàn)傳遞) 的“最終”版本(再現(xiàn)傳遞的最終結(jié)果),因此不能簡(jiǎn)單地在累積緩沖器中累積給定采樣位置 的所有中間再現(xiàn)值。因此在本發(fā)明的這些布置中在累積緩沖器中簡(jiǎn)單地累積采樣位置的每一個(gè)新再 現(xiàn)值可能不是適當(dāng)?shù)?,因?yàn)檫@實(shí)際上可能導(dǎo)致累積緩沖器累積錯(cuò)誤值。因此,在特別優(yōu)選的實(shí)施例中,系統(tǒng)被配置和操作以確保僅正被再現(xiàn)的子圖塊中 的每個(gè)采樣位置的當(dāng)前值(即當(dāng)前存儲(chǔ)在圖塊緩沖器中的值)被應(yīng)用到累積緩沖器(在累積 緩沖器中累積)。由于圖塊緩沖器應(yīng)總是保存正被再現(xiàn)的子圖塊的當(dāng)前版本(即在該時(shí)刻在累積緩 沖器中應(yīng)累積的子圖塊的版本),因此如果然后確保累積緩沖器已(僅)累積任何給定采樣 位置的“當(dāng)前”圖塊緩沖器值,則累積緩沖器應(yīng)總是正確的(對(duì)于該時(shí)刻),即使子圖塊的再 現(xiàn)仍未結(jié)束,并且當(dāng)子圖塊(再現(xiàn)傳遞)結(jié)束時(shí)將是正確的。這應(yīng)確保例如,將正確地處理所有透支情形,即使在正在再現(xiàn)“子圖塊”時(shí)正在 執(zhí)行累積,并且因此確保將產(chǎn)生與之后跟著累積緩沖器(具有累積傳遞)的“常規(guī)”過(guò)程 的情況下將產(chǎn)生的累積輸出相同的累積輸出(accordingly ensure that an identical accumulation output will be produced as would be produced as if the "normal" procedure for accumulation buffers (with an accumulation pass) was being followed)。在這些布置中,再現(xiàn)采樣位置優(yōu)選地照常被寫入圖塊緩沖器(S卩,例如由于它們遮 蔽針對(duì)這些采樣位置存儲(chǔ)的現(xiàn)有片元(fragment),當(dāng)它們應(yīng)替換現(xiàn)有的圖塊緩沖器值時(shí)以 及如果它們應(yīng)替換現(xiàn)有的圖塊緩沖器值)。因而,系統(tǒng)優(yōu)選地被操作以隨著再現(xiàn)傳遞按“常規(guī)”方式進(jìn)行而生成圖塊(子圖塊) 的圖塊緩沖器并且然后確??偸菍D塊緩沖器的當(dāng)前值應(yīng)用到所討論的再現(xiàn)傳遞(子圖 塊)的給定采樣位置的累積緩沖器。這可以按所期望的那樣實(shí)現(xiàn),但是在本發(fā)明的這些布置的特別優(yōu)選的實(shí)施例中, 當(dāng)新再現(xiàn)值將被寫入正被再現(xiàn)的子圖塊的采樣位置時(shí),首先從累積緩沖器中適當(dāng)?shù)?即以 適當(dāng)?shù)募訖?quán))減去所討論的子圖塊中的該采樣位置的當(dāng)前值,并且然后將新再現(xiàn)值適當(dāng)?shù)?添加到累積緩沖器。這應(yīng)從而確保實(shí)際上僅子圖塊中的采樣位置的“當(dāng)前”值被應(yīng)用到累 積緩沖器。在一個(gè)優(yōu)選的這樣的實(shí)施例中,首先確定采樣位置的新再現(xiàn)值是否確實(shí)替換正用 于子圖塊中的該采樣位置的現(xiàn)有值,并且如果新值確實(shí)替換現(xiàn)有值,則僅用該新值來(lái)更新 累積緩沖器。(如本領(lǐng)域中已知的,例如并且優(yōu)選地通過(guò)使用適當(dāng)?shù)纳疃?Z)測(cè)試(比較),可 以按所期望的那樣確定采樣位置的新再現(xiàn)值是否替換該采樣位置的現(xiàn)有值。)。這種布置可以按所期望的那樣實(shí)現(xiàn),但是在特別優(yōu)選的實(shí)施例中通過(guò)如下方式實(shí)現(xiàn)當(dāng)覆蓋正被再現(xiàn)的子圖塊的一個(gè)或多個(gè)采樣位置的新片元退出再現(xiàn)管線(pipeline) 時(shí),從(一個(gè)或多個(gè))這些采樣位置的累積緩沖器中適當(dāng)?shù)販p去由新片元覆蓋的(一個(gè)或多 個(gè))采樣位置的現(xiàn)有圖塊緩沖器值并且然后將由新片元覆蓋的(一個(gè)或多個(gè))采樣位置的 (一個(gè)或多個(gè))(新再現(xiàn)的)圖塊緩沖器值添加(累積)到(一個(gè)或多個(gè))這些采樣位置的累積 緩沖器。(如本領(lǐng)域中已知的,再現(xiàn)過(guò)程典型地通過(guò)如下方式執(zhí)行將正被處理以顯示圖像 的采樣點(diǎn)“表示”為通常被稱為“片元”的對(duì)其執(zhí)行圖像再現(xiàn)操作(諸如著色)的離散圖形實(shí) 體。每個(gè)采樣點(diǎn)實(shí)際上將由片元表示,該片元將用于對(duì)所討論的采樣點(diǎn)著色。片元可以表 示(與其關(guān)聯(lián))單個(gè)采樣點(diǎn)或多個(gè)采樣點(diǎn)。因而“片元”是經(jīng)過(guò)再現(xiàn)過(guò)程(再現(xiàn)管線)的圖形 實(shí)體。)。在另一優(yōu)選的這樣的實(shí)施例中,當(dāng)采樣位置將被再現(xiàn)時(shí),從該采樣位置的累積緩 沖器值中適當(dāng)?shù)販p去應(yīng)用到所討論的子圖塊的該采樣位置的累積緩沖器的當(dāng)前值,并且然 后,在對(duì)采樣位置進(jìn)行再現(xiàn)之后,該子圖塊的圖塊緩沖器中的該采樣位置的當(dāng)前值(其可以 是新再現(xiàn)值,其中新值替換采樣位置的舊值,或者可以是采樣位置的前一(現(xiàn)有)當(dāng)前值(其 中新值未替換先前存儲(chǔ)的值))被適當(dāng)?shù)靥砑?累積)到所討論的采樣位置的累積緩沖器值。因此,在一個(gè)特別優(yōu)選的實(shí)施例中,在圖塊正被再現(xiàn)(經(jīng)歷其再現(xiàn)傳遞中的一個(gè)) 時(shí),當(dāng)表示一個(gè)或多個(gè)采樣位置的片元進(jìn)入再現(xiàn)過(guò)程(管線)時(shí),從所討論的圖塊的這些采 樣位置的(一個(gè)或多個(gè))累積緩沖器值中適當(dāng)?shù)販p去所討論的再現(xiàn)傳遞的該片元(該片元表 示的(一個(gè)或多個(gè))采樣位置)的當(dāng)前圖塊緩沖器值,并且然后,當(dāng)該片元完成其再現(xiàn)時(shí),片 元再現(xiàn)之后的采樣位置的(一個(gè)或多個(gè))當(dāng)前圖塊緩沖器值被適當(dāng)?shù)靥砑?累積)到所討論 的圖塊的這些采樣位置的(一個(gè)或多個(gè))累積緩沖器值。在本發(fā)明的這些實(shí)施例的優(yōu)選布置中,累積緩沖器存儲(chǔ)定點(diǎn)值。為使該技術(shù)令人 滿意地工作,這可能在一些環(huán)境中是必要的。如上文所討論的,針對(duì)輸出幀的圖塊生成的“累積”輸出圖塊的集合應(yīng)被組合以提 供總體輸出累積幀。這通過(guò)一旦每個(gè)輸出“累積”圖塊(其將被存儲(chǔ)在圖塊“累積緩沖器” 中)準(zhǔn)備好就將其寫入例如幀緩沖器來(lái)完成。然后,當(dāng)所有輸出累積圖塊均已被寫入例如幀 緩沖器時(shí),輸出幀完成并且可以例如并且優(yōu)選地被顯示(或者按所期望的那樣以另外的方 式輸出)。這里應(yīng)注意,本發(fā)明可以用于可以使用圖形處理器來(lái)提供的任何適當(dāng)形式的累積 輸出。因而,盡管在一個(gè)特別優(yōu)選的實(shí)施例中,在輸出幀預(yù)期形成用于(例如,在屏幕或者 打印機(jī)上)顯示的圖像的情況下(在這種情況下,如本領(lǐng)域中已知的,輸出幀將被存儲(chǔ)在幀 緩沖器中)使用本發(fā)明,但是在輸出幀未預(yù)期用于顯示的情況下,例如在輸出幀(再現(xiàn)目標(biāo)) 是正在使用圖形處理器生成的紋理的情況下(例如在“再現(xiàn)到紋理”操作中),或者實(shí)際上, 在正在使用圖形處理器生成的輸出是任何其他形式的數(shù)據(jù)陣列的情況下,也可以使用本發(fā) 明。因此,在上下文允許的情況下,這里提到由圖形處理器生成的“輸出幀”應(yīng)被視為不僅 包括用于顯示的幀,而且在適當(dāng)?shù)那闆r下包括其他適當(dāng)?shù)脑佻F(xiàn)目標(biāo),諸如圖形處理器正在 生成的作為其輸出的紋理或者其他表面。輸出累積圖塊可以按所期望的那樣被寫入幀緩沖器,并且如果需要,可以例如經(jīng) 歷作為該過(guò)程的一部分的進(jìn)一步處理,諸如下采樣。為此目的優(yōu)選地使用用于將圖塊寫入幀緩沖器的“常規(guī)”過(guò)程??梢园慈魏嗡谕暮瓦m當(dāng)?shù)姆绞街噶詈涂刂茍D形處理器以按本發(fā)明的方式進(jìn) 行操作。如本領(lǐng)域的技術(shù)人員將意識(shí)到的,按本發(fā)明的方式的操作優(yōu)選地通過(guò)如下方式觸 發(fā)圖形處理器的驅(qū)動(dòng)器(軟件)(其將例如在圖形處理器耦合到的主機(jī)系統(tǒng)或者處理器上 運(yùn)行)例如響應(yīng)于來(lái)自在主機(jī)上運(yùn)行的應(yīng)用程序的顯示“累積幀”的請(qǐng)求,向圖形處理器發(fā) 送適當(dāng)?shù)拿钚蛄?。在特別優(yōu)選的實(shí)施例中,對(duì)于待處理的每個(gè)圖塊,用于觸發(fā)和控制按本發(fā)明的方 式的操作的命令序列包括“開(kāi)始新圖塊”命令(其將觸發(fā)所討論的圖塊的第一再現(xiàn)傳遞(生 成第一“子圖塊”));以及然后的“開(kāi)始新子圖塊”命令序列,針對(duì)圖塊將經(jīng)歷的每個(gè)剩余再 現(xiàn)傳遞有一個(gè)命令。如上文所討論的,這些命令應(yīng)使圖形處理器對(duì)將累積的適當(dāng)?shù)摹白訄D 塊”序列進(jìn)行再現(xiàn)以提供輸出“累積”圖塊。在這種布置中,“開(kāi)始新圖塊”命令優(yōu)選地清除將用于該圖塊的圖塊緩沖器和將用 于該圖塊的累積緩沖器(在其信號(hào)通知新圖塊的開(kāi)始時(shí)),但是開(kāi)始新子圖塊命令應(yīng)僅清除 圖塊緩沖器而非累積緩沖器。開(kāi)始新圖塊命令和開(kāi)始新子圖塊命令優(yōu)選地還指示在將所討論的子圖塊累積到 累積圖塊時(shí)將使用的權(quán)重。(如本領(lǐng)域中已知的,其通常還將指明將應(yīng)用到在累積緩沖過(guò)程 中對(duì)累積幀有貢獻(xiàn)的每個(gè)“子幀”的權(quán)重,并且因此這在本發(fā)明中也將需要考慮。在開(kāi)始新 圖塊/子圖塊命令中指明將使用的權(quán)重是一種實(shí)現(xiàn)此的便利方法。)。在特別優(yōu)選的實(shí)施例中,圖形處理器的驅(qū)動(dòng)器還將進(jìn)入累積緩沖器中的所有再現(xiàn) 傳遞(子幀)組合為圖形處理器的單個(gè)任務(wù)。這然后促進(jìn)依次針對(duì)每個(gè)圖塊(或圖塊集合)一 個(gè)接一個(gè)地執(zhí)行再現(xiàn)傳遞。認(rèn)為,圖形處理器的驅(qū)動(dòng)器的這種操作可以憑其自身的特征是新型的和有利的。因而根據(jù)本發(fā)明的第七方面,提供一種操作基于圖塊的圖形處理器的驅(qū)動(dòng)器的方 法,該方法包括
驅(qū)動(dòng)器
接收將輸出需要累積緩沖操作的幀的指令; 將幀的進(jìn)入累積緩沖器中的子幀組合為圖形處理器的單個(gè)任務(wù); 準(zhǔn)備命令序列并且將其發(fā)送到圖形處理器,對(duì)于將輸出的幀的每個(gè)圖塊,該命令序列 包括開(kāi)始新圖塊命令和開(kāi)始新子圖塊命令序列,每個(gè)這樣的命令指令圖形處理器對(duì)于所討 論的圖塊開(kāi)始在所需用于幀的累積緩沖操作的再現(xiàn)傳遞序列中的一次再現(xiàn)傳遞。根據(jù)本發(fā)明的第八方面,提供一種基于圖塊的圖形處理器的驅(qū)動(dòng)器,該驅(qū)動(dòng)器包 括
用于響應(yīng)于接收到將輸出需要累積緩沖操作的幀的指令,將幀的進(jìn)入累積緩沖器中的 子幀組合為圖形處理器的單個(gè)任務(wù)的部件;以及
用于準(zhǔn)備命令序列并且將其發(fā)送到圖形處理器的部件,對(duì)于將輸出的幀的每個(gè)圖塊, 該命令序列包括開(kāi)始新圖塊命令和開(kāi)始新子圖塊命令序列,每個(gè)這樣的命令指令圖形處理 器對(duì)于所討論的圖塊開(kāi)始在所需用于幀的累積緩沖操作的再現(xiàn)傳遞序列中的一次再現(xiàn)傳 遞。
如本領(lǐng)域的技術(shù)人員將意識(shí)到的,在適當(dāng)?shù)那闆r下,本發(fā)明的這些方面可以并且 優(yōu)選地確實(shí)包括這里描述的本發(fā)明的優(yōu)選和任選特征中的任何一個(gè)或多個(gè)或者所有。例 如,開(kāi)始新圖塊/子圖塊命令優(yōu)選地具有上文討論的(一種或多種)形式。類似地,圖形處理器優(yōu)選地響應(yīng)于接收到來(lái)自驅(qū)動(dòng)器的命令序列而按本發(fā)明的方 式進(jìn)行操作。實(shí)際上,將意識(shí)到,響應(yīng)于接收到來(lái)自其驅(qū)動(dòng)器的這種命令序列,圖形處理器將進(jìn) 行操作以使輸出幀的圖塊經(jīng)歷再現(xiàn)傳遞序列并且因此累積這些再現(xiàn)傳遞序列的結(jié)果。這將 針對(duì)輸出幀將被劃分成的每個(gè)圖塊來(lái)完成。因而,根據(jù)本發(fā)明的第九方面,提供一種在基于圖塊的圖形處理系統(tǒng)中處理輸出 幀的圖塊的方法,該方法包括
使圖塊經(jīng)歷多次再現(xiàn)傳遞序列中的第一再現(xiàn)傳遞并且將所得到的再現(xiàn)圖塊存儲(chǔ)在該 圖塊的累積緩沖器中;
使圖塊經(jīng)歷所定義的再現(xiàn)傳遞序列中的第二再現(xiàn)傳遞并且將該再現(xiàn)傳遞的結(jié)果累積 到該圖塊的累積緩沖器中;以及
針對(duì)再現(xiàn)傳遞序列中的每次剩余再現(xiàn)傳遞重復(fù)該過(guò)程; 以便生成表示圖塊的多次再現(xiàn)傳遞的累積結(jié)果的圖塊輸出;以及 向輸出再現(xiàn)目標(biāo),優(yōu)選地向幀緩沖器輸出圖塊的累積圖塊輸出。根據(jù)本發(fā)明的第十方面,提供一種基于圖塊的圖形處理系統(tǒng),該圖形處理系統(tǒng)包 括
用于使輸出幀的圖塊經(jīng)歷多次再現(xiàn)傳遞序列中的第一再現(xiàn)傳遞并且用于將所得到的 再現(xiàn)圖塊存儲(chǔ)在圖塊的累積緩沖器中的部件;
用于使圖塊經(jīng)歷再現(xiàn)傳遞序列中的第二再現(xiàn)傳遞并且用于將該再現(xiàn)傳遞的結(jié)果累積 到圖塊的累積緩沖器中的部件;以及
用于針對(duì)再現(xiàn)傳遞序列中的每次剩余再現(xiàn)傳遞重復(fù)該過(guò)程的部件; 以便生成表示圖塊的多次再現(xiàn)傳遞的累積結(jié)果的圖塊輸出;以及 用于向輸出再現(xiàn)目標(biāo),優(yōu)選地向幀緩沖器輸出圖塊的累積圖塊輸出的部件。如本領(lǐng)域的技術(shù)人員將意識(shí)到的,在適當(dāng)?shù)那闆r下,本發(fā)明的這些方面可以并且 優(yōu)選地確實(shí)包括這里描述的本發(fā)明的優(yōu)選和任選特征中的任何一個(gè)或多個(gè)或者所有。因而,例如,優(yōu)選地針對(duì)輸出幀將被劃分成的每個(gè)圖塊重復(fù)該過(guò)程。在這種情況下,在基于圖塊的圖形處理系統(tǒng)中,該方法或系統(tǒng)將因此包括用于處 理構(gòu)成輸出幀的至少一部分的圖塊集合的步驟或部件,包括如下步驟或用于如下步驟的部 件
使圖塊集合的第一圖塊經(jīng)歷再現(xiàn)傳遞序列中的第一再現(xiàn)傳遞并且將所得到的再現(xiàn)圖 塊存儲(chǔ)在圖塊的累積緩沖器中;
使第一圖塊經(jīng)歷再現(xiàn)傳遞序列中的第二再現(xiàn)傳遞并且將該再現(xiàn)傳遞的結(jié)果累積到圖 塊的累積緩沖器中;以及
針對(duì)再現(xiàn)傳遞序列中的每次剩余再現(xiàn)傳遞重復(fù)該過(guò)程以生成表示圖塊的多次再現(xiàn)傳 遞的累積結(jié)果的圖塊輸出;以及
向輸出再現(xiàn)目標(biāo),優(yōu)選地向幀緩沖器輸出圖塊的累積圖塊輸出;以及此后,使圖塊集合的第二圖塊經(jīng)歷再現(xiàn)傳遞序列中的第一再現(xiàn)傳遞并且將所得到的再現(xiàn)圖 塊存儲(chǔ)在第二圖塊的累積緩沖器中;
使圖塊序列的第二圖塊經(jīng)歷再現(xiàn)傳遞序列中的第二再現(xiàn)傳遞并且將該再現(xiàn)傳遞的結(jié) 果累積到該圖塊的累積緩沖器中;以及
針對(duì)再現(xiàn)傳遞序列中的每次剩余再現(xiàn)傳遞重復(fù)該過(guò)程以生成表示第二圖塊的多次再 現(xiàn)傳遞的累積結(jié)果的圖塊輸出;以及
一旦第二圖塊的再現(xiàn)傳遞序列的累積結(jié)果完成;
向輸出再現(xiàn)目標(biāo),優(yōu)選地向幀緩沖器輸出第二圖塊的累積圖塊輸出;以及
針對(duì)圖塊集合中的剩余圖塊重復(fù)該過(guò)程。這里還應(yīng)意識(shí)到,雖然在正在處理輸出累積幀時(shí)將遵循并且基本上應(yīng)遵循上文討 論的一個(gè)接一個(gè)地處理圖塊(或圖塊集合)的序列,但是仍然有一些圖塊的處理之前沒(méi)有其 他圖塊的處理并且有一些圖塊的處理之后沒(méi)有其他圖塊的處理。例如,最后處理的(一個(gè)或 多個(gè))圖塊之后沒(méi)有另外圖塊的處理(由于然后輸出幀將結(jié)束)。因此,例如,上文提到的圖 塊集合(序列)將包括來(lái)自幀的“中間,,的圖塊集合或序列,并且例如對(duì)于輸出幀的末尾圖 塊,實(shí)際上未精確地遵循該處理序列。本發(fā)明的各種功能可以按任何所期望的和適當(dāng)?shù)姆绞綀?zhí)行。例如,本發(fā)明的功能 可以按所期望的那樣以硬件或軟件實(shí)施。因而,例如,本發(fā)明的各種功能元件和“部件”可以 包括可操作用于執(zhí)行各種功能等的適當(dāng)?shù)囊粋€(gè)或多個(gè)處理器、功能單元、電路、處理電路、 管理電路、邏輯、處理邏輯、微處理器布置等,諸如可以被編程為按所期望的方式操作的適 當(dāng)?shù)膶S糜布?或可編程硬件元件。在優(yōu)選的實(shí)施例中,圖形處理器被實(shí)施為硬件元件(例如ASIC)。因此,在另一方 面,本發(fā)明包括硬件元件,該硬件元件包括這里描述的本發(fā)明的任何一個(gè)或多個(gè)方面的裝 置或者根據(jù)本發(fā)明的任何一個(gè)或多個(gè)方面的方法操作的裝置。在特別優(yōu)選的實(shí)施例中,圖形處理器包括單個(gè)圖形處理平臺(tái),其生成和輸出被寫 入顯示設(shè)備的幀緩沖器的圖形數(shù)據(jù)。這里還應(yīng)注意,如本領(lǐng)域的技術(shù)人員將意識(shí)到的,本發(fā)明的各種功能等可以在給 定的處理器上復(fù)制和/或并行地執(zhí)行。本發(fā)明適用于任何形式或配置的(基于圖塊的)圖形處理器和再現(xiàn)器,諸如具有 “管線式”再現(xiàn)布置的處理器(在這種情況下再現(xiàn)器將具有再現(xiàn)管線的形式)。如將根據(jù)上文意識(shí)到的,本發(fā)明特別(盡管并非排他性地)適用于3D圖形處理器和 處理設(shè)備,并且因此擴(kuò)展到包括這里描述的本發(fā)明的任何一個(gè)或多個(gè)方面的裝置或者根據(jù) 本發(fā)明的任何一個(gè)或多個(gè)方面的方法操作的裝置的3D圖形處理器和3D圖形處理平臺(tái)。以 為執(zhí)行上文討論的特定功能所需的任何硬件為準(zhǔn),這種3D圖形處理器可以另外包括3D圖 形處理器包括的常規(guī)功能單元等中的任何一個(gè)或多個(gè)或者所有。本領(lǐng)域的技術(shù)人員還將意識(shí)到,在適當(dāng)?shù)那闆r下,本發(fā)明的所有所描述的方面和 實(shí)施例可以包括這里描述的優(yōu)選和任選特征中的任何一個(gè)或多個(gè)或者所有。根據(jù)本發(fā)明的方法可以至少部分地使用例如計(jì)算機(jī)程序的軟件來(lái)實(shí)施。因而將了 解,當(dāng)從另外的方面觀察時(shí),本發(fā)明提供計(jì)算機(jī)軟件,其在被安裝在數(shù)據(jù)處理部件上時(shí)特 別適于執(zhí)行這里描述的方法;計(jì)算機(jī)程序元件,其包括用于在該程序元件在數(shù)據(jù)處理部件上運(yùn)行時(shí)執(zhí)行這里描述的方法的計(jì)算機(jī)軟件代碼部分;以及計(jì)算機(jī)程序,其包括在該程序 在數(shù)據(jù)處理系統(tǒng)上運(yùn)行時(shí)適于執(zhí)行這里描述的一種或多種方法的所有步驟的代碼部件。數(shù) 據(jù)處理系統(tǒng)可以是微處理器、可編程FPGA (現(xiàn)場(chǎng)可編程門陣列)等。本發(fā)明還擴(kuò)展到計(jì)算機(jī)軟件載體,其包括在用于操作圖形處理器、再現(xiàn)器或者包 括數(shù)據(jù)處理部件的微處理器系統(tǒng)時(shí)結(jié)合所述數(shù)據(jù)處理部件使所述處理器、再現(xiàn)器或系統(tǒng)執(zhí) 行本發(fā)明的方法的步驟的這種軟件。這種計(jì)算機(jī)軟件載體可以是諸如ROM芯片、CD ROM或 盤的物理存儲(chǔ)介質(zhì),或者可以是諸如導(dǎo)線上的電子信號(hào)、光信號(hào)或者無(wú)線電信號(hào)(諸如針對(duì) 衛(wèi)星等)的信號(hào)。將進(jìn)一步意識(shí)到,并非本發(fā)明的方法的所有步驟都需要由計(jì)算機(jī)軟件執(zhí)行并且因 而根據(jù)另外的廣泛方面,本發(fā)明提供用于執(zhí)行這里闡述的方法的至少一個(gè)步驟的計(jì)算機(jī)軟 件和安裝在計(jì)算機(jī)軟件載體上的這種軟件。因此本發(fā)明可以適當(dāng)?shù)乇粚?shí)施為與計(jì)算機(jī)系統(tǒng)一起使用的計(jì)算機(jī)程序產(chǎn)品。這種 實(shí)施方式可以包括均固定在諸如非暫時(shí)性計(jì)算機(jī)可讀介質(zhì)(例如,盤、CD ROM、ROM或者硬 盤)的有形介質(zhì)上的一系列計(jì)算機(jī)可讀指令。其還可以包括可經(jīng)由調(diào)制解調(diào)器或者其他接 口設(shè)備、通過(guò)包括但不限于光學(xué)或者模擬通信線路的任一有形介質(zhì)、或者使用包括但不限 于微波、紅外或者其他傳送技術(shù)的無(wú)線技術(shù)無(wú)形地傳送到計(jì)算機(jī)系統(tǒng)的一系列計(jì)算機(jī)可讀 指令。計(jì)算機(jī)可讀指令系列實(shí)施本文前面描述的所有或部分功能。本領(lǐng)域的技術(shù)人員將意識(shí)到,這些計(jì)算機(jī)可讀指令可以以許多編程語(yǔ)言編寫以 與許多計(jì)算機(jī)架構(gòu)或者操作系統(tǒng)一起使用。此外,可以使用包括但不限于半導(dǎo)體、磁或者 光的目前的或者未來(lái)的任何存儲(chǔ)器技術(shù)來(lái)存儲(chǔ)這些指令,或者使用包括但不限于光、紅外 或者微波的目前的或者未來(lái)的任何通信技術(shù)來(lái)傳送這些指令。預(yù)期的是,這種計(jì)算機(jī)程 序產(chǎn)品可以被分發(fā)為具有伴隨的印刷或電子文件的可移動(dòng)介質(zhì)(例如,現(xiàn)成套裝(shrink wrapped)軟件),例如與計(jì)算機(jī)系統(tǒng)一起預(yù)先裝載在系統(tǒng)ROM或固定盤上,或者通過(guò)例如因 特網(wǎng)或萬(wàn)維網(wǎng)的網(wǎng)絡(luò)從服務(wù)器或者電子公告牌進(jìn)行分發(fā)。
現(xiàn)將僅通過(guò)示例方式并且參照附圖來(lái)描述本發(fā)明的許多優(yōu)選的實(shí)施例,在附圖 中
圖1示意性地示出本發(fā)明的實(shí)施例的主要操作; 圖2示意性地示出用于實(shí)施本發(fā)明的適當(dāng)?shù)膱D形處理器架構(gòu); 圖3示意性地示出實(shí)施本發(fā)明的一個(gè)優(yōu)選方法;以及 圖4和5示意性地示出實(shí)施本發(fā)明的另一優(yōu)選方法。
具體實(shí)施例方式如上文討論的,本發(fā)明涉及圖形處理系統(tǒng)中的“累積緩沖”過(guò)程,并且具體地涉及 用于在基于圖塊的圖形處理系統(tǒng)中實(shí)施這種操作的優(yōu)選的和創(chuàng)新的系統(tǒng)和方法。如本領(lǐng)域中已知的,“累積緩沖”過(guò)程基本上牽涉例如從若干不同視角對(duì)輸出幀 的多個(gè)不同版本進(jìn)行再現(xiàn),并且然后累積這些結(jié)果作為單個(gè)輸出“累積”幀。該操作典型地 用于模擬諸如景深、運(yùn)動(dòng)模糊、軟陰影和圖形保真的不同效果。
圖1示出本發(fā)明的基本概念。圖IA示意性地示出已被劃分成多個(gè)圖塊或子區(qū)域2、3、4和5的幀1,如本領(lǐng)域中 已知的,每個(gè)圖塊將被分開(kāi)地再現(xiàn)并且然后被組合以提供用于顯示的輸出幀。(圖IA為清楚起見(jiàn)示出被劃分成四個(gè)圖塊的幀。如本領(lǐng)域的技術(shù)人員將意識(shí)到的, 給定的幀將典型地被劃分成比四個(gè)圖塊更多的圖塊。)。圖IB示意性地示出將應(yīng)用到圖IA中示出的幀1的傳統(tǒng)“累積緩沖”操作。因而, 如圖IB中所示,如本領(lǐng)域中已知的,幀1的多個(gè)不同版本1’、1"、1’ “、被再現(xiàn)并且一起 累積以提供輸出“累積”巾貞6。在這種情況下,并且如本領(lǐng)域中已知的,第一再現(xiàn)傳遞將完整 地生成對(duì)累積輸出幀6有貢獻(xiàn)的第一子幀1’。然后第二不同再現(xiàn)傳遞將生成第二整個(gè)子幀 1",其將再次地被累積到最終累積輸出幀6中,以此類推。圖IC示意性地示出如何根據(jù)本發(fā)明的實(shí)施例執(zhí)行用于生成累積幀6的累積緩沖 操作。如圖IC中所示,不是依次完整地對(duì)每個(gè)子幀1’ UM' 〃和進(jìn)行再現(xiàn),在根據(jù)本 發(fā)明的實(shí)施例的系統(tǒng)中,每個(gè)單獨(dú)圖塊2、3、4和5單獨(dú)地經(jīng)歷不同再現(xiàn)傳遞并且被累積。因而,例如,在圖塊2的情況下,針對(duì)該圖塊執(zhí)行第一再現(xiàn)傳遞以生成子圖塊2’, 并且然后針對(duì)該圖塊執(zhí)行第二再現(xiàn)傳遞以生成與圖塊的第一版本2’累積的圖塊的第二版 本2〃,并且然后執(zhí)行第三再現(xiàn)傳遞以生成再次與圖塊的先前再現(xiàn)版本累積的圖塊的第三版 本2’ ",以此類推,以提供圖塊的最終輸出累積版本2a。。。然后提供累積輸出圖塊2a。。作為輸 出以形成總體累積輸出幀6的輸出圖塊2。然后針對(duì)構(gòu)成輸出幀6的每個(gè)剩余單獨(dú)圖塊3、4和5重復(fù)該操作,并且將單獨(dú)的 累積圖塊2Arc、3皿、4a。。和5a。。組合在一起以提供輸出累積幀6。因而,如果將圖IB中示出的傳統(tǒng)累積緩沖布置視為生成若干子幀(幀1’ UM' 〃 和1""),這些子幀通過(guò)這些若干子幀的累積而一起對(duì)最終圖像6有貢獻(xiàn),則如圖IC中所示 的本實(shí)施例的概念可以類似地被視為牽涉到針對(duì)構(gòu)成輸出幀的每個(gè)單獨(dú)圖塊生成若干子 圖塊(例如2’、2"、2’ 〃和2""),這些子圖塊累積在一起以對(duì)最終累積圖塊(例如2a。。)有貢 獻(xiàn),該最終累積圖塊然后成為所討論的圖塊的輸出版本。然后組合每個(gè)這樣的輸出累積圖 塊以提供總體累積輸出幀6。因此,類似地,本實(shí)施例的再現(xiàn)順序是在移動(dòng)到下一圖塊(或圖塊集合)之前,對(duì)一 個(gè)特定圖塊(或者如下文將進(jìn)一步討論的,多個(gè)特定圖塊的集合)的所有“子圖塊”進(jìn)行再 現(xiàn)(以執(zhí)行和累積所有再現(xiàn)傳遞)。(與此相比,傳統(tǒng)的累積緩沖操作可以被視為生成包括幀 的所有圖塊的子幀并且一旦生成了該子幀,則生成包括幀的所有圖塊的下一子幀,以此類推)。以另一方式來(lái)看,在傳統(tǒng)的累積緩沖操作中,針對(duì)幀的所有圖塊執(zhí)行為生成累積 幀所需的再現(xiàn)傳遞序列中的第一再現(xiàn)傳遞以生成第一子幀,并且僅在該第一子幀已被生成 時(shí),才再次跨越幀的所有圖塊執(zhí)行第二再現(xiàn)傳遞序列以生成第二子幀,以此類推。與此相比,在本實(shí)施例中,將針對(duì)圖塊執(zhí)行序列中的第一再現(xiàn)傳遞,并且然后當(dāng)該 圖塊的第一再現(xiàn)傳遞完成時(shí),將針對(duì)該相同圖塊執(zhí)行累積輸出幀序列中的第二再現(xiàn)傳遞以 生成該圖塊的第二子圖塊,而無(wú)需等待針對(duì)幀的所有圖塊執(zhí)行第一再現(xiàn)傳遞,以此類推,直 至所討論的圖塊的所有再現(xiàn)傳遞完成。然后系統(tǒng)將移動(dòng)到輸出幀的另一圖塊。換言之,在 本實(shí)施例中,再現(xiàn)順序?qū)⑹沟迷诓挥玫却敵鰩钠渌麍D塊的再現(xiàn)傳遞完成的情況下(且優(yōu)選地在移動(dòng)到輸出幀的下一圖塊之前)將對(duì)一個(gè)特定圖塊的所有“子圖塊”進(jìn)行再現(xiàn)。如將更詳細(xì)討論的,在本實(shí)施例的布置中,可以如圖IC中所示,可以一個(gè)接一個(gè) 地依次處理每個(gè)單獨(dú)圖塊2、3、4、5,或者可選地,將有可能一起處理兩個(gè)或更多個(gè)單獨(dú)圖 塊,使得例如作為多個(gè)圖塊的多個(gè)不同集合對(duì)構(gòu)成輸出幀的圖塊進(jìn)行有效的處理。例如,對(duì)于圖IC中圖示的布置,可以同時(shí)處理圖塊2、3的對(duì),并且然后,當(dāng)這些圖 塊結(jié)束時(shí),然后可以處理圖塊4和5的對(duì)。就是說(shuō),這里應(yīng)理解,盡管在該布置中可以同時(shí) 處理圖塊2、3的對(duì),但是情況仍然是,對(duì)每個(gè)圖塊仍與其他圖塊分開(kāi)地執(zhí)行累積和多次再 現(xiàn)傳遞,僅僅是圖塊2和3的處理可以例如被交織以便允許同時(shí)執(zhí)行這些圖塊的過(guò)程。圖2示意性地示出可以根據(jù)本發(fā)明操作的圖形處理器的實(shí)施例。圖2中示出的圖形處理器包括光柵化器50,如本領(lǐng)域中已知的,其接收用于再現(xiàn) 的圖形基元,將基元光柵化為采樣點(diǎn)并且生成具有用于對(duì)基元進(jìn)行再現(xiàn)的適當(dāng)位置(表示 適當(dāng)?shù)牟蓸游恢?的圖形片元。然后存在再現(xiàn)管線形式的再現(xiàn)器51,其從光柵化器50接收用于再現(xiàn)的圖形片元 并且對(duì)這些圖形片元應(yīng)用許多再現(xiàn)操作,諸如紋理映射、霧化、混合等,以生成例如用于顯 示片元的適當(dāng)?shù)钠獢?shù)據(jù)。來(lái)自再現(xiàn)器51的再現(xiàn)片元數(shù)據(jù)被存儲(chǔ)在再現(xiàn)管線的圖塊緩沖 器52中以用于后續(xù)的處理。如本領(lǐng)域中已知的,圖塊緩沖器52存儲(chǔ)表示再現(xiàn)過(guò)程的輸出幀的(例如,待顯示 的輸出幀的)一部分的片元數(shù)據(jù)陣列。一旦處理了每個(gè)圖塊,則將其數(shù)據(jù)導(dǎo)出到適當(dāng)?shù)膬?chǔ)存 器,并且然后對(duì)下一圖塊進(jìn)行處理,以此類推,直至處理了足夠的圖塊以提供整個(gè)輸出幀。在本實(shí)施例中,圖塊緩沖器52在常規(guī)操作中被配置為存儲(chǔ)尺寸為16X 16采樣位 置的圖塊,并且對(duì)于每個(gè)采樣點(diǎn)存儲(chǔ)四個(gè)FP16值。當(dāng)然,其他布置將是可能的。圖塊緩沖器52可以被提供為分開(kāi)的緩沖器,或者實(shí)際上所有都可以是相同較大 緩沖器的一部分。它們位于圖形處理器上(本地)。如下文將進(jìn)一步討論的,當(dāng)在本實(shí)施例中實(shí)施本發(fā)明時(shí),對(duì)圖塊緩沖器52的操作 進(jìn)行修改。如本領(lǐng)域中已知的,來(lái)自圖塊緩沖器52的數(shù)據(jù)被輸入到下采樣單元53,并且由此 輸出到顯示設(shè)備55的幀緩沖器M (其可以不在圖形處理器自身上)以用于顯示在顯示設(shè)備 上。顯示設(shè)備55可以包括例如,包括像素陣列的顯示器,諸如計(jì)算機(jī)監(jiān)視器,或者打印機(jī)。下采樣單元53將圖塊緩沖器中存儲(chǔ)的片元數(shù)據(jù)下采樣至顯示設(shè)備55的適當(dāng)?shù)姆?辨率(即,使得生成與顯示設(shè)備的像素對(duì)應(yīng)的像素?cái)?shù)據(jù)陣列)。在本實(shí)施例中,當(dāng)圖形處理器按本發(fā)明的方式正在操作時(shí),對(duì)圖塊緩沖器52的操 作進(jìn)行修改以便在正在累積給定圖塊的“子圖塊”序列時(shí)為給定圖塊提供必要的“累積緩沖 器”存儲(chǔ)。(如從上文將意識(shí)到的,例如在按圖3中示出的方式正對(duì)子圖塊2’、2"、2’〃和2"" 的序列進(jìn)行處理時(shí),隨著再現(xiàn)的進(jìn)行,將需要把再現(xiàn)每個(gè)這種“子圖塊”的結(jié)果累積在一起, 該累積的再現(xiàn)結(jié)果然后將最終提供輸出累積圖塊2Arc。因此有必要提供用于隨著再現(xiàn)的進(jìn) 行而累積子圖塊的“累積緩沖器”。這類似于提供用于在“傳統(tǒng)的”累積緩沖實(shí)施方式中對(duì) 每個(gè)子幀進(jìn)行處理時(shí)累積每個(gè)子幀的結(jié)果的累積緩沖器。然而,在本發(fā)明中,“累積緩沖器” 每次僅需要累積圖塊(或圖塊集合)而非全幀。)。
在圖2中示出的布置中,用于在按本發(fā)明的方式對(duì)給定圖塊進(jìn)行處理時(shí)存儲(chǔ)給定 圖塊的累積再現(xiàn)結(jié)果的累積緩沖器被提供為圖形處理器的圖塊緩沖器52中的緩沖器。因而,如圖2所示,對(duì)于正在按本發(fā)明的方式處理的給定圖塊,圖塊緩沖器52將 被配置為提供正被處理的圖塊的“常規(guī)”圖塊緩沖器56和該圖塊的累積圖塊“累積緩沖 器” 57。然后并且如下文將進(jìn)一步討論的,當(dāng)圖塊經(jīng)歷給定的再現(xiàn)傳遞以生成諸如圖IC 中示出的子圖塊2’的子圖塊時(shí),該圖塊將被存儲(chǔ)在圖塊緩沖器56中并且所得到的再現(xiàn)子 圖塊然后被累積到累積緩沖器57中。一旦諸如子圖塊2’的給定子圖塊已被完全再現(xiàn)時(shí),圖塊緩沖器56然后將被清除 并且將諸如子圖塊2"的下一子圖塊再現(xiàn)到其中。所得到的再現(xiàn)子圖塊2"將被累積到累積 緩沖器57中(使得在該階段,累積緩沖器57將存儲(chǔ)子圖塊2’和2"的適當(dāng)累積的再現(xiàn)結(jié) 果)。圖塊緩沖器56然后將被清除并且對(duì)諸如子圖塊2’ “的下一子圖塊進(jìn)行再現(xiàn),并且 該子圖塊的結(jié)果被累積到累積緩沖器57中,以此類推。然后,一旦輸出幀的給定圖塊的所有子圖塊均已被再現(xiàn)并且累積到累積緩沖器57 中,則然后(經(jīng)由下采樣階段53)將累積緩沖器57的內(nèi)容輸出到幀緩沖器M作為用于適當(dāng) 的輸出或顯示的輸出累積圖塊。此時(shí)圖塊緩沖器56和累積緩沖器57可以被清除,并且然后針對(duì)輸出幀的另一圖 塊(諸如圖塊3)開(kāi)始該過(guò)程。然后對(duì)待輸出的幀的每個(gè)圖塊重復(fù)該操作。在本實(shí)施例中,當(dāng)圖形處理器按本發(fā)明的方式正在操作時(shí),圖塊緩沖器52被配置 為通過(guò)將作為光柵化過(guò)程的一部分而執(zhí)行的多重采樣量從4x減少到^來(lái)提供與圖塊緩沖 器56組合的累積緩沖器57。由于四個(gè)FP16值(其是給定的16X16圖塊緩沖器將針對(duì)其每 個(gè)數(shù)據(jù)位置而常規(guī)存儲(chǔ)的值)將占用與兩個(gè)RGBA8888緩沖器相同的存儲(chǔ)量,因此通過(guò)將多 重采樣量減少到&,給定的16 X 16數(shù)據(jù)位置的四個(gè)FP6值的圖塊緩沖器可以被重新配置為 提供兩個(gè)RGBA8888緩沖器,因此一個(gè)這種緩沖器形成圖塊緩沖器56而另一個(gè)這種緩沖器 形成累積緩沖器57。這允許將必要的圖塊累積緩沖器57提供為圖塊緩沖器的一部分并且 避免了例如必須為此目的而添加新緩沖器。當(dāng)然,用于促進(jìn)在圖塊緩沖器中提供累積緩沖器57的其他布置將是可能的。例 如,不是將所采用的多重采樣數(shù)目從4x減少到h,作為替代可以將正被處理的圖塊的尺寸 一分為二,以從一個(gè)16X 16數(shù)據(jù)位置的圖塊緩沖器提供一個(gè)16X8圖塊緩沖器56和一個(gè) 16X8累積緩沖器57。該布置將允許保留數(shù)目較高的多個(gè)樣本并且例如較高精度值用于累 積緩沖器,但是另一方面將需要使用較小的圖塊尺寸來(lái)處理輸出幀。這里應(yīng)注意,這些布置允許圖形處理器的現(xiàn)有邏輯(即圖塊緩沖器)提供用于按本 發(fā)明的方式的操作的必要的圖塊累積緩沖器。因而,可以在沒(méi)有額外成本的情況下提供圖 塊累積緩沖器。此外,與傳統(tǒng)的累積緩沖器架構(gòu)相比,應(yīng)存在相當(dāng)大的速度提升并且減少了 紋理緩存和其他緩存查找。還將有可能的是例如,將另外的緩沖器添加到圖形處理器或者實(shí)際上甚至提供圖 形處理器外部的緩沖器,以充當(dāng)圖塊累積緩沖器,盡管這不是如此優(yōu)選的?,F(xiàn)將參照?qǐng)D3至5描述用于操作圖形處理器以按本發(fā)明的方式對(duì)輸出幀進(jìn)行處理的許多優(yōu)選的實(shí)施例。圖3示出根據(jù)本發(fā)明的圖形處理器的操作的第一優(yōu)選的實(shí)施例,其 中存在分開(kāi)的再現(xiàn)和累積步驟。圖4和5示出具有組合的再現(xiàn)和累積步驟的、這種操作的 第二優(yōu)選的實(shí)施例。在圖3至5中針對(duì)相同的步驟使用了相同的附圖標(biāo)記。如將意識(shí)到的,本發(fā)明的操作首先將由對(duì)累積緩沖操作的要求來(lái)觸發(fā),例如響應(yīng) 于圖形處理器的驅(qū)動(dòng)器從需要圖形顯示的應(yīng)用程序接收到這樣的命令。如本領(lǐng)域中已知 的,該命令將典型地指令圖形處理器對(duì)一系列子幀進(jìn)行處理并且將其累積到累積緩沖器 中,其中每個(gè)子幀例如具有定義的再現(xiàn)傳遞和表示其對(duì)最終累積幀的貢獻(xiàn)的指明權(quán)重。在本實(shí)施例中,響應(yīng)于接收到這樣的命令,圖形處理器驅(qū)動(dòng)器首先將要進(jìn)入累積 緩沖器中的所有N次再現(xiàn)傳遞(子幀)組合為圖形處理器的單個(gè)“任務(wù)”(步驟20)。這以便 確保圖形處理器不會(huì)在將子幀組合為單個(gè)幀之前分開(kāi)地對(duì)每個(gè)子幀進(jìn)行再現(xiàn),而是可以如 上文討論的,順序地對(duì)每個(gè)圖塊執(zhí)行每次再現(xiàn)傳遞。當(dāng)然,其他布置將是可能的。圖形處理器驅(qū)動(dòng)器還在步驟20中準(zhǔn)備用于指令圖形處理器按本發(fā)明的方式進(jìn)行 操作的命令序列。該命令序列包括針對(duì)待處理的每個(gè)圖塊的第一子圖塊的“開(kāi)始新圖塊”命令以及 針對(duì)相同圖塊的待處理的其他子圖塊的“開(kāi)始新子圖塊”命令。“開(kāi)始新圖塊”和“開(kāi)始新子 圖塊”命令之間的差異在于除了清除圖塊緩沖器56之外,開(kāi)始新圖塊命令將使圖形處理 器清除累積緩沖器57 (即將累積緩沖器57寫入幀緩沖器M),而每個(gè)開(kāi)始新子圖塊命令將 僅清除圖塊緩沖器56。(在本實(shí)施例中,每個(gè)圖塊緩沖器使其與“清除”位圖關(guān)聯(lián)以指示哪些采樣位置仍 未被再現(xiàn)。對(duì)于常規(guī)再現(xiàn)操作,針對(duì)將被再現(xiàn)的每個(gè)新圖塊,重置該清除位圖。然而,在將 這應(yīng)用到本實(shí)施例的累積緩沖操作時(shí),如上文討論的,在圖塊的最終版本(“累積”圖塊)被 輸出到幀緩沖器之前將存在再現(xiàn)圖塊的多個(gè)版本(累積“子圖塊”)。因此,有必要每當(dāng)新子 圖塊開(kāi)始時(shí)“清除” “子圖塊”緩沖器并且每當(dāng)待累積的新圖塊開(kāi)始時(shí)清除“累積”圖塊緩沖
0)0每個(gè)開(kāi)始新圖塊和開(kāi)始新子圖塊命令還指明在將該子圖塊累積到“累積”圖塊時(shí) 使用的權(quán)重。針對(duì)輸出幀的每個(gè)圖塊,生成開(kāi)始新圖塊命令和開(kāi)始新子圖塊命令的這種序列。如本領(lǐng)域中已知的,驅(qū)動(dòng)器還將準(zhǔn)備用于使圖形處理器按適當(dāng)?shù)姆绞綄?duì)每個(gè)相應(yīng) 子圖塊進(jìn)行再現(xiàn)的適當(dāng)?shù)拿钚蛄?其將適當(dāng)?shù)刈裱_(kāi)始新圖塊命令和開(kāi)始新子圖塊命 令)。圖3然后示意性地示出在本發(fā)明的第一實(shí)施例中圖形處理器響應(yīng)于從其驅(qū)動(dòng)器 接收到這種命令序列的操作。如圖3所示,圖形處理器將針對(duì)每個(gè)圖塊(步驟21)(它將接收該圖塊的指示新圖 塊正被開(kāi)始的“開(kāi)始新圖塊”命令)首先清除累積緩沖器57 (步驟22)(即設(shè)定“累積”圖塊 的清除位圖)。然后其將對(duì)圖塊執(zhí)行和累積構(gòu)成累積操作的N次再現(xiàn)傳遞序列(步驟23至沈)。如 上文所討論的,(第一再現(xiàn)傳遞之后的)每個(gè)后續(xù)的再現(xiàn)傳遞將由開(kāi)始新子圖塊命令指示, 并且下一“開(kāi)始新圖塊”命令將表明當(dāng)前圖塊的結(jié)束和下一圖塊的開(kāi)始。
因而,對(duì)于(將針對(duì)累積緩沖器執(zhí)行的N次再現(xiàn)傳遞序列中的)每次再現(xiàn)傳遞η (步 驟23),圖形處理器將首先清除圖塊緩沖器(即當(dāng)前“子圖塊”將被寫入的緩沖器)(步驟Μ)。 (如本領(lǐng)域中已知的,如果需要,圖塊緩沖器56還可以用缺省背景顏色(即在那些實(shí)際上沒(méi) 有基元被再現(xiàn)到幀的位置處幀將獲得的顏色)進(jìn)行初始化。)圖形處理器然后將執(zhí)行再現(xiàn)傳 遞η (對(duì)子圖塊η進(jìn)行再現(xiàn))并且將結(jié)果存儲(chǔ)在圖塊緩沖器56中(步驟25)。一旦該再現(xiàn)傳遞完成(子圖塊η被再現(xiàn)到圖塊緩沖器56),圖形處理器然后將圖塊 緩沖器中如此存儲(chǔ)的再現(xiàn)子圖塊η累積到累積緩沖器57中(步驟沈)。例如,可以使用圖形 處理器的著色器或者圖塊寫回邏輯來(lái)執(zhí)行該累積。如本領(lǐng)域的技術(shù)人員將意識(shí)到的,該累積步驟等同于在傳統(tǒng)的累積緩沖操作中執(zhí) 行的“累積傳遞”,然而是將再現(xiàn)子圖塊累積到“累積”圖塊的傳遞,而不是將整個(gè)再現(xiàn)幀累 積到累積緩沖器中的傳遞。在通過(guò)使用圖塊寫回邏輯來(lái)完成累積的情況下,這例如可以重新使用下采樣邏輯 53中的加法器進(jìn)行累積。將圖形處理器的著色器用于累積步驟可以避免例如,將用于累積 傳遞的邏輯添加到圖形處理器的需要。一旦當(dāng)前子圖塊(所討論的子圖塊)以此方式被累積到累積緩沖器中,就將存在新 的“開(kāi)始新子圖塊”命令,并且針對(duì)所需用于累積緩沖操作的再現(xiàn)傳遞序列中的下一子圖塊 (下一再現(xiàn)傳遞),重復(fù)清除圖塊緩沖器、對(duì)子圖塊進(jìn)行再現(xiàn)、以及一旦該子圖塊已被再現(xiàn)就 將所得到的再現(xiàn)子圖塊累積到累積緩沖器中的步驟23、24、25和26。重復(fù)該操作直至對(duì)累積緩沖操作所需的再現(xiàn)傳遞序列中的所有再現(xiàn)傳遞均已完 成并且累積了所討論的圖塊的結(jié)果(即所討論的圖塊的所有N個(gè)子圖塊均已被生成和累 積)。(在本實(shí)施例中,隨著累積過(guò)程的執(zhí)行,片元依賴性檢查確保阻擋與圖塊緩沖器 中的特定采樣位置關(guān)聯(lián)的所有片元退出再現(xiàn)管線,直至該相同采樣位置的所有先前片元均 已退出管線(這也包括先前子圖塊(或圖塊)中的相同采樣位置的片元)。這確保了按正確的 順序?qū)γ總€(gè)圖塊的采樣位置進(jìn)行處理。)。一旦對(duì)累積緩沖操作所需的再現(xiàn)傳遞序列中的所有再現(xiàn)傳遞均已完成并且累積 了所討論的圖塊的結(jié)果,就將在累積緩沖器57中存儲(chǔ)的累積圖塊輸出到外部存儲(chǔ)器幀緩 沖器54 (步驟27)。這里應(yīng)注意,在以上過(guò)程中,當(dāng)子圖塊η (圖塊的第η次再現(xiàn)傳遞)完成時(shí),該圖塊 未被寫回到外部存儲(chǔ)器,而是作為替代被適當(dāng)?shù)乩鄯e在累積緩沖器57中(在步驟沈)。類似地,累積緩沖器57未被寫回到外部存儲(chǔ)器(到幀緩沖器),直至所討論的圖塊 的所有子圖塊均已被再現(xiàn)和累積(在步驟27)。因而消除了用于累積緩沖操作的所有外部存儲(chǔ)器帶寬。該過(guò)程然后針對(duì)構(gòu)成輸出幀的下一圖塊重復(fù),并且因此返回步驟21和22以清除 累積緩沖器并且開(kāi)始針對(duì)輸出幀的下一圖塊的過(guò)程。(將存在用于觸發(fā)該操作(this)的“開(kāi) 始新圖塊”命令。)。然后重復(fù)該操作序列(如圖3所示)直至在步驟21發(fā)現(xiàn)構(gòu)成輸出幀的所有圖塊均 已被覆蓋,在該階段,幀緩沖器應(yīng)包含完整的累積輸出幀,該完整的累積輸出幀然后可以被 顯示(或者按所期望的那樣以另外的方式輸出)。所討論的幀的累積將因此結(jié)束(步驟觀)。
圖4和5示出根據(jù)本發(fā)明的圖形處理器的操作的第二優(yōu)選的實(shí)施例。如可以從圖4看到的,該實(shí)施例中的按本發(fā)明的方式的操作與上文描述的并且在 圖3中示出的前一實(shí)施例的操作類似,除了不是完成將相關(guān)子圖塊再現(xiàn)到圖塊緩沖器并且 只有然后在累積傳遞中將子圖塊累積到累積緩沖器中(圖3中的步驟25和沈),在該實(shí)施例 中,隨著再現(xiàn)傳遞的進(jìn)行,每個(gè)子圖塊被“直接”再現(xiàn)到累積緩沖器57 (圖4中的步驟30)。 該布置具有如下優(yōu)點(diǎn)其避免了在給定的再現(xiàn)傳遞(子圖塊)完成時(shí)進(jìn)行累積傳遞的需要。圖5更詳細(xì)地、示意性地示出圖4的“直接再現(xiàn)”到累積緩沖器中的步驟30。(如本領(lǐng)域的技術(shù)人員將意識(shí)到的,圖5中示出的值“k”和“_k”是在將再現(xiàn)值累 積到累積緩沖器中時(shí)應(yīng)用到這些再現(xiàn)值的適當(dāng)?shù)臋?quán)重。權(quán)重k可以在需要時(shí)按所期望的那 樣由處理器適當(dāng)?shù)卮鎯?chǔ)和取回。如上文所討論的,權(quán)重信息優(yōu)選地被提供作為開(kāi)始新圖塊 命令和開(kāi)始新子圖塊命令的一部分。)。如圖5所示,在該布置中,當(dāng)對(duì)給定的子圖塊進(jìn)行再現(xiàn)時(shí),每當(dāng)為該子圖塊再現(xiàn)的 新片元F(i,j)被確定為替換該片元對(duì)應(yīng)的、子圖塊的圖塊緩沖器中的(一個(gè)或多個(gè))現(xiàn)有再 現(xiàn)采樣位置值(即新片元重寫(overwrite)圖塊緩沖器中的現(xiàn)有片元((一個(gè)或多個(gè))采樣位 置值))時(shí),新再現(xiàn)的片元(即其再現(xiàn)值)被存儲(chǔ)在所討論的采樣位置的圖塊緩沖器56中(如 同對(duì)圖塊進(jìn)行再現(xiàn)時(shí)的常規(guī)情況)。(在本實(shí)施例中,適當(dāng)?shù)纳疃?Z)測(cè)試布置用于確定新片 元是否應(yīng)重寫現(xiàn)有片元。如果需要,可以使用其他適當(dāng)?shù)挠糜诖_定新片元是否應(yīng)重寫現(xiàn)有 片元的機(jī)制。)。然而,不是簡(jiǎn)單地將新片元的值添加到所討論的(一個(gè)或多個(gè))采樣位置的(一個(gè) 或多個(gè))現(xiàn)有累積緩沖器值,在本實(shí)施例中如圖5中所示,首先在撤消階段31中從所討論 的(一個(gè)或多個(gè))采樣位置的當(dāng)前累積緩沖器值A(chǔ)(i,j)中適當(dāng)?shù)販p去該片元位置的(所討論 的采樣位置的)前一圖塊緩沖器值T (i,j)(即正被新片元替換的(一個(gè)或多個(gè))圖塊緩沖器 值),以給出所討論的片元位置的(采樣位置的)“經(jīng)校正的”累積緩沖器值32。然后,如圖5中所示,在累積階段34中使所討論的一個(gè)或多個(gè)采樣位置的當(dāng)前片 元F(i,j)值33與如此確定的(一個(gè)或多個(gè))“經(jīng)校正的”累積緩沖器值32適當(dāng)?shù)乩鄯e以 提供用于存儲(chǔ)在所討論的(一個(gè)或多個(gè))采樣位置的累積緩沖器中的新累積緩沖器值NA(i, j) 35。該操作的效果是在所討論的片元對(duì)應(yīng)的、(一個(gè)或多個(gè))采樣位置的新再現(xiàn)值被 累積在累積緩沖器57中之前,移除(撤消)前一圖塊緩沖器值(即正由新再現(xiàn)的片元重寫的 圖塊緩沖器值)對(duì)累積緩沖器值的影響。因而“撤消”操作考慮了正被再現(xiàn)的子圖塊內(nèi)的一些采樣位置可能被重寫多次的 可能性,然而對(duì)于給定的采樣位置,累積緩沖器應(yīng)僅累積子圖塊中的最終值。例如,如果F1(1,1)、F2(1,1)和F3(l,l)表示將被寫入給定子圖塊的采樣位置 (1,1)的三個(gè)片元,并且Fl (1,1)重寫背景顏色,F(xiàn)2(l,l)重寫Fl(l,l),并且F3(l,l)重 寫F2(l,l),則在累積緩沖器中累積的所討論的子圖塊的該特定采樣位置的正確值應(yīng)是 F3(l, 1)。然而,本實(shí)施例的過(guò)程通過(guò)如上文討論的那樣將每個(gè)新再現(xiàn)片元(除非其由現(xiàn)有 片元遮蔽)立即累積到累積緩沖器而進(jìn)行操作。在沒(méi)有撤消階段31的情況下,這將導(dǎo)致累 積緩沖器在這種情況下累積Fl (1,1)、F2(1,1)和F3(l,1)以及背景顏色值。這將給出錯(cuò)誤的累積緩沖器值。撤消階段31通過(guò)撤消(移除)累積緩沖器57中先前累積的值(其中這些值被后來(lái) 的值重寫)的影響而消除了該問(wèn)題。具體地,在該示例中,當(dāng)確定Fl (1,1)將重寫所討論的 采樣位置的背景顏色時(shí),撤消階段31將首先從累積緩沖器57中減去位置(1,1)的背景顏 色值,以便在累積步驟結(jié)束時(shí),累積緩沖器僅存儲(chǔ)位置(1,1)的值F1。類似地,當(dāng)確定值 F2(l, 1)將重寫采樣位置(1,1)的當(dāng)前值時(shí),撤消階段31將首先從累積緩沖器57中減去位 置(1,1)的當(dāng)前值F1,以便累積階段34然后將導(dǎo)致對(duì)于位置(1,1)將值F2存儲(chǔ)在累積緩 沖器57中,以此類推。因此,如將意識(shí)到的,圖5中示出的過(guò)程實(shí)際上操作使得每當(dāng)將重寫現(xiàn)有片元的 新片元退出再現(xiàn)過(guò)程時(shí),在將片元再現(xiàn)之后的新圖塊緩沖器值添加到累積緩沖器之前,從 累積緩沖器中減去適當(dāng)?shù)牟蓸游恢玫呐f圖塊緩沖器值。因此這將正確地處理所有透支情形 并且產(chǎn)生與累積緩沖器的常規(guī)“累積傳遞”過(guò)程相同的輸出。當(dāng)然,其他布置將是可能的。在該實(shí)施例中,累積緩沖器57存儲(chǔ)有定點(diǎn)值以促進(jìn)該方法的操作。在圖塊緩沖器被初始化為缺省背景顏色(在沒(méi)有基元被再現(xiàn)的位置處,幀將獲得 該缺省背景顏色)的情況下(如上文所討論的),則在本實(shí)施例中,對(duì)于所有采樣位置,累積 緩沖器57優(yōu)選地最初被設(shè)定為累積該背景缺省顏色,以便確保當(dāng)在對(duì)于任何給定的采樣 位置把第一片元累積到累積緩沖器57中時(shí)撤消階段31減去該背景值時(shí),累積緩沖器具有 適當(dāng)?shù)闹?。從上文可?jiàn)在該布置中,當(dāng)每個(gè)片元完成其再現(xiàn)時(shí),其照常被寫入圖塊緩沖器 56,但是不是在更新累積緩沖器57之前等待圖塊的所有片元完成再現(xiàn)(即等待所討論的子 圖塊被完全再現(xiàn)),在圖塊的新片元將被添加到圖塊緩沖器時(shí)立即更新累積緩沖器57。這因 此消除了每個(gè)子圖塊之間的累積傳遞的需要,從而提高了性能。如本領(lǐng)域的技術(shù)人員將意識(shí)到的,如果需要,可以對(duì)本發(fā)明進(jìn)行各種修改,并且可 以使用本發(fā)明的其他布置。例如,不是在移動(dòng)到幀的下一圖塊之前按順序?qū)o定圖塊的所 有子圖塊進(jìn)行再現(xiàn),將有可能,例如在圖塊緩沖器的結(jié)構(gòu)允許的情況下如果需要,在移動(dòng)到 兩個(gè)(或更多個(gè))圖塊的下一集合之前使這兩個(gè)(或更多個(gè))不同圖塊的子圖塊的處理交織。 例如在如圖3所示的那樣且通過(guò)經(jīng)由圖塊寫回單元使數(shù)據(jù)從圖塊緩沖器移動(dòng)到圖塊累積 緩沖器來(lái)執(zhí)行累積過(guò)程的情況下,這可能更加高效。類似地,由于單獨(dú)圖塊所有均為彼此獨(dú)立的,所以它們可以彼此獨(dú)立地被處理,并 且因此如果需要,可以例如被并行地處理或者之間被交織。同樣地,例如在圖塊處理按順序處理來(lái)自命令列表的命令,并且每個(gè)命令的完成 耗用一定的時(shí)間,但是新命令的處理在前一命令的處理開(kāi)始之后立即開(kāi)始(使得可以(并 且典型地)并行地處理若干命令),并且每個(gè)圖塊的命令塊被排隊(duì)以逐一地(after each other)處理的情況下,則在這種情況下由于命令可能被并且將被并行地處理,因此在這種 布置中可能有時(shí)同時(shí)正在處理來(lái)自不同圖塊的命令(即同時(shí)正在處理兩個(gè)或更多個(gè)圖塊)。然而,應(yīng)注意,即使在存在這種不止一個(gè)圖塊的同時(shí)和/或并行處理的情況下,情 況仍然將是,一些圖塊的處理將在其他圖塊開(kāi)始之前完成。如從上文可見(jiàn)的,本發(fā)明至少在其優(yōu)選的實(shí)施例中消除了在要求累積緩沖操作時(shí)提供全幀累積緩沖器的需要。因此這可以極大地減少在執(zhí)行累積緩沖操作時(shí)的(外部)存儲(chǔ) 器帶寬,并且因此與傳統(tǒng)的累積緩沖器操作相比提供了再現(xiàn)速度的顯著增加。此外由于本發(fā)明可以提供顯著的帶寬減少,因此它還促進(jìn)了更低得多的功率使 用,從而例如促進(jìn)在功率較低的諸如便攜式和嵌入式圖形系統(tǒng)和設(shè)備中進(jìn)行累積緩沖操作。至少在本發(fā)明的優(yōu)選的實(shí)施例中,這是通過(guò)在逐個(gè)圖塊的基礎(chǔ)上執(zhí)行累積過(guò)程而 不是跨越整個(gè)幀執(zhí)行累積過(guò)程來(lái)實(shí)現(xiàn)的。而且,累積緩沖器可以被實(shí)施在圖形處理器的內(nèi) 部,并且優(yōu)選地使用圖形處理器的現(xiàn)有圖塊緩沖器來(lái)實(shí)施。本發(fā)明的實(shí)施例隨著再現(xiàn)的進(jìn) 行進(jìn)一步執(zhí)行累積過(guò)程,從而消除了對(duì)分開(kāi)的累積傳遞的需要。這允許至少在本發(fā)明的優(yōu)選的實(shí)施例中使用基于圖塊的圖形處理系統(tǒng)的現(xiàn)有邏 輯在沒(méi)有額外成本的情況下提供累積緩沖操作,并且至少在本發(fā)明的優(yōu)選的實(shí)施例中提供 與傳統(tǒng)的再現(xiàn)器相比相當(dāng)大的速度提升以及紋理緩存和其他緩存查找的減少。
權(quán)利要求
1.一種在基于圖塊的圖形處理系統(tǒng)中提供幀的若干再現(xiàn)傳遞的累積結(jié)果作為輸出幀 的方法,所述方法包括針對(duì)所述輸出幀將被劃分成的每個(gè)圖塊單獨(dú)地執(zhí)行所述若干再現(xiàn)傳遞并且累積這些 再現(xiàn)傳遞的結(jié)果,以便針對(duì)每個(gè)圖塊生成包括所述圖塊的再現(xiàn)傳遞的累積結(jié)果的輸出圖 塊,并且使得在針對(duì)其他圖塊開(kāi)始該過(guò)程之前,至少針對(duì)一個(gè)圖塊完成所有的再現(xiàn)傳遞以 及這些再現(xiàn)傳遞的結(jié)果的累積;以及組合如此生成的輸出圖塊以提供包括所述幀的所述若干再現(xiàn)傳遞的累積結(jié)果的輸出幀。
2.根據(jù)權(quán)利要求1所述的方法,包括 所述圖形處理系統(tǒng)針對(duì)將輸出的幀的第一圖塊或者第一多個(gè)圖塊集合,對(duì)所述圖塊或者單獨(dú)地對(duì)所述集 合中的每個(gè)圖塊執(zhí)行多次再現(xiàn)傳遞并且累積相應(yīng)圖塊或者每個(gè)相應(yīng)圖塊的這些再現(xiàn)傳遞 的結(jié)果以為所述圖塊或者所述圖塊集合中的每個(gè)圖塊提供表示所述圖塊的所述多次再現(xiàn) 傳遞的累積結(jié)果的圖塊輸出;以及向再現(xiàn)目標(biāo)輸出所述圖塊或者所述圖塊集合中的每個(gè)圖塊的累積圖塊輸出;以及 此后針對(duì)將輸出的幀的第二圖塊或者第二多個(gè)圖塊集合,對(duì)所述圖塊或者單獨(dú)地對(duì)所述集 合中的每個(gè)圖塊執(zhí)行所述多次再現(xiàn)傳遞并且累積相應(yīng)圖塊或者每個(gè)相應(yīng)圖塊的這些再現(xiàn) 傳遞的結(jié)果以為所述第二圖塊或者所述第二圖塊集合中的每個(gè)圖塊提供表示所述圖塊的 所述多次再現(xiàn)傳遞的累積結(jié)果的圖塊輸出;以及向所述再現(xiàn)目標(biāo)輸出所述第二圖塊或者所述第二圖塊集合中的每個(gè)圖塊的累積圖塊 輸出;以及對(duì)所述輸出幀的剩余圖塊重復(fù)這個(gè)過(guò)程; 由此通過(guò)在逐個(gè)圖塊的基礎(chǔ)上執(zhí)行若干再現(xiàn)傳遞并且累積這些再現(xiàn)傳遞的結(jié)果,生成輸出 幀,所述輸出幀包括所述輸出幀的所述若干再現(xiàn)傳遞的累積結(jié)果。
3.根據(jù)權(quán)利要求1所述的方法,其中依次單個(gè)地對(duì)構(gòu)成所述輸出幀的圖塊進(jìn)行處理。
4.根據(jù)權(quán)利要求1所述的方法,其中多個(gè)圖塊同時(shí)經(jīng)歷再現(xiàn)和累積過(guò)程。
5.根據(jù)前面任一權(quán)利要求所述的方法,包括將圖塊的再現(xiàn)傳遞的結(jié)果累積在與所述 圖形處理系統(tǒng)的圖形處理器一起被提供在片上的圖塊緩沖器中。
6.根據(jù)權(quán)利要求1所述的方法,包括當(dāng)圖塊的再現(xiàn)傳遞完成時(shí),在累積傳遞中將該 再現(xiàn)傳遞的結(jié)果累積在其中存儲(chǔ)所述圖塊的再現(xiàn)傳遞的累積結(jié)果的累積緩沖器中。
7.根據(jù)權(quán)利要求1所述的方法,包括隨著再現(xiàn)傳遞的進(jìn)行,將圖塊的再現(xiàn)傳遞的再 現(xiàn)結(jié)果累積在其中存儲(chǔ)所述圖塊的再現(xiàn)傳遞的累積結(jié)果的累積緩沖器中。
8.根據(jù)權(quán)利要求1所述的方法,其中,所述圖形處理系統(tǒng)包括圖形處理器和所述圖形 處理器的驅(qū)動(dòng)器,所述驅(qū)動(dòng)器向所述圖形處理器發(fā)送將由所述圖形處理器執(zhí)行的命令;以 及所述方法進(jìn)一步包括所述驅(qū)動(dòng)器接收將輸出需要累積緩沖操作的幀的指令;將所述幀的要進(jìn)入累積緩沖器中的子幀組合為所述圖形處理器的單個(gè)任務(wù);以及 準(zhǔn)備命令序列并且將其發(fā)送到所述圖形處理器,所述命令序列包括針對(duì)將輸出的幀的 每個(gè)圖塊的、開(kāi)始新圖塊命令和開(kāi)始新子圖塊命令序列,每個(gè)這樣的開(kāi)始新子圖塊命令指 令所述圖形處理器對(duì)于所討論的圖塊開(kāi)始在對(duì)所述幀的累積緩沖操作所需的再現(xiàn)傳遞序 列中的一次再現(xiàn)傳遞。
9.一種操作基于圖塊的圖形處理器的驅(qū)動(dòng)器的方法,所述方法包括 所述驅(qū)動(dòng)器接收將輸出需要累積緩沖操作的幀的指令;將所述幀的要進(jìn)入累積緩沖器中的子幀組合為所述圖形處理器的單個(gè)任務(wù);以及 準(zhǔn)備命令序列并且將其發(fā)送到所述圖形處理器,所述命令序列包括針對(duì)將輸出的幀的 每個(gè)圖塊的、開(kāi)始新圖塊命令和開(kāi)始新子圖塊命令序列,每個(gè)這樣的開(kāi)始新子圖塊命令指 令所述圖形處理器對(duì)于所討論的圖塊開(kāi)始在對(duì)所述幀的累積緩沖操作所需的再現(xiàn)傳遞序 列中的一次再現(xiàn)傳遞。
10.一種基于圖塊的圖形處理系統(tǒng),包括圖形處理器,被配置為針對(duì)幀將被劃分成的每個(gè)圖塊單獨(dú)地執(zhí)行若干再現(xiàn)傳遞并且累 積這些再現(xiàn)傳遞的結(jié)果,以便針對(duì)每個(gè)圖塊生成包括所述圖塊的再現(xiàn)傳遞的累積結(jié)果的輸 出圖塊,并且使得在針對(duì)其他圖塊開(kāi)始該過(guò)程之前,至少針對(duì)一個(gè)圖塊完成所有的再現(xiàn)傳 遞以及這些再現(xiàn)傳遞的結(jié)果的累積;以及輸出緩沖器,將如此生成的輸出圖塊被組合到該輸出緩沖器中以提供包括每個(gè)圖塊的 所述若干再現(xiàn)傳遞的累積結(jié)果的輸出幀。
11.根據(jù)權(quán)利要求10所述的基于圖塊的圖形處理系統(tǒng),其中 所述圖形處理器被配置為針對(duì)將輸出的幀的第一圖塊或者第一多個(gè)圖塊集合,對(duì)所述圖塊或者單獨(dú)地對(duì)所述集 合中的每個(gè)圖塊執(zhí)行多次再現(xiàn)傳遞并且累積相應(yīng)圖塊或者每個(gè)相應(yīng)圖塊的這些再現(xiàn)傳遞 的結(jié)果以為所述圖塊或者所述圖塊集合中的每個(gè)圖塊提供表示所述圖塊的所述多次再現(xiàn) 傳遞的累積結(jié)果的圖塊輸出;以及向再現(xiàn)目標(biāo)輸出所述圖塊或者所述圖塊集合中的每個(gè)圖塊的累積圖塊輸出;以及 此后針對(duì)將輸出的幀的第二圖塊或者第二多個(gè)圖塊集合,對(duì)所述圖塊或者單獨(dú)地對(duì)所述集 合中的每個(gè)圖塊執(zhí)行所述多次再現(xiàn)傳遞并且累積相應(yīng)圖塊或者每個(gè)相應(yīng)圖塊的這些再現(xiàn) 傳遞的結(jié)果以為所述第二圖塊或者所述第二圖塊集合中的每個(gè)圖塊提供表示所述圖塊的 所述多次再現(xiàn)傳遞的累積結(jié)果的圖塊輸出;以及向所述再現(xiàn)目標(biāo)輸出所述第二圖塊或者所述第二圖塊集合中的每個(gè)圖塊的累積圖塊 輸出;以及對(duì)所述輸出幀的剩余圖塊重復(fù)這個(gè)過(guò)程; 由此通過(guò)在逐個(gè)圖塊的基礎(chǔ)上執(zhí)行若干再現(xiàn)傳遞并且累積這些再現(xiàn)傳遞的結(jié)果,生成用于 顯示的輸出幀,所述輸出幀包括所述輸出幀的所述若干再現(xiàn)傳遞的累積結(jié)果。
12.根據(jù)權(quán)利要求10所述的系統(tǒng),其中依次單個(gè)地對(duì)構(gòu)成所述輸出幀的圖塊進(jìn)行處理。
13.根據(jù)權(quán)利要求10所述的系統(tǒng),其中多個(gè)圖塊同時(shí)經(jīng)歷再現(xiàn)和累積過(guò)程。
14.根據(jù)權(quán)利要求10至13中任何一個(gè)所述的系統(tǒng),包括用于累積圖塊的再現(xiàn)傳遞的 結(jié)果的圖塊緩沖器,其與所述圖形處理系統(tǒng)的所述圖形處理器一起被提供在片上。
15.根據(jù)權(quán)利要求10所述的系統(tǒng),包括累積緩沖器,在其中存儲(chǔ)圖塊的再現(xiàn)傳遞的 累積結(jié)果;且其中所述圖形處理器被配置為當(dāng)圖塊的再現(xiàn)傳遞完成時(shí)執(zhí)行累積傳遞以在所 述累積緩沖器中累積所述再現(xiàn)傳遞的結(jié)果。
16.根據(jù)權(quán)利要求10所述的系統(tǒng),包括累積緩沖器,在其中存儲(chǔ)圖塊的再現(xiàn)傳遞的 累積結(jié)果;且其中所述圖形處理器被配置為隨著再現(xiàn)傳遞的進(jìn)行,在所述累積緩沖器中累 積圖塊的再現(xiàn)傳遞的再現(xiàn)結(jié)果。
17.根據(jù)權(quán)利要求10所述的系統(tǒng),其中所述圖形處理系統(tǒng)包括圖形處理器;以及所述圖形處理器的驅(qū)動(dòng)器,向所述圖形處理器發(fā)送將由所述圖形處理器執(zhí)行的命令;以及所述驅(qū)動(dòng)器被布置為接收將輸出需要累積緩沖操作的幀的指令;將所述幀的要進(jìn)入累積緩沖器中的子幀組合為所述圖形處理器的單個(gè)任務(wù);以及準(zhǔn)備命令序列并且將其發(fā)送到所述圖形處理器,所述命令序列包括針對(duì)將輸出的幀的 每個(gè)圖塊的、開(kāi)始新圖塊命令和開(kāi)始新子圖塊命令序列,每個(gè)這樣的開(kāi)始新子圖塊命令指 令所述圖形處理器對(duì)于所討論的圖塊開(kāi)始在對(duì)所述幀的累積緩沖操作所需的再現(xiàn)傳遞序 列中的一次再現(xiàn)傳遞。
18.一種基于圖塊的圖形處理器的驅(qū)動(dòng)器,被配置為響應(yīng)于接收到將顯示需要累積緩沖操作的幀的指令,將所述幀的要進(jìn)入累積緩沖器中 的子幀組合為所述圖形處理器的單個(gè)任務(wù);以及準(zhǔn)備命令序列并且將其發(fā)送到所述圖形處理器,所述命令序列包括針對(duì)將輸出的幀的 每個(gè)圖塊的、開(kāi)始新圖塊命令和開(kāi)始新子圖塊命令序列,每個(gè)這樣的命令指令所述圖形處 理器對(duì)于所討論的圖塊開(kāi)始在對(duì)所述幀的累積緩沖操作所需的再現(xiàn)傳遞序列中的一次再 現(xiàn)傳遞。
19.一種包括計(jì)算機(jī)軟件代碼部分的計(jì)算機(jī)程序元件,當(dāng)所述程序元件在數(shù)據(jù)處理部 件上運(yùn)行時(shí),用于執(zhí)行根據(jù)權(quán)利要求1至9中任何一個(gè)所述的方法。
全文摘要
本發(fā)明涉及圖形處理系統(tǒng)。圖形處理系統(tǒng)中的“累積緩沖”過(guò)程不是通過(guò)依次對(duì)構(gòu)成累積幀的每個(gè)子幀全面地再現(xiàn)來(lái)執(zhí)行的,而是通過(guò)使構(gòu)成累積幀的每個(gè)單獨(dú)圖塊(2、3、4和5)單獨(dú)地經(jīng)歷不同再現(xiàn)傳遞序列來(lái)執(zhí)行的。因此,對(duì)于構(gòu)成累積幀的每個(gè)單獨(dú)圖塊,依次生成若干子圖塊(例如2'、2"、2'"和2"")并且將其累積在一起以提供作為所討論的圖塊的累積版本而輸出的最終累積圖塊(2ACC)。然后針對(duì)構(gòu)成累積幀(1)的剩余單獨(dú)圖塊(3、4和5)中的每個(gè)重復(fù)該過(guò)程,并且將單獨(dú)的累積圖塊(2ACC、3ACC、4ACC和5ACC)組合在一起以提供輸出累積幀(6)。
文檔編號(hào)G06T1/20GK102103739SQ20101059392
公開(kāi)日2011年6月22日 申請(qǐng)日期2010年12月17日 優(yōu)先權(quán)日2009年12月17日
發(fā)明者赫格隆德 F., 耶蒙內(nèi)斯 O. 申請(qǐng)人:Arm有限公司