亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

分段線性不規(guī)則光柵化的制作方法

文檔序號(hào):11953661閱讀:313來(lái)源:國(guó)知局
分段線性不規(guī)則光柵化的制作方法與工藝

本發(fā)明的實(shí)施例一般地涉及計(jì)算機(jī)圖形處理,并且更具體地,涉及分段線性不規(guī)則光柵化。



背景技術(shù):

虛擬現(xiàn)實(shí)(VR)護(hù)目鏡是用于當(dāng)玩計(jì)算機(jī)游戲、觀看三維(3D)電影或查看其它3D媒體內(nèi)容時(shí)獲得更加沉浸式的體驗(yàn)的越來(lái)越流行的設(shè)備。VR護(hù)目鏡被佩戴在觀看者的頭部,并且阻去來(lái)自現(xiàn)實(shí)世界環(huán)境的光。VR護(hù)目鏡通常包括兩個(gè)平的顯示器屏幕,其中佩戴一個(gè)顯示器屏幕以用于由左眼查看,而佩戴另一個(gè)顯示器屏幕以用于由右眼查看。游戲內(nèi)容或其他3D媒體內(nèi)容被傳輸至兩個(gè)顯示器屏幕,使得觀看者能夠當(dāng)佩戴VR護(hù)目鏡時(shí)看到3D內(nèi)容。由于兩個(gè)顯示器屏幕被以一定距離佩戴在觀看者的眼睛前方,因此,顯示器屏幕自身無(wú)法向觀看者提供外圍內(nèi)容。換言之,觀看者看到眼睛前方的內(nèi)容,但是不能看到兩個(gè)顯示器屏幕上方、下方或兩側(cè)的內(nèi)容。

因此,VR護(hù)目鏡還包括在每個(gè)顯示器屏幕前方的非線性畸變鏡頭?;冪R頭使得靠近特定位置(諸如顯示器屏幕的中心)的內(nèi)容光學(xué)匯聚,并且使得靠近顯示器屏幕的邊緣的內(nèi)容光學(xué)發(fā)散。經(jīng)發(fā)散的內(nèi)容隨后被投影至觀看者的眼睛的外圍觀看區(qū)域上。結(jié)果,觀看者能夠看到觀看者外圍以及前方的3D內(nèi)容,這導(dǎo)致更加沉浸式的虛擬現(xiàn)實(shí)體驗(yàn)。

除了VR護(hù)目鏡以外,這些技術(shù)還被用于其他寬屏渲染應(yīng)用,諸如曲形觀看面,其包括一個(gè)或多個(gè)顯示屏幕。這種寬屏渲染應(yīng)用包括針對(duì)家用的曲形高分辨率和超高分辨率顯示器屏幕,以及針對(duì)工業(yè)應(yīng)用(諸如控制房間)的多屏幕平鋪式顯示器。在這種應(yīng)用中,觀看者所感知的相鄰像素之間的距離從顯示器屏幕的一部分至另一部分是變化的,這導(dǎo)致與當(dāng)使用VR護(hù)目鏡時(shí)所觀察到的偽影相類似的畸變偽影。

雖然非線性畸變透鏡提供將內(nèi)容投影在視角外圍的益處,但是這些畸變透鏡顯示有所不希望的副作用,即渲染在顯示器屏幕上并投影至觀看者的眼睛的對(duì)象看起來(lái)是畸變的。光學(xué)畸變的一個(gè)通常形式是插針包(pin-cushion)畸變,其中所感知的對(duì)象上的一點(diǎn)的位置相對(duì)于該點(diǎn)實(shí)際所位于的位置而言更加靠近顯示器屏幕的中心。結(jié)果,帶有直線的對(duì)象,諸如方形或矩形,當(dāng)經(jīng)由VR護(hù)目鏡觀看時(shí),看起來(lái)具有曲形邊緣。針對(duì)該現(xiàn)象,圖像處理單元(GPU)或其他處理器通常通過(guò)有意引起非線性桶形畸變來(lái)渲染意欲通過(guò)VR護(hù)目鏡查看的3D內(nèi)容,其中所感知的對(duì)象上的點(diǎn)的位置相對(duì)于該點(diǎn)實(shí)際所位于的位置而言遠(yuǎn)離顯示器屏幕的中心。所引起的桶形畸變抵消了光學(xué)插針包畸變,使得觀看者當(dāng)佩戴VR護(hù)目鏡時(shí)看到非畸變的內(nèi)容。

以上方式的一個(gè)缺陷是,靠近顯示器屏幕的中心的內(nèi)容被放大,而靠近顯示器屏幕的邊緣的內(nèi)容被壓縮。因此,在觀看者的眼睛直接前方處的內(nèi)容具有相對(duì)低的分辨率,這導(dǎo)致細(xì)節(jié)的丟失。換言之,相對(duì)于高質(zhì)量觀看體驗(yàn)所需的渲染的像素?cái)?shù)量而言,在顯示器屏幕的中心處渲染了過(guò)少的像素。細(xì)節(jié)丟失可被感知為軟的、模糊的,或塊狀不均勻的視頻。相比之下,觀看者可看到的內(nèi)容的外圍的內(nèi)容具有比高質(zhì)量觀看所需的分辨率更高的分辨率。換言之,相對(duì)于高質(zhì)量觀看體驗(yàn)所需的渲染的像素的數(shù)量而言,在顯示器屏幕的邊緣附近渲染了更多的像素,這導(dǎo)致計(jì)算資源的浪費(fèi)。

以上方式的另一個(gè)缺陷是,GPU通常被優(yōu)化,以利用線性網(wǎng)格來(lái)渲染內(nèi)容。由于光學(xué)插線包透鏡畸變是非線性的,因此,理想的情形是,GPU在渲染期間所引起的桶形畸變也應(yīng)當(dāng)是非線性的。但是,利用非線性網(wǎng)格的渲染可導(dǎo)致相對(duì)于利用線性網(wǎng)格的渲染的顯著低的GPU性能。

如前述所闡釋的,現(xiàn)有技術(shù)中所需要的是,用于針對(duì)VR護(hù)目鏡或其他寬屏渲染應(yīng)用的渲染內(nèi)容的更加有效的方式。



技術(shù)實(shí)現(xiàn)要素:

本發(fā)明的一個(gè)實(shí)施例給出了一種用于渲染計(jì)算機(jī)生成的場(chǎng)景中的幾何對(duì)象的方法。所述方法包括將與顯示器屏幕相關(guān)聯(lián)的屏幕空間劃分成多個(gè)區(qū)域。該方法還包括針對(duì)每個(gè)區(qū)域,計(jì)算水平維度中的第一抽樣因子,所述第一抽樣因子代表用于位于所述區(qū)域內(nèi)的像素的水平抽樣因子,計(jì)算垂直維度中的第二抽樣因子,所述第二抽樣因子代表用于位于所述區(qū)域內(nèi)的所述像素的垂直抽樣因子,計(jì)算所述水平維度中的第一偏移,所述第一偏移代表與所述區(qū)域相關(guān)聯(lián)的水平位置,以及計(jì)算所述垂直維度中的第二偏移,所述第二偏移代表與所述區(qū)域相關(guān)聯(lián)的垂直位置。該方法還包括確定所述幾何對(duì)象與多于一個(gè)區(qū)域相交。該方法還包括針對(duì)與所述幾何對(duì)象相交的第一區(qū)域,生成所述幾何對(duì)象的第一實(shí)例。該方法還包括針對(duì)與所述幾何對(duì)象相交的第二區(qū)域,生成所述幾何對(duì)象的第二實(shí)例。

本發(fā)明的其他實(shí)施例包括但不限于,計(jì)算機(jī)可讀介質(zhì),其包括用于執(zhí)行所公開的技術(shù)的一個(gè)或多個(gè)方面的指令,以及用于執(zhí)行所公開的技術(shù)的一個(gè)或多個(gè)方面的系統(tǒng)。

所公開的技術(shù)的一個(gè)優(yōu)勢(shì)是,位于靠近屏幕空間的邊緣處的像素被以較低的分辨率渲染,這導(dǎo)致相對(duì)于之前的寬屏幕渲染技術(shù)的改進(jìn)的性能。

附圖說(shuō)明

因此,可以詳細(xì)地理解本發(fā)明的上述特征,并且可以參考示范性實(shí)施例得到對(duì)如上面所簡(jiǎn)要概括的本發(fā)明更具體的描述,其中一些實(shí)施例在附圖中示出。然而,應(yīng)當(dāng)注意的是,附圖僅示出了本發(fā)明的典型實(shí)施例,因此不應(yīng)被認(rèn)為是對(duì)其范圍的限制,本發(fā)明可以具有其他等效的實(shí)施例。

圖1是示出了計(jì)算機(jī)系統(tǒng)的框圖,該計(jì)算機(jī)系統(tǒng)被配置為實(shí)現(xiàn)本發(fā)明的一個(gè)或多個(gè)方面;

圖2是根據(jù)本發(fā)明的一個(gè)實(shí)施例的、包括在圖1的并行處理子系統(tǒng)中的并行處理單元的框圖;

圖3A是根據(jù)本發(fā)明的一個(gè)實(shí)施例的、包括在圖2的并行處理單元中的通用處理集群的框圖;

圖3B是根據(jù)本發(fā)明的一個(gè)實(shí)施例的、可被實(shí)現(xiàn)在圖2的并行處理單元中的圖形處理管線的概念圖;

圖4是根據(jù)本發(fā)明的一個(gè)實(shí)施例的、圖3B的圖形處理管線可被配置為生成并處理的高速緩存塊的概念圖;

圖5是根據(jù)本發(fā)明的一個(gè)實(shí)施例的、圖3B的圖形處理管線的一部分的詳細(xì)的示圖;

圖6A至圖6D示出了根據(jù)本發(fā)明的各實(shí)施例的、可在分段非線性光柵化期間實(shí)現(xiàn)的示例性樣本網(wǎng)格;以及

圖7闡述了根據(jù)本發(fā)明的一個(gè)實(shí)施例的、用于執(zhí)行分段不規(guī)則渲染的方法步驟的流程圖。

具體實(shí)施方式

在下面的描述中,將闡述大量的具體細(xì)節(jié)以提供對(duì)本發(fā)明更透徹的理解。然而,本領(lǐng)域的技術(shù)人員應(yīng)該清楚,本發(fā)明可以在沒(méi)有一個(gè)或多個(gè)這些具體細(xì)節(jié)的情況下得以實(shí)施。

系統(tǒng)概述

圖1是示出了計(jì)算機(jī)系統(tǒng)100的框圖,該計(jì)算機(jī)系統(tǒng)100被配置為實(shí)現(xiàn)本發(fā)明的一個(gè)或多個(gè)方面。如所示,計(jì)算機(jī)系統(tǒng)100包括但不限于,中央處理單元(CPU)102和經(jīng)由存儲(chǔ)器橋105和通信路徑113耦合至并行處理子系統(tǒng)112的系統(tǒng)存儲(chǔ)器104。存儲(chǔ)器橋105還經(jīng)由通信路徑106被耦合至I/O(輸入/輸出)橋107,并且I/O橋107轉(zhuǎn)而耦合至交換器116。

