欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

單通道鑲嵌的制作方法

文檔序號(hào):6580745閱讀:205來源:國(guó)知局
專利名稱:?jiǎn)瓮ǖ黎偳兜闹谱鞣椒?br> 技術(shù)領(lǐng)域
本發(fā)明總地涉及三維表面面片的鑲嵌,更特別地涉及通過圖形處理流水線以單通
道進(jìn)行鑲嵌。
背景技術(shù)
鑲嵌硬件的編程模塊已經(jīng)發(fā)展到出現(xiàn)了新的著色器程序,其被執(zhí)行以進(jìn)行三維表 面面片的鑲嵌。慣常的硬件架構(gòu)使用兩通道的方法來進(jìn)行鑲嵌。在通過圖形處理流水線的 第一通道期間,頂點(diǎn)著色器和鑲嵌控制著色器(或者控制外殼著色器)程序被執(zhí)行,并且頂 點(diǎn)數(shù)據(jù)和鑲嵌參數(shù)存儲(chǔ)在存儲(chǔ)器中。在完成該第一通道后,圖形處理流水線被重新配置。在 通過圖形處理流水線的第二通道期間,從存儲(chǔ)器中讀取頂點(diǎn)數(shù)據(jù)和鑲嵌參數(shù),且鑲嵌評(píng)價(jià) 著色器(或域著色器)和幾何著色器程序被執(zhí)行以完成鑲嵌操作。典型地,軟件應(yīng)用程序 或設(shè)備驅(qū)動(dòng)器啟動(dòng)第一通道和第二通道。 因此,本領(lǐng)域需要一種用于執(zhí)行鑲嵌著色器程序的改進(jìn)的系統(tǒng)和方法。

發(fā)明內(nèi)容
—種通過圖形處理器以單通道進(jìn)行鑲嵌的系統(tǒng)和方法將圖形處理器中的處理資 源分成組以進(jìn)行不同鑲嵌操作。頂點(diǎn)數(shù)據(jù)和鑲嵌參數(shù)直接從一個(gè)處理資源發(fā)送到另一處理 資源,而不是存儲(chǔ)在存儲(chǔ)器中。因此,表面面片描述提供給圖形處理器,且通過圖形處理器 以不中斷的單通道完成鑲嵌,而不將中間數(shù)據(jù)存儲(chǔ)在存儲(chǔ)器中。 通過圖形處理器以單通道進(jìn)行鑲嵌的本發(fā)明的方法的各種實(shí)施例包括配置圖形 處理器的第一組處理單元和配置圖形處理器內(nèi)的第二組處理單元。第一組處理單元配置為 執(zhí)行鑲嵌控制著色器以處理表面面片,計(jì)算鑲嵌的細(xì)節(jié)水平并產(chǎn)生包括多個(gè)頂點(diǎn)的圖形圖 元。第二組處理單元配置為執(zhí)行鑲嵌評(píng)價(jià)著色器以每個(gè)處理多個(gè)頂點(diǎn)之一。隨后通過第一 組處理單元和第二組處理單元執(zhí)行鑲嵌控制著色器和鑲嵌評(píng)價(jià)著色器來以單通道對(duì)表面 面片鑲嵌,以產(chǎn)生處理的頂點(diǎn) 本發(fā)明的各種實(shí)施例包括通過圖形處理器以單通道進(jìn)行鑲嵌的系統(tǒng)。圖形處理器 包括第一組處理單元、第二組處理單元和交叉器互連裝置。第一組處理單元配置為執(zhí)行鑲 嵌控制著色器以處理表面面片并產(chǎn)生包括多個(gè)頂點(diǎn)的圖形圖元。第二組處理單元配置為執(zhí) 行鑲嵌評(píng)價(jià)著色器以每個(gè)處理多個(gè)頂點(diǎn)之一。交叉器互連裝置與第一組處理單元和第二 組處理單元耦合,并配置為將第一組處理單元輸出的多個(gè)頂點(diǎn)發(fā)送給第二組處理單元的輸 入。


