用于基于瓦片的渲染器的查詢處理的制作方法
【專利說明】用于基于瓦片的這染器的查詢處理
[0001] 本申請(qǐng)案主張2013年4月29日申請(qǐng)的第61/817, 154號(hào)美國(guó)臨時(shí)申請(qǐng)案的權(quán)益, 所述臨時(shí)申請(qǐng)案的全部?jī)?nèi)容W引用的方式并入本文中。
技術(shù)領(lǐng)域
[0002] 本發(fā)明設(shè)及圖形處理系統(tǒng),且更明確地說設(shè)及用于基于瓦片的擅染器的查詢處 理。
【背景技術(shù)】
[0003] 計(jì)算裝置常常利用圖形處理單元(GPU)W加速擅染用于顯示的圖形數(shù)據(jù)。此類計(jì) 算裝置可包含(例如)計(jì)算機(jī)工作站、移動(dòng)電話(例如所謂的智能電話)、嵌入系統(tǒng)、個(gè)人計(jì) 算機(jī)、平板計(jì)算機(jī)和視頻游戲控制臺(tái)。擅染通常指代將可包含一或多個(gè)3D圖形對(duì)象的=維 (3D)圖形場(chǎng)景轉(zhuǎn)換為二維(2D)光柵化圖像數(shù)據(jù)的過程。圖形場(chǎng)景可擅染為一或多個(gè)帖的 序列,其中每一帖描繪在時(shí)間上特定例項(xiàng)處的圖形場(chǎng)景。
[0004]GPU可包含3D擅染管線W提供用于3D圖形場(chǎng)景的擅染的至少部分硬件加速。場(chǎng) 景中的3D圖形對(duì)象可由圖形應(yīng)用細(xì)分為一或多個(gè)3D圖形基元(例如,點(diǎn)、線、S角形、補(bǔ)下 等),且GPU可將場(chǎng)景的3D圖形基元轉(zhuǎn)換為待擅染的帖中的每一者的2D光柵化圖像數(shù)據(jù)。 因此,在GPU擅染的特定上下文中,擅染可指代將對(duì)應(yīng)于圖形場(chǎng)景中的3D對(duì)象的3D圖形基 元轉(zhuǎn)換為2D光柵化圖像數(shù)據(jù)的過程。 陽0化]為擅染特定帖的3D圖形基元,在主機(jī)中央處理單元(CPU)上執(zhí)行的圖形應(yīng)用可 將對(duì)應(yīng)于待擅染的基元的幾何形狀數(shù)據(jù)放置到GPU可存取存儲(chǔ)器中,將一或多個(gè)GPU狀態(tài) 設(shè)置命令放置到命令流中,且將一或多個(gè)繪制調(diào)用放置到命令流中,所述繪制調(diào)用致使GPU 基于幾何形狀數(shù)據(jù)擅染基元。GPU可W命令被放置于命令流中的次序處理命令流中包含的 命令,借此擅染場(chǎng)景。
[0006] 利用基于瓦片的擅染,查詢結(jié)果由GPUW每瓦片為基礎(chǔ)輸出且稍后由CPU累計(jì)。查 詢結(jié)果可包含(例如)來自遮擋查詢、時(shí)戳查詢、管線狀態(tài)查詢(管線統(tǒng)計(jì))等的結(jié)果。遮 擋查詢?yōu)閳D形處理中的確定待擅染的對(duì)象是否被圖形場(chǎng)景(或瓦片)中的其它對(duì)象遮擋的 查詢。因此,來自此查詢的查詢結(jié)果為提供待擅染的對(duì)象是否被圖形場(chǎng)景(或瓦片)中的 其它對(duì)象遮擋的指示的數(shù)據(jù)。
[0007] 在一些實(shí)例中,時(shí)戳為識(shí)別何時(shí)發(fā)生特定事件的字符的序列或經(jīng)編碼信息。時(shí)戳 可提供(例如)事件發(fā)生的日期和時(shí)間。時(shí)戳可準(zhǔn)確到一秒的小分?jǐn)?shù)。時(shí)戳查詢可用于例 如通過比較從此查詢的開始到停止的時(shí)戳來檢查圖形場(chǎng)景中的特定事件的定時(shí)。因此,來 自此查詢的查詢結(jié)果可為從此查詢的開始到停止的時(shí)戳的差。
[0008] 管線狀態(tài)查詢或管線統(tǒng)計(jì)查詢可用于檢查圖形管線的各種統(tǒng)計(jì)和狀態(tài)信息。因 此,來自此查詢的查詢結(jié)果可為關(guān)于圖形管線的各種統(tǒng)計(jì)和狀態(tài)信息的數(shù)據(jù)。
[0009] 存儲(chǔ)此中間每瓦片結(jié)果所需要的存儲(chǔ)器的量隨著瓦片的數(shù)目增加而線性地增加。 此外,當(dāng)請(qǐng)求查詢結(jié)果時(shí),CPU或其它處理器可需要累計(jì)n個(gè)存儲(chǔ)器位置中的結(jié)果W得到最 終值,其中"n"為用于擅染場(chǎng)景的瓦片的數(shù)目。瓦片的數(shù)目的增加還增加CPU進(jìn)行所述累 計(jì)所花費(fèi)的時(shí)間量。執(zhí)行此些查詢的更加存儲(chǔ)器和時(shí)間有效的方式可為有利的。
【附圖說明】
[0010] 圖1為說明可用于實(shí)施本發(fā)明的技術(shù)的實(shí)例計(jì)算裝置的框圖。
[0011] 圖2為說明圖1中更詳細(xì)地展示的計(jì)算裝置的CPU、GPU和存儲(chǔ)器的框圖。
[0012] 圖3為說明基于瓦片的擅染的概念圖。
[0013] 圖4為說明實(shí)例遮擋查詢的概念圖。
[0014] 圖5為說明實(shí)例存儲(chǔ)器映像的概念圖。
[0015] 圖6為說明根據(jù)本發(fā)明的實(shí)例存儲(chǔ)器映像的概念圖。
[0016] 圖7為說明根據(jù)本發(fā)明的技術(shù)的實(shí)例遮擋查詢的概念圖。
[0017] 圖8為說明實(shí)施本發(fā)明的一或多個(gè)方面的實(shí)例方法的流程圖。
【具體實(shí)施方式】
[0018] 本發(fā)明設(shè)及圖形處理系統(tǒng),且更明確地說設(shè)及用于基于瓦片的擅染器的查詢處 理?;谕咂纳萌緸榻鑇將待擅染的帖或其它區(qū)劃分成瓦片(例如,矩形或正方形區(qū)) 的處理技術(shù),且每一瓦片單獨(dú)地擅染?;谕咂纳萌究捎糜诓捎脠?chǎng)景中的局部空間相干 性W促進(jìn)稍后在圖形管線中有限硬件擅染資源(例如,快速圖形存儲(chǔ)器)的使用,或兩者。 通常,在基于瓦片的擅染中,系統(tǒng)、設(shè)備或裝置(例如計(jì)算機(jī)圖形裝置)可將帖劃分為(例 如)規(guī)則的柵格。柵格形成瓦片,瓦片是帖或其它區(qū)的部分。每一瓦片可使用與另一瓦片 相同的擅染命令流來擅染。
[0019] 在一些實(shí)例中,基于裝倉化inning)或瓦片(tile)的擅染可提供一種在稱為"瓦 片"或"倉"的較小部分中擅染3D場(chǎng)景的方式。如上文所論述,基于瓦片的擅染可用于采用 場(chǎng)景中的局部空間相干性,W促進(jìn)稍后在圖形管線中有限硬件擅染資源的使用,或兩者。通 常,在基于瓦片的擅染中,系統(tǒng)、設(shè)備或裝置(例如計(jì)算機(jī)圖形裝置)可將帖劃分為(例如) 規(guī)則的柵格。柵格形成瓦片,瓦片是帖或其它區(qū)的部分。在一實(shí)例中,每一瓦片或倉可使用 相同擅染命令流來擅染。
[0020] 出于說明的目的,將論述遮擋查詢,但將理解,本發(fā)明的運(yùn)些技術(shù)也可應(yīng)用于其它 類型的查詢。如上文所論述,在一些實(shí)例中,遮擋查詢?yōu)閳D形處理中的確定待擅染的對(duì)象是 否被圖形場(chǎng)景(或瓦片)中的其它對(duì)象遮擋的查詢。經(jīng)設(shè)計(jì)W查詢來自(例如)GPU的不同 類型的信息的若干類型的查詢是可能的。實(shí)例包含遮擋查詢、時(shí)戳查詢、管線狀態(tài)查詢(管 線統(tǒng)計(jì))等。在一些實(shí)例中,時(shí)戳為識(shí)別何時(shí)發(fā)生特定事件的字符的序列或經(jīng)編碼信息。時(shí) 戳可提供(例如)事件發(fā)生的日期和時(shí)間。時(shí)戳可準(zhǔn)確到一秒的小分?jǐn)?shù)。時(shí)戳查詢可用于 例如通過比較從此查詢的開始到停止的時(shí)戳來檢查圖形場(chǎng)景中的特定事件的定時(shí)。管線狀 態(tài)查詢或管線統(tǒng)計(jì)查詢可用于檢查圖形管線的各種統(tǒng)計(jì)和狀態(tài)信息。本發(fā)明的技術(shù)還可應(yīng) 用于時(shí)戳查詢、管線狀態(tài)查詢(管線統(tǒng)計(jì))和其它類型的查詢。
[0021] 如上文所論述,圖形處理系統(tǒng)可使用遮擋查詢W確定(例如)待擅染的對(duì)象是否 被圖形場(chǎng)景(或瓦片)中的其它對(duì)象遮擋。換句話說,圖形處理系統(tǒng)可使用遮擋查詢W確定 待擅染的對(duì)象是否被圖形場(chǎng)景(或瓦片)中的其它對(duì)象阻擋使得其無法被檢視,或待擅染 的對(duì)象是否未被圖形場(chǎng)景(或瓦片)中的其它對(duì)象阻擋使得其可被檢視。在一些實(shí)例中, 對(duì)象可被阻擋、部分阻擋或可見。圖形處理器可使用此信息使擅染更有效。舉例來說,通過 不擅染被遮擋(即,被阻擋使得其無法被看見)的對(duì)象,可節(jié)省處理資源,從而使瓦片的擅 染更有效。可擅染未被遮擋的對(duì)象。在一些實(shí)例中,可擅染被部分遮擋的對(duì)象。在其它實(shí) 例中,可不擅染被部分遮擋的對(duì)象。被部分遮擋的對(duì)象可部分擅染或分裂為越來越小的對(duì) 象且再測(cè)試。然而,將理解,在某一點(diǎn)處,使用處理資源僅僅擅染對(duì)象或?qū)ο蟮目梢姴糠滞?常將比耗費(fèi)較多處理資源執(zhí)行進(jìn)一步遮擋查詢更為有利。被遮擋對(duì)象的擅染可取決于(例 如)對(duì)象的多少被遮擋。
[0022] 可通過界定表示輸出(例如待顯示或擅染的帖)的一組基元(多邊形,例如=角 形)來執(zhí)行圖形處理。擅染輸出的每一基元通常界定和表示為一組頂點(diǎn),其中每一頂點(diǎn)具 有與其相關(guān)聯(lián)的一組頂點(diǎn)數(shù)據(jù)值。
[0023] 輸出的基元可隨后光柵化W產(chǎn)生多個(gè)離散圖形實(shí)體,所述多個(gè)離散圖形實(shí)體可進(jìn) 一步經(jīng)處理W產(chǎn)生經(jīng)擅染輸出。運(yùn)些離散圖形實(shí)體可為像素。然而,離散圖形實(shí)體可不始 終確切對(duì)應(yīng)于擅染輸出中的單一像素。此歸因于(例如)向下縮放。
[0024] 遮擋查詢通常對(duì)給定對(duì)象或可見的對(duì)象的離散圖形實(shí)體(例如,像素、樣本等)的 數(shù)目計(jì)數(shù),且使用所述計(jì)數(shù)W確定由所述離散圖形實(shí)體形成的一或多個(gè)對(duì)象是否可見、所 述一或多個(gè)對(duì)象的部分是否可見,或兩者。各種機(jī)制允許確定多少圖形實(shí)體(例如像素或 樣本)經(jīng)光柵化。
[00巧]典型的遮擋查詢序列可包含(1)開始遮擋查詢,(2)繪制一或多個(gè)對(duì)象,(3)結(jié)束 遮擋查詢,和(4)獲得多少樣本經(jīng)擅染的結(jié)果。存儲(chǔ)例如遮擋查詢等查詢中的中間每瓦片 結(jié)果所需要的存儲(chǔ)器的量可隨瓦片的數(shù)目增加而線性地增加。瓦片的數(shù)目增加還增加例如 當(dāng)請(qǐng)求最終查詢結(jié)果時(shí)CPU進(jìn)行累計(jì)所花費(fèi)的時(shí)間量。在一個(gè)實(shí)例中,一種執(zhí)行此些查詢 的較存儲(chǔ)器有效方式可在查詢開始時(shí)讀取運(yùn)行計(jì)數(shù)器W確定開始值,其中運(yùn)行計(jì)數(shù)器對(duì)經(jīng) 擅染的樣本計(jì)數(shù);在查詢結(jié)束時(shí)讀取運(yùn)行計(jì)數(shù)器W確定結(jié)束值;且從所述結(jié)束值減去所述 開始值W確定結(jié)果,并再使用相同開始計(jì)數(shù)器和結(jié)束計(jì)數(shù)器存儲(chǔ)器位置W每倉/瓦片方式 執(zhí)行此操作。本文論述關(guān)于針對(duì)基于瓦片的擅染器的遮擋查詢處理的實(shí)例。然而,將理解, 在其它實(shí)例中,可使用運(yùn)些技術(shù)處理例如時(shí)戳查詢、管線狀態(tài)查詢(管線統(tǒng)計(jì))和其它類型 的查詢等其它類型的查詢。
[0026] 圖1是說明可用W實(shí)施本發(fā)明的查詢處理技術(shù)的實(shí)例計(jì)算裝置2的框圖。計(jì)算裝 置2可包括個(gè)人計(jì)算機(jī)、臺(tái)式計(jì)算機(jī)、膝上型計(jì)算機(jī)、計(jì)算機(jī)工作站、視頻游戲平臺(tái)或控制 臺(tái)、無線通信裝置(例如,移動(dòng)電話、蜂窩式電話、衛(wèi)星電話和/或移動(dòng)電話手持機(jī))、陸線 電話、因特網(wǎng)電話、手持式裝置(例如,便攜式視頻游戲裝置或個(gè)人數(shù)字助理(PDA))、個(gè)人 音樂播放器、視頻播放器、顯示裝置、電視機(jī)、電視機(jī)頂盒、服務(wù)器、中間網(wǎng)絡(luò)裝置、主機(jī)計(jì)算 機(jī),或處理和/或顯示圖形數(shù)據(jù)的任何其它類型的裝置。
[0027] 在一些實(shí)例中,例如當(dāng)計(jì)算裝置2包括(例如)個(gè)人計(jì)算機(jī)、臺(tái)式計(jì)算機(jī)、膝上型 計(jì)算機(jī)、計(jì)算機(jī)工作站、視頻游戲平臺(tái)或控制臺(tái)時(shí),計(jì)算裝置可例如在處理視頻數(shù)據(jù)W供在 視頻顯示器上顯示時(shí)針對(duì)基于瓦片的擅染器執(zhí)行查詢處理。
[0028] 如果計(jì)算裝置2為無線通信裝置或其它類似裝置,那么其可對(duì)例如話音通信數(shù) 據(jù)、視頻數(shù)據(jù)、文本消息、數(shù)據(jù)文件和可作為數(shù)據(jù)的位流發(fā)射或接收的其它形式的數(shù)據(jù)等一 或多個(gè)數(shù)據(jù)位流進(jìn)行譯碼。位流可為位的時(shí)間系列或序列。類似地,字節(jié)流可為一系列字 節(jié),例如各自8位。如本文所使用,位流可包含字節(jié)流。舉例來說,字節(jié)流可視為位流的特 殊情況。(字節(jié)流為位流,其中數(shù)據(jù)位分組為單元,稱為字節(jié)。)
[0029] 計(jì)算裝置2可例如當(dāng)接收視頻數(shù)據(jù)的位流且處理此位流W供(例如)在視頻顯示 器上擅染時(shí)針對(duì)基于瓦片的擅染器執(zhí)行查詢處理。
[0030] 如圖1的實(shí)例中所說明,計(jì)算裝置2包含用戶接口 4、中央處理單元仰U) 6、存儲(chǔ) 器控制器8、存儲(chǔ)器10、圖形處理單元(GPU) 12、顯示接口 14、顯示器16和總線18。用戶接 口 4、CPU6、存儲(chǔ)器控制器8、GPU12和顯示接口 14可使用總線18彼此通信。應(yīng)注意,圖1 中展示的不同組件之間的總線和通信接口的特定配置僅是示范性的,且具有相同或不同組 件的計(jì)算裝置和/或其它圖形處理系統(tǒng)的其它配置可用于實(shí)施本發(fā)明的技術(shù)。
[0031] 在一些實(shí)例中,計(jì)算裝置2中的例如CPU6、GPU12或其它處理電路等處理器可在 計(jì)算裝置2上執(zhí)行查詢,作為圖形處理的一部分。舉例來說,處理器可在查詢開始時(shí)讀取運(yùn) 行計(jì)數(shù)器W確定開始值。運(yùn)行計(jì)數(shù)器可對(duì)例如像素、樣本、多邊形等離散圖形實(shí)體計(jì)數(shù)。處 理器可在查詢結(jié)束時(shí)讀取運(yùn)行計(jì)數(shù)器W確定結(jié)束值。處理器還可從結(jié)束值減去開始值W確 定結(jié)果。
[0032] CPU6可包括控制計(jì)算裝置2的操作的通用或?qū)S锰幚砥?。用戶可將輸入提供?計(jì)算裝置2W致使CPU6執(zhí)行一或多個(gè)軟件應(yīng)用。在CPU6上執(zhí)行的軟件應(yīng)用可包含(例 如)圖形應(yīng)用、文字處理器應(yīng)用、電子郵件應(yīng)用、電子數(shù)據(jù)表應(yīng)用、媒體播放器應(yīng)用、視頻游 戲應(yīng)用、圖形用戶接口應(yīng)用、操作系統(tǒng)或任何其它類型的程序。用戶可經(jīng)由一或多個(gè)輸入裝 置(未圖示)(例如,鍵盤、鼠標(biāo)、麥克風(fēng)、觸摸墊或經(jīng)由用戶接口 4禪合到計(jì)算裝置2的另 一輸入裝置)將輸入提供到計(jì)算裝置2。
[0033] 在CPU6上執(zhí)行的軟件應(yīng)用可包含一或多個(gè)圖形擅染指令,其指示GPU12將圖形 數(shù)據(jù)擅染到帖緩沖器W供在顯示器16上顯示。在一些實(shí)例