在操作中,I/O橋107被配置為從輸入設(shè)備108(諸如鍵盤或鼠標(biāo))接收用戶輸入信息,并且經(jīng)由通信路徑106和存儲(chǔ)器橋105將輸入信息轉(zhuǎn)發(fā)給CPU 102,以用于處理。交換器116被配置為提供I/O橋107和計(jì)算機(jī)系統(tǒng)100的其他組件(諸如網(wǎng)絡(luò)適配器118以及各種插卡120和121)之間的連接。

如所示,I/O橋107被耦合至系統(tǒng)盤114,其可被配置為存儲(chǔ)內(nèi)容和應(yīng)用以及數(shù)據(jù),以用于CPU 102和并行處理子系統(tǒng)112使用。一般而言,系統(tǒng)盤114提供針對(duì)應(yīng)用和數(shù)據(jù)的非易失性存儲(chǔ),并且可包括固定的或可移動(dòng)的硬盤驅(qū)動(dòng)、閃存設(shè)備,以及CD-ROM(緊致盤只讀存儲(chǔ)器)、DVD-ROM(數(shù)字通用盤ROM)、藍(lán)光光盤、HD-DVD(高分辨率DVD)、或其他磁的、光學(xué)的、或固態(tài)存儲(chǔ)設(shè)備。最后,雖然未明確示出,但是,其他組件(諸如通用串行總線或其他端口連接,緊致盤驅(qū)動(dòng)、數(shù)字通用盤驅(qū)動(dòng)、膠片記錄設(shè)備等)也可被連接至I/O橋107。

在各種實(shí)施例中,存儲(chǔ)器橋105可以是北橋芯片,并且I/O橋107可以是南橋芯片。另外,通信路徑106和113,以及計(jì)算機(jī)系統(tǒng)100內(nèi)的其他通信路徑可利用任何技術(shù)上合適的協(xié)議來(lái)實(shí)現(xiàn),其包括但不限于,AGP(加速圖形端口)、超級(jí)傳輸,或現(xiàn)有技術(shù)中已知的任意其他總線或點(diǎn)到點(diǎn)通信協(xié)議。

在一些實(shí)施例中,并行處理子系統(tǒng)112是圖形子系統(tǒng)的一部分,其將像素傳遞至顯示設(shè)備110,該顯示設(shè)備110可以是任何慣常的陰極射線管、液晶顯示器、發(fā)光二極管顯示器等。在這種實(shí)施例中,并行處理子系統(tǒng)112合并了針對(duì)圖形和視頻處理優(yōu)化了的電路,例如其包括視頻輸出電路。如以下在圖2中更加詳細(xì)地描述的,這種電路可跨越并行處理子系統(tǒng)112內(nèi)所包括的一個(gè)或多個(gè)并行處理單元(PPU)而被合并。在其他實(shí)施例中,并行處理子系統(tǒng)112合并針對(duì)通用目的和/或計(jì)算處理所優(yōu)化了的電路。再次,這種電路可跨越并行處理子系統(tǒng)112內(nèi)所包括的一個(gè)或多個(gè)PPU而被合并,該并行處理子系統(tǒng)112被配置為執(zhí)行這種通用目的和/或計(jì)算操作。在其他實(shí)施例中,包括在并行處理子系統(tǒng)112內(nèi)的一個(gè)或多個(gè)PPU可被配置為執(zhí)行圖形處理、通用目的處理,以及計(jì)算處理操作。系統(tǒng)存儲(chǔ)器104包括至少一個(gè)設(shè)備驅(qū)動(dòng)器103,其被配置為管理并行處理子系統(tǒng)112內(nèi)的一個(gè)或多個(gè)PPU的處理操作。

在各實(shí)施例中,并行處理子系統(tǒng)112可與圖1的一個(gè)或多個(gè)其他元件集成,以形成單個(gè)系統(tǒng)。例如,并行處理子系統(tǒng)112可與CPU 102以及單個(gè)芯片上的其他連接電路集成,以形成片上系統(tǒng)(SoC)。

將理解,此處所示出的系統(tǒng)是示例性的,并且變化和修改是可能的。連接拓?fù)?其包括橋的數(shù)量和布置,CPU 102的數(shù)量,以及并行處理子系統(tǒng)112的數(shù)量)可按照所希望的修改。例如,在一些實(shí)施例中,系統(tǒng)存儲(chǔ)器104可直接連接至CPU 102,而非通過(guò)存儲(chǔ)器橋105,而其他設(shè)備將經(jīng)由存儲(chǔ)器橋105和CPU 102與系統(tǒng)存儲(chǔ)器104通信。在其他可替換的拓?fù)渲?,并行處理子系統(tǒng)112連接至I/O橋107或直接連接至CPU 102,而非連接至存儲(chǔ)器橋105。在其他實(shí)施例中,I/O橋107和存儲(chǔ)器橋105可被集成在單個(gè)芯片上,而非作為一個(gè)或多個(gè)分立的設(shè)備存在。最后,在一些實(shí)施例中,圖1中所示的一個(gè)或多個(gè)組件可不存在。例如,可去除交換器116,并且,網(wǎng)絡(luò)適配器118和插卡120、121將直接連接至I/O橋107。

圖2是根據(jù)本發(fā)明的一個(gè)實(shí)施例的、包括在圖1的并行處理子系統(tǒng)112中的并行處理單元(PPU)202的框圖。雖然圖2描繪了一個(gè)PPU 202,如以上所指示的,但是,并行處理子系統(tǒng)112可包括任意數(shù)量的PPU 202。如所示,PPU 202被耦合至本地并行處理(PP)存儲(chǔ)器204。PPU 202和PP存儲(chǔ)器204可以利用一個(gè)或多個(gè)集成電路設(shè)備實(shí)現(xiàn),諸如可編程處理器,專用集成電路(ASIC),或存儲(chǔ)設(shè)備,或以任何其他技術(shù)上可行的方式。

在一些實(shí)施例中,PPU 202包括圖形處理單元(GPU),其可被配置為實(shí)現(xiàn)圖形渲染管線,該圖形渲染管線基于CPU 102和/或系統(tǒng)存儲(chǔ)器104所提供的圖形數(shù)據(jù)來(lái)執(zhí)行各種與生成像素?cái)?shù)據(jù)相關(guān)的操作。當(dāng)處理圖形數(shù)據(jù)時(shí),PP存儲(chǔ)器204可被用作圖形存儲(chǔ)器,其存儲(chǔ)一個(gè)或多個(gè)慣常的幀緩沖器,并且如果需要的話,還存儲(chǔ)一個(gè)或多個(gè)其他渲染目標(biāo)。此外,PP存儲(chǔ)器204可被用于存儲(chǔ)并更新像素?cái)?shù)據(jù),并且將最終的像素?cái)?shù)據(jù)或顯示幀傳遞給顯示設(shè)備110以用于顯示。在一些實(shí)施例中,PPU 202還可被配置用于通用處理和計(jì)算操作。

在操作中,CPU 102是計(jì)算機(jī)系統(tǒng)100的主處理器,其控制并協(xié)調(diào)其他系統(tǒng)組件的操作。具體地,CPU 102發(fā)布命令,其控制PPU 202的操作。在一些實(shí)施例中,CPU 102將PPU 202的命令流寫入到數(shù)據(jù)結(jié)構(gòu)(未在圖1或圖2中明確示出)中,該數(shù)據(jù)結(jié)構(gòu)可位于系統(tǒng)存儲(chǔ)器104、PP存儲(chǔ)器204,或CPU 102和PPU 202二者均可訪問(wèn)的另一存儲(chǔ)位置中。指向數(shù)據(jù)結(jié)構(gòu)的指針被寫入到推緩沖器(pushbuffer)中,以發(fā)起對(duì)數(shù)據(jù)結(jié)構(gòu)中的命令流的處理。PPU 202從推緩沖器中讀取命令流,并且隨后相對(duì)于CPU 102的操作異步地執(zhí)行命令。在生成多個(gè)推緩沖器的實(shí)施例中,通過(guò)應(yīng)用程序經(jīng)由設(shè)備驅(qū)動(dòng)器103可針對(duì)每個(gè)推緩沖器指定執(zhí)行優(yōu)先級(jí),以控制對(duì)不同推緩沖器的調(diào)度。

同樣如所示,PPU 202包括I/O(輸入/輸出)單元205,其經(jīng)由通信路徑113和存儲(chǔ)器橋105與計(jì)算機(jī)系統(tǒng)100的其余部分進(jìn)行通信。I/O單元205生成數(shù)據(jù)包(或其他信號(hào))以用于在通信路徑113上傳輸,并且還從通信路徑113上接收所有進(jìn)來(lái)的數(shù)據(jù)包,將進(jìn)來(lái)的數(shù)據(jù)包指引到PPU 202的合適的組件。例如,與處理任務(wù)相關(guān)的命令可被指引至主機(jī)接口206,而與存儲(chǔ)器操作相關(guān)的命令(例如,從PP存儲(chǔ)器204讀取或?qū)懭氲絇P存儲(chǔ)器204)可被指引到交叉開關(guān)單元210。主機(jī)接口206讀取每個(gè)推緩沖器,并且將存儲(chǔ)在推緩沖器中的命令流發(fā)送至前端212。

如上述與圖1一起的,PPU 202至計(jì)算機(jī)系統(tǒng)100的其余部分的連接可以變化。在一些實(shí)施例中,包括至少一個(gè)PPU 202的并行處理子系統(tǒng)112被實(shí)現(xiàn)為插卡,其可被插入到計(jì)算機(jī)系統(tǒng)100的擴(kuò)展槽中。在其他實(shí)施例中,PPU 202可通過(guò)總線橋被集成在單個(gè)芯片上,諸如存儲(chǔ)器橋105后I/O橋107。再次,在又其他實(shí)施例中,PPU 202的一些或全部元件可與CPU 102一起被包括在單個(gè)集成電路或片上系統(tǒng)(SoC)中。

在操作中,前端212將從主機(jī)接口206接收的處理任務(wù)發(fā)送至任務(wù)/工作單元207內(nèi)的工作分配單元(未示出)。工作分配單元接收指向處理任務(wù)的指針,其被編碼為任務(wù)元數(shù)據(jù)(TMD)并存儲(chǔ)在存儲(chǔ)器中。指向TMD的指針被包括在命令流中,該命令流被存儲(chǔ)為推緩沖器并從主機(jī)接口206由前端單元212接收??杀痪幋a為TMD的處理任務(wù)包括與將要處理的數(shù)據(jù)相關(guān)聯(lián)的索引以及定義了將如何處理數(shù)據(jù)的狀態(tài)參數(shù)和命令。例如,狀態(tài)參數(shù)和命令可定義將對(duì)數(shù)據(jù)執(zhí)行的程序。任務(wù)/工作單元207從前端212接收任務(wù),并且確保在每個(gè)TMD所指定的處理任務(wù)被發(fā)起之前GPC 208被配置到有效的狀態(tài)??舍槍?duì)每個(gè)TMD指定優(yōu)先級(jí),其被用于調(diào)度對(duì)處理任務(wù)的執(zhí)行。處理任務(wù)還可被從處理集群陣列230接收。可選地,TMD可包括參數(shù),其控制TMD是被添加至處理任務(wù)列表的頭部還是尾部(或添加至執(zhí)行處理任務(wù)的指針列表中),從而提供對(duì)執(zhí)行優(yōu)先級(jí)的另一級(jí)別的控制。

