向圖元塊分配圖元的制作方法
【技術(shù)領域】
[0001] 本公開涉及圖形處理,更具體地,涉及向圖元塊分配圖元。
【背景技術(shù)】
[0002] 圖形處理系統(tǒng)被用來處理圖形數(shù)據(jù)。例如,在計算系統(tǒng)上運行的應用可能需要渲 染三維(3D)場景的圖像用于向用戶顯示。該應用可以向圖形處理系統(tǒng)發(fā)送圖形數(shù)據(jù),通常 以圖元(Primitive)的序列的形式,該圖形處理系統(tǒng)可以根據(jù)圖元來渲染場景的圖像。
[0003] 圖1示出了可以用來渲染3D場景的圖像的圖形處理系統(tǒng)100的一些元件。圖形 處理系統(tǒng)100包括圖形處理單元(GPU) 102和存儲器的兩個部分104JP 104 2。注意,存儲 器的兩個部分KMJP 104 2可以是或者可以不是相同物理存儲器的部分,并且通常這兩個存 儲器l〇M^ 104 2fe于"芯片外",即與GPU 102不在相同芯片上。如本領域所公知的,存儲 器(104# 104 2)與GPU 102之間的通信可以通過系統(tǒng)100中的常規(guī)通信總線發(fā)生。
[0004] 在圖1中所示的示例中,圖形處理系統(tǒng)100是基于區(qū)片(tile)的延遲渲染系統(tǒng), 意味著系統(tǒng)100的渲染空間被劃分為多個區(qū)片,并且在對圖元片段執(zhí)行紋理化和/或著色 之前對圖元片段執(zhí)行隱藏面消除以便于渲染場景。然而,在其他示例中,圖形處理系統(tǒng)可以 不是基于區(qū)片的和/或延遲渲染系統(tǒng)。GPU 102包括幾何處理模塊106、分片(tiling)模 塊108以及光柵化模塊110,其中光柵化模塊110包括隱藏面消除(HSR)模塊112和紋理 化/著色模塊114。圖形處理系統(tǒng)100被配置使得由應用提供的圖元序列在幾何處理模塊 106處被接收。幾何處理模塊106執(zhí)行諸如裁剪和挑選的功能以移除沒有落入可見視野的 圖元。幾何處理模塊106還可以將圖元投射在屏幕空間中。幾何處理模塊106將接收到的 圖元放入圖元塊中。每個圖元塊具有頭部,該頭部包括描述圖元塊中的圖元將如何被渲染 的狀態(tài)信息(諸如深度比較模式、混合狀態(tài)、紋理狀態(tài)、圖元類型等)。存在將圖元序列分離 為圖元塊的許多原因。例如,以這種方式將圖元序列分離為圖元塊是有用的,使得圖元可以 以小的、可管理的塊被存儲以及從存儲器中取出。此外,在每個圖元塊中可以存在有限數(shù)量 的頂點(例如,在每個圖元塊中多達64個頂點),因此圖元塊中的頂點的索引可以用固定數(shù) 量的比特來表示,例如,當圖元塊存儲多達64個頂點時,僅需要6個比特用于目錄。因此,將 圖元序列分離為圖元塊將降低頂點索引數(shù)據(jù)存儲在計算機圖形處理硬件中的成本。此外, 通常存在共享相同狀態(tài)的許多圖元,因此在相同的圖元塊中包括這些圖元意味著它們能夠 共享圖元塊的頭部中的相同狀態(tài)信息,這可以降低圖元所需的狀態(tài)信息的總量。此外,將圖 元序列分離為圖元塊考慮到將圖元快存儲在存儲器中之前壓縮它們的更多機會。例如,如 果圖元塊中的所有圖元的第一字節(jié)是相同的,則可以通過僅存儲一次第一字節(jié)的數(shù)據(jù)以及 該字節(jié)將被用于圖元塊中的每個圖元的指示來壓縮圖元。這僅僅是壓縮圖元塊中的圖元數(shù) 據(jù)可以被壓縮的許多方式中的一個示例。
[0005] 如本領域技術(shù)人員將知道的,輸入圖元的序列順序可能影響渲染場景的方式。例 如,如果多個重疊的圖元是透明的,則它們被處理的順序通常將影響圖元被渲染以形成經(jīng) 渲染的場景的方式。因此,為了保持輸入圖元的序列順序,幾何處理模塊106將它們放入圖 元塊中而不改變它們的序列順序。圖元初始被放入第一圖元塊中,并且當?shù)谝粓D元塊是滿 的時,則它可以從幾何處理模塊106被輸出,并且又一個輸入圖元可以被放入新的圖元塊 中。以這種方式,在從幾何處理模塊106輸出的圖元塊中保持了圖元的序列順序。如果圖 元塊中的頂點的數(shù)量大于或等于頂點閾值(例如,給出兩個示例,圖元塊中的頂點的最大 數(shù)量可以為64或256)和/或如果圖元塊中的圖元數(shù)量大于或等于圖元閾值(例如,給出 兩個示例,圖元塊中圖元的最大數(shù)量可以為128或512),則圖元塊可以被認為是"滿的"。
[0006] 從幾何處理模塊106輸出的圖元塊被傳送給分片模塊108,分片模塊108確定哪些 圖元存在于圖形處理系統(tǒng)100的渲染空間的區(qū)片中的每個區(qū)片中。分片模塊108確定每區(qū) 片顯示列表,該每區(qū)片顯示列表指示哪些圖元存在于渲染空間的區(qū)片中的每個區(qū)片中。顯 示列表和圖元塊從分片模塊108被輸出并且被存儲在存儲器。光柵化塊110從存儲 器KM 1*取出用于區(qū)片的顯示列表和與區(qū)片相關的圖元塊,并且HSR模塊112執(zhí)行隱藏面 消除,從而移除在場景中隱藏的圖元的片段。剩余的片段被傳送給紋理化/著色模塊114, 紋理化/著色模塊114對片段執(zhí)行紋理化和/或著色以確定可以傳送給存儲器104 2用于 存儲在幀緩沖器中的經(jīng)渲染的圖像的像素值。光柵化塊110處理區(qū)片中的每個區(qū)片,并且 當整個圖像已經(jīng)被渲染并且被存儲在存儲器1〇4 2中時,圖像可以從圖形處理系統(tǒng)100被輸 出,并且例如,被顯示在顯示器上。
【發(fā)明內(nèi)容】
[0007] 提供了本
【發(fā)明內(nèi)容】
來以在下面的【具體實施方式】中進一步描述的簡化的形式引入 概念的選集。本
【發(fā)明內(nèi)容】
不旨在于標識所要求保護的主題的關鍵特征或主要特征,也不旨 在于限制所要求保護的主題的范圍。
[0008] 提供了一種在圖元塊分配模塊處向圖元塊分配圖元的方法,該圖元塊分配模塊包 括數(shù)據(jù)存儲庫,該數(shù)據(jù)存儲庫用于存儲可以向其分配圖元的圖元塊的集合,該方法包括:接 收圖元的序列;以及針對接收到的圖元中的每個圖元,如果至少一個圖元塊被存儲在數(shù)據(jù) 存儲庫中,則:(i)比較接收到的圖元的空間位置的指示和存儲在數(shù)據(jù)存儲庫中的至少一 個圖元塊的空間位置的指示,以及(ii)基于比較的結(jié)果來向圖元塊分配接收到的圖元,使 得接收到的圖元根據(jù)其空間位置被分配給圖元塊。
[0009] 還提供了一種圖元塊分配模塊,該圖元塊分配模塊用于向圖元塊分配圖元,該圖 元塊分配模塊包括:數(shù)據(jù)存儲庫,該數(shù)據(jù)存儲庫被配置為存儲可向其分配圖元的圖元塊的 集合;以及分配邏輯,該分配邏輯被配置為:(a)接收圖元的序列,以及(b)針對接收到的圖 元中的每個圖元,如果至少一個圖元塊被存儲在數(shù)據(jù)存儲庫中,則:(i)比較接收到的圖元 的空間位置的指示和存儲在數(shù)據(jù)存儲庫中的至少一個圖元塊的空間位置的指示,以及(ii) 基于比較的結(jié)果來向圖元塊分配接收到的圖元,從而將接收到的圖元根據(jù)其空間位置分配 給圖元塊。
[0010] 還提供了計算機可讀代碼,該計算機可讀代碼適合于當在計算機上運行時執(zhí)行本 文所描述的任何方法的步驟。還提供了計算機可讀代碼,該計算機可讀代碼用于生成根據(jù) 本文所描述的任何示例的包括圖元塊分類模塊的圖形處理單元。該計算機可讀代碼可以被 編碼在計算機可讀存儲介質(zhì)上。
[0011] 如對于本領域技術(shù)人員將是明顯的,以上特征可以根據(jù)需要而被組合,并且可以 與本文所描述的實施例的方面中的任何方面進行組合。
【附圖說明】
[0012] 現(xiàn)在將參照附圖詳細描述示例,在附圖中:
[0013] 圖1是現(xiàn)有技術(shù)的圖形處理系統(tǒng)的示意圖;
[0014] 圖2是包括圖元塊分配模塊的圖形處理系統(tǒng)的示意圖;
[0015] 圖3是圖示在圖元塊分配模塊處向圖元塊分配圖元的方法的流程圖;
[0016] 圖4是將被渲染的場景的表示;
[0017] 圖5是圖元塊的表示;以及
[0018] 圖6是計算機系統(tǒng)的示意圖。
[0019] 附圖圖示了各種示例。本領域技術(shù)人員將會理解,圖中所示的元件邊界(例如, 框、框的組合或其他形狀)表示邊界的一個示例。在一些示例中,一個元件可以被設計為多 個元件,或者多個元件可以被設計為一個元件。根據(jù)需要,貫穿附圖使用共同的參考標號來 表示類似的特征。
【具體實施方式】
[0020] 在上面參照圖1描述的系統(tǒng)中,圖元以圖形處理系統(tǒng)100接收到它們的順序被放 入圖元塊中,使得圖元的序列順序被保持。圖元可以被廣泛地分布在圖形處理系統(tǒng)100的 渲染空間上,但是這種分布不影響圖元被放入圖元塊中的順序。具體地,通常可以存在具有 非重疊邊界框的圖元被包括在相同圖元塊中的情況。發(fā)明人已經(jīng)意識到,根據(jù)圖元的空間 位置來將它們分類到圖元塊中可以是有利的,并且這有可能用于非重疊圖元而不會由于圖 元的序列順序上的改變而引起問題。即,保持相互重疊的圖元的相對順序是重要的,但是保 持相互不重疊的圖元的相對序列順序不是那么重要,并且非重疊圖元的相對排序的這種靈 活性允許圖元根據(jù)它們的空間位置而被分類到圖元塊中。如以下更詳細描述的,通過根據(jù) 圖元的空間位置來將圖元分組到圖元塊中,可以提高HSR模塊和/或紋理化/著色模塊的 性能。例如,可以提高HSR模塊的高速緩存一致性。作為另一示例,在基于區(qū)片的渲染系 統(tǒng)中,HSR模塊可以需要取出較少的圖元塊,從而減少了需要被HSR模塊取出的圖元數(shù)據(jù)的 量。
[0021 ] 現(xiàn)在將僅通過示例的方式來描述實施例。
[0022] 圖2示出了可以用來渲染3D場景的圖像的圖形處理系統(tǒng)200的一些元件。圖形處 理系統(tǒng)200包括GPU 202和存儲器的兩個部分204JP 204 2。注意,存儲器的兩個部分20尖 和2042可以是或者可以不是相同物理存儲器的部分,并且這兩個存儲器204 JP 204 2都可 以位于"芯片外",即,與GPU 202不在相同的芯片上。存儲器(204JP 204 2)和GPU 202之 間的通信可以通過系統(tǒng)200中的通信總線發(fā)生。圖形處理系統(tǒng)200是基于區(qū)片的延遲渲染 系統(tǒng),意味著系統(tǒng)200的渲染空間被劃分為多個區(qū)片,并且