新四季網

單通道鑲嵌的製作方法

2023-06-08 03:49:11 1

專利名稱:單通道鑲嵌的製作方法
技術領域:
本發明總地涉及三維表面面片的鑲嵌,更特別地涉及通過圖形處理流水線以單通
道進行鑲嵌。
背景技術:
鑲嵌硬體的編程模塊已經發展到出現了新的著色器程序,其被執行以進行三維表 面面片的鑲嵌。慣常的硬體架構使用兩通道的方法來進行鑲嵌。在通過圖形處理流水線的 第一通道期間,頂點著色器和鑲嵌控制著色器(或者控制外殼著色器)程序被執行,並且頂 點數據和鑲嵌參數存儲在存儲器中。在完成該第一通道後,圖形處理流水線被重新配置。在 通過圖形處理流水線的第二通道期間,從存儲器中讀取頂點數據和鑲嵌參數,且鑲嵌評價 著色器(或域著色器)和幾何著色器程序被執行以完成鑲嵌操作。典型地,軟體應用程式 或設備驅動器啟動第一通道和第二通道。 因此,本領域需要一種用於執行鑲嵌著色器程序的改進的系統和方法。

發明內容
—種通過圖形處理器以單通道進行鑲嵌的系統和方法將圖形處理器中的處理資 源分成組以進行不同鑲嵌操作。頂點數據和鑲嵌參數直接從一個處理資源發送到另一處理 資源,而不是存儲在存儲器中。因此,表面面片描述提供給圖形處理器,且通過圖形處理器 以不中斷的單通道完成鑲嵌,而不將中間數據存儲在存儲器中。 通過圖形處理器以單通道進行鑲嵌的本發明的方法的各種實施例包括配置圖形 處理器的第一組處理單元和配置圖形處理器內的第二組處理單元。第一組處理單元配置為 執行鑲嵌控制著色器以處理表面面片,計算鑲嵌的細節水平並產生包括多個頂點的圖形圖 元。第二組處理單元配置為執行鑲嵌評價著色器以每個處理多個頂點之一。隨後通過第一 組處理單元和第二組處理單元執行鑲嵌控制著色器和鑲嵌評價著色器來以單通道對表面 面片鑲嵌,以產生處理的頂點 本發明的各種實施例包括通過圖形處理器以單通道進行鑲嵌的系統。圖形處理器 包括第一組處理單元、第二組處理單元和交叉器互連裝置。第一組處理單元配置為執行鑲 嵌控制著色器以處理表面面片並產生包括多個頂點的圖形圖元。第二組處理單元配置為執 行鑲嵌評價著色器以每個處理多個頂點之一。交叉器互連裝置與第一組處理單元和第二 組處理單元耦合,並配置為將第一組處理單元輸出的多個頂點發送給第二組處理單元的輸 入。