有優(yōu)勢(shì)地,PPU 202基于處理集群陣列230實(shí)現(xiàn)極其并行處理的體系架構(gòu),該處理集群陣列230包括C個(gè)通用處理集群(GPC)208的集合,其中C≥1。每個(gè)GPC 208能夠并發(fā)地執(zhí)行大量(例如,成百或上千)的線程,其中每個(gè)線程是程序的實(shí)例。在各種應(yīng)用中,不同的GPC 208可被分配,以用于處理不同類型的程序或用于執(zhí)行不同類型的計(jì)算。取決于針對(duì)每個(gè)類型的程序或計(jì)算所引發(fā)的工作負(fù)荷,GPC 208的分配可以變化。

存儲(chǔ)器接口214包括D個(gè)分區(qū)單元215的集合,其中D≥1。每個(gè)分區(qū)單元215被耦合至貯存在PPM存儲(chǔ)器204內(nèi)的一個(gè)或多個(gè)動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)。在一個(gè)實(shí)施例中,分區(qū)單元215的數(shù)量等于DRAM 220的數(shù)量,并且每個(gè)分區(qū)單元215被耦合至不同的DRAM 220。在其他實(shí)施例中,分區(qū)單元215的數(shù)量可以不同于DRAM 220的數(shù)量。本領(lǐng)域技術(shù)人員將理解,可用任意其他技術(shù)上合適的存儲(chǔ)設(shè)備來(lái)替代DRAM 220。在操作中,各種渲染目標(biāo)(諸如紋理圖和幀緩沖器)可跨越DRAM 220被存儲(chǔ),這允許分區(qū)單元215并行地寫入每個(gè)渲染目標(biāo)的部分,以高效地利用PP存儲(chǔ)器204的可用帶寬。

給定的GPC 208可處理將寫入至PP存儲(chǔ)器204內(nèi)的任意DRAM 220的數(shù)據(jù)。交叉開關(guān)單元210被配置為將每個(gè)GPC 208的輸出路由至任意分區(qū)單元215的輸入或任意其他GPC 208,以用于進(jìn)一步的處理。GPC 208經(jīng)由交叉開關(guān)單元210與存儲(chǔ)器接口214進(jìn)行通信,以從各種DRAM 220讀取或?qū)懭胫粮鞣NDRAM 220。在一個(gè)實(shí)施例中,除了經(jīng)由存儲(chǔ)器接口214至PP存儲(chǔ)器204的連接之外,交叉開關(guān)單元210具有至I/O單元205的連接,從而使得不同GPC 208內(nèi)的處理核能夠與系統(tǒng)存儲(chǔ)器104或其他非本地于PPU 202的存儲(chǔ)器進(jìn)行通信。在圖2的實(shí)施例中,交叉開關(guān)單元210直接連接至I/O單元205。在各種實(shí)施例中,交叉開關(guān)單元210可使用虛擬通道來(lái)分離GPC 208和分區(qū)單元215之間的交通流。

再次,GPC 208可被編程,以執(zhí)行與廣泛的各種引用相關(guān)的處理任務(wù),其包括但不限于,線性和非線性數(shù)據(jù)轉(zhuǎn)換,對(duì)視頻和/或音頻數(shù)據(jù)的濾波,建模操作(例如,應(yīng)用物理規(guī)律來(lái)確定對(duì)象的位置、速度或其他屬性),圖像渲染操作(例如,細(xì)分著色器,頂點(diǎn)著色器,幾何著色器,和/或像素/分段著色器程序),一般的計(jì)算操作等。在操作中,PPU 202被配置為將數(shù)據(jù)從系統(tǒng)存儲(chǔ)器104和/或PP存儲(chǔ)器204傳輸至一個(gè)或多個(gè)片上存儲(chǔ)器單元,處理該數(shù)據(jù),并且將結(jié)果數(shù)據(jù)寫回至系統(tǒng)存儲(chǔ)器104和/或PP存儲(chǔ)器204。結(jié)果數(shù)據(jù)可隨后被其他系統(tǒng)組件訪問(wèn),其包括CPU 102,并行處理子系統(tǒng)112內(nèi)的另一PPU 202,或計(jì)算機(jī)系統(tǒng)100內(nèi)的另一并行處理子系統(tǒng)112。

如以上所示,任意數(shù)量的PPU 202可被包括在并行處理子系統(tǒng)112中。例如,多個(gè)PPU 202可被設(shè)置在單個(gè)插卡上,或多個(gè)插卡可被連接至通信路徑113,或一個(gè)或多個(gè)PPU 202可被集成到橋芯片中。多PPU系統(tǒng)內(nèi)的PPU 202可以彼此相同或不同。例如,不同的PPU 202可具有不同數(shù)量的處理核以及/或不同量的PP存儲(chǔ)器204。在出現(xiàn)多個(gè)PPU 202的實(shí)現(xiàn)中,那些PPU可被并行操作,從而以比通過(guò)單個(gè)PPU202所可能的吞吐量更高的吞吐量來(lái)處理數(shù)據(jù)。合并了一個(gè)或多個(gè)PPU 202的系統(tǒng)可以以各種配置和形式因素來(lái)實(shí)現(xiàn),其包括但不限于,臺(tái)式計(jì)算機(jī),膝上型計(jì)算機(jī),手持個(gè)人計(jì)算機(jī)或其他手持設(shè)備,服務(wù)器,工作站,游戲機(jī),嵌入式系統(tǒng)等。

圖3A是根據(jù)本發(fā)明的一個(gè)實(shí)施例的、包括在圖2的PPU 202中的GPC 208的框圖。在操作中,GPC 208可被配置為并行執(zhí)行大量的線程,以執(zhí)行圖形、通用處理和/或計(jì)算操作。如此處所使用的,“線程”指在特定的一組輸入數(shù)據(jù)上執(zhí)行的特定程序的實(shí)例。在一些實(shí)現(xiàn)中,單指令多數(shù)據(jù)(SIMD)指令發(fā)布技術(shù)被用于支持對(duì)大量線程的并行執(zhí)行,而無(wú)需提供多個(gè)獨(dú)立的指令單元。在其他實(shí)施例中,單指令多線程(SIMT)技術(shù)被用于支持對(duì)大量一般同步的線程的并行執(zhí)行,其利用被配置為向GPC 208內(nèi)的一組處理引擎發(fā)布指令的公共指令單元。不同于所有的處理引擎通常執(zhí)行相同的指令的SIMD執(zhí)行制度,SIMT執(zhí)行允許不同的線程更容易地通過(guò)給定程序來(lái)跟隨分散執(zhí)行路徑。本領(lǐng)域技術(shù)人員將理解,SIMD處理制度代表SIMT處理機(jī)制的功能子集。

經(jīng)由管線管理器305來(lái)控制GPC 208的操作,其將從任務(wù)/工作單元207內(nèi)的工作分布單元(未示出)接收的處理任務(wù)分布到一個(gè)或多個(gè)流多處理器(SM)310。管線管理器305還可被配置為通過(guò)為由SM 310所輸出的處理數(shù)據(jù)指定目的地來(lái)控制工作分布交叉開關(guān)330。

在一個(gè)實(shí)施例中,GPC 208包括M個(gè)SM 310的集合,其中M≥1。每個(gè)SM 310還包括一組功能執(zhí)行單元(未示出),諸如執(zhí)行單元和加載-存儲(chǔ)單元。特定于任意功能執(zhí)行單元的處理操作可被管線化,其使得在先前的指令完成執(zhí)行之前新的指令能夠被發(fā)布以用于執(zhí)行。可提供給定SM 310內(nèi)的功能執(zhí)行單元的任意組合。在各種實(shí)施例中,功能執(zhí)行單元可被配置為支持各種不同的操作,其包括整數(shù)和浮點(diǎn)算數(shù)(例如,加法和乘法)、比較操作、布爾操作(AND,OR,XOR)、移位,以及各種代數(shù)函數(shù)的計(jì)算(例如,平面插值和三角函數(shù)、指數(shù)和對(duì)數(shù)函數(shù)等)。有優(yōu)勢(shì)地,相同的功能執(zhí)行單元可被配置為執(zhí)行不同的操作。

在操作中,每個(gè)SM 310被配置為處理一個(gè)或多個(gè)線程組。如此處所使用的,“線程組”或“線程束(warp)”指對(duì)不同的輸入數(shù)據(jù)并發(fā)執(zhí)行相同程序的一組線程,該組的一個(gè)線程被指派到SM 310內(nèi)的不同的執(zhí)行單元。線程組可包括比SM 310內(nèi)的執(zhí)行單元的數(shù)量更少的線程,在這種情形中,當(dāng)該線程組正被處理時(shí),一些執(zhí)行單元可在周期期間內(nèi)是空閑的。線程組也可以包括比SM 310內(nèi)的執(zhí)行單元的數(shù)量更多的線程,在這種情形中,處理可跨連續(xù)的時(shí)鐘周期發(fā)生。由于每個(gè)SM 310可并發(fā)支持多達(dá)G個(gè)線程組,結(jié)果是在任意給定時(shí)間在GPC 208中可執(zhí)行多達(dá)G*M個(gè)線程組。

另外,多個(gè)相關(guān)的線程組可在SM310內(nèi)同時(shí)處于活動(dòng)狀態(tài)(在執(zhí)行的不同階段)。該線程組的集合在本文中被稱為“協(xié)作線程陣列”(“CTA”)或“線程陣列”。特定CTA的大小等于m*k,其中k是線程組中并發(fā)執(zhí)行線程的數(shù)量,其通常是SM 310內(nèi)的執(zhí)行單元數(shù)量的整數(shù)倍,并且m是SM 310內(nèi)同時(shí)活動(dòng)的線程組的數(shù)量。

雖然在圖3A中未被示出,但是,每個(gè)SM 310包括一級(jí)(L1)高速緩存或使用SM 310外部的對(duì)應(yīng)的L1高速緩存中的空間,以另外支持由執(zhí)行單元執(zhí)行的加載和存儲(chǔ)操作。每個(gè)SM 310還有權(quán)訪問(wèn)二級(jí)(L2)高速緩存(未示出),其在PPU 202內(nèi)的所有GPC 208之間被共享。L2高速緩存可被用于在線程之間傳輸數(shù)據(jù)。最后,SM 310還有權(quán)訪問(wèn)片外“全局”存儲(chǔ)器,其可包括PP存儲(chǔ)器204和/或系統(tǒng)存儲(chǔ)器104。將理解,任意在PPU202外部的存儲(chǔ)器可被用作全局存儲(chǔ)器。另外,如圖3A中所示,一點(diǎn)五級(jí)(L1.5)高速緩存335可被包括在GPC 208內(nèi),并且被配置為接收并保持經(jīng)由存儲(chǔ)器接口214由SM 310從存儲(chǔ)器請(qǐng)求的數(shù)據(jù)。這種數(shù)據(jù)可包括但不限于,指令、統(tǒng)一(uniform)數(shù)據(jù)和恒定數(shù)據(jù)。在GPC 208內(nèi)具有多個(gè)SM 310的實(shí)施例中,SM 310可有益地共享高速緩存在L1.5高速緩存335中的公共指令和數(shù)據(jù)。