為了詳細(xì)地理解本發(fā)明的上述特征,對(duì)于以上簡(jiǎn)要說明的本發(fā)明,將參照實(shí)施例 進(jìn)行更為具體的描述,其中一些實(shí)施例在附圖中進(jìn)行了圖示。然而,需要注意的是,附圖只 是圖示本發(fā)明的代表性實(shí)施例,因此不能認(rèn)為附圖限制了本發(fā)明的范圍,本發(fā)明可以允許其他同樣有效的實(shí)施例。
圖1是圖示配置為實(shí)現(xiàn)本發(fā)明一個(gè)或多個(gè)方面而配置的計(jì)算機(jī)系統(tǒng)的框圖;
圖2是根據(jù)本發(fā)明一個(gè)實(shí)施例的用于圖1中計(jì)算機(jī)系統(tǒng)的并行處理子系統(tǒng)的框 圖; 圖3A是根據(jù)本發(fā)明一個(gè)實(shí)施例的圖2中的并行處理單元之一內(nèi)的通用處理簇的 框圖; 圖3B是根據(jù)本發(fā)明一個(gè)實(shí)施例的圖2中的并行處理單元之一中的分區(qū)單元的框 圖; 圖4是根據(jù)本發(fā)明一個(gè)實(shí)施例的可配置圖2中并行處理單元的一個(gè)或多個(gè)而實(shí)現(xiàn) 的圖形處理流水線的概念圖; 圖5A是根據(jù)本發(fā)明一個(gè)實(shí)施例的以單通道進(jìn)行鑲嵌的方法步驟的流程圖;禾口
圖5B是根據(jù)本發(fā)明一個(gè)實(shí)施例的配置成以單通道進(jìn)行鑲嵌的通用處理簇的框 圖。
具體實(shí)施例方式
在下文的描述中,給出了大量具體的細(xì)節(jié)以便提供對(duì)本發(fā)明更為徹底的理解。然 而,對(duì)于本領(lǐng)域技術(shù)人員來說顯而易見的是,本發(fā)明可以無需一個(gè)或多個(gè)這些具體細(xì)節(jié)而 得以實(shí)施。在其他的例子中,為了避免使本發(fā)明不明確,公知的特征未進(jìn)行描述。
系統(tǒng)概述 圖1是圖示配置為實(shí)現(xiàn)本發(fā)明一個(gè)或多個(gè)方面的計(jì)算機(jī)系統(tǒng)100的框圖。計(jì)算 機(jī)系統(tǒng)100包括中央處理單元(CPU) 102和系統(tǒng)存儲(chǔ)器104,二者通過存儲(chǔ)器橋105經(jīng)由總 線路徑進(jìn)行通信。存儲(chǔ)器橋105可以如圖1所示集成到CPU 102中。作為替換,存儲(chǔ)器橋 105可以是慣常設(shè)備例如北橋芯片,其通過總線連接到CPU 102。存儲(chǔ)器橋105通過通信路 徑106 (例如HyperTransport (超傳輸)鏈路)與1/0(輸入/輸出)橋107相連接。I/O 橋107例如可以是南橋芯片,其從一個(gè)或多個(gè)用戶輸入設(shè)備108(例如鍵盤、鼠標(biāo))接收用 戶輸入,并將該輸入通過路徑106和存儲(chǔ)器橋105轉(zhuǎn)發(fā)給CPU 102。并行處理子系統(tǒng)112通 過總線或其他通信路徑113(例如PCIE鄧ress、加速圖形端口或超傳輸鏈路)與存儲(chǔ)器橋 105相耦合;在一個(gè)實(shí)施例中,并行處理子系統(tǒng)112是將像素提供給顯示設(shè)備IIO(例如傳 統(tǒng)的CRT或基于LCD的顯示器)的圖形子系統(tǒng)。系統(tǒng)盤114同樣連接于I/0橋107。開關(guān) 116提供了 1/0橋107和諸如網(wǎng)絡(luò)適配器118以及各種插卡120和121的其他部件之間的 連接。包括USB或其他端口連接、CD驅(qū)動(dòng)器、DVD驅(qū)動(dòng)器、電影記錄設(shè)備等的其他部件(圖 中沒有明確示出)也可以與1/0橋107相連接。將圖1中的各種部件相互連接的通信路徑 可以用任何適用的協(xié)議來實(shí)現(xiàn),比如PCI (外設(shè)部件互連)、PCI E鄧ress (PCI-E) 、AGP (加速 圖形端口 )、超傳輸或任何其他總線或點(diǎn)對(duì)點(diǎn)通信協(xié)議,并且不同設(shè)備之間的連接可以使用 不同協(xié)議,如本領(lǐng)域已知的。 在一個(gè)實(shí)施例中,并行處理子系統(tǒng)112包括為圖形和視頻處理優(yōu)化的電路,包括 例如視頻輸出電路,并構(gòu)成了圖形處理單元(GPU)。在另一實(shí)施例中,并行處理子系統(tǒng)112 包括為通用處理優(yōu)化,并保留了底層計(jì)算架構(gòu)的電路,本文將更加詳細(xì)地描述。在另一實(shí)施 例中,并行處理子系統(tǒng)112可以集成一個(gè)或多個(gè)其他系統(tǒng)元件,例如存儲(chǔ)器橋105、CPU 102
4和I/O橋107,以形成片上系統(tǒng)(SoC)。 可以理解的是,這里示出的系統(tǒng)只是示意性的,可以對(duì)其進(jìn)行變化和修改。包括橋 的數(shù)量和排列的連接拓?fù)浣Y(jié)構(gòu)可以根據(jù)需要修改。例如,在一些實(shí)施例中,系統(tǒng)存儲(chǔ)器104 直接與CPU 102相連接而不是通過橋相連接,其他設(shè)備通過存儲(chǔ)器橋105和CPU 102與系 統(tǒng)存儲(chǔ)器104相通信。在其他可選擇的拓?fù)浣Y(jié)構(gòu)中,并行處理系統(tǒng)112與1/0橋107相連 接或直接與CPU 102相連接,而不是和存儲(chǔ)器橋105相連接。在其他實(shí)施例中,CPU102、 1/ 0橋107、并行處理子系統(tǒng)112和存儲(chǔ)器橋105的一個(gè)或多個(gè)被集成到一個(gè)或多個(gè)芯片上。 這里示出的特定部件是任選的;例如,可以支持任何數(shù)量的插卡或外設(shè)。在一些實(shí)施例中, 省去了開關(guān)116,網(wǎng)絡(luò)適配器118和插卡120、 121直接和I/O橋107相連接。
圖2示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的并行處理子系統(tǒng)112。如圖所示,并行處理 子系統(tǒng)112包括一個(gè)或多個(gè)并行處理單元(PPU)202,每個(gè)并行處理單元都和本地并行處理 (PP)存儲(chǔ)器204相耦合。通常,并行處理子系統(tǒng)包括U個(gè)PPU,其中U^ 1。(在這里,相似 對(duì)象的多個(gè)例子用表明該對(duì)象的附圖標(biāo)記和表明該例子的附加說明數(shù)字(需要時(shí))來表 示)。PPU 202和并行處理存儲(chǔ)器204可以使用例如可編程處理器,專用集成電路(ASIC) 或存儲(chǔ)器設(shè)備的一個(gè)或多個(gè)集成電路設(shè)備,或以任何其他技術(shù)上可行的方式來實(shí)現(xiàn)。
再次參考圖l,在一些實(shí)施例中,在并行處理子系統(tǒng)112中的一些或者全部的并行 處理單元202是具有渲染流水線的圖形處理器,其能被配置成進(jìn)行與下列情形有關(guān)的各種 任務(wù)從通過CPU 102和/或系統(tǒng)存儲(chǔ)器104提供的圖形數(shù)據(jù)產(chǎn)生像素?cái)?shù)據(jù);與本地并行處 理存儲(chǔ)器204 (其能被用作圖形存儲(chǔ)器,例如包括常規(guī)的幀緩沖器)交互以儲(chǔ)存并更新像素 數(shù)據(jù);提供像素?cái)?shù)據(jù)給顯示設(shè)備110等。在一些實(shí)施例中,并行處理子系統(tǒng)112可包括作為 圖形處理器工作的一個(gè)或多個(gè)并行處理單元202和用于通用計(jì)算的一個(gè)或多個(gè)其他并行 處理單元202。并行處理單元可以是相同或不同的,且每個(gè)并行處理單元202可以有其自己 專用的并行處理存儲(chǔ)器設(shè)備或沒有專用的并行處理存儲(chǔ)器設(shè)備。 一個(gè)或多個(gè)并行處理單元 202可以將數(shù)據(jù)輸出到顯示設(shè)備110或者每個(gè)并行處理單元202可以將數(shù)據(jù)輸出到一個(gè)或 多個(gè)顯示設(shè)備110。 在操作中,CPU 102是計(jì)算機(jī)系統(tǒng)100的主處理器,其控制和協(xié)調(diào)其他系統(tǒng)部件 的操作。特別是,CPU 102發(fā)出控制并行處理單元202操作的命令。在一些實(shí)施例中,CPU 102將對(duì)于每個(gè)并行處理單元202的命令流寫入到命令緩沖器(圖1和圖2中未明確地示 出),該命令緩沖器可以位于系統(tǒng)存儲(chǔ)器104、并行處理存儲(chǔ)器204或是CPU 102和并行處 理單元202都可以訪問的另一個(gè)存儲(chǔ)位置中。并行處理單元202從命令緩沖器中讀出命令 流,并且隨后相對(duì)于CPU 102的操作異步地執(zhí)行命令。CPU 102也可以建立數(shù)據(jù)緩沖器,并 行處理單元202可以響應(yīng)命令緩沖器中的命令讀取該數(shù)據(jù)緩沖器。每個(gè)命令和數(shù)據(jù)緩沖器 可以由多個(gè)并行處理單元202讀取。 現(xiàn)在返回參考圖2,每個(gè)并行處理單元202包括通過通信路徑113和計(jì)算機(jī)系統(tǒng) 100的剩余部分通信的1/0(輸入/輸出)單元205,通信路徑113與存儲(chǔ)器橋105相連接 (或是在一個(gè)可選實(shí)施例中直接與CPU 102相連接)。并行處理單元202和計(jì)算機(jī)系統(tǒng)100 的剩余部分的連接也可以變化。在一些實(shí)施例中,并行處理子系統(tǒng)112實(shí)現(xiàn)為插卡,其能插 入到計(jì)算機(jī)系統(tǒng)100的擴(kuò)展槽中。在其他實(shí)施例中,并行處理單元202能和總線橋一起集 成到單一芯片上,總線橋例如可以是存儲(chǔ)器橋105或I/O橋107。在另外其他實(shí)施例中,并行處理單元202的一些或全部元件可以連同CPU 102 —起集成到單一芯片上。
在一個(gè)實(shí)施例中,通信路徑113是PCI-E鏈路,其中如本領(lǐng)域所已知的,專用道分 配給每個(gè)PPU 202。也可以使用其他通信路徑。1/0單元205產(chǎn)生包(或其他信號(hào))以在通 信路徑113上傳送,并也接收所有來自通信路徑113的輸入包(或其他信號(hào)),并將輸入包 引導(dǎo)至PPU 202的適當(dāng)?shù)牟考?。例如,和處理任?wù)有關(guān)的命令可以被引導(dǎo)至主機(jī)接口 206, 而和存儲(chǔ)器操作有關(guān)的命令(例如從并行處理存儲(chǔ)器204中讀取或向其寫入)可以被引導(dǎo) 至存儲(chǔ)器交叉器(crossbar)單元210。主機(jī)接口 206讀取每個(gè)命令緩沖器,并將由命令緩 沖器指定的工作輸出到前端212。 每個(gè)PPU 202有利地實(shí)現(xiàn)高度并行處理架構(gòu)。如詳細(xì)示出的,PPU 202(0)包括處 理簇陣列230,處理簇陣列230包括數(shù)量為C的通用處理簇(GPC) 208,其中C > 1 。每個(gè)GPC 208能同時(shí)執(zhí)行大量(例如數(shù)百個(gè)或數(shù)千個(gè))線程,其中每個(gè)線程是程序的實(shí)例。在不同應(yīng) 用中,不同的GPC208被分配用以處理不同類型的程序或進(jìn)行不同類型的計(jì)算。例如,在圖 形應(yīng)用中,第一組GPC 208可以分配為進(jìn)行鑲嵌操作并產(chǎn)生面片的圖元拓?fù)洌诙MGPC 208可以分配為進(jìn)行鑲嵌著色以評(píng)價(jià)圖元拓?fù)涞拿嫫瑓?shù)并確定頂點(diǎn)位置和其他每頂點(diǎn)屬 性。GPC 208的分配基于每個(gè)類型的程序或計(jì)算產(chǎn)生的工作量是可以變化的??蛇x擇地,所 有的GPC 208可以分配為使用時(shí)間片方案進(jìn)行處理任務(wù)以在不同處理任務(wù)之間轉(zhuǎn)換。
GPC 208通過工作分配單元200接收將要執(zhí)行的處理任務(wù),該工作分配單元200從 前端單元212接收限定了處理任務(wù)的命令。處理任務(wù)包括例如表面(面片)數(shù)據(jù)、圖元數(shù) 據(jù)、頂點(diǎn)數(shù)據(jù)和/或像素?cái)?shù)據(jù)的要處理數(shù)據(jù)的指針,還有狀態(tài)參數(shù)和限定數(shù)據(jù)如何處理的 命令(例如執(zhí)行什么程序)。工作分配單元200可以配置成取得對(duì)應(yīng)于任務(wù)的指針,工作分 配單元200可以從前端212接收指針,或者工作分配單元200可以直接接收數(shù)據(jù)。在本發(fā) 明的一些實(shí)施例中,索引指明了陣列中數(shù)據(jù)的位置。前端212保證在命令緩沖器指定的處 理啟動(dòng)前,GPC 208配置為有效狀態(tài)。 例如,當(dāng)并行處理單元202用于圖形處理時(shí),每個(gè)面片的處理工作量被分成大約 相等大小的任務(wù),以使得能將鑲嵌處理分配給多個(gè)GPC 208。工作分配單元200可以配置 成以能提供任務(wù)到多個(gè)GPC 208用于處理的頻率輸出任務(wù)。在本發(fā)明的一些實(shí)施例中,部 分GPC 208配置成進(jìn)行不同類型的處理。例如,第一部分可以配置成進(jìn)行頂點(diǎn)著色和產(chǎn)生 拓?fù)浣Y(jié)構(gòu),第二部分可以配置成進(jìn)行鑲嵌和幾何著色,以及第三部分可以配置成在屏幕空 間上進(jìn)行像素著色以產(chǎn)生渲染的圖像。分配部分GPC 208以進(jìn)行不同類型的處理的能力有 效地適應(yīng)了由不同類型的處理產(chǎn)生的數(shù)據(jù)的任何擴(kuò)展和縮減。GPC 208產(chǎn)生的中間數(shù)據(jù)可 以被緩沖,以當(dāng)下游GPC 208接收數(shù)據(jù)的速度落后于上游GPC 208產(chǎn)生數(shù)據(jù)的速度時(shí),允許 中間數(shù)據(jù)在GPC 208之間以最少的停止傳輸。 存儲(chǔ)器接口 214可以被分區(qū)成D個(gè)存儲(chǔ)器分區(qū)單元,每個(gè)存儲(chǔ)器分區(qū)單元與并行 處理存儲(chǔ)器204的一部分直接耦合,其中D^ 1。存儲(chǔ)器的每部分通常包括一個(gè)或多個(gè)存儲(chǔ) 器設(shè)備(例如DRAM 220)。本領(lǐng)域的普通技術(shù)人員可以理解的是,DRAM 220可以由其他合 適的存儲(chǔ)設(shè)備代替并且通??梢允菓T常的設(shè)計(jì)。因此省略了詳細(xì)的描述。例如幀緩沖器或 紋理貼圖的渲染目標(biāo)可以跨越DRAM 220存儲(chǔ),允許分區(qū)單元215將每個(gè)渲染目標(biāo)的部分并 行寫入,以有效地使用并行處理存儲(chǔ)器204的可用帶寬。 GPC 208的任何一個(gè)可以處理要寫入到并行處理存儲(chǔ)器204中的任何分區(qū)單元215中的數(shù)據(jù)。交叉器(crossbar)單元210配置為將每個(gè)GPC 208的輸出發(fā)送至任何分 區(qū)單元214的輸入或另一GPC 208以進(jìn)一步處理。GPC 208通過交叉器單元210與存儲(chǔ)器 接口 214通信以從各種外部存儲(chǔ)器設(shè)備中讀取或?qū)懭敫鞣N外部存儲(chǔ)器設(shè)備。在一個(gè)實(shí)施例 中,交叉器單元210與存儲(chǔ)器接口 214連接以與I/O單元205通信,交叉器單元210也和本 地并行處理存儲(chǔ)器204連接,因此使得不同GPC 208內(nèi)的處理內(nèi)核能與系統(tǒng)存儲(chǔ)器104或 對(duì)并行處理單元202為非本地的其他存儲(chǔ)器通信。交叉器單元210可以使用虛擬通道以在 GPC 208和分區(qū)單元215之間分開通信流。 此外,GPC 208能被編程以執(zhí)行與廣泛多種應(yīng)用相關(guān)的處理任務(wù),所述應(yīng)用包括但 不限于線性和非線性數(shù)據(jù)轉(zhuǎn)換、視頻和/或音頻數(shù)據(jù)的過濾、建模操作(例如,應(yīng)用物理規(guī) 律來確定對(duì)象的位置、速度和其他屬性)、圖像渲染操作(例如,鑲嵌著色器、頂點(diǎn)著色器、 幾何著色器和/或像素著色器程序)等等。并行處理單元202可以將數(shù)據(jù)從系統(tǒng)存儲(chǔ)器 104和/或本地并行處理存儲(chǔ)器204傳輸?shù)絻?nèi)部(片上)存儲(chǔ)器,處理數(shù)據(jù),并將結(jié)果數(shù)據(jù) 寫回到系統(tǒng)存儲(chǔ)器104和/或本地并行處理存儲(chǔ)器204中,其中這樣的數(shù)據(jù)能夠由包括CPU 102或另一并行處理子系統(tǒng)112的其他系統(tǒng)部件來訪問。 并行處理單元202可以提供有任意數(shù)量的本地并行處理存儲(chǔ)器204,包括沒有 本地存儲(chǔ)器,并可以以任意組合使用本地存儲(chǔ)器和系統(tǒng)存儲(chǔ)器。例如,在統(tǒng)一存儲(chǔ)器架構(gòu) (UMA)的實(shí)施例中,并行處理單元202可以是圖形處理器。在這樣的實(shí)施例中,會(huì)提供極少 或者沒有專用圖形(并行處理)存儲(chǔ)器,并行處理單元202唯一地使用或幾乎唯一地使用 系統(tǒng)存儲(chǔ)器。在UMA實(shí)施例中,并行處理單元202可被集成到橋芯片或處理器芯片中,或者 是提供為具有高速鏈路(例如PCI-E)的分立的芯片,該高速鏈路將并行處理單元202通過 橋芯片或其他通信裝置與系統(tǒng)存儲(chǔ)器相連接。 如上所述,并行處理子系統(tǒng)112中可以包括任意數(shù)量的并行處理單元202。例如, 多個(gè)并行處理單元202可以提供在單個(gè)的插卡上,或者多個(gè)插卡可以與通信路徑113相連, 或者一個(gè)或多個(gè)并行處理單元202可以集成到橋芯片中。多并行處理單元系統(tǒng)中的并行處 理單元202可以是彼此相同的,或者可以是彼此不同的。例如,不同的并行處理單元202可 以具有不同數(shù)量的處理內(nèi)核、不同數(shù)量的本地并行處理存儲(chǔ)器等等。當(dāng)存在有多個(gè)并行處 理單元202時(shí),那些并行處理單元可以以高于單個(gè)并行處理單元202可能達(dá)到的吞吐量來 并行操作以處理數(shù)據(jù)。包含有一個(gè)或多個(gè)并行處理單元202的系統(tǒng)可以以各種配置和形式 因素實(shí)現(xiàn),包括臺(tái)式計(jì)算機(jī)、筆記本計(jì)算機(jī)、或是手持個(gè)人計(jì)算機(jī)、服務(wù)器、工作站、游戲控 制臺(tái)、嵌入式系統(tǒng)等等。
處理簇陣列概述 圖3A是根據(jù)本發(fā)明一個(gè)實(shí)施例的在圖2的并行處理單元202之一中的GPC 208 的框圖。每個(gè)GPC 208可以配置為并行執(zhí)行大量的線程,在此術(shù)語"線程"是指對(duì)一特定組 的輸入數(shù)據(jù)執(zhí)行的特定程序的實(shí)例。在一些實(shí)施例中,單指令多數(shù)據(jù)(SMD)指令發(fā)送技術(shù) 被用于支持并行執(zhí)行大量線程,而不用提供多個(gè)獨(dú)立的指令單元。在其他實(shí)施例中,使用配 置為向每個(gè)GPC 208中的一組處理引擎發(fā)送指令的共同指令單元,單指令多線程(SIMT)技 術(shù)被用來支持并行執(zhí)行大量通用同步線程。不像SMD執(zhí)行方式中所有處理引擎通常執(zhí)行 相同的指令,SIMT的執(zhí)行允許不同的線程通過給定的線程程序更加容易地跟隨分散的執(zhí)行 路徑。本領(lǐng)域的普通技術(shù)人員可以理解的是,SMD處理方式代表了 SMT處理方式的功能性子集。 在圖形應(yīng)用中,GPC 208可以被配置為包括圖元引擎以進(jìn)行屏幕空間圖形處理功 能,其包括但不限于圖元建立、光柵化和Z剔除。如圖3A所示,建立單元302接收指令處理 圖形圖元并從緩沖區(qū)中讀取圖形圖元參數(shù)。緩沖區(qū)可以存儲(chǔ)在Ll高速緩沖存儲(chǔ)器315、分 區(qū)單元215或者并行處理存儲(chǔ)器204中。光柵化器/Z剔除單元303接收?qǐng)D形圖元參數(shù)并 對(duì)與分配給光柵化器/Z剔除單元303的像素交叉的圖元進(jìn)行光柵化。每個(gè)像素只分配給 光柵化器/Z剔除單元303之一,這樣與沒有分配給光柵化器/Z剔除單元303的像素交叉 的部分圖形圖元被丟棄。光柵化器/Z剔除單元303也進(jìn)行Z剔除以去除不可見的部分圖 形圖元。Z預(yù)先光柵操作(Z preROP)單元304進(jìn)行地址翻譯以訪問Z數(shù)據(jù)并基于各種Z處 理模式保持Z數(shù)據(jù)的順序。 GPC 208的操作通過流水線管理器305有利地控制,流水線管理器305將從工作分 配單元200接收的處理任務(wù)(通過建立單元302、光柵化器/Z剔除單元303和Z預(yù)先光柵 操作單元304)分配給流多處理器單元(SMU)310。流水線管理器305也可以配置為通過為 SMU 310輸出的處理的數(shù)據(jù)指定目的地來控制工作分配交叉器(crossbar) 330。
在一個(gè)實(shí)施例中,每個(gè)GPC 208包括M個(gè)SMU 310,其中M > 1,每個(gè)SMU 310配置 成處理一個(gè)或多個(gè)線程組。此外,每個(gè)SMU 310有利地包括可以流水線化的相同組的功能 單元(例如算術(shù)邏輯單元等),允許新指令可以在前指令完成之前發(fā)送,這已在本領(lǐng)域中公 知??梢蕴峁┕δ軉卧娜魏谓M合。在一個(gè)實(shí)施例中,功能單元支持各種運(yùn)算,包括整數(shù)和 浮點(diǎn)算術(shù)(例如加法和乘法)、比較運(yùn)算、布爾運(yùn)算(與、或、異或)、移位和各種代數(shù)函數(shù) (例如平面插值函數(shù)、三角算法函數(shù)、指數(shù)函數(shù)和對(duì)數(shù)函數(shù)等)的計(jì)算;并且相同的功能單 元硬件可以被平衡為進(jìn)行不同的運(yùn)算。 傳送到特定GPC 208的系列指令構(gòu)成了已在本文前面定義的線程,且在SMU 310 內(nèi)在并行處理引擎(未示出)上一定數(shù)量同時(shí)執(zhí)行的線程的集合在本文中稱為線程組。如 本文所使用的,線程組指的是對(duì)不同輸入數(shù)據(jù)同時(shí)執(zhí)行相同程序的線程的組,組中的每個(gè) 線程被分配給SMU 310中的不同處理引擎。線程組可以包括比SMU 310中處理引擎數(shù)量少 的線程,在這種情況中,在當(dāng)處理線程組時(shí)的周期期間,一些處理引擎將是空閑的。線程組 也可以包括比SMU 310中處理引擎數(shù)量多的線程,在這種情況中,處理將發(fā)生在多個(gè)時(shí)鐘 周期上。由于每個(gè)SMU 310可以同時(shí)支持多達(dá)G個(gè)線程組,因此多達(dá)GxM個(gè)線程組可以在 任何給定的時(shí)間在GPC 208中執(zhí)行。 另外,在SMU 310中,多個(gè)相關(guān)的線程組可以在同一時(shí)間是活動(dòng)的(處于執(zhí)行的不 同階段)。這個(gè)線程組的集合在本文中被稱為合作線程陣列(CTA)。特定CTA的大小等于 mxk,其中k是在線程組中同時(shí)執(zhí)行的線程的數(shù)量且通常是SMU 310中并行處理引擎數(shù)量的 整數(shù)倍;m是SMU 310中同時(shí)活動(dòng)的線程組的數(shù)量。CTA的大小通常由程序員和CTA可使用 的硬件資源例如存儲(chǔ)器或寄存器的數(shù)量確定。 專有本地地址空間對(duì)每個(gè)線程可用,且共享的每CTA地址空間用于在CTA中的線 程之間傳遞數(shù)據(jù)。存儲(chǔ)在每線程本地地址空間和每CTA地址空間中的數(shù)據(jù)存儲(chǔ)在Ll高速 緩沖存儲(chǔ)器320中,且可以使用逐出策略來幫助將數(shù)據(jù)保持在Ll高速緩沖存儲(chǔ)器320中。 每個(gè)SMU 310使用在用于進(jìn)行裝載和存儲(chǔ)操作的相應(yīng)的Ll高速緩沖存儲(chǔ)器320中的空間。 每個(gè)SMU310也訪問所有GPC 208共享并可以用于在線程之間傳送數(shù)據(jù)的分區(qū)單元215中的L2高速緩沖存儲(chǔ)器。最后,SMU 310也訪問片外"全局"存儲(chǔ)器,其可以包括例如并行處 理存儲(chǔ)器204和/或系統(tǒng)存儲(chǔ)器104。 L2高速緩沖存儲(chǔ)器可以用于存儲(chǔ)寫入到全局存儲(chǔ)器 中和從全局存儲(chǔ)器中讀取的數(shù)據(jù)??梢岳斫獾氖?,并行處理單元202外部的任何存儲(chǔ)器都 可以用作全局存儲(chǔ)器。 在圖形應(yīng)用中,GPC 208可以配置為使得每個(gè)SMU 310和紋理單元315耦合以進(jìn) 行紋理貼圖操作,例如確定紋理樣本的位置、讀取紋理數(shù)據(jù)和過濾紋理數(shù)據(jù)。紋理數(shù)據(jù)通過 存儲(chǔ)器接口 214讀取并按照需要從L2高速緩沖存儲(chǔ)器、并行處理存儲(chǔ)器204或者系統(tǒng)存儲(chǔ) 器104中取得。紋理單元315可以配置為在內(nèi)部高速緩沖存儲(chǔ)器中存儲(chǔ)紋理數(shù)據(jù)。在一些 實(shí)施例中,紋理單元315與Ll高速緩沖存儲(chǔ)器320耦合且紋理數(shù)據(jù)存儲(chǔ)在Ll高速緩沖存 儲(chǔ)器320中。每個(gè)SMU 310向工作分配交叉器330輸出處理的任務(wù),以向另一GPC 208提 供處理的任務(wù)以做進(jìn)一步處理,或通過交叉器單元210將處理的任務(wù)存儲(chǔ)在L2高速緩沖存 儲(chǔ)器、并行處理存儲(chǔ)器204或者系統(tǒng)存儲(chǔ)器104中。PreROP (預(yù)先光柵操作器)325配置成 從SMU 310中接收數(shù)據(jù),引導(dǎo)數(shù)據(jù)至分區(qū)單元215內(nèi)的光柵操作單元,并進(jìn)行顏色混合的優(yōu) 化,組織像素顏色數(shù)據(jù),并進(jìn)行地址翻譯。 可以理解的是,本文描述的內(nèi)核架構(gòu)是示例性的,可以做變化和改變。任何數(shù)量的 處理引擎,例如SMU 310、紋理單元315或預(yù)先光柵操作器325可以包括在GPC 208中。進(jìn) 一步,雖然只示出了一個(gè)GPC 208,并行處理單元202可以包括任何數(shù)量的GPC 208,這些 GPC 208功能上有利地彼此相似,使得執(zhí)行行為不取決于哪個(gè)GPC 208接收了特定處理任 務(wù)。進(jìn)一步,每個(gè)GPC 208使用單獨(dú)的和不同的處理引擎、L1高速緩沖存儲(chǔ)器320等有利 地相對(duì)另外的GPC 208獨(dú)立地工作。 圖3B是根據(jù)本發(fā)明一個(gè)實(shí)施例的圖2中并行處理單元202其中之一中的分區(qū)單 元215的框圖。如圖所示,分區(qū)單元215包括L2高速緩沖存儲(chǔ)器350、幀緩沖器(FB) 355和 光柵操作器(R0P)360。 L2高速緩沖存儲(chǔ)器350是配置為進(jìn)行從交叉器單元210和R0P 360 接收的裝載和存儲(chǔ)操作的讀/寫高速緩沖存儲(chǔ)器。讀取缺失和緊急寫回請(qǐng)求通過L2高速 緩沖存儲(chǔ)器350輸出到幀緩沖器355處理。臟(dirty)更新也送到幀緩沖器355用于機(jī)會(huì) 處理。幀緩沖器355直接與并行處理存儲(chǔ)器204接口 ,輸出讀取和寫入請(qǐng)求,并接收從并行 處理存儲(chǔ)器204讀取的數(shù)據(jù)。 在圖形應(yīng)用中,ROP 360是進(jìn)行光柵操作的處理單元,例如模板、z測(cè)試、混合等, 并將像素?cái)?shù)據(jù)輸出為處理的圖形數(shù)據(jù)以存儲(chǔ)在圖形存儲(chǔ)器中。在本發(fā)明的一些實(shí)施例中, ROP 360包括在每個(gè)GPC 208中,而不是每個(gè)分區(qū)單元215中,像素的讀和寫通過交叉器單 元210來傳送,而不是像素段。 處理的圖形數(shù)據(jù)可以顯示在顯示設(shè)備110上,或被發(fā)送以通過CPU102或通過并行 處理子系統(tǒng)112中的處理實(shí)體之一來進(jìn)一步處理。每個(gè)分區(qū)單元215包括R0P 360以分配 光柵操作的處理。在一些實(shí)施例中,R0P360可以配置為壓縮寫到存儲(chǔ)器中的z或顏色數(shù)據(jù), 并將從存儲(chǔ)器中讀取的z或顏色數(shù)據(jù)解壓縮。 本領(lǐng)域的技術(shù)人員可以理解的是,圖1、2、3A和3B中描述的架構(gòu)決不限制本發(fā)明 的范圍,本文中教導(dǎo)的技術(shù)可以在任何適合地配置的處理單元上實(shí)現(xiàn),該處理單元包括但 不限于一個(gè)或多個(gè)CPU、一個(gè)或多個(gè)多內(nèi)核CPU、一個(gè)或多個(gè)并行處理單元202、一個(gè)或多個(gè) GPC 208、一個(gè)或多個(gè)圖形或?qū)S锰幚韱卧龋@些都不離開本發(fā)明的范圍。
圖形流水線架構(gòu) 圖4是根據(jù)本發(fā)明一個(gè)實(shí)施例的圖形處理流水線400的概念圖,圖2中并行處理 單元202的一個(gè)或多個(gè)可被配置為實(shí)現(xiàn)圖形處理流水線400。例如,SMU 310其中之一可被 配置成執(zhí)行頂點(diǎn)處理單元415、幾何處理單元425和片段處理單元460中的一個(gè)或多個(gè)單元 的功能。數(shù)據(jù)匯編器410、圖元匯編器420、光柵化器455和光柵操作單元465的功能也可 以由GPC208和相應(yīng)的分區(qū)單元215中的其他處理引擎來執(zhí)行。作為選擇,圖形處理流水線 400可為一個(gè)或多個(gè)功能使用專有處理單元來實(shí)現(xiàn)。 數(shù)據(jù)匯編器410處理單元為高階表面、圖元等收集頂點(diǎn)數(shù)據(jù)并向頂點(diǎn)處理單元 415輸出包括頂點(diǎn)屬性的頂點(diǎn)數(shù)據(jù)。頂點(diǎn)處理單元415是配置成執(zhí)行頂點(diǎn)著色器程序的可 編程執(zhí)行單元,按照該頂點(diǎn)著色器程序的規(guī)定對(duì)頂點(diǎn)數(shù)據(jù)進(jìn)行光照和變換。例如,頂點(diǎn)處理 單元415可被編程為將頂點(diǎn)數(shù)據(jù)從基于物體的坐標(biāo)表示(物體空間)轉(zhuǎn)換成可選擇的基于 的坐標(biāo)系統(tǒng),例如世界空間或規(guī)一化設(shè)備坐標(biāo)(NDC)空間。頂點(diǎn)處理單元415可以通過數(shù) 據(jù)匯編器410讀取存儲(chǔ)在Ll高速緩沖存儲(chǔ)器320、并行處理存儲(chǔ)器204或系統(tǒng)處理器104 中的數(shù)據(jù),以在處理頂點(diǎn)數(shù)據(jù)時(shí)使用。 圖元匯編器420從頂點(diǎn)處理單元415中接收頂點(diǎn)屬性,按需要讀取存儲(chǔ)的頂點(diǎn)屬 性,并構(gòu)造圖形圖元以用于由幾何處理單元425來處理。圖形圖元包括三角形、線段、點(diǎn)等。 幾何處理單元425是配置為執(zhí)行幾何著色器程序的可編程執(zhí)行單元,按照幾何著色器程序 的規(guī)定將從圖元匯編器420接收的圖形圖元進(jìn)行變換。例如,幾何處理單元425可被編程 為將圖形圖元細(xì)分為一個(gè)或多個(gè)新圖形圖元,并計(jì)算用于光柵化該新圖形圖元的參數(shù),例 如平面方程系數(shù)。 在一些實(shí)施例中,幾何處理單元425也可以在幾何數(shù)據(jù)流中增加或刪除元素。幾 何處理單元425將規(guī)定新圖形圖元的參數(shù)和頂點(diǎn)輸出至視口縮放、剔除和裁剪單元450。幾 何處理單元425可讀取存儲(chǔ)在并行處理存儲(chǔ)器204或系統(tǒng)存儲(chǔ)器104中的數(shù)據(jù)以用來處理 幾何數(shù)據(jù)。視口縮放、剔除和裁剪單元450進(jìn)行裁剪、剔除和視口縮放,并將處理的圖形圖 元輸出到光柵化器455。 光柵化器455掃描轉(zhuǎn)換新的圖形圖元并輸出片段和覆蓋數(shù)據(jù)給片段處理單元 460。另外,光柵化器455可以配置為進(jìn)行z剔除和其他基于z的優(yōu)化。片段處理單元460 是配置成執(zhí)行片段著色器程序的可編程執(zhí)行單元,按照片段著色器程序的規(guī)定將從光柵化 器455接收的片段進(jìn)行變換。例如,片段處理單元460可被編程以進(jìn)行例如透視修正、紋理 貼圖、著色、混合等操作來產(chǎn)生輸出到光柵操作單元465的著色的片段。片段處理單元460 可以讀取存儲(chǔ)在并行處理存儲(chǔ)器204或系統(tǒng)存儲(chǔ)器104中的數(shù)據(jù)以便在處理片段數(shù)據(jù)中使 用。根據(jù)編程的采樣率,可以以像素、樣本或者其他粒度對(duì)片段進(jìn)行著色。
光柵操作單元465是進(jìn)行諸如模板、z測(cè)試、混合等光柵操作的處理單元,并輸出 像素?cái)?shù)據(jù)為處理的圖形數(shù)據(jù)以存儲(chǔ)在圖形存儲(chǔ)器中。處理的圖形數(shù)據(jù)可以存儲(chǔ)在圖形存儲(chǔ) 器中,例如并行處理存儲(chǔ)器204和/或系統(tǒng)存儲(chǔ)器104中,以顯示在顯示設(shè)備110上,或由 CPU 102或并行處理子系統(tǒng)112進(jìn)一步處理。在本發(fā)明的一些實(shí)施例中,光柵操作單元465 配置成壓縮寫到存儲(chǔ)器中的z或顏色數(shù)據(jù),并解壓縮從存儲(chǔ)器讀取的z或顏色數(shù)據(jù)。
單通道鑲嵌 為了以單通道進(jìn)行鑲嵌,第一部分的SMU 310配置成執(zhí)行鑲嵌控制著色器程序,第二部分的SMU 310配置成執(zhí)行鑲嵌評(píng)價(jià)著色器程序。第一部分的SMU 310接收表面面片 描述并輸出圖形圖元,例如由十個(gè)控制點(diǎn)限定的立體三角形圖元,和鑲嵌參數(shù),例如細(xì)節(jié)水 平值。圖形圖元和鑲嵌參數(shù)通過Ll高速緩沖存儲(chǔ)器320和工作分配交叉器330從一個(gè)SMU 320發(fā)送到另一個(gè),而不是存儲(chǔ)在并行處理存儲(chǔ)器204中。因此,表面面片描述的鑲嵌通過 GPC 208以不中斷的單通道完成,而不在L2高速緩沖存儲(chǔ)器350或并行處理存儲(chǔ)器204中 存儲(chǔ)中間數(shù)據(jù)。另外,應(yīng)用程序或設(shè)備驅(qū)動(dòng)器103提供了表面面片描述,并且在鑲嵌處理期 間不重新配置部分GPC 208。 第一部分中SMU 310的數(shù)量可以等于,大于或小于第二部分中SMU310的數(shù)量。重 要的是,第一部分和第二部分中SMU 310的數(shù)量可以定制為和處理工作量匹配。單一表面 面片產(chǎn)生的頂點(diǎn)的數(shù)量隨著計(jì)算的鑲嵌細(xì)節(jié)水平而變化。因此,由于鑲嵌控制著色器程序 的執(zhí)行可以導(dǎo)致數(shù)據(jù)的擴(kuò)展,第一部分的SMU 310中的單個(gè)SMU 310可以為第二部分的SMU 310中的多個(gè)SMU 310產(chǎn)生"工作"。 圖5A是根據(jù)本發(fā)明一個(gè)實(shí)施例的以單通道進(jìn)行鑲嵌的方法步驟的流程圖。在步 驟510,設(shè)備驅(qū)動(dòng)器103配置第一組SMU 310以執(zhí)行鑲嵌控制著色器程序。鑲嵌控制著色 器程序可以進(jìn)行控制點(diǎn)基礎(chǔ)的變化、鑲嵌細(xì)節(jié)水平參數(shù)的計(jì)算等,并且對(duì)每個(gè)表面面片執(zhí) 行一次。當(dāng)鑲嵌控制著色器程序輸入一個(gè)面片(控制點(diǎn)組)并輸出不同面片(不同組的控 制點(diǎn))時(shí),發(fā)生面片基礎(chǔ)的變化,此處控制點(diǎn)數(shù)量在輸入面片和輸出面片之間變化。在步驟 520,設(shè)備驅(qū)動(dòng)器103配置第二組SMU 310以執(zhí)行鑲嵌評(píng)價(jià)程序。鑲嵌評(píng)價(jià)控制著色器程序 基于面片圖元控制點(diǎn),每個(gè)頂點(diǎn)的參數(shù)(u, v)位置,置換貼圖等,可以計(jì)算每個(gè)頂點(diǎn)的最終 位置和屬性,并且對(duì)每個(gè)輸出頂點(diǎn)執(zhí)行一次。 在步驟525,設(shè)備驅(qū)動(dòng)器103將SMU 310配置為第一組和第二組,并下載由GPC 208執(zhí)行的鑲嵌控制著色器和鑲嵌評(píng)價(jià)著色器程序,以處理表面數(shù)據(jù)并產(chǎn)生輸出頂點(diǎn)。在步 驟530,第一組SMU 310中的SMU 310執(zhí)行鑲嵌控制著色器程序以產(chǎn)生圖形圖元,例如像立 體三角行的圖形圖元的控制點(diǎn)。 在步驟540,由第一組SMU 310輸出的圖形圖元的頂點(diǎn)被分配給第二組SMU 310的 輸入。在步驟545,第二組SMU 310中的SMU 310執(zhí)行鑲嵌評(píng)價(jià)著色器程序以產(chǎn)生輸出頂 點(diǎn)。注意,對(duì)不同頂點(diǎn),步驟530,540和545在不同時(shí)間發(fā)生。因此,當(dāng)圖形圖元由第一組 中的SMU 310輸出時(shí),第二組中的SMU 310開始執(zhí)行鑲嵌評(píng)價(jià)程序以產(chǎn)生輸出頂點(diǎn)。因?yàn)?SMU310配置為以單通道處理表面面片,因此設(shè)備驅(qū)動(dòng)器103不需要重新配置SMU 310以在 鑲嵌操作期間進(jìn)行不同操作。 圖5B是根據(jù)本發(fā)明一個(gè)實(shí)施例的配置為以單通道進(jìn)行鑲嵌的GPC208的框圖。第 一組550是配置為執(zhí)行鑲嵌控制著色器程序的第一組的SMU 310。第二組560是配置為執(zhí) 行鑲嵌評(píng)價(jià)著色器程序的第二組的SMU310。第一組550,工作分配交叉器330和第二組560 可以配置為進(jìn)行圖5A的步驟530, 540和545。工作分配交叉器330配置為將第一組550中 的每個(gè)SMU310與第二組560中的每個(gè)SMU 310相連接。 代表表面面片的表面數(shù)據(jù)555可以存儲(chǔ)在如圖5B所示的Ll高速緩沖存儲(chǔ)器320 中,并由第一組550讀取。流水線管理器305可以配置為向第一組550中的每個(gè)SMU 310 提供表面數(shù)據(jù)555的位置以分配表面面片用于處理。由第一組550輸出的代表圖形圖元的 鑲嵌數(shù)據(jù)570可以存儲(chǔ)在Ll高速緩沖存儲(chǔ)器320中。流水線管理器305為工作分配交叉器330提供發(fā)送信息,需要該發(fā)送信息以為第二組560的SMU 310的輸入分配圖形圖元頂 點(diǎn)。在本發(fā)明的一些實(shí)施例中,例如圖5B所示的實(shí)施例,鑲嵌數(shù)據(jù)570通過工作分配交叉 器330發(fā)送。在本發(fā)明的其他實(shí)施例中,與每個(gè)圖形圖元頂點(diǎn)的位置對(duì)應(yīng)的索引通過工作 分配交叉器330發(fā)送,以將第一組550輸出的鑲嵌數(shù)據(jù)570分配給第二組560的輸入。重 要的是,鑲嵌數(shù)據(jù)570存儲(chǔ)在Ll高速緩沖器320或L2高速緩沖器350中,而不是存儲(chǔ)在并 行處理存儲(chǔ)器204中,使得讀和寫鑲嵌數(shù)據(jù)570需要的時(shí)鐘周期數(shù)量減少。
由于第一組550中的SMU 310寫鑲嵌數(shù)據(jù)570,第二組560中的SMU310讀取鑲嵌 數(shù)據(jù)570,因此鑲嵌數(shù)據(jù)570消耗的存儲(chǔ)量減低以適應(yīng)Ll高速緩沖器320或L2高速緩沖器 350。相反地,在慣常系統(tǒng)中,當(dāng)兩個(gè)不同的通道用來執(zhí)行程序時(shí),在流水線被配置為執(zhí)行鑲 嵌評(píng)價(jià)著色器程序和讀取數(shù)據(jù)之前,鑲嵌控制著色器程序?yàn)槊嫫M產(chǎn)生的所有數(shù)據(jù)都存儲(chǔ) 在片外存儲(chǔ)器,例如并行處理存儲(chǔ)器204中。另外,當(dāng)使用慣常的兩通道技術(shù)時(shí),組中面片 的數(shù)量通常很大,以降低在執(zhí)行鑲嵌控制著色器程序和鑲嵌評(píng)價(jià)著色器程序之間切換而發(fā) 生的流水線重新配置的頻率。在第一通道中通過處理較多數(shù)量面片產(chǎn)生的鑲嵌數(shù)據(jù)需要比 鑲嵌數(shù)據(jù)570更多的存儲(chǔ)空間,因此其存儲(chǔ)在片外存儲(chǔ)器中。 如參考圖5A和5B所描述的,對(duì)表面面片描述的鑲嵌通過GPC 208以不中斷的單 通道完成,而不在并行處理器204中存儲(chǔ)中間數(shù)據(jù)。另外,應(yīng)用程序或設(shè)備驅(qū)動(dòng)器103提供 了表面面片描述,并且在鑲嵌處理期間不重新配置部分GPC 208。應(yīng)用程序程序員可以有利 地將并行處理單元202視為自動(dòng)地配置為以單通道處理表面的單一鑲嵌流水線。
本發(fā)明的一個(gè)實(shí)施例可以實(shí)現(xiàn)為與計(jì)算機(jī)系統(tǒng)一起使用的程序產(chǎn)品。該程序產(chǎn)品 的程序限定了實(shí)施例(包括本文描述的方法)的功能,并可以包含在各種計(jì)算機(jī)可讀存儲(chǔ) 介質(zhì)上。示例性的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)包括但不限于(i)其上信息被永久存儲(chǔ)的不可寫 存儲(chǔ)媒介(例如,計(jì)算機(jī)中的只讀存儲(chǔ)器設(shè)備,諸如由CD-ROM驅(qū)動(dòng)器可讀取的CD-ROM盤、 閃存、ROM芯片或任何類型的固態(tài)非易失半導(dǎo)體存儲(chǔ)器);和(ii)其上存儲(chǔ)可改變信息的可 寫存儲(chǔ)媒介(例如,軟盤驅(qū)動(dòng)器中的軟盤或硬盤驅(qū)動(dòng)器或任何類型的固態(tài)隨機(jī)存取半導(dǎo)體 存儲(chǔ)器)。 本發(fā)明已經(jīng)參考特定實(shí)施例進(jìn)行了描述。但是,本領(lǐng)域技術(shù)人員可以理解的是,可 以對(duì)本發(fā)明做出各種修改和改變,而不脫離如所附權(quán)利要求闡明的本發(fā)明的較寬精神和范 圍。因此,上述描述和附圖被認(rèn)為是示例性的而不是限制性的。
權(quán)利要求
一種通過圖形處理器以單通道進(jìn)行鑲嵌的方法,所述方法包括配置所述圖形處理器的第一組處理單元以執(zhí)行鑲嵌控制著色器以處理表面面片,并產(chǎn)生包括多個(gè)頂點(diǎn)的圖形圖元;配置所述圖形處理器內(nèi)的第二組處理單元以執(zhí)行鑲嵌評(píng)價(jià)著色器以每個(gè)處理所述多個(gè)頂點(diǎn)之一;和通過所述第一組處理單元和所述第二組處理單元執(zhí)行所述鑲嵌控制著色器和所述鑲嵌評(píng)價(jià)著色器來以單通道對(duì)所述表面面片鑲嵌,以產(chǎn)生處理的頂點(diǎn)。
2. 按照權(quán)利要求1所述的方法,進(jìn)一步包括將所述第一組處理單元輸出的所述多個(gè)頂 點(diǎn)分配給所述第二組處理單元的輸入的步驟。
3. 按照權(quán)利要求2所述的方法,其中所述分配步驟包括將對(duì)應(yīng)于存儲(chǔ)所述多個(gè)頂點(diǎn)的 每個(gè)的位置的索引從所述第一組處理單元發(fā)送到所述第二組處理單元的輸入。
4. 按照權(quán)利要求1所述的方法,其中所述鑲嵌控制著色器為所述表面面片的每一個(gè)執(zhí) 行一次,以為所述一個(gè)表面面片計(jì)算細(xì)節(jié)水平參數(shù)。
5. 按照權(quán)利要求1所述的方法,其中所述鑲嵌評(píng)價(jià)著色器為所述多個(gè)頂點(diǎn)的每一個(gè)執(zhí) 行一次,以計(jì)算所述一個(gè)頂點(diǎn)的最終位置和屬性。
6. 按照權(quán)利要求1所述的方法,其中所述處理單元的每一個(gè)獨(dú)立于其他處理單元執(zhí)行 所述鑲嵌控制著色器或所述鑲嵌評(píng)價(jià)著色器。
7. —種以單通道進(jìn)行鑲嵌的系統(tǒng),包括圖形處理器,所述圖形處理器包括 第一組處理單元,其配置為執(zhí)行鑲嵌控制著色器以處理表面面片并產(chǎn)生包括多個(gè)頂點(diǎn)的圖形圖元;第二組處理單元,其配置為執(zhí)行鑲嵌評(píng)價(jià)著色器以每個(gè)處理所述多個(gè)頂點(diǎn)之一 ;禾口 交叉器互連裝置,其與所述第一組處理單元和所述第二組處理單元耦合,并配置為將 所述第一組處理單元輸出的所述多個(gè)頂點(diǎn)提供給所述第二組處理單元的輸入。
8. 按照權(quán)利要求7所述的系統(tǒng),其中所述鑲嵌控制著色器為所述表面面片的每一個(gè)執(zhí) 行一次,以為所述一個(gè)表面面片計(jì)算細(xì)節(jié)水平參數(shù)。
9. 按照權(quán)利要求7所述的系統(tǒng),其中所述鑲嵌評(píng)價(jià)著色器為所述多個(gè)頂點(diǎn)的每一個(gè)執(zhí) 行一次,以計(jì)算所述一個(gè)頂點(diǎn)的最終位置和屬性。
10. 按照權(quán)利要求7所述的系統(tǒng),其中所述處理單元配置成執(zhí)行所述鑲嵌控制著色器 和所述鑲嵌評(píng)價(jià)著色器來以單通道鑲嵌所述表面面片。
全文摘要
本發(fā)明公開了一種單通道鑲嵌。通過圖形處理器以單通道進(jìn)行鑲嵌的系統(tǒng)和方法將圖形處理器中的處理資源分成組以進(jìn)行不同鑲嵌操作。頂點(diǎn)數(shù)據(jù)和鑲嵌參數(shù)直接從一個(gè)處理資源發(fā)送到另一處理資源,而不是存儲(chǔ)在存儲(chǔ)器中。因此,表面面片描述提供給圖形處理器,且通過圖形處理器以不中斷的單通道完成了鑲嵌,而不將中間數(shù)據(jù)存儲(chǔ)在存儲(chǔ)器中。
文檔編號(hào)G06T15/00GK101714247SQ200910177458
公開日2010年5月26日 申請(qǐng)日期2009年9月29日 優(yōu)先權(quán)日2008年9月29日
發(fā)明者亨利·帕卡·莫爾頓, 埃米特·M.·凱高艾弗, 賈斯汀·S.·萊高凱斯 申請(qǐng)人:輝達(dá)公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
上饶市| 本溪| 信丰县| 东莞市| 嘉善县| 靖州| 仙游县| 五家渠市| 栾城县| 吴堡县| 开封市| 从化市| 兖州市| 马尔康县| 罗甸县| 阿克陶县| 隆尧县| 兴文县| 龙泉市| 环江| 宜君县| 临桂县| 屏南县| 莒南县| 贡嘎县| 关岭| 博乐市| 土默特右旗| 鸡西市| 南康市| 遵化市| 林周县| 卢氏县| 富蕴县| 洪泽县| 内黄县| 江阴市| 东乡县| 平塘县| 临颍县| 大竹县|