為了詳細地理解本發明的上述特徵,對於以上簡要說明的本發明,將參照實施例 進行更為具體的描述,其中一些實施例在附圖中進行了圖示。然而,需要注意的是,附圖只 是圖示本發明的代表性實施例,因此不能認為附圖限制了本發明的範圍,本發明可以允許其他同樣有效的實施例。
圖1是圖示配置為實現本發明一個或多個方面而配置的計算機系統的框圖;
圖2是根據本發明一個實施例的用於圖1中計算機系統的並行處理子系統的框 圖; 圖3A是根據本發明一個實施例的圖2中的並行處理單元之一內的通用處理簇的 框圖; 圖3B是根據本發明一個實施例的圖2中的並行處理單元之一中的分區單元的框 圖; 圖4是根據本發明一個實施例的可配置圖2中並行處理單元的一個或多個而實現 的圖形處理流水線的概念圖; 圖5A是根據本發明一個實施例的以單通道進行鑲嵌的方法步驟的流程圖;禾口
圖5B是根據本發明一個實施例的配置成以單通道進行鑲嵌的通用處理簇的框 圖。
具體實施例方式
在下文的描述中,給出了大量具體的細節以便提供對本發明更為徹底的理解。然 而,對於本領域技術人員來說顯而易見的是,本發明可以無需一個或多個這些具體細節而 得以實施。在其他的例子中,為了避免使本發明不明確,公知的特徵未進行描述。
系統概述 圖1是圖示配置為實現本發明一個或多個方面的計算機系統100的框圖。計算 機系統100包括中央處理單元(CPU) 102和系統存儲器104,二者通過存儲器橋105經由總 線路徑進行通信。存儲器橋105可以如圖1所示集成到CPU 102中。作為替換,存儲器橋 105可以是慣常設備例如北橋晶片,其通過總線連接到CPU 102。存儲器橋105通過通信路 徑106 (例如HyperTransport (超傳輸)鏈路)與1/0(輸入/輸出)橋107相連接。I/O 橋107例如可以是南橋晶片,其從一個或多個用戶輸入設備108(例如鍵盤、滑鼠)接收用 戶輸入,並將該輸入通過路徑106和存儲器橋105轉發給CPU 102。並行處理子系統112通 過總線或其他通信路徑113(例如PCIE鄧ress、加速圖形埠或超傳輸鏈路)與存儲器橋 105相耦合;在一個實施例中,並行處理子系統112是將像素提供給顯示設備IIO(例如傳 統的CRT或基於LCD的顯示器)的圖形子系統。系統盤114同樣連接於I/0橋107。開關 116提供了 1/0橋107和諸如網絡適配器118以及各種插卡120和121的其他部件之間的 連接。包括USB或其他埠連接、CD驅動器、DVD驅動器、電影記錄設備等的其他部件(圖 中沒有明確示出)也可以與1/0橋107相連接。將圖1中的各種部件相互連接的通信路徑 可以用任何適用的協議來實現,比如PCI (外設部件互連)、PCI E鄧ress (PCI-E) 、AGP (加速 圖形埠 )、超傳輸或任何其他總線或點對點通信協議,並且不同設備之間的連接可以使用 不同協議,如本領域已知的。 在一個實施例中,並行處理子系統112包括為圖形和視頻處理優化的電路,包括 例如視頻輸出電路,並構成了圖形處理單元(GPU)。在另一實施例中,並行處理子系統112 包括為通用處理優化,並保留了底層計算架構的電路,本文將更加詳細地描述。在另一實施 例中,並行處理子系統112可以集成一個或多個其他系統元件,例如存儲器橋105、CPU 102
4和I/O橋107,以形成片上系統(SoC)。 可以理解的是,這裡示出的系統只是示意性的,可以對其進行變化和修改。包括橋 的數量和排列的連接拓撲結構可以根據需要修改。例如,在一些實施例中,系統存儲器104 直接與CPU 102相連接而不是通過橋相連接,其他設備通過存儲器橋105和CPU 102與系 統存儲器104相通信。在其他可選擇的拓撲結構中,並行處理系統112與1/0橋107相連 接或直接與CPU 102相連接,而不是和存儲器橋105相連接。在其他實施例中,CPU102、 1/ 0橋107、並行處理子系統112和存儲器橋105的一個或多個被集成到一個或多個晶片上。 這裡示出的特定部件是任選的;例如,可以支持任何數量的插卡或外設。在一些實施例中, 省去了開關116,網絡適配器118和插卡120、 121直接和I/O橋107相連接。
圖2示出了根據本發明一個實施例的並行處理子系統112。如圖所示,並行處理 子系統112包括一個或多個並行處理單元(PPU)202,每個並行處理單元都和本地並行處理 (PP)存儲器204相耦合。通常,並行處理子系統包括U個PPU,其中U^ 1。(在這裡,相似 對象的多個例子用表明該對象的附圖標記和表明該例子的附加說明數字(需要時)來表 示)。PPU 202和並行處理存儲器204可以使用例如可編程處理器,專用集成電路(ASIC) 或存儲器設備的一個或多個集成電路設備,或以任何其他技術上可行的方式來實現。
再次參考圖l,在一些實施例中,在並行處理子系統112中的一些或者全部的並行 處理單元202是具有渲染流水線的圖形處理器,其能被配置成進行與下列情形有關的各種 任務從通過CPU 102和/或系統存儲器104提供的圖形數據產生像素數據;與本地並行處 理存儲器204 (其能被用作圖形存儲器,例如包括常規的幀緩衝器)交互以儲存並更新像素 數據;提供像素數據給顯示設備110等。在一些實施例中,並行處理子系統112可包括作為 圖形處理器工作的一個或多個並行處理單元202和用於通用計算的一個或多個其他並行 處理單元202。並行處理單元可以是相同或不同的,且每個並行處理單元202可以有其自己 專用的並行處理存儲器設備或沒有專用的並行處理存儲器設備。 一個或多個並行處理單元 202可以將數據輸出到顯示設備110或者每個並行處理單元202可以將數據輸出到一個或 多個顯示設備110。 在操作中,CPU 102是計算機系統100的主處理器,其控制和協調其他系統部件 的操作。特別是,CPU 102發出控制並行處理單元202操作的命令。在一些實施例中,CPU 102將對於每個並行處理單元202的命令流寫入到命令緩衝器(圖1和圖2中未明確地示 出),該命令緩衝器可以位於系統存儲器104、並行處理存儲器204或是CPU 102和並行處 理單元202都可以訪問的另一個存儲位置中。並行處理單元202從命令緩衝器中讀出命令 流,並且隨後相對於CPU 102的操作異步地執行命令。CPU 102也可以建立數據緩衝器,並 行處理單元202可以響應命令緩衝器中的命令讀取該數據緩衝器。每個命令和數據緩衝器 可以由多個並行處理單元202讀取。 現在返回參考圖2,每個並行處理單元202包括通過通信路徑113和計算機系統 100的剩餘部分通信的1/0(輸入/輸出)單元205,通信路徑113與存儲器橋105相連接 (或是在一個可選實施例中直接與CPU 102相連接)。並行處理單元202和計算機系統100 的剩餘部分的連接也可以變化。在一些實施例中,並行處理子系統112實現為插卡,其能插 入到計算機系統100的擴展槽中。在其他實施例中,並行處理單元202能和總線橋一起集 成到單一晶片上,總線橋例如可以是存儲器橋105或I/O橋107。在另外其他實施例中,並行處理單元202的一些或全部元件可以連同CPU 102 —起集成到單一晶片上。
在一個實施例中,通信路徑113是PCI-E鏈路,其中如本領域所已知的,專用道分 配給每個PPU 202。也可以使用其他通信路徑。1/0單元205產生包(或其他信號)以在通 信路徑113上傳送,並也接收所有來自通信路徑113的輸入包(或其他信號),並將輸入包 引導至PPU 202的適當的部件。例如,和處理任務有關的命令可以被引導至主機接口 206, 而和存儲器操作有關的命令(例如從並行處理存儲器204中讀取或向其寫入)可以被引導 至存儲器交叉器(crossbar)單元210。主機接口 206讀取每個命令緩衝器,並將由命令緩 衝器指定的工作輸出到前端212。 每個PPU 202有利地實現高度並行處理架構。如詳細示出的,PPU 202(0)包括處 理簇陣列230,處理簇陣列230包括數量為C的通用處理簇(GPC) 208,其中C > 1 。每個GPC 208能同時執行大量(例如數百個或數千個)線程,其中每個線程是程序的實例。在不同應 用中,不同的GPC208被分配用以處理不同類型的程序或進行不同類型的計算。例如,在圖 形應用中,第一組GPC 208可以分配為進行鑲嵌操作並產生面片的圖元拓撲,而第二組GPC 208可以分配為進行鑲嵌著色以評價圖元拓撲的面片參數並確定頂點位置和其他每頂點屬 性。GPC 208的分配基於每個類型的程序或計算產生的工作量是可以變化的。可選擇地,所 有的GPC 208可以分配為使用時間片方案進行處理任務以在不同處理任務之間轉換。
GPC 208通過工作分配單元200接收將要執行的處理任務,該工作分配單元200從 前端單元212接收限定了處理任務的命令。處理任務包括例如表面(面片)數據、圖元數 據、頂點數據和/或像素數據的要處理數據的指針,還有狀態參數和限定數據如何處理的 命令(例如執行什麼程序)。工作分配單元200可以配置成取得對應於任務的指針,工作分 配單元200可以從前端212接收指針,或者工作分配單元200可以直接接收數據。在本發 明的一些實施例中,索引指明了陣列中數據的位置。前端212保證在命令緩衝器指定的處 理啟動前,GPC 208配置為有效狀態。 例如,當並行處理單元202用於圖形處理時,每個面片的處理工作量被分成大約 相等大小的任務,以使得能將鑲嵌處理分配給多個GPC 208。工作分配單元200可以配置 成以能提供任務到多個GPC 208用於處理的頻率輸出任務。在本發明的一些實施例中,部 分GPC 208配置成進行不同類型的處理。例如,第一部分可以配置成進行頂點著色和產生 拓撲結構,第二部分可以配置成進行鑲嵌和幾何著色,以及第三部分可以配置成在屏幕空 間上進行像素著色以產生渲染的圖像。分配部分GPC 208以進行不同類型的處理的能力有 效地適應了由不同類型的處理產生的數據的任何擴展和縮減。GPC 208產生的中間數據可 以被緩衝,以當下遊GPC 208接收數據的速度落後於上遊GPC 208產生數據的速度時,允許 中間數據在GPC 208之間以最少的停止傳輸。 存儲器接口 214可以被分區成D個存儲器分區單元,每個存儲器分區單元與並行 處理存儲器204的一部分直接耦合,其中D^ 1。存儲器的每部分通常包括一個或多個存儲 器設備(例如DRAM 220)。本領域的普通技術人員可以理解的是,DRAM 220可以由其他合 適的存儲設備代替並且通常可以是慣常的設計。因此省略了詳細的描述。例如幀緩衝器或 紋理貼圖的渲染目標可以跨越DRAM 220存儲,允許分區單元215將每個渲染目標的部分並 行寫入,以有效地使用並行處理存儲器204的可用帶寬。 GPC 208的任何一個可以處理要寫入到並行處理存儲器204中的任何分區單元215中的數據。交叉器(crossbar)單元210配置為將每個GPC 208的輸出發送至任何分 區單元214的輸入或另一GPC 208以進一步處理。GPC 208通過交叉器單元210與存儲器 接口 214通信以從各種外部存儲器設備中讀取或寫入各種外部存儲器設備。在一個實施例 中,交叉器單元210與存儲器接口 214連接以與I/O單元205通信,交叉器單元210也和本 地並行處理存儲器204連接,因此使得不同GPC 208內的處理內核能與系統存儲器104或 對並行處理單元202為非本地的其他存儲器通信。交叉器單元210可以使用虛擬通道以在 GPC 208和分區單元215之間分開通信流。 此外,GPC 208能被編程以執行與廣泛多種應用相關的處理任務,所述應用包括但 不限於線性和非線性數據轉換、視頻和/或音頻數據的過濾、建模操作(例如,應用物理規 律來確定對象的位置、速度和其他屬性)、圖像渲染操作(例如,鑲嵌著色器、頂點著色器、 幾何著色器和/或像素著色器程序)等等。並行處理單元202可以將數據從系統存儲器 104和/或本地並行處理存儲器204傳輸到內部(片上)存儲器,處理數據,並將結果數據 寫回到系統存儲器104和/或本地並行處理存儲器204中,其中這樣的數據能夠由包括CPU 102或另一併行處理子系統112的其他系統部件來訪問。 並行處理單元202可以提供有任意數量的本地並行處理存儲器204,包括沒有 本地存儲器,並可以以任意組合使用本地存儲器和系統存儲器。例如,在統一存儲器架構 (UMA)的實施例中,並行處理單元202可以是圖形處理器。在這樣的實施例中,會提供極少 或者沒有專用圖形(並行處理)存儲器,並行處理單元202唯一地使用或幾乎唯一地使用 系統存儲器。在UMA實施例中,並行處理單元202可被集成到橋晶片或處理器晶片中,或者 是提供為具有高速鏈路(例如PCI-E)的分立的晶片,該高速鏈路將並行處理單元202通過 橋晶片或其他通信裝置與系統存儲器相連接。 如上所述,並行處理子系統112中可以包括任意數量的並行處理單元202。例如, 多個並行處理單元202可以提供在單個的插卡上,或者多個插卡可以與通信路徑113相連, 或者一個或多個並行處理單元202可以集成到橋晶片中。多並行處理單元系統中的並行處 理單元202可以是彼此相同的,或者可以是彼此不同的。例如,不同的並行處理單元202可 以具有不同數量的處理內核、不同數量的本地並行處理存儲器等等。當存在有多個並行處 理單元202時,那些並行處理單元可以以高於單個並行處理單元202可能達到的吞吐量來 並行操作以處理數據。包含有一個或多個並行處理單元202的系統可以以各種配置和形式 因素實現,包括臺式計算機、筆記本計算機、或是手持個人計算機、伺服器、工作站、遊戲控 制臺、嵌入式系統等等。
處理簇陣列概述 圖3A是根據本發明一個實施例的在圖2的並行處理單元202之一中的GPC 208 的框圖。每個GPC 208可以配置為並行執行大量的線程,在此術語"線程"是指對一特定組 的輸入數據執行的特定程序的實例。在一些實施例中,單指令多數據(SMD)指令發送技術 被用於支持並行執行大量線程,而不用提供多個獨立的指令單元。在其他實施例中,使用配 置為向每個GPC 208中的一組處理引擎發送指令的共同指令單元,單指令多線程(SIMT)技 術被用來支持並行執行大量通用同步線程。不像SMD執行方式中所有處理引擎通常執行 相同的指令,SIMT的執行允許不同的線程通過給定的線程程序更加容易地跟隨分散的執行 路徑。本領域的普通技術人員可以理解的是,SMD處理方式代表了 SMT處理方式的功能性子集。 在圖形應用中,GPC 208可以被配置為包括圖元引擎以進行屏幕空間圖形處理功 能,其包括但不限於圖元建立、光柵化和Z剔除。如圖3A所示,建立單元302接收指令處理 圖形圖元並從緩衝區中讀取圖形圖元參數。緩衝區可以存儲在Ll高速緩衝存儲器315、分 區單元215或者並行處理存儲器204中。光柵化器/Z剔除單元303接收圖形圖元參數並 對與分配給光柵化器/Z剔除單元303的像素交叉的圖元進行光柵化。每個像素只分配給 光柵化器/Z剔除單元303之一,這樣與沒有分配給光柵化器/Z剔除單元303的像素交叉 的部分圖形圖元被丟棄。光柵化器/Z剔除單元303也進行Z剔除以去除不可見的部分圖 形圖元。Z預先光柵操作(Z preROP)單元304進行地址翻譯以訪問Z數據並基於各種Z處 理模式保持Z數據的順序。 GPC 208的操作通過流水線管理器305有利地控制,流水線管理器305將從工作分 配單元200接收的處理任務(通過建立單元302、光柵化器/Z剔除單元303和Z預先光柵 操作單元304)分配給流多處理器單元(SMU)310。流水線管理器305也可以配置為通過為 SMU 310輸出的處理的數據指定目的地來控制工作分配交叉器(crossbar) 330。
在一個實施例中,每個GPC 208包括M個SMU 310,其中M > 1,每個SMU 310配置 成處理一個或多個線程組。此外,每個SMU 310有利地包括可以流水線化的相同組的功能 單元(例如算術邏輯單元等),允許新指令可以在前指令完成之前發送,這已在本領域中公 知。可以提供功能單元的任何組合。在一個實施例中,功能單元支持各種運算,包括整數和 浮點算術(例如加法和乘法)、比較運算、布爾運算(與、或、異或)、移位和各種代數函數 (例如平面插值函數、三角算法函數、指數函數和對數函數等)的計算;並且相同的功能單 元硬體可以被平衡為進行不同的運算。 傳送到特定GPC 208的系列指令構成了已在本文前面定義的線程,且在SMU 310 內在並行處理引擎(未示出)上一定數量同時執行的線程的集合在本文中稱為線程組。如 本文所使用的,線程組指的是對不同輸入數據同時執行相同程序的線程的組,組中的每個 線程被分配給SMU 310中的不同處理引擎。線程組可以包括比SMU 310中處理引擎數量少 的線程,在這種情況中,在當處理線程組時的周期期間,一些處理引擎將是空閒的。線程組 也可以包括比SMU 310中處理引擎數量多的線程,在這種情況中,處理將發生在多個時鐘 周期上。由於每個SMU 310可以同時支持多達G個線程組,因此多達GxM個線程組可以在 任何給定的時間在GPC 208中執行。 另外,在SMU 310中,多個相關的線程組可以在同一時間是活動的(處於執行的不 同階段)。這個線程組的集合在本文中被稱為合作線程陣列(CTA)。特定CTA的大小等於 mxk,其中k是在線程組中同時執行的線程的數量且通常是SMU 310中並行處理引擎數量的 整數倍;m是SMU 310中同時活動的線程組的數量。CTA的大小通常由程式設計師和CTA可使用 的硬體資源例如存儲器或寄存器的數量確定。 專有本地地址空間對每個線程可用,且共享的每CTA地址空間用於在CTA中的線 程之間傳遞數據。存儲在每線程本地地址空間和每CTA地址空間中的數據存儲在Ll高速 緩衝存儲器320中,且可以使用逐出策略來幫助將數據保持在Ll高速緩衝存儲器320中。 每個SMU 310使用在用於進行裝載和存儲操作的相應的Ll高速緩衝存儲器320中的空間。 每個SMU310也訪問所有GPC 208共享並可以用於在線程之間傳送數據的分區單元215中的L2高速緩衝存儲器。最後,SMU 310也訪問片外"全局"存儲器,其可以包括例如並行處 理存儲器204和/或系統存儲器104。 L2高速緩衝存儲器可以用於存儲寫入到全局存儲器 中和從全局存儲器中讀取的數據。可以理解的是,並行處理單元202外部的任何存儲器都 可以用作全局存儲器。 在圖形應用中,GPC 208可以配置為使得每個SMU 310和紋理單元315耦合以進 行紋理貼圖操作,例如確定紋理樣本的位置、讀取紋理數據和過濾紋理數據。紋理數據通過 存儲器接口 214讀取並按照需要從L2高速緩衝存儲器、並行處理存儲器204或者系統存儲 器104中取得。紋理單元315可以配置為在內部高速緩衝存儲器中存儲紋理數據。在一些 實施例中,紋理單元315與Ll高速緩衝存儲器320耦合且紋理數據存儲在Ll高速緩衝存 儲器320中。每個SMU 310向工作分配交叉器330輸出處理的任務,以向另一GPC 208提 供處理的任務以做進一步處理,或通過交叉器單元210將處理的任務存儲在L2高速緩衝存 儲器、並行處理存儲器204或者系統存儲器104中。PreROP (預先光柵操作器)325配置成 從SMU 310中接收數據,引導數據至分區單元215內的光柵操作單元,並進行顏色混合的優 化,組織像素顏色數據,並進行地址翻譯。 可以理解的是,本文描述的內核架構是示例性的,可以做變化和改變。任何數量的 處理引擎,例如SMU 310、紋理單元315或預先光柵操作器325可以包括在GPC 208中。進 一步,雖然只示出了一個GPC 208,並行處理單元202可以包括任何數量的GPC 208,這些 GPC 208功能上有利地彼此相似,使得執行行為不取決於哪個GPC 208接收了特定處理任 務。進一步,每個GPC 208使用單獨的和不同的處理引擎、L1高速緩衝存儲器320等有利 地相對另外的GPC 208獨立地工作。 圖3B是根據本發明一個實施例的圖2中並行處理單元202其中之一中的分區單 元215的框圖。如圖所示,分區單元215包括L2高速緩衝存儲器350、幀緩衝器(FB) 355和 光柵操作器(R0P)360。 L2高速緩衝存儲器350是配置為進行從交叉器單元210和R0P 360 接收的裝載和存儲操作的讀/寫高速緩衝存儲器。讀取缺失和緊急寫回請求通過L2高速 緩衝存儲器350輸出到幀緩衝器355處理。髒(dirty)更新也送到幀緩衝器355用於機會 處理。幀緩衝器355直接與並行處理存儲器204接口 ,輸出讀取和寫入請求,並接收從並行 處理存儲器204讀取的數據。 在圖形應用中,ROP 360是進行光柵操作的處理單元,例如模板、z測試、混合等, 並將像素數據輸出為處理的圖形數據以存儲在圖形存儲器中。在本發明的一些實施例中, ROP 360包括在每個GPC 208中,而不是每個分區單元215中,像素的讀和寫通過交叉器單 元210來傳送,而不是像素段。 處理的圖形數據可以顯示在顯示設備110上,或被發送以通過CPU102或通過並行 處理子系統112中的處理實體之一來進一步處理。每個分區單元215包括R0P 360以分配 光柵操作的處理。在一些實施例中,R0P360可以配置為壓縮寫到存儲器中的z或顏色數據, 並將從存儲器中讀取的z或顏色數據解壓縮。 本領域的技術人員可以理解的是,圖1、2、3A和3B中描述的架構決不限制本發明 的範圍,本文中教導的技術可以在任何適合地配置的處理單元上實現,該處理單元包括但 不限於一個或多個CPU、一個或多個多內核CPU、一個或多個並行處理單元202、一個或多個 GPC 208、一個或多個圖形或專用處理單元等,這些都不離開本發明的範圍。
圖形流水線架構 圖4是根據本發明一個實施例的圖形處理流水線400的概念圖,圖2中並行處理 單元202的一個或多個可被配置為實現圖形處理流水線400。例如,SMU 310其中之一可被 配置成執行頂點處理單元415、幾何處理單元425和片段處理單元460中的一個或多個單元 的功能。數據彙編器410、圖元彙編器420、光柵化器455和光柵操作單元465的功能也可 以由GPC208和相應的分區單元215中的其他處理引擎來執行。作為選擇,圖形處理流水線 400可為一個或多個功能使用專有處理單元來實現。 數據彙編器410處理單元為高階表面、圖元等收集頂點數據並向頂點處理單元 415輸出包括頂點屬性的頂點數據。頂點處理單元415是配置成執行頂點著色器程序的可 編程執行單元,按照該頂點著色器程序的規定對頂點數據進行光照和變換。例如,頂點處理 單元415可被編程為將頂點數據從基於物體的坐標表示(物體空間)轉換成可選擇的基於 的坐標系統,例如世界空間或規一化設備坐標(NDC)空間。頂點處理單元415可以通過數 據彙編器410讀取存儲在Ll高速緩衝存儲器320、並行處理存儲器204或系統處理器104 中的數據,以在處理頂點數據時使用。 圖元彙編器420從頂點處理單元415中接收頂點屬性,按需要讀取存儲的頂點屬 性,並構造圖形圖元以用於由幾何處理單元425來處理。圖形圖元包括三角形、線段、點等。 幾何處理單元425是配置為執行幾何著色器程序的可編程執行單元,按照幾何著色器程序 的規定將從圖元彙編器420接收的圖形圖元進行變換。例如,幾何處理單元425可被編程 為將圖形圖元細分為一個或多個新圖形圖元,並計算用於光柵化該新圖形圖元的參數,例 如平面方程係數。 在一些實施例中,幾何處理單元425也可以在幾何數據流中增加或刪除元素。幾 何處理單元425將規定新圖形圖元的參數和頂點輸出至視口縮放、剔除和裁剪單元450。幾 何處理單元425可讀取存儲在並行處理存儲器204或系統存儲器104中的數據以用來處理 幾何數據。視口縮放、剔除和裁剪單元450進行裁剪、剔除和視口縮放,並將處理的圖形圖 元輸出到光柵化器455。 光柵化器455掃描轉換新的圖形圖元並輸出片段和覆蓋數據給片段處理單元 460。另外,光柵化器455可以配置為進行z剔除和其他基於z的優化。片段處理單元460 是配置成執行片段著色器程序的可編程執行單元,按照片段著色器程序的規定將從光柵化 器455接收的片段進行變換。例如,片段處理單元460可被編程以進行例如透視修正、紋理 貼圖、著色、混合等操作來產生輸出到光柵操作單元465的著色的片段。片段處理單元460 可以讀取存儲在並行處理存儲器204或系統存儲器104中的數據以便在處理片段數據中使 用。根據編程的採樣率,可以以像素、樣本或者其他粒度對片段進行著色。
光柵操作單元465是進行諸如模板、z測試、混合等光柵操作的處理單元,並輸出 像素數據為處理的圖形數據以存儲在圖形存儲器中。處理的圖形數據可以存儲在圖形存儲 器中,例如並行處理存儲器204和/或系統存儲器104中,以顯示在顯示設備110上,或由 CPU 102或並行處理子系統112進一步處理。在本發明的一些實施例中,光柵操作單元465 配置成壓縮寫到存儲器中的z或顏色數據,並解壓縮從存儲器讀取的z或顏色數據。
單通道鑲嵌 為了以單通道進行鑲嵌,第一部分的SMU 310配置成執行鑲嵌控制著色器程序,第二部分的SMU 310配置成執行鑲嵌評價著色器程序。第一部分的SMU 310接收表面面片 描述並輸出圖形圖元,例如由十個控制點限定的立體三角形圖元,和鑲嵌參數,例如細節水 平值。圖形圖元和鑲嵌參數通過Ll高速緩衝存儲器320和工作分配交叉器330從一個SMU 320發送到另一個,而不是存儲在並行處理存儲器204中。因此,表面面片描述的鑲嵌通過 GPC 208以不中斷的單通道完成,而不在L2高速緩衝存儲器350或並行處理存儲器204中 存儲中間數據。另外,應用程式或設備驅動器103提供了表面面片描述,並且在鑲嵌處理期 間不重新配置部分GPC 208。 第一部分中SMU 310的數量可以等於,大於或小於第二部分中SMU310的數量。重 要的是,第一部分和第二部分中SMU 310的數量可以定製為和處理工作量匹配。單一表面 面片產生的頂點的數量隨著計算的鑲嵌細節水平而變化。因此,由於鑲嵌控制著色器程序 的執行可以導致數據的擴展,第一部分的SMU 310中的單個SMU 310可以為第二部分的SMU 310中的多個SMU 310產生"工作"。 圖5A是根據本發明一個實施例的以單通道進行鑲嵌的方法步驟的流程圖。在步 驟510,設備驅動器103配置第一組SMU 310以執行鑲嵌控制著色器程序。鑲嵌控制著色 器程序可以進行控制點基礎的變化、鑲嵌細節水平參數的計算等,並且對每個表面面片執 行一次。當鑲嵌控制著色器程序輸入一個面片(控制點組)並輸出不同面片(不同組的控 制點)時,發生面片基礎的變化,此處控制點數量在輸入面片和輸出面片之間變化。在步驟 520,設備驅動器103配置第二組SMU 310以執行鑲嵌評價程序。鑲嵌評價控制著色器程序 基於面片圖元控制點,每個頂點的參數(u, v)位置,置換貼圖等,可以計算每個頂點的最終 位置和屬性,並且對每個輸出頂點執行一次。 在步驟525,設備驅動器103將SMU 310配置為第一組和第二組,並下載由GPC 208執行的鑲嵌控制著色器和鑲嵌評價著色器程序,以處理表面數據並產生輸出頂點。在步 驟530,第一組SMU 310中的SMU 310執行鑲嵌控制著色器程序以產生圖形圖元,例如像立 體三角行的圖形圖元的控制點。 在步驟540,由第一組SMU 310輸出的圖形圖元的頂點被分配給第二組SMU 310的 輸入。在步驟545,第二組SMU 310中的SMU 310執行鑲嵌評價著色器程序以產生輸出頂 點。注意,對不同頂點,步驟530,540和545在不同時間發生。因此,當圖形圖元由第一組 中的SMU 310輸出時,第二組中的SMU 310開始執行鑲嵌評價程序以產生輸出頂點。因為 SMU310配置為以單通道處理表面面片,因此設備驅動器103不需要重新配置SMU 310以在 鑲嵌操作期間進行不同操作。 圖5B是根據本發明一個實施例的配置為以單通道進行鑲嵌的GPC208的框圖。第 一組550是配置為執行鑲嵌控制著色器程序的第一組的SMU 310。第二組560是配置為執 行鑲嵌評價著色器程序的第二組的SMU310。第一組550,工作分配交叉器330和第二組560 可以配置為進行圖5A的步驟530, 540和545。工作分配交叉器330配置為將第一組550中 的每個SMU310與第二組560中的每個SMU 310相連接。 代表表面面片的表面數據555可以存儲在如圖5B所示的Ll高速緩衝存儲器320 中,並由第一組550讀取。流水線管理器305可以配置為向第一組550中的每個SMU 310 提供表面數據555的位置以分配表面面片用於處理。由第一組550輸出的代表圖形圖元的 鑲嵌數據570可以存儲在Ll高速緩衝存儲器320中。流水線管理器305為工作分配交叉器330提供發送信息,需要該發送信息以為第二組560的SMU 310的輸入分配圖形圖元頂 點。在本發明的一些實施例中,例如圖5B所示的實施例,鑲嵌數據570通過工作分配交叉 器330發送。在本發明的其他實施例中,與每個圖形圖元頂點的位置對應的索引通過工作 分配交叉器330發送,以將第一組550輸出的鑲嵌數據570分配給第二組560的輸入。重 要的是,鑲嵌數據570存儲在Ll高速緩衝器320或L2高速緩衝器350中,而不是存儲在並 行處理存儲器204中,使得讀和寫鑲嵌數據570需要的時鐘周期數量減少。
由於第一組550中的SMU 310寫鑲嵌數據570,第二組560中的SMU310讀取鑲嵌 數據570,因此鑲嵌數據570消耗的存儲量減低以適應Ll高速緩衝器320或L2高速緩衝器 350。相反地,在慣常系統中,當兩個不同的通道用來執行程序時,在流水線被配置為執行鑲 嵌評價著色器程序和讀取數據之前,鑲嵌控制著色器程序為面片組產生的所有數據都存儲 在片外存儲器,例如並行處理存儲器204中。另外,當使用慣常的兩通道技術時,組中面片 的數量通常很大,以降低在執行鑲嵌控制著色器程序和鑲嵌評價著色器程序之間切換而發 生的流水線重新配置的頻率。在第一通道中通過處理較多數量面片產生的鑲嵌數據需要比 鑲嵌數據570更多的存儲空間,因此其存儲在片外存儲器中。 如參考圖5A和5B所描述的,對表面面片描述的鑲嵌通過GPC 208以不中斷的單 通道完成,而不在並行處理器204中存儲中間數據。另外,應用程式或設備驅動器103提供 了表面面片描述,並且在鑲嵌處理期間不重新配置部分GPC 208。應用程式程式設計師可以有利 地將並行處理單元202視為自動地配置為以單通道處理表面的單一鑲嵌流水線。
本發明的一個實施例可以實現為與計算機系統一起使用的程序產品。該程序產品 的程序限定了實施例(包括本文描述的方法)的功能,並可以包含在各種計算機可讀存儲 介質上。示例性的計算機可讀存儲介質包括但不限於(i)其上信息被永久存儲的不可寫 存儲媒介(例如,計算機中的只讀存儲器設備,諸如由CD-ROM驅動器可讀取的CD-ROM盤、 快閃記憶體、ROM晶片或任何類型的固態非易失半導體存儲器);和(ii)其上存儲可改變信息的可 寫存儲媒介(例如,軟盤驅動器中的軟盤或硬碟驅動器或任何類型的固態隨機存取半導體 存儲器)。 本發明已經參考特定實施例進行了描述。但是,本領域技術人員可以理解的是,可 以對本發明做出各種修改和改變,而不脫離如所附權利要求闡明的本發明的較寬精神和範 圍。因此,上述描述和附圖被認為是示例性的而不是限制性的。
權利要求
一種通過圖形處理器以單通道進行鑲嵌的方法,所述方法包括配置所述圖形處理器的第一組處理單元以執行鑲嵌控制著色器以處理表面面片,並產生包括多個頂點的圖形圖元;配置所述圖形處理器內的第二組處理單元以執行鑲嵌評價著色器以每個處理所述多個頂點之一;和通過所述第一組處理單元和所述第二組處理單元執行所述鑲嵌控制著色器和所述鑲嵌評價著色器來以單通道對所述表面面片鑲嵌,以產生處理的頂點。
2. 按照權利要求1所述的方法,進一步包括將所述第一組處理單元輸出的所述多個頂 點分配給所述第二組處理單元的輸入的步驟。
3. 按照權利要求2所述的方法,其中所述分配步驟包括將對應於存儲所述多個頂點的 每個的位置的索引從所述第一組處理單元發送到所述第二組處理單元的輸入。
4. 按照權利要求1所述的方法,其中所述鑲嵌控制著色器為所述表面面片的每一個執 行一次,以為所述一個表面面片計算細節水平參數。
5. 按照權利要求1所述的方法,其中所述鑲嵌評價著色器為所述多個頂點的每一個執 行一次,以計算所述一個頂點的最終位置和屬性。
6. 按照權利要求1所述的方法,其中所述處理單元的每一個獨立於其他處理單元執行 所述鑲嵌控制著色器或所述鑲嵌評價著色器。
7. —種以單通道進行鑲嵌的系統,包括圖形處理器,所述圖形處理器包括 第一組處理單元,其配置為執行鑲嵌控制著色器以處理表面面片並產生包括多個頂點的圖形圖元;第二組處理單元,其配置為執行鑲嵌評價著色器以每個處理所述多個頂點之一 ;禾口 交叉器互連裝置,其與所述第一組處理單元和所述第二組處理單元耦合,並配置為將 所述第一組處理單元輸出的所述多個頂點提供給所述第二組處理單元的輸入。
8. 按照權利要求7所述的系統,其中所述鑲嵌控制著色器為所述表面面片的每一個執 行一次,以為所述一個表面面片計算細節水平參數。
9. 按照權利要求7所述的系統,其中所述鑲嵌評價著色器為所述多個頂點的每一個執 行一次,以計算所述一個頂點的最終位置和屬性。
10. 按照權利要求7所述的系統,其中所述處理單元配置成執行所述鑲嵌控制著色器 和所述鑲嵌評價著色器來以單通道鑲嵌所述表面面片。
全文摘要
本發明公開了一種單通道鑲嵌。通過圖形處理器以單通道進行鑲嵌的系統和方法將圖形處理器中的處理資源分成組以進行不同鑲嵌操作。頂點數據和鑲嵌參數直接從一個處理資源發送到另一處理資源,而不是存儲在存儲器中。因此,表面面片描述提供給圖形處理器,且通過圖形處理器以不中斷的單通道完成了鑲嵌,而不將中間數據存儲在存儲器中。
文檔編號G06T15/00GK101714247SQ200910177458
公開日2010年5月26日 申請日期2009年9月29日 優先權日2008年9月29日
發明者亨利·帕卡·莫爾頓, 埃米特·M.·凱高艾弗, 賈斯汀·S.·萊高凱斯 申請人:輝達公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