每個(gè)GPC 208可具有相關(guān)聯(lián)的存儲(chǔ)器管理單元(MMU)320,其被配置為將虛擬地址映射到物理地址。在各種實(shí)施例中,MMU 320可駐于GPC208內(nèi)或存儲(chǔ)器接口214內(nèi)。MMU 320包括一組頁(yè)表?xiàng)l目(PTE),其被用于將虛擬地址映射到塊(tile)或存儲(chǔ)器頁(yè)的物理地址并且可選地映射到高速緩存行索引。MMU 320可包括地址轉(zhuǎn)換后備緩沖器(TLB)或高速緩存器,其可駐于SM 310內(nèi)、一個(gè)或多個(gè)L1高速緩存內(nèi)、或GPC 208內(nèi)。

在圖形和計(jì)算應(yīng)用中,GPC 208可被配置,使得每個(gè)SM 310被耦合至紋理單元315,以用于執(zhí)行紋理映射操作,諸如確定紋理樣本位置,讀取紋理數(shù)據(jù),以及濾波紋理數(shù)據(jù)。

在操作中,每個(gè)SM 310將經(jīng)處理的任務(wù)發(fā)送至工作分布交叉開關(guān)330,以便將經(jīng)處理的任務(wù)提供給另一GPC 208,以用于進(jìn)一步的處理,或者經(jīng)由交叉開關(guān)單元210將經(jīng)處理的任務(wù)存儲(chǔ)在L2高速緩存(未示出)、并行處理存儲(chǔ)器204、或系統(tǒng)存儲(chǔ)器104中。另外,預(yù)光柵操作(preROP)單元325被配置為從SM 310接收數(shù)據(jù)、將數(shù)據(jù)指引至分區(qū)單元215內(nèi)的一個(gè)或多個(gè)光柵操作(ROP)單元、針對(duì)顏色混合執(zhí)行優(yōu)化、組織像素顏色數(shù)據(jù)以及執(zhí)行地址轉(zhuǎn)譯。

將理解,此處所描述的核體系架構(gòu)是示例性的,并且變化和修改是可能的。另外,任意數(shù)量的處理單元,諸如SM 310、紋理單元315,或preROP單元325可被包括在GPC 208內(nèi)。另外,如以上與圖2一起描述的,PPU 202可包括任意數(shù)量的GPC 208,其被配置為功能上彼此類似,使得執(zhí)行行為并不取決于哪個(gè)GPC 208接收了特定的處理任務(wù)。另外,每個(gè)GPC 208獨(dú)立于PPU 202中的其他GPC 208操作,以針對(duì)一個(gè)或多個(gè)應(yīng)用程序來(lái)執(zhí)行任務(wù)。鑒于上述,本領(lǐng)域技術(shù)人員將理解,圖1至圖3A中所描述的體系架構(gòu)絕對(duì)沒(méi)有限制本發(fā)明的范圍。

圖形管線體系架構(gòu)

圖3B是根據(jù)本發(fā)明的一個(gè)實(shí)施例的、可被實(shí)現(xiàn)在圖2的并行處理單元中的圖形處理管線350的概念圖。如所示,圖形處理管線350包括但不限于,基元分布器(PD)355;頂點(diǎn)屬性取回單元(VAF)360;頂點(diǎn)細(xì)分幾何處理單元(VTG)365;視口縮放、剔除和裁剪單元(VPC)370;分塊單元(tiling unit)375,設(shè)置單元(設(shè)置)380,光柵化器(光柵)385;片段處理單元,其也被認(rèn)為是像素著色單元(PS)390,以及光柵操作單元(ROP)395。

PD 355收集來(lái)自前端212的與高階表面、圖形基元等相關(guān)聯(lián)的頂點(diǎn)數(shù)據(jù),并且將該頂點(diǎn)數(shù)據(jù)發(fā)送至VAF 360。

VAF 360從共享存儲(chǔ)器取回與進(jìn)來(lái)的頂點(diǎn)中的每一個(gè)相關(guān)聯(lián)的頂點(diǎn)屬性,并且將頂點(diǎn)數(shù)據(jù)與相關(guān)聯(lián)的頂點(diǎn)屬性一起存儲(chǔ)至共享存儲(chǔ)器。

VTG 365是可編程的執(zhí)行單元,其被配置為執(zhí)行頂點(diǎn)著色程序、細(xì)分程序以及幾何程序。這些程序處理從VAF 360接收的頂點(diǎn)數(shù)據(jù)和頂點(diǎn)屬性,并且產(chǎn)生圖形基元、以及顏色值、表面法向量,以及針對(duì)圖形基元的每個(gè)頂點(diǎn)處的透明度值,以用于圖形處理管線350內(nèi)的進(jìn)一步處理。雖然未明確示出,但是,在一些實(shí)施例中,VTG 365可包括一個(gè)或多個(gè)頂點(diǎn)處理單元、細(xì)分初始化處理單元、任務(wù)生成單元、任務(wù)分布器、拓?fù)渖蓡卧?、?xì)分處理單元,以及幾何處理單元。

頂點(diǎn)處理單元是可編程的執(zhí)行單元,其可被配置為執(zhí)行頂點(diǎn)著色程序,按照頂點(diǎn)著色程序所指定的來(lái)亮化并變換頂點(diǎn)數(shù)據(jù)。例如,頂點(diǎn)處理單元可被編程以將頂點(diǎn)數(shù)據(jù)從基于對(duì)象的坐標(biāo)表示(對(duì)象空間)變換到可替換地基于諸如世界空間或歸一化設(shè)備坐標(biāo)(NDC)空間的坐標(biāo)系。頂點(diǎn)處理單元可讀取由VAF存儲(chǔ)在共享存儲(chǔ)器中的頂點(diǎn)數(shù)據(jù)和頂點(diǎn)屬性,并且處理頂點(diǎn)數(shù)據(jù)和頂點(diǎn)屬性。頂點(diǎn)處理單元415將經(jīng)處理的頂點(diǎn)存儲(chǔ)在共享存儲(chǔ)器中。

細(xì)分初始化處理單元是可編程的執(zhí)行單元,其被配置為執(zhí)行細(xì)分初始化著色程序。細(xì)分初始化處理單元處理由頂點(diǎn)處理單元所產(chǎn)生的頂點(diǎn),并且生成被稱作補(bǔ)丁(patch)的圖形基元。細(xì)分初始化處理單元還生成各種補(bǔ)丁屬性。細(xì)分初始化處理單元隨后將補(bǔ)丁數(shù)據(jù)和補(bǔ)丁屬性存儲(chǔ)在共享存儲(chǔ)器中。在一些實(shí)施例中,細(xì)分初始化著色程序可被稱為外殼著色器或細(xì)分控制著色器。

任務(wù)生成單元從共享存儲(chǔ)器取回針對(duì)頂點(diǎn)和補(bǔ)丁的數(shù)據(jù)和屬性。任務(wù)生成單元生成任務(wù),以用于處理頂點(diǎn)和補(bǔ)丁,其用于由圖形處理管線350中的后續(xù)級(jí)處理。

任務(wù)分布器重新分布由任務(wù)生成單元所產(chǎn)生的任務(wù)。由頂點(diǎn)著色程序和細(xì)分初始化程序的各種實(shí)例所產(chǎn)生的任務(wù)可在一個(gè)圖形處理管線350和另一個(gè)之間顯著不同。任務(wù)分布器重新分布這些任務(wù),使得每個(gè)圖形處理管線350在后續(xù)管線階段期間具有大致相同的工作負(fù)荷。

拓?fù)渖蓡卧』赜扇蝿?wù)分布器所分布的任務(wù)。拓?fù)渖蓡卧獙㈨旤c(diǎn)進(jìn)行索引,其包括與補(bǔ)丁相關(guān)聯(lián)的頂點(diǎn),并且針對(duì)細(xì)分頂點(diǎn)計(jì)算(U,V)坐標(biāo)以及索引,其連接經(jīng)細(xì)分的頂點(diǎn)以形成圖形基元。拓?fù)渖蓡卧S后將經(jīng)索引的頂點(diǎn)存儲(chǔ)在共享存儲(chǔ)器中。

細(xì)分處理單元是可編程執(zhí)行單元,其被配置為執(zhí)行細(xì)分著色程序。細(xì)分處理單元從共享存儲(chǔ)器讀取輸入數(shù)據(jù)并將輸出數(shù)據(jù)寫入到共享存儲(chǔ)器。該共享存儲(chǔ)器中的輸出數(shù)據(jù)被傳遞至下一著色級(jí),幾何處理單元445,以作為輸入數(shù)據(jù)。在一些實(shí)施例中,細(xì)分著色程序可被稱為域著色器或細(xì)分評(píng)估著色器。

幾何處理單元是可編程執(zhí)行單元,其被配置為執(zhí)行幾何著色程序,從而變換圖形基元。頂點(diǎn)被分組,以構(gòu)建用于處理的圖形基元,其中圖形基元包括三角、線段、點(diǎn)等。例如,幾何處理單元可被編程以將圖形基元再分成一個(gè)或多個(gè)新的圖形基元,并且計(jì)算參數(shù),諸如平面方程系數(shù),其被用于將新的圖形基元光柵化。

幾何處理單元將指定了新的圖形基元的參數(shù)和頂點(diǎn)發(fā)送至VPC 370。幾何處單元可讀取存儲(chǔ)在共享存儲(chǔ)器中的數(shù)據(jù),用于在處理幾何數(shù)據(jù)中使用。VPC 370執(zhí)行裁剪、剔除、透視校正,以及視口變換,以確定哪些圖形基元在最終渲染的圖像中是潛在可視的,以及哪些圖形基元是不潛在可視的。VPC 370隨后將經(jīng)處理的圖形基元發(fā)送至分塊單元375。

分塊單元375是圖形基元分類引擎,其駐于世界空間管線352和屏幕空間管線354之間,如本文進(jìn)一步所描述的。圖形基元在世界空間管線352中被處理,并且隨后被發(fā)送至分塊單元375。屏幕空間被分割成高速緩存塊,其中每個(gè)高速緩存塊與屏幕空間的一部分相關(guān)聯(lián)。針對(duì)每個(gè)圖形基元,分塊單元375識(shí)別一組高速緩存塊,其與圖形基元相交,此處這種處理被稱為“分塊”。在分塊若干數(shù)量的圖形基元之后,分塊單元375基于高速緩存塊來(lái)處理圖形基元,其中與特定高速緩存塊相關(guān)聯(lián)的圖形基元被發(fā)送至設(shè)置單元380。分塊單元375一次一個(gè)高速緩存塊地將圖形基元發(fā)送至設(shè)置單元380。與多個(gè)高速緩存塊相交的圖形基元通常被在世界空間管線352中一次處理,但是隨后經(jīng)多次被發(fā)送至屏幕空間管線354。

