基于圖塊的圖形的制作方法
【專利摘要】本發(fā)明的各實(shí)施方式總體上涉及基于圖塊的圖形。具體地,基于圖塊的圖形系統(tǒng)具有被細(xì)分成待處理的多個(gè)圖塊的渲染空間。圖形數(shù)據(jù)項(xiàng)(諸如參數(shù)或紋素)被提取到緩存中以用于處理圖塊中的一個(gè)圖塊。確定圖形數(shù)據(jù)項(xiàng)的指示符,據(jù)此圖形數(shù)據(jù)項(xiàng)的指示符指示該圖形數(shù)據(jù)項(xiàng)與之關(guān)聯(lián)的圖塊的數(shù)目。依據(jù)圖形數(shù)據(jù)項(xiàng)的指示符從緩存逐出圖形數(shù)據(jù)項(xiàng)。例如,圖形數(shù)據(jù)項(xiàng)的指示符可以是該圖形數(shù)據(jù)項(xiàng)與之關(guān)聯(lián)的圖塊的數(shù)目的計(jì)數(shù),據(jù)此具有最低計(jì)數(shù)的圖形數(shù)據(jù)項(xiàng)從緩存被逐出。
【專利說明】基于圖塊的圖形
【技術(shù)領(lǐng)域】
【背景技術(shù)】
[0001] 基于圖塊(tile-based)的圖形系統(tǒng)使用基于圖塊的渲染來渲染2D或3D計(jì)算機(jī) 圖形圖像。作為基于圖塊的渲染技術(shù)的一部分,渲染空間被細(xì)分成稱為圖塊或塊(本文稱為 圖塊)的多個(gè)區(qū)域,其各自包括多個(gè)像素。圖塊經(jīng)常是矩形的,但它們可以是諸如三角形或 六角形之類的其它形狀。渲染空間可以對(duì)應(yīng)于用于在屏幕上顯示的圖像,但其它渲染目標(biāo) (諸如存儲(chǔ)器中的紋理數(shù)據(jù))也是可能的。圖塊可以是各種尺寸,例如圖塊可以是16X16個(gè) 像素。在高屏幕分辨率圖像的一個(gè)示例中,存在1280X1024個(gè)像素。因此,作為示例,高屏 幕分辨率圖像可以被細(xì)分成5120個(gè)圖塊(每個(gè)圖塊包括16X 16個(gè)像素)。
[0002] 基于圖塊的渲染器可以存儲(chǔ)原始數(shù)據(jù)(或"參數(shù)"),其表示存儲(chǔ)器塊中被稱為參數(shù) 塊的幾何對(duì)象或其它幾何體。每個(gè)參數(shù)塊包含描述可以位于多個(gè)圖塊中的一個(gè)或多個(gè)圖元 (primitive)的參數(shù)。圖元經(jīng)常是多邊形(通常是三角形),但可以具有其它形式(諸如點(diǎn)、線 或補(bǔ)丁(patch))。參數(shù)塊的參數(shù)表示圖元的位置(例如形成例如屏幕空間坐標(biāo)系中的圖元 的頂點(diǎn)的位置)。參數(shù)塊的參數(shù)還可以指示對(duì)象或幾何體的其它特征(或"屬性"),諸如顏色 和紋理。場(chǎng)景的參數(shù)塊存儲(chǔ)在存儲(chǔ)器中的參數(shù)緩沖器中。參數(shù)被分析以確定將需要哪個(gè)參 數(shù)來處理每個(gè)圖塊。特別是,針對(duì)每個(gè)圖塊,導(dǎo)出顯示列表,其指示描述部分或全部位于圖 塊內(nèi)的圖元的參數(shù)(如果有的話)。這樣,圖塊的顯示列表通過提供對(duì)存儲(chǔ)在參數(shù)緩沖器中 的相關(guān)參數(shù)數(shù)據(jù)的參考來確認(rèn)處理圖塊所需要的每個(gè)參數(shù)。
[0003] 使用其顯示列表來渲染每個(gè)圖塊。對(duì)象被柵格化以確定哪些對(duì)象存在于圖塊的每 個(gè)片段中。作為術(shù)語,"像素"是顯示在最終圖像中的個(gè)別圖像點(diǎn),而"片段"是被處理以便 生成用于在最終圖像中顯示的像素的個(gè)別圖像點(diǎn)。在圖塊中的對(duì)象的柵格化期間,在該圖 塊的顯示列表中指示的參數(shù)從它們各自的來自參數(shù)緩沖器的參數(shù)塊被提取到被稱為參數(shù) 緩存(cache )的較小本地存儲(chǔ)器(例如其是片上存儲(chǔ)器)中。該參數(shù)緩存通常比存儲(chǔ)所有參 數(shù)塊的參數(shù)所需的緩存小,需要該所有參數(shù)塊的參數(shù)以便渲染場(chǎng)景中的所有圖塊。因此,當(dāng) 圖塊已經(jīng)被處理并且新參數(shù)被提取到參數(shù)緩存中用于處理新圖塊時(shí),存儲(chǔ)在參數(shù)緩存中的 一些參數(shù)被逐出參數(shù)緩存。
[0004] 為了確定參數(shù)緩存中的哪些參數(shù)被逐出,在一些系統(tǒng)中使用最近最少使用(LRU) 逐出策略。根據(jù)LRU逐出策略,最近最少使用的項(xiàng)(即參數(shù))是第一個(gè)要從參數(shù)緩存被丟棄 的。
【發(fā)明內(nèi)容】
[0005] 該"
【發(fā)明內(nèi)容】
"部分被提供用于以簡(jiǎn)化形式介紹以下在"【具體實(shí)施方式】"部分進(jìn)一 步描述的各種概念。該"
【發(fā)明內(nèi)容】
"部分并非旨在標(biāo)識(shí)所要求保護(hù)的技術(shù)方案的關(guān)鍵特征 或必要特征,也并非旨在被用來限制所要求保護(hù)的技術(shù)方案的范圍。
[0006] 基于圖塊的圖形系統(tǒng)具有被細(xì)分成要被處理的多個(gè)圖塊的渲染空間。圖形數(shù)據(jù)項(xiàng) (諸如參數(shù)或紋素(texel))被提取到緩存中以用于處理圖塊中的一個(gè)圖塊。確定圖形數(shù)據(jù) 項(xiàng)的指示符,據(jù)此圖形數(shù)據(jù)項(xiàng)的指示符指示該圖形數(shù)據(jù)項(xiàng)與之關(guān)聯(lián)的圖塊的數(shù)目。依據(jù)圖 形數(shù)據(jù)項(xiàng)的指示符從緩存逐出圖形數(shù)據(jù)項(xiàng)。例如,圖形數(shù)據(jù)項(xiàng)的指示符可以是該圖形數(shù)據(jù) 項(xiàng)與之關(guān)聯(lián)的圖塊的數(shù)目的計(jì)數(shù),據(jù)此具有最低計(jì)數(shù)的圖形數(shù)據(jù)項(xiàng)從緩存被逐出。
[0007] 特別是,提供了一種處理基于圖塊的圖形系統(tǒng)中的數(shù)據(jù)的方法,該基于圖塊的圖 形系統(tǒng)具有被細(xì)分成圖形數(shù)據(jù)項(xiàng)與之關(guān)聯(lián)的多個(gè)圖塊的渲染空間,該方法包括:從圖形數(shù) 據(jù)存儲(chǔ)器提取要被用于處理圖塊中的一個(gè)圖塊的圖形數(shù)據(jù)項(xiàng)到緩存中;以及從緩存讀取圖 形數(shù)據(jù)項(xiàng)以用于處理所述圖塊中的所述一個(gè)圖塊,其中該方法還包括:確定圖形數(shù)據(jù)項(xiàng)的 指示符,其中,對(duì)于每個(gè)圖形數(shù)據(jù)項(xiàng),該圖形數(shù)據(jù)項(xiàng)的指示符指示該圖形數(shù)據(jù)項(xiàng)與之關(guān)聯(lián)的 圖塊的數(shù)目;基于所確定的指示符,確定逐出緩存中的哪些圖形數(shù)據(jù)項(xiàng);以及從緩存逐出 所確定的圖形數(shù)據(jù)項(xiàng)。
[0008] 圖形數(shù)據(jù)項(xiàng)可以存儲(chǔ)在圖形數(shù)據(jù)存儲(chǔ)器中的圖形數(shù)據(jù)集合中,每個(gè)圖形數(shù)據(jù)集合 包括一個(gè)或多個(gè)圖形數(shù)據(jù)項(xiàng)。作為示例,如果包括特定圖形數(shù)據(jù)項(xiàng)的圖形數(shù)據(jù)集合中的圖 形數(shù)據(jù)項(xiàng)要被用于處理特定圖塊,則特定圖形數(shù)據(jù)項(xiàng)可以與特定圖塊關(guān)聯(lián),并且對(duì)于每個(gè) 圖形數(shù)據(jù)項(xiàng),該圖形數(shù)據(jù)項(xiàng)的指示符可以指示圖塊的數(shù)目,使用包括該圖形數(shù)據(jù)項(xiàng)的圖形 數(shù)據(jù)集合中的圖形數(shù)據(jù)項(xiàng)處理該圖塊。作為另一示例,如果特定圖形數(shù)據(jù)項(xiàng)要被用于處理 特定圖塊,則特定圖形數(shù)據(jù)項(xiàng)可以與特定圖塊關(guān)聯(lián),并且對(duì)于每個(gè)圖形數(shù)據(jù)項(xiàng),該圖形數(shù)據(jù) 項(xiàng)的指示符可以指示圖塊的數(shù)目,使用該圖形數(shù)據(jù)項(xiàng)處理該圖塊。
[0009] 該方法還可以包括確定圖形數(shù)據(jù)項(xiàng)的邊界區(qū)域,其中如果該圖形數(shù)據(jù)項(xiàng)的邊界區(qū) 域與特定圖塊至少部分重疊,則特定圖形數(shù)據(jù)項(xiàng)可以與特定圖塊關(guān)聯(lián),并且對(duì)于每個(gè)圖形 數(shù)據(jù)項(xiàng),該圖形數(shù)據(jù)項(xiàng)的指示符可以指示圖塊的數(shù)目,該圖塊與該圖形數(shù)據(jù)項(xiàng)的邊界區(qū)域 至少部分重疊。對(duì)于每個(gè)圖形數(shù)據(jù)項(xiàng),該圖形數(shù)據(jù)項(xiàng)的邊界區(qū)域可以包含該圖形數(shù)據(jù)項(xiàng)的 圖形數(shù)據(jù)集合中的所有圖形數(shù)據(jù)項(xiàng)。
[0010] 對(duì)于每個(gè)圖形數(shù)據(jù)項(xiàng),該圖形數(shù)據(jù)項(xiàng)與之關(guān)聯(lián)的圖塊的數(shù)目可以在確定哪些圖形 數(shù)據(jù)項(xiàng)存在于每個(gè)圖塊中的步驟期間被確定。此外,該方法還可以包括基于緩存中的圖形 數(shù)據(jù)項(xiàng)的指示符并且基于確定哪些圖形數(shù)據(jù)項(xiàng)存在于每個(gè)圖塊中的步驟,確定圖塊要被處 理的順序。
[0011] 圖形數(shù)據(jù)項(xiàng)可以是定義包含在圖塊中的幾何體的參數(shù)。例如,圖形數(shù)據(jù)集合可以 是參數(shù)塊并且圖形數(shù)據(jù)存儲(chǔ)器可以是參數(shù)緩沖器。
[0012] 圖形數(shù)據(jù)項(xiàng)可以是包含在圖塊中的紋理的紋素。例如,圖形數(shù)據(jù)集合可以是紋理 并且圖形數(shù)據(jù)存儲(chǔ)器可以是紋理存儲(chǔ)器。
[0013] 對(duì)于每個(gè)圖形數(shù)據(jù)項(xiàng),指示符可以是該圖形數(shù)據(jù)項(xiàng)與之關(guān)聯(lián)的圖塊的數(shù)目的計(jì) 數(shù)。該方法還可以包括當(dāng)特定圖形數(shù)據(jù)項(xiàng)與之關(guān)聯(lián)的圖塊已經(jīng)被處理時(shí),使特定圖形數(shù)據(jù) 項(xiàng)的計(jì)數(shù)遞減。確定逐出緩存中的哪些圖形數(shù)據(jù)項(xiàng)的步驟可以包括確定緩存中的哪個(gè)圖形 數(shù)據(jù)項(xiàng)具有最低的計(jì)數(shù)。此外,確定逐出緩存中的哪些圖形數(shù)據(jù)項(xiàng)的步驟可以包括確定任 何圖形數(shù)據(jù)項(xiàng)是否具有等于零的計(jì)數(shù)。此外,如果當(dāng)特定圖形數(shù)據(jù)項(xiàng)與之關(guān)聯(lián)的圖塊已經(jīng) 被處理時(shí),特定圖形數(shù)據(jù)項(xiàng)的計(jì)數(shù)為1,則該方法可以包括使對(duì)應(yīng)于特定圖形數(shù)據(jù)項(xiàng)的緩存 入口無效。計(jì)數(shù)可以被限制,以使得對(duì)于每個(gè)圖形數(shù)據(jù)項(xiàng),如果該圖形數(shù)據(jù)項(xiàng)與之關(guān)聯(lián)的圖 塊的數(shù)目大于預(yù)定最大值,則計(jì)數(shù)可以被確定為等于預(yù)定最大值。可能是這樣的情況,即計(jì) 數(shù)僅在其小于預(yù)定最大值的情況下遞減。
[0014] 在示例中,對(duì)于每個(gè)圖形數(shù)據(jù)項(xiàng),該圖形數(shù)據(jù)項(xiàng)的指示符指示兩個(gè)條件之一,該兩 個(gè)條件是:(i)該圖形數(shù)據(jù)項(xiàng)與之關(guān)聯(lián)的圖塊的數(shù)目等于1,以及(ii)該圖形數(shù)據(jù)項(xiàng)與之關(guān) 聯(lián)的圖塊的數(shù)目大于1。
[0015] 在另一示例中,對(duì)于每個(gè)圖形數(shù)據(jù)項(xiàng),該圖形數(shù)據(jù)項(xiàng)的指示符指示四個(gè)條件之一, 該四個(gè)條件是:(i)該圖形數(shù)據(jù)項(xiàng)與之關(guān)聯(lián)的圖塊的數(shù)目等于l,(ii)該圖形數(shù)據(jù)項(xiàng)與之關(guān) 聯(lián)的圖塊的數(shù)目等于2,(iii)該圖形數(shù)據(jù)項(xiàng)與之關(guān)聯(lián)的圖塊的數(shù)目等于3或4,以及(iv) 該圖形數(shù)據(jù)項(xiàng)與之關(guān)聯(lián)的圖塊的數(shù)目大于4。
[0016] 該方法還可以包括確定另外的圖形數(shù)據(jù)項(xiàng)要被提取到緩存中,并且確定在不從緩 存逐出一些圖形數(shù)據(jù)項(xiàng)的情況下,緩存中沒有足夠空間來存儲(chǔ)另外的圖形數(shù)據(jù)項(xiàng),其中所 述確定逐出緩存中的哪些圖形數(shù)據(jù)項(xiàng)和所述從緩存逐出所確定的圖形數(shù)據(jù)項(xiàng)可以響應(yīng)于 所述確定緩存中沒有足夠空間來存儲(chǔ)另外的圖形數(shù)據(jù)項(xiàng)而執(zhí)行。
[0017] 如果所確定的指示符對(duì)于多個(gè)圖形數(shù)據(jù)項(xiàng)是相同的,則確定逐出緩存中的哪些圖 形數(shù)據(jù)項(xiàng)的步驟還可以基于緩存中的圖形數(shù)據(jù)項(xiàng)最后被使用的各自的時(shí)間。
[0018] 圖形數(shù)據(jù)項(xiàng)的指示符可以存儲(chǔ)在緩存中,并且還可以存儲(chǔ)在圖形數(shù)據(jù)存儲(chǔ)器中。 備選地,圖形數(shù)據(jù)項(xiàng)的指示符可以存儲(chǔ)在圖形數(shù)據(jù)存儲(chǔ)器中,并且可以通過存儲(chǔ)在緩存中 的參考(reference)引用存儲(chǔ)在圖形數(shù)據(jù)存儲(chǔ)器中的指示符來訪問。在簡(jiǎn)單的示例中,參考 可以是指向參數(shù)塊的指針。緩存可以將指向參數(shù)塊的指針僅存儲(chǔ)為數(shù)據(jù)的地址(或"標(biāo)簽") (或者它的小函數(shù)(trivial function))。
[0019] 還提供了一種基于圖塊的圖形系統(tǒng),其具有被細(xì)分成圖形數(shù)據(jù)項(xiàng)與之關(guān)聯(lián)的多個(gè) 圖塊的渲染空間,該基于圖塊的圖形系統(tǒng)包括被如下配置的處理單元:從圖形數(shù)據(jù)存儲(chǔ)器 提取要被用于處理圖塊中的一個(gè)圖塊的圖形數(shù)據(jù)項(xiàng)到緩存中;從緩存讀取圖形數(shù)據(jù)項(xiàng)以用 于處理所述圖塊中的所述一個(gè)圖塊;確定圖形數(shù)據(jù)項(xiàng)的指示符,其中,對(duì)于每個(gè)圖形數(shù)據(jù) 項(xiàng),該圖形數(shù)據(jù)項(xiàng)的指示符指示該圖形數(shù)據(jù)項(xiàng)與之關(guān)聯(lián)的圖塊的數(shù)目;基于所確定的指示 符,確定逐出緩存中的哪些圖形數(shù)據(jù)項(xiàng);以及從緩存逐出所確定的圖形數(shù)據(jù)項(xiàng)。
[0020] 如對(duì)于技術(shù)人員將是顯而易見的,以上特征可以酌情組合,并且可以與示例的任 何方面組合。
【專利附圖】
【附圖說明】
[0021] 現(xiàn)在將通過參考附圖詳細(xì)描述示例,其中:
[0022] 圖1示出基于圖塊的圖形系統(tǒng);
[0023] 圖2表不包括在基于圖塊的圖形系統(tǒng)的?宣染空間中的對(duì)象;
[0024] 圖3a示出第一參數(shù)塊;
[0025] 圖3b示出第二參數(shù)塊;
[0026] 圖4是處理基于圖塊的圖形系統(tǒng)中的數(shù)據(jù)的方法的流程圖;
[0027] 圖5示出參數(shù)緩存;
[0028] 圖6表不包括在基于圖塊的圖形系統(tǒng)的?宣染空間中的另一對(duì)象;以及
[0029] 圖7表示包括在基于圖塊的圖形系統(tǒng)的渲染空間中的另外的對(duì)象。
[0030] 貫穿整個(gè)附圖,共同的附圖標(biāo)記被用來指示相似的特征。
【具體實(shí)施方式】
[0031] 現(xiàn)在將僅通過示例來描述實(shí)施例。
[0032] 圖1是示出基于圖塊的圖形系統(tǒng)100的原理圖。系統(tǒng)100可以在設(shè)備(諸如智能 電話、平板電腦、膝上型電腦、個(gè)人計(jì)算機(jī)(PC)、電視機(jī)或者任何其它合適的設(shè)備,其中圖形 數(shù)據(jù)要被處理)上實(shí)現(xiàn)。基于圖塊的圖形系統(tǒng)100被配置為接收例如來自應(yīng)用的數(shù)據(jù)、處理 數(shù)據(jù)并且提供經(jīng)處理的數(shù)據(jù)的輸出。系統(tǒng)100包括被配置為處理數(shù)據(jù)的處理單元102。處 理單元102可以以硬件或軟件或其組合來實(shí)現(xiàn)。例如,處理單元102可以以固定功能的硬 件來實(shí)現(xiàn),其包括被配置為如本文所述相應(yīng)地處理數(shù)據(jù)的電路。例如,處理單元102可以是 圖形處理單元(GPU)或者可以被實(shí)現(xiàn)為在可編程設(shè)備(諸如GPU或中央處理單元(CPU))上 運(yùn)行的計(jì)算機(jī)程序。
[0033] 處理單元102包括用于處理數(shù)據(jù)的多個(gè)功能塊,其中處理單元102的一些(但非所 有,為清晰起見)功能塊示于圖1中。特別是,處理單元102包括平鋪單元106、圖像合成處 理器(ISP)塊108以及紋理和漸變(shading)處理器(TSP)塊110。系統(tǒng)100還包括存儲(chǔ) 器112,其被布置為與處理單元102通信。存儲(chǔ)器112包括參數(shù)緩沖器114和紋理存儲(chǔ)器 116。存儲(chǔ)器112還將包括其它存儲(chǔ)器塊(為清晰起見,其未示于圖1中)。處理單元102還 包括第一參數(shù)緩存118、第二參數(shù)緩存120和紋理緩存122。
[0034] 平鋪單元106的輸入被布置為接收?qǐng)D形數(shù)據(jù)。平鋪單元106的輸出耦合到參數(shù)緩 沖器114的輸入。參數(shù)緩沖器114的第一輸出耦合到ISP塊108的第一輸入。ISP塊108 的輸出耦合到TSP塊110的第一輸入。參數(shù)緩沖器114的第二輸出耦合到第一參數(shù)緩存 118的輸入以及第二參數(shù)緩存120的輸入。第一參數(shù)緩存118的輸出耦合到ISP塊108的 第二輸入。第二參數(shù)緩存120的輸出耦合到TSP塊110的第二輸入。紋理存儲(chǔ)器116的輸 出耦合到紋理緩存122的輸入。紋理緩存122的輸出耦合到TSP緩存110的第三輸入。
[0035] 在操作中,處理單元102被布置為接收例如來自應(yīng)用程序的圖形數(shù)據(jù),該應(yīng)用程 序當(dāng)前正在其上實(shí)現(xiàn)系統(tǒng)100的設(shè)備上運(yùn)行。圖形數(shù)據(jù)包括定義用于顯示的對(duì)象的幾何數(shù) 據(jù)。平鋪單元106包括用于實(shí)現(xiàn)處理單元102中的若干功能的邏輯。特別是,平鋪單元106 接收幾何數(shù)據(jù)并且從幾何數(shù)據(jù)導(dǎo)出多個(gè)圖元。在平鋪單元106接收幾何數(shù)據(jù)之前,一些對(duì) 于幾何數(shù)據(jù)的處理可以(或者可以不)由處理單元102 (在未圖示在圖1中的功能塊中)來 執(zhí)行。圖元表示幾何對(duì)象或其它幾何體。描述圖元的參數(shù)存儲(chǔ)在被稱為參數(shù)塊的存儲(chǔ)器塊 中的參數(shù)緩沖器114中。每個(gè)參數(shù)塊包含描述可能位于多個(gè)圖塊中的多個(gè)圖元的參數(shù)。圖 元經(jīng)常是多邊形,諸如三角形,但可以具有其它形式(諸如線、點(diǎn)或補(bǔ)丁)。參數(shù)塊的參數(shù)表 示圖元的位置(例如形成例如屏幕空間坐標(biāo)系中的圖元的頂點(diǎn)的位置)。參數(shù)塊的參數(shù)還可 以指示對(duì)象或幾何體的其它特征,諸如顏色和紋理。
[0036] 平鋪單元106將渲染空間分成多個(gè)圖塊,每個(gè)圖塊包括多個(gè)片段。圖塊可以是矩 形的(包括方形的),但它們可以是諸如三角形或六角形之類的其它形狀。渲染空間可以對(duì) 應(yīng)于用于在屏幕上顯示的圖像,但其它渲染目標(biāo)(諸如存儲(chǔ)器中的紋理數(shù)據(jù))也是可能的。
[0037] 對(duì)于每個(gè)圖塊,平鋪單元106確定每個(gè)圖元是否至少部分位于該圖塊內(nèi)。即,平鋪 單元106確定圖元的至少一部分是否位于圖塊的可視區(qū)域內(nèi)。這可以使用若干公知技術(shù)來 完成。這樣,對(duì)于每個(gè)圖塊,平鋪單元106導(dǎo)出顯示列表,該顯示列表包括標(biāo)識(shí)參數(shù)(例如圖 元的位置、顏色和紋理)的標(biāo)識(shí)符,如果有的話,該參數(shù)描述部分或整體位于圖塊內(nèi)的圖元。 艮P,圖塊的顯示列表包括對(duì)包含與圖塊至少部分重疊的幾何體的參數(shù)塊的一組參考。每個(gè) 參考可以與掩碼關(guān)聯(lián),該掩碼指示來自該參數(shù)塊的參數(shù)的子集,該參數(shù)表示存在于圖塊中 的圖元。這樣,圖塊的顯示列表通過提供對(duì)存儲(chǔ)在參數(shù)緩沖器114中的相關(guān)參數(shù)的參考來 標(biāo)識(shí)處理圖塊所需的每個(gè)參數(shù)。
[0038] 從平鋪單元106提供顯示列表到參數(shù)緩沖器114以存儲(chǔ)在其中。當(dāng)ISP塊108處 理圖塊時(shí),其從參數(shù)緩沖器114取回圖塊的顯示列表并且使用顯示列表確定哪些圖元正與 圖塊至少部分重疊。當(dāng)ISP塊108處理圖塊時(shí),其可以例如實(shí)現(xiàn)隱藏面消除(HSR),從而在 TSP塊110處理圖塊之前確定哪些圖元隱藏在每個(gè)片段位置處并且去除將不影響經(jīng)渲染的 圖像的參數(shù)。為了實(shí)現(xiàn)圖塊的HSR,ISP塊108處理圖塊的顯示列表中指示的參數(shù),以確定 哪些圖元是可見的并且哪些隱藏在圖塊內(nèi)的每個(gè)片段位置處。為使ISP塊108可以處理圖 塊內(nèi)的參數(shù),包括在圖塊的顯示列表中的參數(shù)從參數(shù)緩沖器114被提取到參數(shù)緩存118中。 ISP塊108然后從參數(shù)緩存118讀取參數(shù),以用于處理圖塊,例如用于實(shí)現(xiàn)HSR。
[0039] TSP塊110處理圖塊以將紋理化和漸變(texturing and shading)應(yīng)用到存在于 圖塊內(nèi)的對(duì)象。來自ISP塊108的輸出被提供到TSP塊110,其指示TSP塊110將需要哪些 參數(shù)以便處理圖塊。為使TSP塊110可以處理圖塊內(nèi)的參數(shù),來自ISP塊108的輸出中指 示的參數(shù)從參數(shù)緩沖器114被提取到參數(shù)緩存120中。TSP塊110所使用的用于處理圖塊 的一些或所有參數(shù)可以不同于ISP塊108所使用的用于處理相同圖塊的那些參數(shù)。例如, ISP塊108所使用的參數(shù)可以與圖元的位置有關(guān),而TSP塊110所使用的參數(shù)可以(附加地 或備選地)與要被應(yīng)用到圖元的紋理和漸變數(shù)據(jù)有關(guān)。TSP塊110然后從參數(shù)緩存120讀 取參數(shù)以用于處理圖塊,例如用于實(shí)現(xiàn)紋理化和漸變。參數(shù)可以包括要被TSP塊110應(yīng)用 到對(duì)象的紋理(或者來自紋理的具體紋素 )的指示。所指示的紋理(或紋素)從紋理存儲(chǔ)器 116被提取到紋理緩存122中,以由TSP塊110用于處理圖塊,例如用于實(shí)現(xiàn)紋理化和漸變。
[0040] 在從處理單元102被輸出到例如顯示緩沖器以顯示在其上實(shí)現(xiàn)系統(tǒng)100的設(shè)備的 屏幕上之前,來自TSP塊110的輸出可以被傳遞到處理單元102內(nèi)另外的處理塊(圖1中未 示出)。
[0041] 在圖1中所示的示例中,緩存存儲(chǔ)器(118、120和122)是片上存儲(chǔ)器,其小于存儲(chǔ) 在存儲(chǔ)器112 (其可以例如是系統(tǒng)存儲(chǔ)器)中的對(duì)應(yīng)的參數(shù)緩沖器114和紋理存儲(chǔ)器116。 在其它示例中,緩存存儲(chǔ)器中的至少一個(gè)緩存存儲(chǔ)器(118、120和/或122 )可以不被實(shí)現(xiàn)為 片上存儲(chǔ)器,即,可以不被實(shí)現(xiàn)在與處理單元102相同的芯片上。參數(shù)緩存118和120通常 小于存儲(chǔ)被存儲(chǔ)在參數(shù)緩沖器114中的所有參數(shù)塊所需的緩存,需要該所有參數(shù)塊以便渲 染場(chǎng)景中的所有圖塊(盡管參數(shù)緩存118和120通常大到足以存儲(chǔ)所有參數(shù),需要該所有參 數(shù)以便渲染圖塊之一,但是這可能取決于包括在圖塊中的對(duì)象的數(shù)量和復(fù)雜度)。類似地, 紋理緩存122通常小于存儲(chǔ)被存儲(chǔ)在紋理存儲(chǔ)器116中的所有紋理所需的緩存,需要該所 有紋理以便渲染場(chǎng)景中的所有圖塊。為使ISP塊108能夠處理所有圖塊,隨著另外的參數(shù) 從參數(shù)緩沖器114被提取到參數(shù)緩存118中,參數(shù)緩存118中的至少一些參數(shù)被逐出。類 似地,隨著另外的參數(shù)/紋素被提取到各自的緩存中,參數(shù)緩存120中的至少一些參數(shù)以及 紋理緩存122中的至少一些紋素被逐出,以使得TSP塊110可以處理所有圖塊。
[0042] 本文描述了逐出策略,其可以比上述LRU逐出策略表現(xiàn)得更好。逐出策略的表現(xiàn) 可以由導(dǎo)致緩存命中的緩存讀取請(qǐng)求的比例(即,緩存的命中率)來指示。以下參考參數(shù)緩 存118中的參數(shù)詳細(xì)描述逐出策略,但是相同的原理可以被應(yīng)用到參數(shù)緩存120中的參數(shù) 以及紋理緩存122中的紋素。此外,本文所述的逐出策略的相同原理可以被應(yīng)用到存儲(chǔ)在 緩存中以用于處理圖塊的任何合適的圖形數(shù)據(jù)項(xiàng)。
[0043] 圖2是包括20個(gè)圖塊(以5X4陣列布置)的基于圖塊的圖形系統(tǒng)的渲染空間202 的簡(jiǎn)化表示。在渲染空間202內(nèi)示出了兩個(gè)對(duì)象204和206。兩個(gè)對(duì)象中的第一對(duì)象包括 被標(biāo)記為204^204^204和204 4的四個(gè)圖元。能夠看出,第一對(duì)象與渲染空間202的圖塊 中的六個(gè)圖塊重疊。這六個(gè)圖塊處于渲染空間202的5X4陣列的中部,并且在圖2中被 表示為圖塊A至F。在沒有明確表述的情況下,本文所使用的術(shù)語"重疊"要被理解為意思 是"至少部分重疊"。從圖2可以理解到,圖元2〇1與三個(gè)圖塊(圖塊A、D和E)重疊,圖元 204 2與四個(gè)圖塊(圖塊A、B、D和E)重疊,圖元2043與兩個(gè)圖塊(圖塊B和E)重疊,并且圖 元204 4與四個(gè)圖塊(圖塊B、C、E和F)重疊。兩個(gè)對(duì)象中的第二對(duì)象包括被標(biāo)記為ZOei和 2062的兩個(gè)圖元。能夠看出,第二對(duì)象僅與渲染空間202的圖塊中的一個(gè)圖塊重疊。特別 是,從圖2可以理解到,圖元206i和206 2兩者僅與一個(gè)圖塊(該圖塊是圖塊A)重疊。場(chǎng)景 中通常將存在其它對(duì)象,可能包括比圖2中所示的對(duì)象多的圖元,但是為清晰起見,這些在 圖2中未示出。
[0044] 如上所述,每個(gè)對(duì)象存儲(chǔ)在參數(shù)緩沖器114中的一個(gè)或多個(gè)參數(shù)塊中。每個(gè)參數(shù) 塊包括描述至少一個(gè)對(duì)象的圖元的參數(shù)。圖3a是第一參數(shù)塊("參數(shù)塊1")的簡(jiǎn)化圖,其包 括描述第一對(duì)象204的圖元的參數(shù)。特別是,在圖3a所示的示例中,參數(shù)塊1存儲(chǔ):描述圖 元20七的參數(shù)PBL ;描述圖元2042的參數(shù)PB12 ;描述圖元2043的參數(shù)PB13 ;以及描述圖元 2044的參數(shù)PB14。
[0045] 類似地,圖3b是第二參數(shù)塊("參數(shù)塊2")的簡(jiǎn)化圖,其包括描述第二對(duì)象206的 圖元的參數(shù)。特別是,在圖3b所示的示例中,參數(shù)塊2存儲(chǔ):描述圖元ZOei的參數(shù)PBZi ;以 及描述圖元2062的參數(shù)PB22。
[0046] 存儲(chǔ)在參數(shù)緩沖器114中的參數(shù)的精確形式可以不同并且可以比圖3a和圖3b所 示的形式更復(fù)雜。例如,參數(shù)塊可以存儲(chǔ)對(duì)象內(nèi)不同頂點(diǎn)的頂點(diǎn)數(shù)據(jù),據(jù)此圖元的參數(shù)包括 一組頂點(diǎn)(例如形成三角形的三個(gè)頂點(diǎn))的數(shù)據(jù),從而描述圖元的位置。在那樣的情況下,圖 元的參數(shù)實(shí)際上是一組參數(shù),其可以包括與一組頂點(diǎn)有關(guān)的數(shù)據(jù)。參數(shù)塊還可以將除圖元 的位置數(shù)據(jù)之外的數(shù)據(jù)(例如顏色或紋理數(shù)據(jù))存儲(chǔ)為與位置數(shù)據(jù)分開的數(shù)據(jù)項(xiàng),以使得圖 元的參數(shù)可以包括與圖元的其它數(shù)據(jù)組合的位置數(shù)據(jù)的集合。因此,應(yīng)當(dāng)意識(shí)到,在圖3a 和圖3b示出與圖元有關(guān)的參數(shù)(例如PBlj的情況下,參數(shù)實(shí)際上可以包括來自參數(shù)塊的 多個(gè)數(shù)據(jù)項(xiàng),其可以被組合以描述圖元。此外,如圖3a和圖3b所示,每個(gè)參數(shù)塊包括雜項(xiàng) 數(shù)據(jù)字段,雜項(xiàng)數(shù)據(jù)字段包括與該參數(shù)塊有關(guān)的數(shù)據(jù)。雜項(xiàng)數(shù)據(jù)字段中的數(shù)據(jù)可以包括用 于指示參數(shù)塊中的數(shù)據(jù)應(yīng)當(dāng)如何解讀的狀態(tài)數(shù)據(jù)。
[0047] 圖4示出了處理基于圖塊的圖形系統(tǒng)中的數(shù)據(jù)的方法的流程圖,實(shí)現(xiàn)了用于從參 數(shù)緩存118逐出參數(shù)的新逐出策略。
[0048] 在步驟S402,對(duì)于每個(gè)參數(shù)塊,確定與參數(shù)塊的至少一個(gè)參數(shù)重疊的圖塊的數(shù)目 的計(jì)數(shù)。因此,這些計(jì)數(shù)提供參數(shù)塊的參數(shù)與之關(guān)聯(lián)的圖塊的數(shù)目的指示。換言之,參數(shù)塊 的計(jì)數(shù)指示將使用來自參數(shù)塊的至少一個(gè)參數(shù)處理多少圖塊。例如,參數(shù)塊1的計(jì)數(shù)將是 6,因?yàn)槿鐖D2所示,6個(gè)圖塊(圖塊A至F)與由參數(shù)塊1的參數(shù)描述的至少一個(gè)圖元(S卩,圖 元204^204^204和2044)重疊。類似地,參數(shù)塊2的計(jì)數(shù)將是1,因?yàn)槿鐖D2所示,僅1個(gè) 圖塊(圖塊A)與由參數(shù)塊2的參數(shù)描述的至少一個(gè)圖元(S卩,圖元206 1和2062)重疊。
[0049] 在一個(gè)示例中,正是平鋪單元106在步驟S402中確定參數(shù)塊的計(jì)數(shù)。這可以作 為平鋪過程的一部分來執(zhí)行,其中針對(duì)圖塊導(dǎo)出顯示列表。圖塊的顯示列表指示要被用來 處理圖塊的參數(shù)。備選地,在步驟S402,對(duì)于每個(gè)參數(shù)塊,圖塊的顯示列表中的信息可以被 用來確定與至少一個(gè)圖元重疊的圖塊的數(shù)目的計(jì)數(shù),該至少一個(gè)圖元由參數(shù)塊的參數(shù)來描 述。對(duì)于每個(gè)參數(shù)塊,在步驟S402中確定的計(jì)數(shù)存儲(chǔ)在參數(shù)緩沖器110中的該參數(shù)塊的雜 項(xiàng)數(shù)據(jù)字段中。如何可以從平鋪過程確定計(jì)數(shù)的兩個(gè)示例是:(i)每次在該圖塊中發(fā)現(xiàn)參 數(shù)塊中的任何圖元時(shí)設(shè)置對(duì)應(yīng)于每個(gè)圖塊位置的標(biāo)志,并且然后在平鋪過程結(jié)束時(shí)對(duì)標(biāo)志 的數(shù)目求和;或者(ii)每當(dāng)參考參數(shù)塊時(shí),解析每個(gè)圖塊的顯示列表并且使參數(shù)塊計(jì)數(shù)器 遞增。
[0050] 在步驟S404, ISP塊108從參數(shù)緩沖器114提取參數(shù)到參數(shù)緩存118中,如上所述。 被提取到參數(shù)緩存118中的參數(shù)是在當(dāng)前圖塊的顯示列表中被指示為被需要以處理ISP塊 108正在處理的當(dāng)前圖塊。如上所述,顯示列表提供對(duì)參數(shù)緩沖器114中的參數(shù)塊的參考, 具有用于指示來自參數(shù)塊的所需參數(shù)的子集的掩碼。
[0051] 例如,圖5示出了被ISP塊108提取到參數(shù)緩存118中以便處理圖2中所示的圖 塊A的參數(shù)。圖塊A與圖元2〇4和204 2重疊,圖元2〇1和2042被存儲(chǔ)在參數(shù)緩沖器114 中的參數(shù)塊1的參數(shù)pbl和pbi2所描述。圖塊a還與圖元zoei和2〇62重疊,圖元zoei和 2〇62被存儲(chǔ)在參數(shù)緩沖器114中的參數(shù)塊2的參數(shù)PB2i和PB22所描述。因此,為了 ISP塊 108處理圖塊A,在步驟S404,這四個(gè)參數(shù)和PB22)從參數(shù)緩沖器114被提 取到參數(shù)緩存118中。參數(shù)緩存118可以包括除圖5中所示的那些參數(shù)的其它參數(shù)。例如, 參數(shù)緩存118可以包括先前已經(jīng)被ISP塊108提取用于處理先前的圖塊的參數(shù)。
[0052] 當(dāng)參數(shù)被提取到參數(shù)緩存118中時(shí),參數(shù)的參數(shù)塊的計(jì)數(shù)的指示也存儲(chǔ)在參數(shù)緩 存118中。這示于圖5中,據(jù)此存儲(chǔ)參數(shù)緩存118中的參數(shù)的計(jì)數(shù)。如上所述,來自參數(shù)塊 1的參數(shù)PBh和PB1 2的計(jì)數(shù)是6,并且來自參數(shù)塊2的參數(shù)PB2i和PB22的計(jì)數(shù)是1。
[0053] 在步驟S406中,ISP塊108從參數(shù)緩存118讀取在圖塊A的顯示列表中被指示的 參數(shù)。
[0054] 在步驟S408中,ISP塊108使用在圖塊A的顯示列表中被指示的參數(shù)處理圖塊A。 因此,在圖2中所示的示例中,參數(shù)PBlp PB12、?821和?822將被ISP塊108用來處理圖塊 A。如上所述,ISP塊108可以通過確定哪些圖元在每個(gè)片段位置處是可見的并且然后從圖 像去除將不影響經(jīng)渲染的圖像的參數(shù)來實(shí)現(xiàn)隱藏面消除(HSR)。由ISP塊108處理的圖塊 被輸出,以例如由TSP塊110在處理單元102中進(jìn)一步處理。來自相同渲染空間的不同圖 塊可以在處理單元102中的不同處理塊(例如ISP塊108和TSP塊110)中并行地(即同時(shí) 地)進(jìn)行處理。
[0055] 當(dāng)ISP塊108已經(jīng)處理完圖塊A時(shí),然后在步驟S410,具有描述與圖塊A重疊的圖 元的至少一個(gè)參數(shù)的參數(shù)塊的計(jì)數(shù)可以遞減。因此,一旦ISP塊108已經(jīng)處理完圖塊A,則 參數(shù)塊1的計(jì)數(shù)(存儲(chǔ)在參數(shù)塊1的雜項(xiàng)數(shù)據(jù)字段中)從6遞減到5,并且參數(shù)塊2的計(jì)數(shù) (存儲(chǔ)在參數(shù)塊2的雜項(xiàng)數(shù)據(jù)字段中)從1遞減到0。此外,參數(shù)緩存118中、包括在其計(jì)數(shù) 遞減的參數(shù)塊中的任何參數(shù)的計(jì)數(shù)也遞減。因此,當(dāng)ISP塊108已經(jīng)處理完圖塊A時(shí),存儲(chǔ) 在參數(shù)緩存118中、來自參數(shù)塊1和2的參數(shù)的計(jì)數(shù)將遞減,以使得參數(shù)緩存118中的參數(shù) PBh和PB12的計(jì)數(shù)將從6遞減到5,并且參數(shù)緩存118中的參數(shù)PB2i和PB22的計(jì)數(shù)將從1 遞減到0。
[0056] 因此,參數(shù)塊的參數(shù)的計(jì)數(shù)指示圖塊的數(shù)目,該圖塊仍要被處理,其與參數(shù)塊的至 少一個(gè)參數(shù)重疊。
[0057] 在步驟S412中,確定(例如通過ISP塊108)是否存在要ISP塊108處理的另一圖 塊。如果不存在要ISP塊108處理的另一圖塊,則ISP塊108已經(jīng)完成對(duì)渲染空間中的圖 塊的處理,如圖4中的附圖標(biāo)記S414所指出的。在該情況下,圖塊的處理將在處理單元102 中的后續(xù)處理塊(例如TSP塊110)中繼續(xù)。
[0058] 然而,如果ISP塊108確實(shí)有另一圖塊要處理,則該方法從步驟S412傳遞到步驟 S416。例如,當(dāng)ISP塊108已經(jīng)處理完圖塊A時(shí),然后可以確定圖塊B要被處理。ISP塊108 需要讀取一些參數(shù)以便處理下一個(gè)圖塊(例如圖塊B)。ISP塊108將試圖從參數(shù)緩存118 讀取參數(shù)。在步驟S416,確定(例如通過參數(shù)緩存118的控制邏輯)參數(shù)緩存118是否具有 供ISP塊108處理下一個(gè)圖塊所需的參數(shù)。即,確定是否需要將任何另外的參數(shù)提取到參 數(shù)緩存118中供ISP塊108處理下一個(gè)圖塊。
[0059] 如果在步驟S416中確定參數(shù)緩存118具有處理下一個(gè)圖塊所需的所有參數(shù)(即不 需要從參數(shù)緩沖器114提取另外的參數(shù)到參數(shù)緩存118中),則該方法從步驟S416傳回到 步驟S406,其中ISP塊108從參數(shù)緩存118讀取適當(dāng)參數(shù),并且在步驟S408以與有關(guān)圖塊 A的上述方式類似的方式處理下一個(gè)圖塊。
[0060] 然而,如果確定參數(shù)緩存118中需要另外的參數(shù)以便ISP塊108處理下一個(gè)圖塊 (例如圖塊B),則該方法從步驟S416傳遞到步驟S418。在要由ISP塊108處理的下一個(gè)圖 塊是圖塊B的示例中,則如可以從圖2領(lǐng)會(huì)到的,ISP塊108將需要使用參數(shù)?81 2、?813和 PB14來處理圖塊。參數(shù)PB12由于處理圖塊A而已經(jīng)處于參數(shù)緩存118中,但是參數(shù)?81 3和 卩814是不在參數(shù)緩存118中并且將需要從參數(shù)緩沖器114提取的另外的參數(shù)。在步驟S418, 確定(例如通過參數(shù)緩存118的控制邏輯)參數(shù)緩存118中是否有足夠的空間來存儲(chǔ)另外 的參數(shù)。如果確定參數(shù)緩存118中有足夠的空間來存儲(chǔ)另外的參數(shù),則該方法傳回到步驟 S404,并且另外的參數(shù)從參數(shù)緩沖器114被提取到參數(shù)緩存118中。另外的參數(shù)然后在步 驟S406中被ISP塊108從參數(shù)緩存118讀取,并且下一個(gè)圖塊(例如圖塊B)在步驟S408 中以與有關(guān)圖塊A的上述方式類似的方式被處理。
[0061] 然而,如果在步驟S418中確定參數(shù)緩存118中沒有足夠的空間來存儲(chǔ)另外的參數(shù) (例如用于處理圖塊B的參數(shù)PB1JPPB1 4),則當(dāng)另外的參數(shù)被提取到參數(shù)緩存118中時(shí),存 在于參數(shù)緩存118中的一個(gè)或多個(gè)參數(shù)將需要從參數(shù)緩存118逐出。在這種情況下,該方 法傳遞到步驟S420,其中確定(例如通過參數(shù)緩存118的控制邏輯)哪個(gè)參數(shù)應(yīng)該被逐出參 數(shù)緩存118。關(guān)于哪個(gè)參數(shù)要從參數(shù)緩存118逐出的決定是基于參數(shù)緩存118中的參數(shù)的 計(jì)數(shù)。例如,可以確定參數(shù)緩存118中具有最低計(jì)數(shù)的參數(shù)要從參數(shù)緩存118逐出。
[0062] 如上所述,參數(shù)塊的參數(shù)的計(jì)數(shù)指示與至少一個(gè)圖元重疊的圖塊的數(shù)目,該至少 一個(gè)圖元被參數(shù)塊的參數(shù)所描述。此外,由于計(jì)數(shù)隨著圖塊被處理而遞減,參數(shù)塊的參數(shù)的 計(jì)數(shù)指示圖塊的數(shù)目,該圖塊仍要被處理,其與被參數(shù)塊的參數(shù)所描述的至少一個(gè)圖元重 疊。因此,參數(shù)緩存118中的參數(shù)的計(jì)數(shù)提供該參數(shù)用于被處理的下一個(gè)圖塊的可能性的 指示。因此,逐出具有最低計(jì)數(shù)的參數(shù)是一種有用的逐出策略,因?yàn)樵趨?shù)緩存118中更可 能用于處理下一個(gè)圖塊的參數(shù)(即具有較高計(jì)數(shù)的參數(shù))之前逐出在參數(shù)緩存118中不太可 能用于處理下一個(gè)圖塊的參數(shù)(即具有較低計(jì)數(shù)的參數(shù))。
[0063] 在步驟S422中,在步驟S420中被確定適于逐出參數(shù)緩存118的參數(shù)(例如參數(shù)緩 存118中具有最低計(jì)數(shù)的那些參數(shù))被逐出參數(shù)緩存118。該方法然后傳回到步驟S404,并 且另外的參數(shù)從參數(shù)緩沖器114被提取到參數(shù)緩存118中。步驟S420中的逐出可以通過 提取新參數(shù)以取代被逐出的參數(shù)來執(zhí)行。備選地,在提取新參數(shù)以取代被逐出的參數(shù)的步 驟之前,可以執(zhí)行主動(dòng)逐出步驟,據(jù)此逐出參數(shù)(例如通過針對(duì)參數(shù)緩存118中的相關(guān)緩存 行(cache line)將標(biāo)志設(shè)為"無效")。在步驟S406,另外的參數(shù)然后由ISP塊108從參數(shù) 緩存118讀取,并且在步驟S408,下一個(gè)圖塊(例如圖塊B)以與有關(guān)圖塊A的上述方式類似 的方式被處理。
[0064] 在圖2和圖5所示的示例中,當(dāng)圖塊A已經(jīng)被處理時(shí),參數(shù) 處于參數(shù)緩存118中。PB2i和PB22的計(jì)數(shù)低于PBh和PB12的計(jì)數(shù),因此參數(shù)PB2i和PB2 2 被逐出參數(shù)緩存118。這為另外的參數(shù)在參數(shù)緩存118中騰出空間。如果圖塊B是要被處 理的下一個(gè)圖塊,則參數(shù)?813和?81 4從參數(shù)緩沖器114被提取到參數(shù)緩存118中,以使得 參數(shù)緩存118將包括來自參數(shù)塊1的四個(gè)參數(shù)?811、?81 2、?813和?814。從圖2可以看出, ISP塊108需要參數(shù)PB12、PB13和PB14來處理圖塊B。將參數(shù)PBZi和PB2 2從參數(shù)緩存118 逐出是好的決定,因?yàn)椴恍枰切﹨?shù)來處理圖塊B。不將參數(shù)PB12從參數(shù)緩存118逐出 也是好的決定,因?yàn)樾枰搮?shù)來處理圖塊B。
[0065] 如本文所述基于參數(shù)的計(jì)數(shù)的逐出策略可以比圖2和圖5所示示例中的LRU逐出 策略表現(xiàn)得更好。如果參數(shù)被ISP塊108用于以它們?cè)趨?shù)緩存118中、在圖5中示出的順 序處理圖塊A,則使用LRU逐出策略可以導(dǎo)致參數(shù)?81 1和?812在圖塊A已經(jīng)被處理時(shí)被逐 出參數(shù)緩存118,而參數(shù)?821和?82 2在那時(shí)可以未被逐出緩存118??梢詮膱D2領(lǐng)會(huì)到,將 不再需要參數(shù)PBZi和PB22 (描述圖元ZOei和2062)來處理除圖塊A外的任何圖塊,并且因 此將這些參數(shù)保留在參數(shù)緩存118中不是有用的。相反,參數(shù)?81 11812、?813和?814(描述 圖元204^204^204和204 4)將再次被需要以處理其它圖塊,并且因此將這些參數(shù)保留在參 數(shù)緩存118中可能是有用的。本文描述的逐出策略基于圖塊覆蓋范圍對(duì)來自參數(shù)緩存118 的參數(shù)的逐出進(jìn)行加權(quán)。如以上給出的示例中可以看到的,這些逐出策略可以導(dǎo)致相比于 LRU逐出策略更高的緩存命中率。這意味著需要對(duì)于存儲(chǔ)器112中的參數(shù)緩沖器114的較 少調(diào)用來提取參數(shù)到參數(shù)緩存118中。相比于由處理單元102執(zhí)行的其它過程,訪問存儲(chǔ) 器112可能是緩慢的過程,因此,減少存儲(chǔ)器訪問的數(shù)量允許處理單元102的更快處理。
[0066] 以上給出的參數(shù)塊2的示例是本文所述的逐出策略表現(xiàn)得比LRU逐出策略好的好 示例。參數(shù)塊2的每個(gè)成員圖元完全位于一個(gè)圖塊(圖塊A)內(nèi)。一旦該圖塊已經(jīng)被處理, 就沒有理由將參數(shù)塊2的參數(shù)PB2i和PB2 2保留在參數(shù)緩存118中。然而在LRU策略下,參 數(shù)塊2的參數(shù)通常將長(zhǎng)時(shí)間駐留在參數(shù)緩存118中,降低了參數(shù)緩存118的效率。隨著場(chǎng) 景復(fù)雜度增加,幾何體變得更小并且其中參數(shù)塊的每個(gè)成員圖元完全位于一個(gè)圖塊內(nèi)的情 況變得越來越常見。
[0067] 本文所述的逐出策略考慮參數(shù)塊與多少圖塊重疊。來自包含僅與一個(gè)或少數(shù)圖塊 重疊的圖元的參數(shù)塊的參數(shù)比來自包含與許多圖塊重疊的圖元的參數(shù)塊的參數(shù)更不太可 能被再次需要以處理另一圖塊。該實(shí)現(xiàn)導(dǎo)致基于圖塊覆蓋范圍對(duì)來自參數(shù)緩存118的參數(shù) 塊的參數(shù)的逐出進(jìn)行加權(quán)的逐出策略。
[0068] 如上所述,對(duì)于圖塊的數(shù)目的每個(gè)參數(shù)塊保持計(jì)數(shù),該圖塊與該參數(shù)塊中的圖元 重疊。當(dāng)需要逐出參數(shù)緩存時(shí),來自參數(shù)塊、具有最低計(jì)數(shù)器的參數(shù)被選擇用于逐出。如果 多個(gè)參數(shù)存在于參數(shù)緩存118中并且具有相同的計(jì)數(shù)值,則常規(guī)的逐出策略(諸如LRU)可 以用來確定那些參數(shù)中的哪些參數(shù)要被逐出。由于輸入數(shù)據(jù)的局域性,在一個(gè)圖塊中發(fā)現(xiàn) 的參數(shù)(例如定義對(duì)象)很可能在相鄰圖塊中被再次使用,以使得當(dāng)圖塊被以順序次序處理 時(shí),在具有相同計(jì)數(shù)值的多個(gè)參數(shù)存在于參數(shù)緩存118中的情況下,LRU逐出策略是用于確 定哪些參數(shù)要逐出參數(shù)緩存的好的默認(rèn)選擇。
[0069] 在上述示例中,如果參數(shù)塊內(nèi)的任何參數(shù)用來處理圖塊,則對(duì)于該參數(shù)塊的參數(shù) 使計(jì)數(shù)遞減。因此,參數(shù)緩存118中的參數(shù)的計(jì)數(shù)可以到零,其指示那些參數(shù)將不再用于處 理渲染空間202中的另外的圖塊。正因如此,參數(shù)緩存118中將不需要那些參數(shù)。因此,如 果參數(shù)緩存118中的參數(shù)的計(jì)數(shù)到零,則該參數(shù)可以被逐出參數(shù)緩存118。逐出具有零計(jì)數(shù) 值的參數(shù)有助于使參數(shù)緩存的使用最大化,從而減少所需的對(duì)存儲(chǔ)器112的調(diào)用的數(shù)目。
[0070] 如上所述,與參數(shù)塊中的圖元重疊的圖塊的數(shù)目可以以本領(lǐng)域技術(shù)人員所熟知的 若干方式來確定。例如,在由平鋪單元106進(jìn)行的圖元的平鋪期間,重疊圖塊的列表可以存 儲(chǔ)在參數(shù)塊中。
[0071] 在另一示例中,如圖6所圖示的,傳統(tǒng)包圍盒(conservative bounding box) 606 可以構(gòu)建在參數(shù)塊的渲染空間602中。在圖6所示的簡(jiǎn)單示例中,三個(gè)圖元的參數(shù)6〇1、6042 和6043包括在參數(shù)塊中,并且包圍盒606是圖塊(在圖6中標(biāo)記為G至P)的最小矩形陣列, 其包括與參數(shù)塊的圖元中的至少一個(gè)圖元重疊的所有圖塊。如圖6所圖示的,圖元604與 圖塊L和Μ重疊;圖元604 2與圖塊Μ重疊;以及圖元6043與圖塊I、J、K、M、N和0重疊。包 括在包圍盒606中的圖塊的數(shù)目可以用作參數(shù)塊的參數(shù)的計(jì)數(shù)??梢匀菀椎乜闯?,圖6中 所示的圖元中沒有圖元重疊圖塊G、Η或P,但是該圖塊G、Η和P包括在包圍盒606中。因 此,如果包圍盒方法用于確定圖6中所示的參數(shù)塊中的參數(shù)的計(jì)數(shù),則計(jì)數(shù)將被確定為10, 即使實(shí)際上圖塊中的僅7個(gè)圖塊(圖塊I、J、K、L、Μ、Ν和0)與參數(shù)塊的圖元中的至少一個(gè) 圖元重疊。參數(shù)塊的參數(shù)的計(jì)數(shù)因此不必嚴(yán)格等于圖塊的數(shù)目,該圖塊與被參數(shù)塊的參數(shù) 所描述的至少一個(gè)圖元重疊。
[0072] 在本文所給出的示例中,使用矩形包圍盒,其實(shí)現(xiàn)簡(jiǎn)單并且與矩形圖塊很好匹配。 然而,矩形包圍盒僅是可以被使用的包圍區(qū)域的一個(gè)示例??梢允褂闷渌鼑鷧^(qū)域。例如, 諸如球形包圍盒和多項(xiàng)式之類的較緊邊界可以以如本文所述用于矩形包圍盒的方式類似 的方式使用。還存在用于優(yōu)化矩形包圍盒的方法。在圖6的示例中,這樣的方法可以排除 未重疊的圖塊G、Η和Ρ,來產(chǎn)生與參數(shù)塊的圖元重疊的七個(gè)圖塊的最小集合以用作邊界區(qū) 域。
[0073] -般而言,參數(shù)的計(jì)數(shù)可以被認(rèn)為是與參數(shù)關(guān)聯(lián)的圖塊的數(shù)目的指示符??梢允?用任何合適的指示符。計(jì)數(shù)被用作要被用來確定哪些參數(shù)要被逐出參數(shù)緩存118的加權(quán)。 正因如此,計(jì)數(shù)不需要在指定與參數(shù)關(guān)聯(lián)的圖塊的數(shù)目中完全正確,只要其給出與參數(shù)關(guān) 聯(lián)的圖塊的數(shù)目的近似指示。這樣,計(jì)數(shù)允許將與第一參數(shù)關(guān)聯(lián)的圖塊的數(shù)目同與第二參 數(shù)關(guān)聯(lián)的圖塊的數(shù)目比較(近似地,即使不是精確地),以確定關(guān)聯(lián)的哪個(gè)參數(shù)是較少的圖 塊,并且因此是用于逐出參數(shù)緩存118的合適候選。如果包括特定參數(shù)的參數(shù)塊中的參數(shù) 要被用來處理特定圖塊(即,參數(shù)塊的圖元之一與特定圖塊重疊),則特定參數(shù)可以認(rèn)為與 特定圖塊關(guān)聯(lián)。當(dāng)使用包圍盒方法時(shí),如果包括特定參數(shù)的包圍盒與特定圖塊重疊,則特定 參數(shù)可以被認(rèn)為與特定圖塊關(guān)聯(lián)。
[0074] 在上述示例中,每個(gè)參數(shù)塊具有其自己的計(jì)數(shù)。然而,在其它示例中,計(jì)數(shù)的粒度 可以不同。例如,每個(gè)參數(shù)可以具有其自己的計(jì)數(shù),其可以不同于相同參數(shù)塊的其它參數(shù)的 計(jì)數(shù),并且其指示與該參數(shù)關(guān)聯(lián)的圖塊的數(shù)目,例如要使用參數(shù)被處理的圖塊的數(shù)目。確定 與參數(shù)關(guān)聯(lián)的圖塊的數(shù)目可以包括使用在平鋪場(chǎng)景中的圖元期間由平鋪單元106生成的 顯示列表。備選地,每個(gè)參數(shù)可以具有其自己的傳統(tǒng)包圍盒,該傳統(tǒng)包圍盒被用來確定與該 參數(shù)關(guān)聯(lián)的圖塊的數(shù)目。作為另一示例,可以被加載到參數(shù)緩存118的緩存行中的每個(gè)數(shù) 據(jù)塊(例如包括多個(gè)參數(shù))可以具有其自己的計(jì)數(shù),該計(jì)數(shù)指示要使用數(shù)據(jù)塊中的至少一個(gè) 參數(shù)來處理的圖塊的數(shù)目。在所有這些示例中,無論計(jì)數(shù)的粒度,針對(duì)每個(gè)參數(shù)確定計(jì)數(shù)。 例如,當(dāng)計(jì)數(shù)處于參數(shù)塊的粒度時(shí),確定參數(shù)塊的計(jì)數(shù)的步驟將確定該參數(shù)塊的每個(gè)參數(shù) 的計(jì)數(shù),即,參數(shù)塊中的每個(gè)參數(shù)具有與已經(jīng)針對(duì)參數(shù)塊確定的計(jì)數(shù)相等的計(jì)數(shù)。
[0075] 當(dāng)圖塊被處理并且計(jì)數(shù)遞減時(shí),應(yīng)該是如下的情況:與被處理的圖塊關(guān)聯(lián)的每個(gè) 參數(shù)的計(jì)數(shù)遞減。關(guān)于哪些參數(shù)出于遞減計(jì)數(shù)的目的與被處理的圖塊關(guān)聯(lián)的確定應(yīng)當(dāng)匹配 關(guān)于當(dāng)確定計(jì)數(shù)時(shí)與參數(shù)關(guān)聯(lián)的圖塊的數(shù)目的確定。例如,如果包圍盒方法被用來確定計(jì) 數(shù)(例如,以使得圖6中所示的所有參數(shù)被確定與所有十個(gè)圖塊G至P關(guān)聯(lián),從而將參數(shù)的 計(jì)數(shù)設(shè)為10),則當(dāng)處理包圍盒中的任何圖塊時(shí),包圍盒內(nèi)的參數(shù)的計(jì)數(shù)應(yīng)該遞減。即使對(duì) 于處理包圍盒中不與參數(shù)塊中的任何圖元重疊的圖塊(例如對(duì)于處理圖塊G、Η和P),這也 是真的。
[0076] 在以上給出的示例中,參數(shù)的計(jì)數(shù)隨著與參數(shù)關(guān)聯(lián)的圖塊被處理而遞減。然而,在 其它示例中,計(jì)數(shù)并不遞減,即從參考圖4描述的示例中的方法省去步驟S410。在計(jì)數(shù)不 遞減的示例中,參數(shù)塊的參數(shù)的計(jì)數(shù)指示渲染空間202中與參數(shù)塊的至少一個(gè)參數(shù)重疊的 圖塊的數(shù)目,無論圖塊是否已經(jīng)被處理。諸如此的逐出策略(其中計(jì)數(shù)不遞減)可能仍然比 LRU逐出策略表現(xiàn)得更好(在緩存命中率方面),盡管其可能表現(xiàn)得不如本文所述的確實(shí)實(shí) 現(xiàn)遞減計(jì)數(shù)器的逐出策略一樣好(在緩存命中率方面)。然而,包括需要實(shí)現(xiàn)遞減計(jì)數(shù)器的 處理的成本在一些場(chǎng)景中可能超過了通過遞減計(jì)數(shù)器獲得的好處,以使得在一些場(chǎng)景中, 實(shí)現(xiàn)不遞減計(jì)數(shù)器的逐出策略可能是有益的。
[0077] 在以上示例中,未描述存在計(jì)數(shù)值的上限。然而,在實(shí)際的系統(tǒng)中,很可能所分配 的用于計(jì)數(shù)的比特?cái)?shù)是有限的。例如,可以使用Ν比特來表示每個(gè)計(jì)數(shù),計(jì)數(shù)的可能值(表 示為C)是在0 < C < 2Ν-1的范圍內(nèi)的整數(shù)。因此,存在計(jì)數(shù)可以取的預(yù)定最大值Cmax,其 由2N-1給出。例如,三比特可以被用來表示每個(gè)計(jì)數(shù),以使得Cmax的值為7。因此,在該示例 中,計(jì)數(shù)值C可以在0 < C< 7的范圍中。限制用于表示每個(gè)計(jì)數(shù)的比特?cái)?shù)是有用的,以使 得限制了用于存儲(chǔ)計(jì)數(shù)的存儲(chǔ)器的數(shù)量。這當(dāng)計(jì)數(shù)存儲(chǔ)在兩個(gè)地方(例如在參數(shù)緩沖器114 中的參數(shù)塊中的雜項(xiàng)域中以及在如圖5所示的參數(shù)緩存118中)時(shí)尤其是真的。參數(shù)緩存 118的存儲(chǔ)器需求大,所以限制被用于計(jì)數(shù)的比特?cái)?shù)可能是有用的,因?yàn)橛?jì)數(shù)存儲(chǔ)在參數(shù)緩 存118中。
[0078] 當(dāng)與參數(shù)關(guān)聯(lián)的圖塊的數(shù)目被確定時(shí),如上所述,如果與參數(shù)關(guān)聯(lián)的圖塊的數(shù)目 大于預(yù)定最大值(C max),則計(jì)數(shù)值被設(shè)為等于預(yù)定最大值(Cmax)。換言之,如果參數(shù)的計(jì)數(shù)值 被設(shè)在C max,則這表明與該參數(shù)關(guān)聯(lián)的圖塊的數(shù)目大于或等于Cmax。當(dāng)存在對(duì)于計(jì)數(shù)值的限 制時(shí),則對(duì)于所有小于最大值的計(jì)數(shù)值(即,對(duì)于C < Cmax),則隨著圖塊被處理,計(jì)數(shù)值可以 以如上所述相同的方式遞減。然而,當(dāng)計(jì)數(shù)值被設(shè)為最大值(即,對(duì)于C=C max)時(shí),則隨著圖塊 被處理,計(jì)數(shù)值不遞減。換言之,計(jì)數(shù)值僅在計(jì)數(shù)小于預(yù)定最大值(Cmax)的情況下遞減。這 是因?yàn)閰?shù)的C max的計(jì)數(shù)值并非唯一地指示與該參數(shù)關(guān)聯(lián)的圖塊的數(shù)目。Cmax的計(jì)數(shù)值表 明與該參數(shù)關(guān)聯(lián)的圖塊的數(shù)目大于或等于C max。因此,當(dāng)計(jì)數(shù)值被設(shè)為Cmax時(shí),遞減計(jì)數(shù)值 可能不是有用的。
[0079] 然而,在一些示例中,Cmax的計(jì)數(shù)值可以遞減。通過減少具有Cmax的計(jì)數(shù)值的參數(shù) 在ISP塊108需要它們用于處理圖塊之后留在參數(shù)緩存118中的可能性,這可能是有益的。 在一些示例中,其中參數(shù)的計(jì)數(shù)值存儲(chǔ)在參數(shù)緩存118中和參數(shù)緩沖器114中,如在上述示 例中,參數(shù)緩存118中的參數(shù)的C_的計(jì)數(shù)值可以遞減,但是參數(shù)緩沖器114中的(例如參 數(shù)塊的)參數(shù)的C max的對(duì)應(yīng)計(jì)數(shù)值不可以遞減。這樣,隨著計(jì)數(shù)值遞減,參數(shù)可以被逐出參 數(shù)緩存118,但是如果參數(shù)隨后被重新裝載到參數(shù)緩存118中,則其將被重新裝載,具有C max 的計(jì)數(shù)值。在一些其它示例中,基于諸如參數(shù)緩存118的占用或者參數(shù)緩存118中具有Cmax 的計(jì)數(shù)值的其它參數(shù)的數(shù)目之類的條件,可以做出關(guān)于是否遞減具有Cmax的計(jì)數(shù)值的參數(shù) 的計(jì)數(shù)值的判定。
[0080] 以上描述了計(jì)數(shù)值(表示為C)是在0彡C彡2N-1的范圍內(nèi)的整數(shù)。然而,計(jì)數(shù)值 可以反而處于1 < C < 2N的范圍內(nèi),從而允許表示額外的計(jì)數(shù)值,其代價(jià)是不能表示0的計(jì) 數(shù)值。然而,能夠表示〇的計(jì)數(shù)值可能并非必要。例如,沒有將1的計(jì)數(shù)值遞減到〇的計(jì)數(shù) 值,計(jì)數(shù)值可以保持在1,并且對(duì)應(yīng)于該參數(shù)的緩存入口可以被無效。緩存入口可以通過在 參數(shù)緩存118中設(shè)置標(biāo)志以指示參數(shù)無效而被無效。備選地,緩存入口可以通過將標(biāo)簽或 地址設(shè)為預(yù)定義值(例如所有比特設(shè)為0或者所有比特設(shè)為1)而被無效。使緩存中的緩存 入口無效以指示緩存中的數(shù)據(jù)是公知的,當(dāng)新數(shù)據(jù)被提取到緩存中時(shí),該緩存可以被重寫。 因此,不需要0的計(jì)數(shù)值,并且可以表示的最大計(jì)數(shù)值(C max可以在不增加用來表示計(jì)數(shù)值 的比特?cái)?shù)的情況下增加1。注意到,"無效"狀態(tài)(例如,使用"無效標(biāo)志"或者通過將標(biāo)簽或 地址設(shè)為預(yù)定義值(例如所有比特設(shè)為0或者所有比特設(shè)為1)來指示)在大多數(shù)緩存中被 實(shí)現(xiàn),以指示緩存的行是否為空或者它們是否保持有真實(shí)數(shù)據(jù)。因此,如上所述,使緩存入 口無效(例如通過設(shè)置無效標(biāo)志,或者通過將標(biāo)簽或地址設(shè)為預(yù)定義值)以擴(kuò)展可以表示的 計(jì)數(shù)值的范圍的過程,可以不涉及使用已經(jīng)不被緩存使用的任何額外比特。這是因?yàn)榫彺?可能已經(jīng)實(shí)現(xiàn)了用于使緩存入口無效的方法(例如使用"無效標(biāo)志"或者將標(biāo)簽或地址設(shè)為 預(yù)定義值(例如所有比特設(shè)為〇或者所有比特設(shè)為1))。
[0081] 在一個(gè)示例使用案例中,僅使用1比特來表示每個(gè)計(jì)數(shù)。關(guān)于以上給出的示例,這 可以被認(rèn)為是將N設(shè)為1,以使得1 < C < Cmax,其中Cmax等于2。該示例中的計(jì)數(shù)因此是1 比特標(biāo)志,其可以取第一值或第二值。參數(shù)的計(jì)數(shù)值因此可以用來指示兩個(gè)條件之一。如 果參數(shù)的計(jì)數(shù)具有第一值(本文表示為q ),則這表明該參數(shù)與之關(guān)聯(lián)的圖塊的數(shù)目等于1。 如果計(jì)數(shù)具有第二值(本文表示為C > i),則這表明該參數(shù)與之關(guān)聯(lián)的圖塊的數(shù)目大于1。 [0082] 該使用案例具有一些特別的益處。因?yàn)閮H1比特用于計(jì)數(shù)值,所以存儲(chǔ)計(jì)數(shù)并且 在處理單元102和系統(tǒng)存儲(chǔ)器112之間傳輸計(jì)數(shù)所需的數(shù)據(jù)與多于1個(gè)比特用于計(jì)數(shù)值的 示例相比是小的。此外,已經(jīng)觀察到,參數(shù)塊可以具有僅與一個(gè)圖塊關(guān)聯(lián)的參數(shù)。此外,隨 著場(chǎng)景復(fù)雜度增加,幾何體變得較小,并且一件幾何體(例如對(duì)象)的參數(shù)塊具有僅與一個(gè) 圖塊關(guān)聯(lián)的參數(shù)變得更加可能。
[0083] 在僅1比特用于計(jì)數(shù)的示例中,計(jì)數(shù)值不隨圖塊被處理而遞減。相反,逐出策略向 下壓縮到確定參數(shù)緩存中哪些參數(shù)具有具有第一值Ci的計(jì)數(shù),該第一值指示參數(shù)僅存在于 一個(gè)圖塊中,據(jù)此這些參數(shù)是用于逐出參數(shù)緩存118的好的候選。具有具有值C>i的計(jì)數(shù) 的參數(shù)不是用于逐出參數(shù)緩存118的好的候選并且被加權(quán),以相對(duì)于具有Q的計(jì)數(shù)的參數(shù) 被逐出參數(shù)緩存118的可能性,減小逐出參數(shù)緩存118的可能性。如上所述,如果我們需要 區(qū)別參數(shù)以確定當(dāng)參數(shù)的計(jì)數(shù)具有相同值時(shí)從緩存逐出哪個(gè)參數(shù),則可以使用諸如LRU逐 出策略之類的另一逐出策略。應(yīng)當(dāng)認(rèn)識(shí)到,參數(shù)緩存118中已經(jīng)被用來處理圖塊并且具有 q的計(jì)數(shù)值(指示參數(shù)僅與一個(gè)圖塊關(guān)聯(lián))的任何參數(shù)將不再用來處理另一圖塊,并且因此 可以被逐出參數(shù)緩存118。
[0084] 在另一示例使用案例中,使用2比特來表示每個(gè)計(jì)數(shù)。該示例中的計(jì)數(shù)因此是2 比特標(biāo)志,其可以取四種可能值之一。參數(shù)的計(jì)數(shù)值因此可以用來指示四個(gè)條件之一。如 果參數(shù)的計(jì)數(shù)具有第一值(本文表示為Ci),則這表明該參數(shù)與之關(guān)聯(lián)的圖塊的數(shù)目等于1。 如果計(jì)數(shù)具有第二值(本文表示為c 2),則這表明該參數(shù)與之關(guān)聯(lián)的圖塊的數(shù)目等于2。如果 計(jì)數(shù)具有第三值(本文表示為C34),則這表明該參數(shù)與之關(guān)聯(lián)的圖塊的數(shù)目等于3或4。如 果計(jì)數(shù)具有第四值(本文表示為C >4),則這表明該參數(shù)與之關(guān)聯(lián)的圖塊的數(shù)目大于4。
[0085] 該使用案例是有用的,因?yàn)殡m然小對(duì)象可以包含適合在單個(gè)圖塊內(nèi)的圖元,但是 那些對(duì)象通常通過圖塊邊界相交。通過單個(gè)圖塊邊緣相交的小對(duì)象的通常情況將導(dǎo)致僅位 于兩個(gè)圖塊中的參數(shù)塊。類似地,對(duì)象可以通過水平圖塊邊緣和垂直圖塊邊緣兩者相交,導(dǎo) 致位于3或4個(gè)圖塊中的參數(shù)塊。因此,對(duì)于與對(duì)象有關(guān)的參數(shù)塊,具有與1個(gè)、2個(gè)、3個(gè) 或4個(gè)圖塊關(guān)聯(lián)的參數(shù)并非是不同尋常的,并且當(dāng)確定哪些參數(shù)要逐出參數(shù)緩存118以及 從具有與多于四個(gè)圖塊關(guān)聯(lián)的參數(shù)的參數(shù)塊區(qū)分這些情況時(shí),能夠區(qū)分這些情形可能是有 用的。圖7示出渲染空間702的四個(gè)圖塊(表示為Q、R、S和T)。三個(gè)對(duì)象(表示為704、706 和708)示于渲染空間702中??梢钥闯?,對(duì)象704僅與圖塊之一(圖塊Q)重疊;對(duì)象706 與圖塊之二(圖塊R和T)重疊;以及對(duì)象708與所有四個(gè)圖塊(圖塊Q、R、S和T)重疊。對(duì) 象的重疊圖塊的數(shù)目的差異是由于對(duì)象對(duì)渲染空間702的平鋪的對(duì)齊的差異造成的。根據(jù) 正在被描述的示例使用案例,參數(shù)塊中用于對(duì)象704的參數(shù)將具有值為q的計(jì)數(shù),因?yàn)閷?duì) 象704僅與一個(gè)圖塊重疊;參數(shù)塊中用于對(duì)象706的參數(shù)將具有值為C 2的計(jì)數(shù),因?yàn)閷?duì)象 706與兩個(gè)圖塊重疊;以及參數(shù)塊中用于對(duì)象708的參數(shù)將具有值為C34的計(jì)數(shù),因?yàn)閷?duì)象 708與四個(gè)圖塊重疊。參數(shù)塊中用于覆蓋多于四個(gè)圖塊的對(duì)象的參數(shù)被給予C>4的計(jì)數(shù)值。
[0086] 參數(shù)基于它們的計(jì)數(shù)值被逐出參數(shù)緩存118。特別是,具有的計(jì)數(shù)值的參數(shù)將 優(yōu)先地在具有c 2的計(jì)數(shù)值的參數(shù)(其自己將優(yōu)先地在具有c34的計(jì)數(shù)值的參數(shù)(其自己將優(yōu) 先地在具有C >4的計(jì)數(shù)值的參數(shù)之前被逐出參數(shù)緩存118)之前被逐出參數(shù)緩存118)之前 被逐出參數(shù)緩存118。能夠認(rèn)識(shí)到,當(dāng)圖塊Q已經(jīng)被處理時(shí),不需要與對(duì)象704有關(guān)的參數(shù) 以處理任何其它圖塊,并且由于那些參數(shù)的計(jì)數(shù)值為 Cl,所以那些參數(shù)將在與對(duì)象708有關(guān) 的參數(shù)(其具有C34的計(jì)數(shù)值并且需要其以處理圖7中所示的其它圖塊(圖塊R、S和T))之 前被逐出參數(shù)緩存118。
[0087] 使用2比特用于計(jì)數(shù)值是特別有用的,因?yàn)樗鼌^(qū)分四種常見場(chǎng)景,并且因此將在 緩存命中率方面相比于LRU逐出策略提供顯著的提高。此外,這當(dāng)僅需要每個(gè)計(jì)數(shù)值的數(shù) 據(jù)的2比特時(shí)被實(shí)現(xiàn)。這在存儲(chǔ)計(jì)數(shù)值并且在存儲(chǔ)器112上的參數(shù)緩沖器114與處理單元 102上的參數(shù)緩存118之間傳輸計(jì)數(shù)值方面是有利的。
[0088] 當(dāng)2比特被用于計(jì)數(shù)時(shí),(^、(:34和C>4的計(jì)數(shù)值可以不隨圖塊被處理而遞減。Q 的計(jì)數(shù)值不具有用于被遞減到的更低值。c34和c>4的計(jì)數(shù)值不唯一地定義與參數(shù)關(guān)聯(lián)的 圖塊的數(shù)目,并且正因如此不隨圖塊被處理而遞減。然而c 2的計(jì)數(shù)值確實(shí)指示參數(shù)與兩個(gè) 圖塊關(guān)聯(lián)并且c2的計(jì)數(shù)值可以遞減到計(jì)數(shù)值Ci。因此,參數(shù)的具有c 2的計(jì)數(shù)的計(jì)數(shù)值可以 或者不可以當(dāng)與該參數(shù)關(guān)聯(lián)的圖塊被處理時(shí)被遞減為Ci的計(jì)數(shù)。在其它示例中,c>4的計(jì) 數(shù)值可以被遞減到c 34的計(jì)數(shù)值。此外,C34的計(jì)數(shù)值可以被遞減到(:2的計(jì)數(shù)值。如上所述, 與C max的計(jì)數(shù)值的遞減相關(guān),計(jì)數(shù)值C34和C>4可以在參數(shù)緩存118中被遞減,而在參數(shù)緩 沖器114中不被遞減。此外,沒有使Ci的計(jì)數(shù)值遞減,當(dāng)與具有Ci的計(jì)數(shù)值的參數(shù)關(guān)聯(lián)的 圖塊被處理時(shí),參數(shù)的計(jì)數(shù)值可以保持為Ci,但是緩存無效標(biāo)志可以針對(duì)參數(shù)設(shè)置,以指示 當(dāng)另外的參數(shù)被提取到參數(shù)緩存118中時(shí),可以在參數(shù)緩存118中重寫(即逐出)該參數(shù)。
[0089] 在上述示例中,計(jì)數(shù)存儲(chǔ)在參數(shù)緩存118中和參數(shù)緩沖器114中。然而,在其它示 例中,計(jì)數(shù)可以僅存儲(chǔ)在參數(shù)緩沖器114中,并且對(duì)于參數(shù)緩存118中的每個(gè)參數(shù),存在存 儲(chǔ)在參數(shù)緩存118中的用于參考來自參數(shù)緩沖器114的參數(shù)的計(jì)數(shù)的參考。在該情況下, 當(dāng)確定哪個(gè)參數(shù)要逐出參數(shù)緩存118時(shí),通過參考存儲(chǔ)在參數(shù)緩沖器114中的計(jì)數(shù),參數(shù)緩 存118中的參數(shù)的參考被用來確定參數(shù)緩存118中的參數(shù)的計(jì)數(shù),并且然后計(jì)數(shù)被用來確 定逐出哪個(gè)參數(shù)(例如具有最低計(jì)數(shù)值的參數(shù))。該示例可以節(jié)省參數(shù)緩存118中的一些存 儲(chǔ)器空間,因?yàn)橛?jì)數(shù)值不需要存儲(chǔ)在參數(shù)緩存118中。參考存儲(chǔ)在參數(shù)緩存118中,其可以 使用比在參數(shù)緩存118中存儲(chǔ)計(jì)數(shù)本身更少的存儲(chǔ)器的比特。這可能是有用的,因?yàn)閰?shù) 緩存118中的存儲(chǔ)器空間是有限的。然而,延遲可以被增加到圖塊的處理,以允許從參數(shù)緩 沖器114取回用于計(jì)數(shù)的時(shí)間,以便確定哪個(gè)參數(shù)被逐出參數(shù)緩存118。
[0090] 以上描述的示例涉及從參數(shù)緩存118逐出參數(shù)。逐出策略的相同原理可以被應(yīng)用 到處理單元102中的其它緩存。即,對(duì)于任何圖形數(shù)據(jù)項(xiàng),其用來處理圖塊并且從存儲(chǔ)器 112中的圖形數(shù)據(jù)存儲(chǔ)器被提取到處理單元102上的緩存中,可以確定用于圖形數(shù)據(jù)項(xiàng)的 指示符,以使得對(duì)于每個(gè)圖形數(shù)據(jù)項(xiàng),用于該圖形數(shù)據(jù)項(xiàng)的指示符指示該圖形數(shù)據(jù)項(xiàng)與之 關(guān)聯(lián)的圖塊的數(shù)目。指示符然后可以用來確定哪個(gè)圖形數(shù)據(jù)項(xiàng)從緩存逐出,以使得逐出策 略基于圖形數(shù)據(jù)項(xiàng)的圖塊覆蓋范圍。圖形數(shù)據(jù)項(xiàng)例如可以是參數(shù)或紋素,其可以存儲(chǔ)在諸 如存儲(chǔ)器112中的參數(shù)塊或紋理之類的圖形數(shù)據(jù)集合中。
[0091] 例如,TSP塊110所使用的參數(shù)緩存120可以使用對(duì)應(yīng)于上述關(guān)于ISP塊108所 使用的參數(shù)緩存118的逐出策略的逐出策略。即,每個(gè)參數(shù)可以被提取到具有關(guān)聯(lián)計(jì)數(shù)的 參數(shù)緩存120中。參數(shù)緩存118中使用的計(jì)數(shù)與參數(shù)緩存120中使用的計(jì)數(shù)分開。如上所 述,ISP塊108所使用(并且存儲(chǔ)在參數(shù)緩存118中)的計(jì)數(shù)根據(jù)平鋪單元106執(zhí)行的平鋪 來確定。那些相同的計(jì)數(shù)值可以被TSP塊110使用(并且存儲(chǔ)在參數(shù)緩存120中),或者不 同的計(jì)數(shù)可以被TSP塊110使用(并且存儲(chǔ)在參數(shù)緩存120中),其可以例如基于ISP塊108 所執(zhí)行的隱藏面消除(HSR)的結(jié)果來確定(例如,以使得TSP塊110的計(jì)數(shù)可以低于ISP塊 108的計(jì)數(shù))。類似于在有關(guān)ISP塊108所使用的計(jì)數(shù)的上述示例中,在一些示例中,每個(gè)參 數(shù)塊具有(以供TSP塊110使用)與該參數(shù)塊的至少一個(gè)參數(shù)關(guān)聯(lián)的圖塊的數(shù)目的單獨(dú)計(jì) 數(shù)。以如上述有關(guān)ISP塊108的計(jì)數(shù)相同的方式使用TSP塊110的計(jì)數(shù),以便確定哪個(gè)參 數(shù)逐出參數(shù)緩存120,并且可以以相同方式遞減。
[0092] 在上述示例中,存在兩個(gè)分開的參數(shù)緩存:ISP塊108所使用的參數(shù)緩存118以及 TSP塊110所使用的參數(shù)緩存120。在其它示例中,可能存在單個(gè)("統(tǒng)一")參數(shù)緩存,其可 以由ISP塊108和TSP塊110兩者使用。甚至當(dāng)使用單個(gè)緩存時(shí),分開的計(jì)數(shù)將用于ISP 塊108和TSP塊110。然而,當(dāng)使用單一參數(shù)緩存時(shí),處理塊中的一個(gè)處理塊(ISP塊108或 TSP塊110)可以逐出處理塊中的另一處理塊(TSP塊110或ISP塊108)所需的參數(shù),反之 亦然。這將導(dǎo)致參數(shù)緩存的"顛簸(thrashing)"。因此,使用單個(gè)參數(shù)緩存供ISP塊108和 TSP塊110兩者使用,可以降低處理單元102中參數(shù)的緩存的效果。然而,使用單個(gè)參數(shù)緩 存可能是有益的。
[0093] 作為另一示例,TSP塊110所使用的紋理緩存120可以使用對(duì)應(yīng)于有關(guān)參數(shù)緩存 118和120的上述逐出策略的逐出策略。紋理存儲(chǔ)器116駐留在存儲(chǔ)器112中并且存儲(chǔ)紋 理。每個(gè)紋理包括一個(gè)或多個(gè)紋素,其可以應(yīng)用于對(duì)象的圖元。對(duì)象的參數(shù)可以指示紋理的 一部分,當(dāng)在TSP塊110中處理圖塊時(shí),該紋理要被應(yīng)用于對(duì)象的圖元。當(dāng)TSP塊110處理 圖塊時(shí),來自所指示的紋理的合適的紋素從紋理存儲(chǔ)器116被提取到紋理緩存122中。以 與如上所述的可以針對(duì)參數(shù)確定計(jì)數(shù)的方式相同的方式,可以針對(duì)紋素確定計(jì)數(shù)以指示紋 素與之關(guān)聯(lián)的圖塊的數(shù)目。例如,可以在紋理的粒度上確定計(jì)數(shù)(以與如上所述的在參數(shù)塊 的粒度上確定計(jì)數(shù)的方式相同的方式),據(jù)此紋理內(nèi)的每個(gè)紋素被給予相同計(jì)數(shù)值,其指示 來自該紋理的紋素與之關(guān)聯(lián)的圖塊的數(shù)目。當(dāng)紋素需要被逐出紋理緩存122時(shí),紋理緩存 122中的紋素的計(jì)數(shù)可以用來確定哪個(gè)紋素要逐出紋理緩存122。即,基于紋素與之關(guān)聯(lián)的 圖塊的數(shù)目對(duì)從紋理緩存122逐出紋素進(jìn)行加權(quán)。
[0094] 可以確定處理渲染空間內(nèi)的圖塊的順序。許多因素可能有助于確定圖塊要被處理 的順序。例如,簡(jiǎn)單的排序方案包括光柵掃描,其中一次一行圖塊、從上到下來處理圖塊,并 且在每行圖塊內(nèi),順序是從左到右。諸如Boustrophedon排序和Morton排序之類的其它排 序方案是常用的??梢砸远嗑€程的方式來實(shí)現(xiàn)圖塊的處理,并且將要在一個(gè)線程中處理的 圖塊組合在一起可能或者不可能是有益的。作為另一示例,可以使用負(fù)載平衡技術(shù)來確定 圖塊被處理的順序,這樣的技術(shù)的細(xì)節(jié)超過了本說明書的范圍。
[0095] 上述示例涉及實(shí)現(xiàn)用于從緩存逐出圖形數(shù)據(jù)項(xiàng)(例如參數(shù)或紋素)的逐出策略。作 為該逐出策略的實(shí)現(xiàn)的一部分,指示符(或"計(jì)數(shù)")包括在圖形數(shù)據(jù)項(xiàng)的緩存中,以指示每 個(gè)圖形數(shù)據(jù)項(xiàng)與之關(guān)聯(lián)的圖塊的數(shù)目。這些指示符可以用于確定圖塊要被處理的順序。指 示符對(duì)確定圖塊要被處理的順序的影響可能比在確定中考慮的其它因素小,但是在其它因 素相等的情況下,緩存中的指示符可以確定圖塊被處理的順序。使用已經(jīng)在緩存中的圖形 數(shù)據(jù)項(xiàng)而不是需要將圖形數(shù)據(jù)項(xiàng)提取到緩存中來處理要被處理的圖塊,可能是有益的。在 指示符是如上所述的遞減計(jì)數(shù)的示例中,則對(duì)于具有相對(duì)低的計(jì)數(shù)值的圖形數(shù)據(jù)項(xiàng),優(yōu)選 地朝零驅(qū)動(dòng)計(jì)數(shù)以使得它們將被逐出緩存(從而為其它圖形數(shù)據(jù)項(xiàng)釋放緩存中的空間)并 且將不需要它們用于處理其它圖塊,可能是有益的。這可以通過選擇處理與那些圖形數(shù)據(jù) 項(xiàng)關(guān)聯(lián)的圖塊來完成。圖塊的顯示列表可以用來確定哪個(gè)圖塊與哪個(gè)圖形數(shù)據(jù)項(xiàng)關(guān)聯(lián)。這 可能是因?yàn)樵谄渌鼒?chǎng)景中,圖塊被選擇進(jìn)行處理,從而減小緩存中具有相對(duì)高的計(jì)數(shù)值的 圖形數(shù)據(jù)項(xiàng)的計(jì)數(shù)。
[0096] -般來說,上述任何功能、方法、技術(shù)或組件可以在使用軟件、固件、硬件(例如固 定邏輯電路)或者這些實(shí)施方式的任何組合的模塊中實(shí)現(xiàn)。本文使用術(shù)語"模塊"、"功能"、 "組件"和"邏輯"來一般地表示軟件、固件、硬件或其任何組合。
[0097] 在軟件實(shí)現(xiàn)的情況下,模塊、功能、組件或邏輯表示程序代碼,該程序代碼當(dāng)在處 理器(例如一個(gè)或多個(gè)CPU)上執(zhí)行時(shí)完成指定任務(wù)。在一個(gè)示例中,所述方法可以由計(jì)算機(jī) 來執(zhí)行,該計(jì)算機(jī)配置有具有機(jī)器可讀形式、存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)上的軟件。計(jì)算機(jī)可讀 介質(zhì)的一個(gè)這樣的配置是信號(hào)承載介質(zhì),并且因此被配置為諸如通過網(wǎng)絡(luò)傳輸指令(例如 載波)到計(jì)算設(shè)備。計(jì)算機(jī)可讀介質(zhì)還可以被配置為計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),并且因此不是信 號(hào)承載介質(zhì)。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)的示例包括隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、 光盤、閃存、硬盤存儲(chǔ)器以及可以使用磁性、光學(xué)和其它技術(shù)來存儲(chǔ)指令或其它數(shù)據(jù)并且可 以通過機(jī)器訪問的其它存儲(chǔ)器設(shè)備。
[0098] 當(dāng)程序在計(jì)算機(jī)上運(yùn)行時(shí)并且在計(jì)算機(jī)程序可以包含在計(jì)算機(jī)可讀介質(zhì)上的地 方,軟件可以是包括用于配置計(jì)算機(jī)以執(zhí)行所述方法的組成部分的計(jì)算機(jī)程序代碼的計(jì)算 機(jī)程序的形式,或者包括適于執(zhí)行本文所述任一方法的所有步驟的計(jì)算機(jī)程序代碼裝置的 計(jì)算機(jī)程序的形式。程序代碼可以存儲(chǔ)在一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì)中。本文所述技術(shù)的 特征是獨(dú)立于平臺(tái)的,這意味著該技術(shù)可以在具有各種各樣的處理器的各種各樣的計(jì)算平 臺(tái)上實(shí)現(xiàn)。
[0099] 本領(lǐng)域技術(shù)人員還會(huì)意識(shí)到,可以通過專用電路、專用集成電路、可編程邏輯陣 列、現(xiàn)場(chǎng)可編程門陣列等來執(zhí)行所有或部分功能、技術(shù)或方法。例如,模塊、功能、組件或邏 輯可以包括電路形式的硬件。這些電路可以包括晶體管和/或生產(chǎn)過程中可得的其它硬件 元件。通過示例,這樣的晶體管和/或其它元件可以用來形成實(shí)現(xiàn)和/或包含存儲(chǔ)器(諸如 寄存器、觸發(fā)器或鎖存器)、邏輯算子(諸如布爾運(yùn)算)、數(shù)學(xué)算子(諸如加法器、乘法器或移 位器)和互連的電路或結(jié)構(gòu)。這樣的元件可以被提供為定制電路或標(biāo)準(zhǔn)單元庫、宏或者在其 它的抽象水平。這樣的元件可以以特定布局相互連接。模塊、功能、組件或邏輯可以包括為 固定功能的電路以及可以被編程為執(zhí)行一個(gè)功能或多個(gè)功能的電路;這樣的編程可以從固 件或軟件更新或控制機(jī)制提供。在示例中,硬件邏輯具有實(shí)現(xiàn)固定功能操作、狀態(tài)機(jī)或過程 的電路。
[0100] 還旨在包括"描述"或定義實(shí)現(xiàn)上述模塊、功能、組件或邏輯的硬件的配置的軟件, 諸如HDL (硬件描述語言)軟件,如用于設(shè)計(jì)集成電路,或者用于配置可編程芯片,以執(zhí)行期 望的功能。即,可以提供一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其具有在其上編碼的計(jì)算機(jī)可讀程序代 碼,該計(jì)算機(jī)可讀程序代碼用于生成被配置為執(zhí)行本文所述任何方法的處理單元,或者用 于生成包括本文所述任何裝置的處理單元。
[0101] 本文使用術(shù)語"處理器"和"計(jì)算機(jī)"指代具有處理能力以使得其可以執(zhí)行指令的 任何設(shè)備或其部分,或者能夠執(zhí)行全部或部分功能或方法的專用電路,或其任何組合。
[0102] 雖然已經(jīng)以特定于結(jié)構(gòu)特征和/或方法動(dòng)作的語言描述了本技術(shù)方案,但要理解 的是,所附權(quán)利要求中限定的本技術(shù)方案不一定限于上述特定特征或動(dòng)作。相反,上述特定 特征和動(dòng)作被公開為實(shí)現(xiàn)權(quán)利要求的示例形式。將理解的是,上述益處和優(yōu)點(diǎn)可以與一個(gè) 示例有關(guān)或者可以與若干示例有關(guān)。
[0103] 如將對(duì)于技術(shù)人員顯而易見的,本文給出的任何范圍或數(shù)值可以被擴(kuò)展或變更而 不失去所尋求的效果。本文描述的方法的步驟可以以任何合適的順序或者同時(shí)(在合適的 情況下)執(zhí)行。上述任何示例的方面可以與所述任何其它示例的方面組合以形成另外的示 例而不失去所尋求的效果。
【權(quán)利要求】
1. 一種處理基于圖塊的圖形系統(tǒng)中的數(shù)據(jù)的方法,所述基于圖塊的圖形系統(tǒng)具有被細(xì) 分成圖形數(shù)據(jù)項(xiàng)與之關(guān)聯(lián)的多個(gè)圖塊的渲染空間,所述方法包括: 從圖形數(shù)據(jù)存儲(chǔ)器提取要被用于處理所述圖塊中的一個(gè)圖塊的圖形數(shù)據(jù)項(xiàng)到緩存中; 以及 從所述緩存讀取所述圖形數(shù)據(jù)項(xiàng)以用于處理所述圖塊中的所述一個(gè)圖塊,其中所述方 法還包括: 確定所述圖形數(shù)據(jù)項(xiàng)的指示符,其中,對(duì)于每個(gè)所述圖形數(shù)據(jù)項(xiàng),所述圖形數(shù)據(jù)項(xiàng)的所 述指示符指示所述圖形數(shù)據(jù)項(xiàng)與之關(guān)聯(lián)的圖塊的數(shù)目; 基于確定的所述指示符,確定逐出所述緩存中的哪些圖形數(shù)據(jù)項(xiàng);以及 從所述緩存逐出確定的所述圖形數(shù)據(jù)項(xiàng)。
2. 根據(jù)權(quán)利要求1所述的方法,還包括確定所述圖形數(shù)據(jù)項(xiàng)的邊界區(qū)域,其中如果特 定圖形數(shù)據(jù)項(xiàng)的邊界區(qū)域與特定圖塊至少部分重疊,則所述特定圖形數(shù)據(jù)項(xiàng)與所述特定圖 塊關(guān)聯(lián), 并且其中對(duì)于每個(gè)所述圖形數(shù)據(jù)項(xiàng),所述圖形數(shù)據(jù)項(xiàng)的所述指示符指示圖塊的數(shù)目, 所述圖塊與所述圖形數(shù)據(jù)項(xiàng)的所述邊界區(qū)域至少部分重疊。
3. 根據(jù)前述任一權(quán)利要求所述的方法,其中對(duì)于每個(gè)所述圖形數(shù)據(jù)項(xiàng),所述圖形數(shù)據(jù) 項(xiàng)與之關(guān)聯(lián)的圖塊的數(shù)目在確定哪些圖形數(shù)據(jù)項(xiàng)存在于每個(gè)所述圖塊中的步驟期間被確 定,并且其中所述方法還包括基于所述緩存中的所述圖形數(shù)據(jù)項(xiàng)的所述指示符并且基于確 定哪些圖形數(shù)據(jù)項(xiàng)存在于每個(gè)所述圖塊中的步驟,來確定圖塊要被處理的順序。
4. 根據(jù)前述任一權(quán)利要求所述的方法,其中所述圖形數(shù)據(jù)項(xiàng)是定義包含在所述圖塊 中的幾何體的參數(shù),其中所述圖形數(shù)據(jù)集合是參數(shù)塊并且所述圖形數(shù)據(jù)存儲(chǔ)器是參數(shù)緩沖 器。
5. 根據(jù)前述任一權(quán)利要求所述的方法,其中所述圖形數(shù)據(jù)項(xiàng)是包含在所述圖塊中的紋 理的紋素,其中所述圖形數(shù)據(jù)集合是紋理并且所述圖形數(shù)據(jù)存儲(chǔ)器是紋理存儲(chǔ)器。
6. 根據(jù)前述任一權(quán)利要求所述的方法,還包括: 確定另外的圖形數(shù)據(jù)項(xiàng)要被提取到所述緩存中;并且 確定在不從所述緩存逐出一些圖形數(shù)據(jù)項(xiàng)的情況下,所述緩存中沒有足夠空間來存儲(chǔ) 所述另外的圖形數(shù)據(jù)項(xiàng), 其中所述確定逐出所述緩存中的哪些圖形數(shù)據(jù)項(xiàng)和所述從所述緩存逐出確定的所述 圖形數(shù)據(jù)項(xiàng)響應(yīng)于所述確定所述緩存中沒有足夠空間來存儲(chǔ)所述另外的圖形數(shù)據(jù)項(xiàng)而被 執(zhí)行。
7. -種基于圖塊的圖形系統(tǒng),所述基于圖塊的圖形系統(tǒng)具有被細(xì)分成圖形數(shù)據(jù)項(xiàng)與之 關(guān)聯(lián)的多個(gè)圖塊的渲染空間,所述基于圖塊的圖形系統(tǒng)包括處理單元,所述處理單元被配 置為: 從圖形數(shù)據(jù)存儲(chǔ)器提取要被用于處理所述圖塊中的一個(gè)圖塊的圖形數(shù)據(jù)項(xiàng)到緩存 中; 從所述緩存讀取所述圖形數(shù)據(jù)項(xiàng)以用于處理所述圖塊中的所述一個(gè)圖塊; 確定所述圖形數(shù)據(jù)項(xiàng)的指示符,其中,對(duì)于每個(gè)所述圖形數(shù)據(jù)項(xiàng),所述圖形數(shù)據(jù)項(xiàng)的所 述指示符指示所述圖形數(shù)據(jù)項(xiàng)與之關(guān)聯(lián)的圖塊的數(shù)目; 基于確定的所述指示符,確定逐出所述緩存中的哪些圖形數(shù)據(jù)項(xiàng);以及 從所述緩存逐出確定的所述圖形數(shù)據(jù)項(xiàng)。
8. 根據(jù)權(quán)利要求7所述的系統(tǒng),其中所述圖形數(shù)據(jù)項(xiàng)存儲(chǔ)在所述圖形數(shù)據(jù)存儲(chǔ)器中的 圖形數(shù)據(jù)集合中,每個(gè)所述圖形數(shù)據(jù)集合包括一個(gè)或多個(gè)所述圖形數(shù)據(jù)項(xiàng),并且其中如果 包括特定圖形數(shù)據(jù)項(xiàng)的所述圖形數(shù)據(jù)集合中的圖形數(shù)據(jù)項(xiàng)要被用于處理特定圖塊,則所述 特定圖形數(shù)據(jù)項(xiàng)與所述特定圖塊關(guān)聯(lián), 并且其中對(duì)于每個(gè)所述圖形數(shù)據(jù)項(xiàng),所述圖形數(shù)據(jù)項(xiàng)的所述指示符指示圖塊的數(shù)目, 使用包括所述圖形數(shù)據(jù)項(xiàng)的所述圖形數(shù)據(jù)集合中的圖形數(shù)據(jù)項(xiàng)處理所述圖塊。
9. 根據(jù)權(quán)利要求7或8所述的系統(tǒng),其中如果特定圖形數(shù)據(jù)項(xiàng)要被用于處理特定圖塊, 則所述特定圖形數(shù)據(jù)項(xiàng)與所述特定圖塊關(guān)聯(lián), 并且其中對(duì)于每個(gè)所述圖形數(shù)據(jù)項(xiàng),所述圖形數(shù)據(jù)項(xiàng)的所述指示符指示圖塊的數(shù)目, 使用所述圖形數(shù)據(jù)項(xiàng)處理所述圖塊。
10. 根據(jù)權(quán)利要求7至9中任一項(xiàng)所述的系統(tǒng),其中所述處理單元被配置為確定哪些圖 形數(shù)據(jù)項(xiàng)存在于每個(gè)所述圖塊中,從而對(duì)于每個(gè)所述圖形數(shù)據(jù)項(xiàng),確定所述圖形數(shù)據(jù)項(xiàng)與 之關(guān)聯(lián)的圖塊的數(shù)目。
11. 根據(jù)權(quán)利要求7至10中任一項(xiàng)所述的系統(tǒng),其中所述圖形數(shù)據(jù)項(xiàng)是定義包含在所 述圖塊中的幾何體的參數(shù),或者其中所述圖形數(shù)據(jù)項(xiàng)是包含在所述圖塊中的紋理的紋素。
12. 根據(jù)權(quán)利要求7至11中任一項(xiàng)所述的系統(tǒng),其中對(duì)于每個(gè)所述圖形數(shù)據(jù)項(xiàng),所述指 示符是所述圖形數(shù)據(jù)項(xiàng)與之關(guān)聯(lián)的圖塊的數(shù)目的計(jì)數(shù)。
13. 根據(jù)權(quán)利要求12所述的系統(tǒng),其中所述處理單元還被配置為當(dāng)特定圖形數(shù)據(jù)項(xiàng)與 之關(guān)聯(lián)的圖塊已經(jīng)被處理時(shí),使所述特定圖形數(shù)據(jù)項(xiàng)的計(jì)數(shù)遞減。
14. 根據(jù)權(quán)利要求12或13所述的系統(tǒng),其中所述處理單元被配置為通過(i )確定所述 緩存中的哪個(gè)圖形數(shù)據(jù)項(xiàng)具有最低的計(jì)數(shù)或者(ii)確定任何所述圖形數(shù)據(jù)項(xiàng)是否具有等 于零的計(jì)數(shù),來確定逐出所述緩存中的哪些圖形數(shù)據(jù)項(xiàng)。
15. 根據(jù)權(quán)利要求12至14中任一項(xiàng)所述的系統(tǒng),其中所述處理單元被配置為為所述計(jì) 數(shù)設(shè)定限度,以使得對(duì)于每個(gè)所述圖形數(shù)據(jù)項(xiàng),如果所述圖形數(shù)據(jù)項(xiàng)與之關(guān)聯(lián)的圖塊的數(shù) 目大于預(yù)定最大值,則所述計(jì)數(shù)被確定為等于所述預(yù)定最大值,其中所述處理單元被配置 為僅在所述計(jì)數(shù)小于所述預(yù)定最大值的情況下使所述計(jì)數(shù)遞減。
16. 根據(jù)權(quán)利要求7至11中任一項(xiàng)所述的系統(tǒng),其中對(duì)于每個(gè)所述圖形數(shù)據(jù)項(xiàng),所述圖 形數(shù)據(jù)項(xiàng)的所述指示符指示兩個(gè)條件之一,所述兩個(gè)條件是: (i) 所述圖形數(shù)據(jù)項(xiàng)與之關(guān)聯(lián)的圖塊的數(shù)目等于1,以及 (ii) 所述圖形數(shù)據(jù)項(xiàng)與之關(guān)聯(lián)的圖塊的數(shù)目大于1。
17. 根據(jù)權(quán)利要求7至11中任一項(xiàng)所述的系統(tǒng),其中對(duì)于每個(gè)所述圖形數(shù)據(jù)項(xiàng),所述圖 形數(shù)據(jù)項(xiàng)的所述指示符指示四個(gè)條件之一,所述四個(gè)條件是: (i) 所述圖形數(shù)據(jù)項(xiàng)與之關(guān)聯(lián)的圖塊的數(shù)目等于1, (ii) 所述圖形數(shù)據(jù)項(xiàng)與之關(guān)聯(lián)的圖塊的數(shù)目等于2, (iii) 所述圖形數(shù)據(jù)項(xiàng)與之關(guān)聯(lián)的圖塊的數(shù)目等于3或4,以及 (iv) 所述圖形數(shù)據(jù)項(xiàng)與之關(guān)聯(lián)的圖塊的數(shù)目大于4。
18. 根據(jù)權(quán)利要求7至17中任一項(xiàng)所述的系統(tǒng),其中所述處理單元還被配置為: 確定另外的圖形數(shù)據(jù)項(xiàng)要被提取到所述緩存中;并且 確定在不從所述緩存逐出一些圖形數(shù)據(jù)項(xiàng)的情況下,所述緩存中沒有足夠空間來存儲(chǔ) 所述另外的圖形數(shù)據(jù)項(xiàng), 其中所述處理單元被配置為響應(yīng)于確定所述緩存中沒有足夠空間來存儲(chǔ)所述另外的 圖形數(shù)據(jù)項(xiàng),確定逐出所述緩存中的哪些圖形數(shù)據(jù)項(xiàng)并且從所述緩存逐出確定的所述圖形 數(shù)據(jù)項(xiàng)。
19. 一種基于圖塊的圖形系統(tǒng)的處理塊,所述基于圖塊的圖形系統(tǒng)具有被細(xì)分成圖形 數(shù)據(jù)項(xiàng)與之關(guān)聯(lián)的多個(gè)圖塊的渲染空間,所述處理塊包括: 提取邏輯,被配置為從圖形數(shù)據(jù)存儲(chǔ)器提取要被用于處理所述圖塊中的一個(gè)圖塊的圖 形數(shù)據(jù)項(xiàng)到緩存中; 確定邏輯,被配置為確定所述圖形數(shù)據(jù)項(xiàng)的指示符,以使得對(duì)于每個(gè)所述圖形數(shù)據(jù)項(xiàng), 所述圖形數(shù)據(jù)項(xiàng)的所述指示符指示所述圖形數(shù)據(jù)項(xiàng)與之關(guān)聯(lián)的圖塊的數(shù)目; 讀取邏輯,被配置為從所述緩存讀取所述圖形數(shù)據(jù)項(xiàng)以用于處理所述圖塊中的所述一 個(gè)圖塊;以及 逐出邏輯,被配置為: 基于確定的所述指示符,確定逐出所述緩存中的哪些圖形數(shù)據(jù)項(xiàng);以及 從所述緩存逐出確定的所述圖形數(shù)據(jù)項(xiàng)。
20. -種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),具有在其上編碼的、用于生成被配置為執(zhí)行權(quán)利要求1 至6中任一項(xiàng)所述的方法的處理單元的計(jì)算機(jī)可讀程序代碼。
【文檔編號(hào)】G06T15/00GK104103084SQ201410132510
【公開日】2014年10月15日 申請(qǐng)日期:2014年4月2日 優(yōu)先權(quán)日:2013年4月2日
【發(fā)明者】S·J·費(fèi)什維克, J·豪森 申請(qǐng)人:想象技術(shù)有限公司