這種技術(shù)提升了屏幕空間管線354中的處理期間的高速緩存存儲(chǔ)器的本地性,其中與第一高速緩存塊相關(guān)聯(lián)的多個(gè)存儲(chǔ)器操作訪問(wèn)L2高速緩存的區(qū)域,或任意其他技術(shù)上可行的高速緩存存儲(chǔ)器,其可在對(duì)第一高速緩存塊的屏幕空間處理期間保持駐留。一旦與第一高速緩存塊相關(guān)聯(lián)的圖形基元被屏幕空間管線354處理,與第一高速緩存塊相關(guān)聯(lián)的L2高速緩存的部分可被清除,并且分塊單元可發(fā)送與第二高速緩存塊相關(guān)聯(lián)的圖形基元。與第二高速緩存塊相關(guān)聯(lián)的多個(gè)存儲(chǔ)器操作可隨后訪問(wèn)L2高速緩存的區(qū)域,其可在對(duì)第二高速緩存塊的屏幕空間處理期間保持駐留。因此,可減少到L2高速緩存和到渲染目標(biāo)的整個(gè)存儲(chǔ)器流量。在一些實(shí)施例中,針對(duì)給定的圖形基元,世界空間計(jì)算被執(zhí)行一次,而不管與圖形基元相交的屏幕空間中的高速緩存塊的數(shù)量。

設(shè)置單元380經(jīng)由分塊單元375從VPC 370接收頂點(diǎn)數(shù)據(jù),并且計(jì)算與圖形基元相關(guān)聯(lián)的參數(shù),其包括但不限于,邊緣方程、部分平面方程、以及深度平面方程。設(shè)置單元380隨后將經(jīng)處理的圖形基元發(fā)送至光柵化器385。

光柵化器385掃描轉(zhuǎn)換新的圖形基元并將片段和覆蓋數(shù)據(jù)發(fā)送至像素著色單元390。另外,光柵化器385可被配置為執(zhí)行z剔除和其他基于z的優(yōu)化。

像素著色單元390是可編程執(zhí)行單元,其被配置為執(zhí)行片段著色程序,按照片段著色程序所指定的將從光柵化器385接收的片段進(jìn)行變換。片段著色程序可以在像素級(jí)別粒度著色片段,其中這種著色程序可被稱為像素著色程序??商鎿Q地,片段著色程序可以樣本級(jí)別粒度著色片段,其中每個(gè)像素包括多個(gè)樣本,并且,每個(gè)樣本代表像素的一部分??商鎿Q地,片段著色程序可以任意其他技術(shù)上可行的粒度著色片段,這取決于經(jīng)編程的采樣率。

在各種實(shí)施例中,片段處理單元460可被編程為執(zhí)行諸如透視校正、紋理映射、著色、混合等之類的操作,以產(chǎn)生被發(fā)送至ROP 395的經(jīng)著色的片段。像素著色單元390可讀取被存儲(chǔ)在共享存儲(chǔ)器中的數(shù)據(jù)。

ROP 395是執(zhí)行光柵操作的處理單元,諸如模具(stencil)、z測(cè)試,混合等,并且將像素?cái)?shù)據(jù)作為經(jīng)處理的圖形數(shù)據(jù)進(jìn)行傳輸,以用于經(jīng)由存儲(chǔ)器接口214存儲(chǔ)在圖形存儲(chǔ)器中,其中圖形存儲(chǔ)器通常被結(jié)構(gòu)化,以作為一個(gè)或多個(gè)渲染目標(biāo)。經(jīng)處理的圖形數(shù)據(jù)可被存儲(chǔ)在圖形存儲(chǔ)器、并行處理存儲(chǔ)器204、或系統(tǒng)存儲(chǔ)器104中,以用于在顯示設(shè)備110上顯示或用于CPU 102或并行處理子系統(tǒng)112的進(jìn)一步處理。在一些實(shí)施例中,ROP 395被配置為壓縮被寫入到存儲(chǔ)器中的z或顏色數(shù)據(jù),并且解壓縮從存儲(chǔ)器讀取的z或顏色數(shù)據(jù)。在各種實(shí)施例中,ROP 395可位于GPC 208的存儲(chǔ)器接口214中、GPC外部的處理集群陣列230中、或PPU 202的單獨(dú)單元(未示出)中。

圖形處理管線可由PPU 202內(nèi)的任意一個(gè)或多個(gè)處理元件實(shí)現(xiàn)。例如,圖3A的SM 310中的一個(gè)可被配置為執(zhí)行VTG 365和像素著色單元390中的一個(gè)或多個(gè)的功能。PD 355、VAF 360、VPC 450、分塊單元375、設(shè)置單元380、光柵化器385、以及ROP 395的功能也可由特定GPC 208內(nèi)的處理元件結(jié)合對(duì)應(yīng)的分區(qū)單元215執(zhí)行。可替換地,圖形處理管線350可針對(duì)一個(gè)或多個(gè)以上列出的功能,利用專用固定功能處理元件來(lái)實(shí)現(xiàn)。在各種實(shí)施例中,PPU 202可被配置為實(shí)現(xiàn)一個(gè)或多個(gè)圖形處理管線350。

在一些實(shí)施例中,圖形處理管線350可被分成世界空間352和屏幕空間管線354。世界空間管線352處理3D空間中的幾何對(duì)象,其中每個(gè)幾何對(duì)象的位置相對(duì)于其他幾何對(duì)象并相對(duì)于3D坐標(biāo)系統(tǒng)是已知的。屏幕空間管線354處理已經(jīng)從3D坐標(biāo)系統(tǒng)投影至表示顯示設(shè)備110的表面的2D平面表面的幾何對(duì)象。例如,世界空間管線352可包括圖形處理管線350中從PD 355至VPC 370的管線級(jí)。屏幕空間管線354可包括圖形處理管線350中從設(shè)置單元380至ROP 395的管線級(jí)。分塊單元375將追隨世界空間管線352的最后級(jí),即,VPC 370。分塊單元375將在屏幕空間管線354的第一級(jí)即設(shè)置單元380之前。

在一些實(shí)施例中,世界空間管線352可進(jìn)一步被分成阿爾法(alpha)階段管線和貝塔(beta)階段管線。例如,阿爾法階段管線可包括圖形處理管線350從PD 355至任務(wù)生成單元的管線階段。貝塔階段管線可包括圖形處理管線350從拓?fù)渖蓡卧罺PC 370的管線階段。圖形處理管線350在阿爾法階段管線處理期間執(zhí)行第一組操作,并且在貝塔階段管線處理期間執(zhí)行第二組操作。如本文所使用的,一組操作被定義為由單個(gè)線程、線程組、或同時(shí)動(dòng)作的多個(gè)線程組執(zhí)行的一個(gè)或多個(gè)指令。

在具有多個(gè)圖形處理管線350的系統(tǒng)中,與一組幾何對(duì)象相關(guān)聯(lián)的頂點(diǎn)數(shù)據(jù)和頂點(diǎn)屬性可被分割,使得每個(gè)圖形處理管線350具有通過(guò)阿爾法階段大致相同量的工作負(fù)荷。阿爾法階段處理可顯著地?cái)U(kuò)張頂點(diǎn)數(shù)據(jù)和頂點(diǎn)屬性的量,使得由任務(wù)生成單元所產(chǎn)生的頂點(diǎn)數(shù)據(jù)和頂點(diǎn)屬性的量顯著大于由PD 355和VAF 360所處理的頂點(diǎn)數(shù)據(jù)和頂點(diǎn)屬性的量。另外,與一個(gè)圖形處理管線350相關(guān)聯(lián)的任務(wù)生成單元可產(chǎn)生比與另一圖形處理管線350相關(guān)聯(lián)的任務(wù)生成單元產(chǎn)生顯著多的頂點(diǎn)數(shù)據(jù)和頂點(diǎn)屬性量,即使兩個(gè)圖形處理管線350在阿爾法階段管線的開始處處理相同量的屬性的情形中也是如此。在這種情形中,任務(wù)分布器重新分布由阿爾法階段管線所產(chǎn)生的屬性,使得每個(gè)圖形處理管線350在貝塔階段管線的開始處具有大致相同的工作負(fù)荷。

請(qǐng)注意,如本文所使用的,對(duì)共享存儲(chǔ)器的參考可包括任意一個(gè)或多個(gè)技術(shù)上可行的存儲(chǔ)器,其包括但不限于,由一個(gè)或多個(gè)SM 310所共享的本地存儲(chǔ)器,或經(jīng)由存儲(chǔ)器接口214可訪問(wèn)的存儲(chǔ)器,諸如,高速緩存存儲(chǔ)器、并行處理存儲(chǔ)器204、或系統(tǒng)存儲(chǔ)器104。還請(qǐng)注意,如本文所使用的,對(duì)高速緩存存儲(chǔ)器的參考可包括任意一個(gè)或多個(gè)技術(shù)上可行的存儲(chǔ)器,其包括但不限于,L1高速緩存、L1.5高速緩存以及L2高速緩存。

分塊高速緩存

圖4是根據(jù)本發(fā)明的一個(gè)實(shí)施例的、圖3B的圖形處理管線350可被配置為生成并處理的高速緩存塊410(0)的概念圖。如所示,高速緩存塊410(0)代表屏幕空間400的一部分,并且被分割成多個(gè)光柵塊420。

屏幕空間400代表一個(gè)或多個(gè)存儲(chǔ)器緩沖器,其被配置為存儲(chǔ)經(jīng)渲染的圖像數(shù)據(jù)以及由圖形處理管線350內(nèi)的功能單元所傳輸?shù)钠渌麛?shù)據(jù)。在一些實(shí)施例中,一個(gè)或多個(gè)存儲(chǔ)器緩沖器可被配置為一個(gè)或多個(gè)渲染目標(biāo)。屏幕空間代表存儲(chǔ)器緩沖器,其被配置為存儲(chǔ)由圖形處理管線所渲染的圖像。屏幕空間400可與任意數(shù)量的渲染目標(biāo)相關(guān)聯(lián),其中每個(gè)渲染目標(biāo)可獨(dú)立于其他渲染目標(biāo)而被配置,以包括任意數(shù)量的字段。渲染目標(biāo)內(nèi)的每個(gè)字段可獨(dú)立于其他字段被配置,以包括任意數(shù)量的位。每個(gè)渲染目標(biāo)可包括多個(gè)圖片元素(像素),并且每個(gè)像素可依次包括多個(gè)樣本。在一些實(shí)施例中,每個(gè)高速緩存塊的大小可基于與屏幕空間相關(guān)聯(lián)的渲染目標(biāo)的大小和配置。在操作中,一旦渲染完成,則一個(gè)或多個(gè)渲染目標(biāo)中的像素可被傳輸至顯示設(shè)備,以便顯示經(jīng)渲染的圖像。

通過(guò)示例,針對(duì)屏幕空間400的一組渲染目標(biāo)可包括八個(gè)渲染目標(biāo)。第一渲染目標(biāo)可包括四個(gè)字段,其代表顏色(包括紅色,綠色和藍(lán)色組分顏色)和與對(duì)應(yīng)的片段相關(guān)聯(lián)的透明度信息。第二渲染目標(biāo)可包括兩個(gè)字段,其代表與對(duì)應(yīng)的片段相關(guān)聯(lián)的深度和模具信息。第三渲染目標(biāo)可包括三個(gè)字段,其代表表面法向量信息,其包括與對(duì)應(yīng)的片段相關(guān)聯(lián)的x軸法向量,y軸法向量和z軸法向量。剩余五個(gè)渲染目標(biāo)可被配置為存儲(chǔ)與對(duì)應(yīng)的片段相關(guān)聯(lián)的額外信息。這種配置可包括用于各種信息(其包括但不限于,3D位置數(shù)據(jù),漫反射光照信息,以及鏡面反射光照信息)的存儲(chǔ)。

每個(gè)高速緩存塊410代表屏幕空間400的一部分。為了清楚,圖4中僅示出了五個(gè)高速緩存塊410(0)-410(4)。在一些實(shí)施例中,高速緩存塊在X和Y屏幕空間中可具有任意大小。例如,如果高速緩存塊駐于高速緩存存儲(chǔ)器(其還被用于存儲(chǔ)其他數(shù)據(jù))中,則高速緩存塊可被調(diào)整大小至僅消耗高速緩存存儲(chǔ)器的特定部分。高速緩存塊的大小可以基于若干因素,其包括與屏幕空間400相關(guān)聯(lián)的渲染目標(biāo)的數(shù)量和配置,每個(gè)像素的樣本量,以及存儲(chǔ)在高速緩存塊中的數(shù)據(jù)是否被壓縮。一般而言,高速緩存塊被調(diào)整大小以增加高速緩存塊數(shù)據(jù)保持駐于高速緩存存儲(chǔ)器中的可能性,直到與高速緩存塊相關(guān)聯(lián)的所有圖形基元被完全壓縮為止。

光柵塊420代表高速緩存塊410(0)的一部分。如所示,高速緩存塊410(0)包括十六個(gè)光柵塊420(0)-420(15),其以四個(gè)光柵塊420寬并且四個(gè)光柵塊420高的陣列布置。在包括多個(gè)GPC 208的系統(tǒng)中,與給定高速緩存塊410(0)相關(guān)聯(lián)的處理可在可用的GPC 208之間被劃分。在所示的示例中,如果高速緩存塊410(0)的十六個(gè)光柵塊由四個(gè)不同的GPC 208處理,則每個(gè)GPC 208可被指派,以處理高速緩存塊410(0)中的十六個(gè)光柵塊420中的四個(gè)。具體地,第一GPC 208可被指派以處理光柵塊420(0)、420(7)、420(10)和420(13)。第二GPC 208可被指派以處理光柵塊420(1)、420(4)、420(11)和420(14)。第三GPC 208可被指派以處理光柵塊420(2)、420(5)、420(8)和420(15)。第四GPC 208可隨后被指派以處理光柵塊420(3)、420(6)、420(9)和420(12)。在其他實(shí)施例中,對(duì)給定高速緩存塊內(nèi)的不同光柵塊的處理可在GPC 208中被分配,或者以任何技術(shù)上可行的方式在計(jì)算機(jī)系統(tǒng)100內(nèi)所包括的任意其他處理實(shí)體中被分配。

分段線性不規(guī)則光柵化

圖形處理管線350可被配置為執(zhí)行分段線性不規(guī)則光柵化,其中這種分段線性不規(guī)則光柵化近似于逆轉(zhuǎn)VR護(hù)目鏡畸變透鏡的影響或其他寬屏渲染技術(shù)的偽影所需的理想的非線性光柵化。現(xiàn)描述該分段線性不規(guī)則光柵化技術(shù)。

圖5是根據(jù)本發(fā)明的一個(gè)實(shí)施例的、圖3B的圖形處理管線350的一部分500的詳細(xì)的示圖。如所示,所示出的部分500包括但不限于,頂點(diǎn)處理單元510,幾何處理單元520;視口縮放、剔除和裁剪單元(VPC)370;分塊單元375,設(shè)置單元(設(shè)置)380,光柵化器385;片段處理單元,其還被識(shí)別為像素著色單元390,以及光柵操作單元(ROP)395。圖5中所示的元件大體上與圖3B中所描述的元件功能相同,除了以下進(jìn)一步描述的以外。

頂點(diǎn)處理單元510從VAF 360接收頂點(diǎn)數(shù)據(jù)和頂點(diǎn)屬性,并且處理接收到的頂點(diǎn)數(shù)據(jù)和頂點(diǎn)屬性。頂點(diǎn)處理單元510將場(chǎng)景劃分成多個(gè)區(qū)域,其中每個(gè)區(qū)域具有不同的x,y抽樣因子以及不同的x,y偏移,其中,x代表與顯示器屏幕相關(guān)聯(lián)的屏幕空間的水平維度,而y代表與顯示器屏幕相關(guān)聯(lián)的屏幕空間的垂直維度。在一些實(shí)施例中,x和y可代表屏幕空間的任意兩個(gè)維度,其中,x維度與y維度形成直角。區(qū)域的x、y抽樣因子分別確定在水平維度和垂直維度上拉伸每個(gè)像素的量。x、y偏移分別確定在屏幕空間中在水平和垂直維度中在何處定位該區(qū)域。一般而言,距離屏幕空間上的特定位置的水平距離越大的區(qū)域具有更高的x抽樣因子,這導(dǎo)致相對(duì)于包括特定位置的區(qū)域而言增大的像素寬度。距離屏幕空間上的特定位置的垂直距離越大的區(qū)域具有更高的y抽樣因子,這導(dǎo)致相對(duì)于包括特定位置的區(qū)域而言增大的像素高度。距離屏幕空間上的特定位置的水平距離和垂直距離越大的區(qū)域具有更高的x抽樣因子和更高的y抽樣因子,這導(dǎo)致相對(duì)于包括特定位置的區(qū)域而言增大的像素寬度和高度。

在一些實(shí)施例中,特定位置可以是與顯示器屏幕相關(guān)聯(lián)的屏幕空間的中心。在其他實(shí)施例中,特定位置可以是屏幕空間上與對(duì)應(yīng)的畸變透鏡的中心直接一致的位置。該位置可以位于屏幕空間的中心,或可以不位于屏幕空間的中心。在另外其他實(shí)施例中,特定位置可以是屏幕上的任意位置。在這些之后的實(shí)施例中,特定位置可以是與凹渲染(foveated rendering)相關(guān)的定點(diǎn)。通過(guò)凹渲染,可建立定點(diǎn),其中定點(diǎn)可由指針設(shè)備指定,其包括但不限于,計(jì)算機(jī)鼠標(biāo)或數(shù)字筆設(shè)備??商鎿Q地,定點(diǎn)可經(jīng)由遵循凹位置的眼睛追蹤設(shè)備確定,即,觀看者的眼睛的視網(wǎng)膜中心。在這些實(shí)施例中,x抽樣因子和y抽樣因子可基于距離定點(diǎn)的特定區(qū)域的水平距離和垂直距離。

在一些實(shí)施例中,x抽樣因子和y抽樣因子可以分別是x和y縮放因子,其可指定與特定區(qū)域相交的對(duì)應(yīng)幾何對(duì)象和頂點(diǎn)的縮放量。一般而言,新的頂點(diǎn)位置(x’,y’)可以指定為x’=f(x,y,z,w),而y’=f(x,y,z,w),這指示新的頂點(diǎn)位置是當(dāng)前的頂點(diǎn)位置的同類坐標(biāo)x,y,z和w的函數(shù)??梢岳猛愖鴺?biāo)x,y,z和w的任意線性函數(shù),拼接其在將頂點(diǎn)縮放至新的頂點(diǎn)位置之后,與幾何對(duì)象的當(dāng)前頂點(diǎn)相關(guān)聯(lián)的線仍舊是線。在一個(gè)示例中,新的頂點(diǎn)位置可以被指定為x’=A*x,而y’=B*y,其中,x和y指定當(dāng)前的頂點(diǎn)位置,x’和y’指定新的頂點(diǎn)位置,并且A和B分別是水平縮放因子和垂直縮放因子。

在一些實(shí)施例中,可在已經(jīng)裁剪了幾何對(duì)象之后來(lái)應(yīng)用x、y抽樣因子和x、y偏移。在其他實(shí)施例中,可在幾何對(duì)象被裁剪之前應(yīng)用x、y抽樣因子和x、y偏移。類似地,在一些實(shí)施例中,x、y抽樣因子和x、y偏移可在通過(guò)將坐標(biāo)除以“w”來(lái)歸一化同類坐標(biāo)x、y、z和w之后被應(yīng)用。在其他實(shí)施例中,x、y抽樣因子和x、y偏移可在通過(guò)將坐標(biāo)除以“w”來(lái)歸一化同類坐標(biāo)x、y、z和w之前被應(yīng)用。

在一些實(shí)施例中,針對(duì)特定列的所有區(qū)域,x抽樣因子可以是相同的,并且針對(duì)特定行的所有區(qū)域,y抽樣因子可以是相同的。在這種實(shí)施例中,頂點(diǎn)可在一個(gè)區(qū)域和相鄰區(qū)域之間被對(duì)齊。結(jié)果,與多個(gè)區(qū)域相交的幾何對(duì)象可被渲染,而不存在區(qū)域邊界處的不連續(xù)或接縫。在其他實(shí)施例中,x抽樣因子可在一個(gè)區(qū)域和垂直的相鄰區(qū)域之間不同,或者y抽樣因子可在一個(gè)區(qū)域和水平相鄰的區(qū)域之間不同。在這種實(shí)施例中,頂點(diǎn)可能在一個(gè)區(qū)域和相鄰區(qū)域之間不對(duì)齊。結(jié)果,與多個(gè)區(qū)域相交的幾何對(duì)象可被渲染,其帶有區(qū)域邊界處的不連續(xù)、接縫、或其他偽影。在這些實(shí)施例中,可在這種區(qū)域邊界處應(yīng)用插值和濾波,以減少或消除這種偽影。頂點(diǎn)處理單元510針對(duì)每個(gè)接收到的頂點(diǎn)產(chǎn)生x、y屬性,并且將x、y屬性傳輸給幾何處理單元520。

幾何處理單元520從頂點(diǎn)處理單元510接收經(jīng)處理的頂點(diǎn)。在一些實(shí)施例中,幾何處理單元520可經(jīng)由視口多播來(lái)傳輸經(jīng)復(fù)制的幾何對(duì)象。在這種實(shí)施例中,幾何處理單元520可一次性繪出幾何對(duì)象并且將幾何對(duì)象的實(shí)例發(fā)送至多個(gè)視口,其中每個(gè)視口具有給定的x、y抽樣因子和x、y偏移以及剪刀框(scissor box),其可定義針對(duì)特定視口用以繪制的屏幕空間的部分。場(chǎng)景可被劃分成多個(gè)視口,其中每個(gè)視口對(duì)應(yīng)于屏幕空間的不同區(qū)域,如本文所描述的。當(dāng)幾何處理單元520接收幾何對(duì)象時(shí),幾何處理單元520可生成相交掩碼(intersection mask),其導(dǎo)致幾何對(duì)象僅被發(fā)送至對(duì)應(yīng)于與幾何對(duì)象相交的區(qū)域的視口??商鎿Q地,幾何處理單元520可將幾何對(duì)象發(fā)送至所有視口,而無(wú)需生成相交掩碼,并且每個(gè)視口可基于幾何對(duì)象是否與屏幕空間中的對(duì)應(yīng)區(qū)域相交來(lái)確定是否繪制幾何對(duì)象。

VPC 370針對(duì)每個(gè)視口從幾何處理單元520接收經(jīng)處理的頂點(diǎn)和剪刀框。VPC 370還可從幾何處理單元520接收相交掩碼。如果VPC 370從幾何處理單元520接收相交掩碼,則VPC 370針對(duì)每個(gè)相交的視口,生成輸出頂點(diǎn)和對(duì)應(yīng)的剪刀框,如由相交掩碼所確定的。如果VPC 370沒(méi)有從幾何處理單元520接收到相交掩碼,則VPC 370針對(duì)每個(gè)視口生成輸出頂點(diǎn)和對(duì)應(yīng)的剪刀框。在一些實(shí)施例中,VPC 370確定哪些區(qū)域與各幾何對(duì)象相交,而非幾何處理單元520確定。

分塊單元375從VPC 370接收頂點(diǎn)和剪刀框,并且將頂點(diǎn)和剪刀框發(fā)送至一個(gè)或多個(gè)設(shè)置單元380,如本文將進(jìn)一步描述的。

設(shè)置單元(設(shè)置)380從分塊單元375接收頂點(diǎn)和對(duì)應(yīng)的剪刀框。設(shè)置單元380將剪刀框應(yīng)用到頂點(diǎn),以確定對(duì)應(yīng)于當(dāng)前的頂點(diǎn)的幾何對(duì)象的全部與對(duì)應(yīng)于剪刀框的視口相交、還是部分與對(duì)應(yīng)于剪刀框的視口相交、還有沒(méi)有與對(duì)應(yīng)于剪刀框的視口相交。設(shè)置單元380計(jì)算線性平面方程和線性屬性邊緣方程,并將其發(fā)送至光柵化器385。

光柵化器385、像素著色單元390,以及ROP 395執(zhí)行其標(biāo)準(zhǔn)的功能,而沒(méi)有特別在意分段線性不規(guī)則光柵化。因?yàn)槠聊豢臻g的每個(gè)區(qū)域包括對(duì)齊至規(guī)則線性網(wǎng)格的頂點(diǎn),因此,光柵化器385、像素著色單元390以及ROP 395正確并高效地對(duì)進(jìn)來(lái)的頂點(diǎn)和像素進(jìn)行光柵化和著色,而無(wú)需修改這些處理元件的功能。為了高效,這些處理元件依賴于線性網(wǎng)格空間。由于設(shè)置單元380生成的平面方程和邊緣方程是線性的,因此,光柵化器385、像素著色單元390以及ROP 395保持高效的處理。例如,光柵化器385可利用線性邊緣方程來(lái)執(zhí)行操作。一個(gè)或多個(gè)光柵化器385、像素著色單元390以及ROP 395可基于線性平面方程來(lái)訪問(wèn)共享存儲(chǔ)器中的屬性。

如以上所描述的,帶有不同的x,y抽樣因子和x,y偏移的屏幕空間中的每個(gè)區(qū)域與不同的視口相關(guān)聯(lián)。因此,屏幕空間中的每個(gè)區(qū)域?qū)?yīng)于不同的視口。例如,在包括16個(gè)視口的系統(tǒng)中,屏幕空間可被以不超過(guò)16個(gè)區(qū)域的任何方式劃分。因此,屏幕空間可被劃分成2行8列,3行5列,4行4列的區(qū)域。在一些實(shí)施例中,視口可被分離成分離的x視口和y視口,諸如16個(gè)x視口16個(gè)y視口。在這種實(shí)施例中,屏幕空間中的每個(gè)區(qū)域可與兩個(gè)視口——x視口和y視口相關(guān)聯(lián)。例如,帶有16個(gè)x視口16個(gè)y視口的系統(tǒng)將總共具有256個(gè)視口。在其他實(shí)施例中,可利用高速緩存塊而非視口來(lái)定義區(qū)域。在這種實(shí)施例中,屏幕空間中的每個(gè)區(qū)域可與不同的高速緩存塊相關(guān)聯(lián),其中,每個(gè)高速緩存塊代表屏幕空間中的不同的64像素乘64像素區(qū)域,并且,每個(gè)高速緩存塊具有給定的x,y抽樣因子和x,y偏移。在另外其他實(shí)施例中,可利用粗光柵塊或細(xì)光柵塊而非視口來(lái)定義區(qū)域。在這種實(shí)施例中,屏幕空間中的每個(gè)區(qū)域可與不同的粗光柵塊相關(guān)聯(lián),其中每個(gè)高速緩存塊代表屏幕空間中的不同的16像素乘16像素的區(qū)域,并且,每個(gè)光柵塊具有給定的x,y抽樣因子和x,y偏移。可替換地,屏幕空間中的每個(gè)區(qū)域可與不同的粗光柵塊相關(guān)聯(lián),其中每個(gè)高速緩存塊代表屏幕空間中的不同的8個(gè)樣本乘8個(gè)樣本的區(qū)域。通過(guò)利用高速緩存塊或光柵塊而非視口,可定義屏幕空間中更多的區(qū)域。結(jié)果,與視口方式相比,利用高速緩存塊或光柵塊的分段線性不規(guī)則光柵化可更加接近地近似理想的非線性光柵化網(wǎng)格。

在一些實(shí)施例中,圖形處理管線350中的元件可在訪問(wèn)一些屬性之前將分段線性不規(guī)則平面方程逆轉(zhuǎn)回規(guī)則方網(wǎng)格。例如,紋理存儲(chǔ)器中的紋理可被映射至方像素。訪問(wèn)紋理存儲(chǔ)器的元件將把分段線性不規(guī)則平面方程逆轉(zhuǎn)回規(guī)則方網(wǎng)格。元件將基于經(jīng)逆轉(zhuǎn)的平面方程,利用頂點(diǎn)位置來(lái)訪問(wèn)紋理存儲(chǔ)器,以便取回正確的紋元。

圖6A至圖6D示出了根據(jù)本發(fā)明的各實(shí)施例的、可在分段非線性光柵化期間實(shí)現(xiàn)的示例性樣本網(wǎng)格。

如圖6A所示,樣本網(wǎng)格包括九個(gè)區(qū)域610(0)-610(8),其被布置為三行乘三列??拷聊豢臻g的中心的區(qū)域610(4)包括相對(duì)精細(xì)的分辨率的方像素。位于距離中心區(qū)域610(4)水平距離的區(qū)域610(3)和610(5)包括相對(duì)于中心區(qū)域610(4)更大的水平間隔的像素。位于距離中心區(qū)域610(4)垂直距離的區(qū)域610(1)和610(7)包括相對(duì)于中心區(qū)域610(4)更大的垂直間隔的像素。位于距離中心區(qū)域610(4)水平距離和垂直距離的區(qū)域610(0)、610(2)、610(6)和610(8)包括相對(duì)于中心區(qū)域610(4)更大的水平間隔和更大的垂直間隔的像素。如所示,相同列中的區(qū)域都具有相同的水平分辨率,并且相同行中的區(qū)域都具有相同的垂直分辨率。

如圖6B中所示,三角620將要被渲染到由區(qū)域610(0)-610(8)所表示的屏幕空間上。三角620與四個(gè)區(qū)域610(4)、610(6)、610(7)和610(8)相交。當(dāng)被渲染到分段線性不規(guī)則網(wǎng)格上時(shí),三角620表現(xiàn)為三角630,其示出相鄰區(qū)域之間的邊界處的不連續(xù)。但是,當(dāng)被投影到VR護(hù)目鏡上時(shí),三角630所示出的畸變和VR護(hù)目鏡中的透鏡的光學(xué)畸變彼此抵消,并且觀看者看到近似于三角620的三角。

如圖6C中所示,樣本網(wǎng)格包括六個(gè)區(qū)域640(0)-640(5),其布置為兩行乘三列。區(qū)域640(4)包括相對(duì)精細(xì)的分辨率的5行乘8列方像素。位于距離中心區(qū)域640(4)水平距離的區(qū)域640(3)和640(5)包括相對(duì)于區(qū)域640(4)更大的水平間隔的像素。位于距離中心區(qū)域610(4)垂直距離的區(qū)域640(1)包括相對(duì)于區(qū)域640(4)更大的垂直間隔的像素。位于距離區(qū)域640(4)水平距離和垂直距離的區(qū)域640(0)和640(2)包括相對(duì)于區(qū)域640(4)更大的水平間隔和垂直間隔的像素。如所示,640(0)和640(2)相對(duì)于緊接相鄰的區(qū)域具有不同的水平分辨率和垂直分辨率。因此,駐于區(qū)域640(0)和640(2)中的一者或二者中的幾何對(duì)象以及相鄰區(qū)域很有可能顯示不連續(xù)、接縫,或其他偽影。因此,這種幾何對(duì)象應(yīng)當(dāng)在區(qū)域邊界處被插值和濾波,以降低這種偽影的影響。

如圖6D中所示,樣本網(wǎng)格包括六個(gè)區(qū)域650(0)-650(5),其被布置為兩行乘三列。區(qū)域650(1)、650(3)、650(4)和650(5)包括8行乘8列的方像素。區(qū)域650(0)和650(2)包括6行乘6列的方像素。區(qū)域650(0)和650(2)包括6行乘6列的方像素。六個(gè)區(qū)域650(0)-650(5)的所有區(qū)域具有相同的水平分辨率和垂直分辨率。

圖7闡述了根據(jù)本發(fā)明的一個(gè)實(shí)施例的、用于執(zhí)行分段不規(guī)則渲染的方法步驟的流程圖。雖然與圖1至圖6D的系統(tǒng)一起來(lái)描述方法步驟,但是,本領(lǐng)域技術(shù)人員將理解,任意被配置為以任意次序執(zhí)行方法步驟的系統(tǒng)在本公開的范圍內(nèi)。

如所示,方法開始于步驟702,其中頂點(diǎn)處理單元510計(jì)算x,y屬性,其包括針對(duì)每個(gè)接收到的頂點(diǎn)的x,y抽樣因子和x,y偏移。經(jīng)計(jì)算的x,y抽樣因子和x,y偏移將接收到的頂點(diǎn)以及與頂點(diǎn)相對(duì)應(yīng)的幾何對(duì)象布置到屏幕空間的合適區(qū)域。屏幕空間的每個(gè)區(qū)域與特定的x和y抽樣因子相關(guān)聯(lián),x和y抽樣因子分別定義了區(qū)域的水平分辨率和垂直分辨率。類似地,屏幕空間的每個(gè)區(qū)域與特定的x和y偏移相關(guān)聯(lián),x和y偏移分別定義了區(qū)域的水平位置和垂直位置。一般而言,不同的區(qū)域具有不同的x,y抽樣因子和x,y偏移,使得像素的分辨率可因區(qū)域而不同。在針對(duì)VR護(hù)目鏡進(jìn)行渲染的情形中,靠近屏幕空間的所指定的位置的區(qū)域具有相對(duì)精細(xì)的分辨率,以便當(dāng)靠近所指定的位置的區(qū)域被畸變透鏡放大時(shí),提供足夠的分辨率。水平距離屏幕的所指定的位置的區(qū)域隨著距離屏幕的所指定的位置的水平距離的增大,具有對(duì)應(yīng)的更加粗的分辨率。類似地,垂直距離屏幕的所指定的位置的區(qū)域隨著距離屏幕的所指定的位置的垂直距離的增大,具有對(duì)應(yīng)的更加粗的分辨率。更一般地,每個(gè)區(qū)域可被獨(dú)立地調(diào)整大小、縮放和偏移。結(jié)果,經(jīng)由所公開的技術(shù),對(duì)區(qū)域的各種配置是可能的。

在步驟704處,幾何處理單元520包括針對(duì)每個(gè)頂點(diǎn)計(jì)算視口相交掩碼。視口相交掩碼包括針對(duì)每個(gè)區(qū)域的指示符,其中當(dāng)特定的幾何對(duì)象與區(qū)域相交時(shí),針對(duì)特定區(qū)域的指示符被設(shè)置為真,而當(dāng)特定的幾何對(duì)象未與區(qū)域相交時(shí),其被設(shè)置為假。在步驟706處,VPC 370針對(duì)每個(gè)相關(guān)的視口執(zhí)行裁剪操作。在一些實(shí)施例中,相關(guān)的視口是與對(duì)應(yīng)于特定頂點(diǎn)的幾何對(duì)象相交的視口。在這些實(shí)施例中,VPC 370掃描掩碼,并且針對(duì)每個(gè)區(qū)域生成幾何對(duì)象的實(shí)例,其中視口相交掩碼中的對(duì)應(yīng)的指示符被設(shè)置為真。在其他實(shí)施例中,每個(gè)視口被看作是相關(guān)的視口。在這些之后的實(shí)施例中,幾何處理單元520可能不生成視口相交掩碼。在這種實(shí)施例中,VPC 370可向每個(gè)視口廣播幾何對(duì)象的實(shí)例。設(shè)置單元380可隨后裁剪或丟棄三角,因?yàn)槟切┮暱谖磁c該三角相交。這些之后的實(shí)施例并未利用幾何處理單元520,因此提升了圖形處理管線350的效率和性能。針對(duì)未與幾何對(duì)象相交的區(qū)域生成幾何對(duì)象的實(shí)例可能稍稍減低處于幾何處理單元520的下游的圖形處理管線350級(jí)的效率。但是,這些效率上的降低可能抵消由于不利用幾何處理單元520來(lái)生成視口相交掩碼所提升的效率。

在步驟708處,VPC 370針對(duì)每個(gè)相關(guān)的視口復(fù)制幾何對(duì)象。如以上所描述的,VPC 370可僅針對(duì)與幾何對(duì)象相交的視口來(lái)生成幾何對(duì)象的實(shí)例,在此處這種視口是相關(guān)視口??商鎿Q地,VPC 370可生成幾何對(duì)象的實(shí)例,并且針對(duì)每個(gè)視口廣播實(shí)例,在此處所有視口被看作是相關(guān)視口。

在步驟710處,VPC 370將抽樣因子和偏移應(yīng)用到頂點(diǎn),從而針對(duì)每個(gè)對(duì)應(yīng)的視口調(diào)整頂點(diǎn)位置。在步驟712處,VPC 370用對(duì)應(yīng)的相關(guān)視口來(lái)標(biāo)記每個(gè)經(jīng)復(fù)制的幾何對(duì)象。該標(biāo)記標(biāo)識(shí)帶有相關(guān)聯(lián)的區(qū)域的幾何對(duì)象的每個(gè)實(shí)例,使得圖形處理管線350的下游級(jí)恰當(dāng)?shù)鼗谠搮^(qū)域的對(duì)應(yīng)的x,y抽樣因子和x,y偏移來(lái)正確地渲染幾何對(duì)象的每個(gè)實(shí)例。在步驟714處,設(shè)置單元380針對(duì)經(jīng)標(biāo)識(shí)的視口應(yīng)用剪刀框。應(yīng)用剪刀框?qū)е聝H與特定視口相交的幾何對(duì)象的部分被在該視口渲染。在步驟716處,光柵化器385、像素著色單元390以及ROP單元395執(zhí)行其正常的功能。如本文進(jìn)一步所描述的,所公開的技術(shù)提供針對(duì)每個(gè)視口的線性平面方程和邊緣方程。只要平面方程和邊緣方程保持線性,光柵化器385、像素著色單元390以及ROP單元395無(wú)需任何特定的編程或功能變更,以針對(duì)各種視口正確地渲染幾何對(duì)象的實(shí)例。隨后方法700終止。

總之,利用分段不規(guī)則光柵化對(duì)3D計(jì)算機(jī)幾何對(duì)象進(jìn)行渲染用于寬屏應(yīng)用(諸如VR護(hù)目鏡)。顯示器屏幕的屏幕空間被劃分成多個(gè)區(qū)域,其中每個(gè)區(qū)域與特定的x,y抽樣因子和x,y偏移相關(guān)聯(lián)。覆蓋一個(gè)或多個(gè)屏幕空間區(qū)域的像素的幾何對(duì)象根據(jù)針對(duì)該特定區(qū)域的x,y抽樣因子和x,y偏移被渲染,該特定區(qū)域與幾何對(duì)象相交。例如,覆蓋三個(gè)屏幕空間區(qū)域的幾何對(duì)象可以以第一區(qū)域中的一個(gè)x,y抽樣因子和x,y偏移被渲染,以第二區(qū)域中的另一x,y抽樣因子和x,y偏移被渲染,以及以第三區(qū)域中的又一x,y抽樣因子和x,y偏移被渲染。針對(duì)寬屏幕渲染,位于靠近屏幕空間的所指定位置的區(qū)域可具有相對(duì)小的方像素。針對(duì)位于遠(yuǎn)離所指定的位置的區(qū)域,其中高分辨率通常不是必須的,隨著距離所指定的位置的水平距離的增大,x抽樣因子可增大,并且隨著距離所指定的位置的垂直距離的增大,y抽樣因子可增大。

所公開的方式的至少一個(gè)優(yōu)勢(shì)是,位于靠近屏幕空間的邊緣處的像素被以較低的分辨率渲染,這導(dǎo)致相對(duì)于之前的寬屏幕渲染技術(shù)的提升的性能。所公開的技術(shù)的另一優(yōu)勢(shì)是,位于靠近屏幕空間的所指定的位置處的像素被以相對(duì)于之前技術(shù)的較高的分辨率渲染,這導(dǎo)致相對(duì)于之前的寬屏幕渲染技術(shù)的、靠近屏幕空間的所指定位置處的提升的視頻質(zhì)量。

出于闡釋目的,已經(jīng)呈現(xiàn)了對(duì)各實(shí)施例的描述,但是,并不意欲窮盡式的或限制于所公開的實(shí)施例。許多修改和變化對(duì)于本領(lǐng)域技術(shù)人員而言是顯然的,而未偏離所描述的實(shí)施例的范圍和精神。

本實(shí)施例的各方面可具體化為系統(tǒng)、方法或計(jì)算機(jī)程序產(chǎn)品。相應(yīng)地,本公開的方面可以采用完全硬件實(shí)施例的方式,完全軟件實(shí)施例(包括固件、常駐軟件,微代碼等)的方式,或本文可一般均被稱為“電路”、“模塊”或“系統(tǒng)”的組合了軟件和硬件方面的實(shí)施例的方式。另外,本公開的方面可采用計(jì)算機(jī)程序產(chǎn)品的形式,其具體化在一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì)中,所述一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì)具有具體化在其上的計(jì)算機(jī)可讀程序代碼。

可利用一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì)的任意組合。計(jì)算機(jī)可讀介質(zhì)可以是計(jì)算機(jī)可讀信號(hào)介質(zhì)或計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)例如可以是但不限于,電子的、磁的、光學(xué)的、電磁的、紅外的、或半導(dǎo)體系統(tǒng)、裝置、或設(shè)備,或前述的任意合適的組合。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)的更加具體的示例(非窮盡式的列表)將包括以下:具有一個(gè)或多個(gè)電線的電連接,便攜式計(jì)算機(jī)軟磁盤,硬盤,隨機(jī)存取存儲(chǔ)器(RAM),只讀存儲(chǔ)器(ROM),可擦寫可編程只讀存儲(chǔ)器(EPROM或閃存),光纖,便攜式緊致盤只讀存儲(chǔ)器(CD-ROM),光存儲(chǔ)設(shè)備,磁存儲(chǔ)設(shè)備,或前述任意合適的組合。在本文檔的上下文中,計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可以是任意可包含或存儲(chǔ)程序的有形介質(zhì),以用于指令執(zhí)行系統(tǒng)、裝置或設(shè)備的使用或與之相連接。

通過(guò)參照根據(jù)本公開的實(shí)施例的方法、裝置(系統(tǒng))和計(jì)算機(jī)程序產(chǎn)品的流程圖闡釋和/或框圖,以上描述了本公開的方面。將理解,流程圖闡釋和/或框圖的每個(gè)框,以及流程圖闡釋和/或框圖中的框的組合可由計(jì)算機(jī)程序指令實(shí)現(xiàn)。這些計(jì)算機(jī)程序指令可被提供給通用目的計(jì)算機(jī)、專用計(jì)算機(jī)或其他可編程數(shù)據(jù)處理裝置的處理器,以產(chǎn)生機(jī)器,使得經(jīng)由計(jì)算機(jī)或其他可編程數(shù)據(jù)處理裝置的處理器執(zhí)行的指令使得能夠?qū)崿F(xiàn)流程圖和/或框圖框中所指定的功能/動(dòng)作。這種處理器可以是但不限于,通用處理器,專用處理器,特定于應(yīng)用的處理器,或現(xiàn)場(chǎng)可編程處理器。

示圖中的流程圖和框圖闡釋了根據(jù)本公開的各實(shí)施例的系統(tǒng)、方法和計(jì)算機(jī)程序產(chǎn)品的可能實(shí)現(xiàn)的體系架構(gòu)、功能和操作。在這方面,流程圖或框圖中的每個(gè)框可代表模塊、片段、或代碼的一部分,其包括用于實(shí)現(xiàn)一個(gè)或多個(gè)具體邏輯功能的一個(gè)或多個(gè)可執(zhí)行指令。應(yīng)當(dāng)理解,在一些可替換的實(shí)現(xiàn)中,框中所顯示的功能可以以示圖中所示的次序以外的次序發(fā)生。例如,示出為連續(xù)的兩個(gè)框事實(shí)上可以被大體上并行地執(zhí)行,或者有時(shí),框可以以相反的次序執(zhí)行,這取決于所涉及的功能。還將注意到,框圖和/或流程圖闡釋,以及框圖和/或流程圖闡釋中的框的組合可由執(zhí)行所指定的功能或動(dòng)作的基于專用硬件的系統(tǒng)執(zhí)行,或由專用硬件和計(jì)算機(jī)指令的組合來(lái)執(zhí)行。

雖然前述涉及本公開的實(shí)施例,但是,可構(gòu)想本公開的其他和另外的實(shí)施例,而不偏離其基本范圍,并且該范圍由以下的權(quán)利要求所確定。

當(dāng)前第1頁(yè)1 2 3 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1