TW201810179A - 用於虛擬實境和多視角系統之交錯光柵化和像素著色的架構 - Google Patents

用於虛擬實境和多視角系統之交錯光柵化和像素著色的架構 Download PDF

Info

Publication number
TW201810179A
TW201810179A TW106116491A TW106116491A TW201810179A TW 201810179 A TW201810179 A TW 201810179A TW 106116491 A TW106116491 A TW 106116491A TW 106116491 A TW106116491 A TW 106116491A TW 201810179 A TW201810179 A TW 201810179A
Authority
TW
Taiwan
Prior art keywords
pixel
logic
primitives
area
primitive
Prior art date
Application number
TW106116491A
Other languages
English (en)
Other versions
TWI733808B (zh
Inventor
拉赫 薩西
Original Assignee
英特爾股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 英特爾股份有限公司 filed Critical 英特爾股份有限公司
Publication of TW201810179A publication Critical patent/TW201810179A/zh
Application granted granted Critical
Publication of TWI733808B publication Critical patent/TWI733808B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management

Abstract

一個實施例提供一種圖形處理設備,包含:第一邏輯,用以將與多個交錯基元相關聯的像素區域光柵化;第二邏輯,用以對藉由該多個交錯基元中之一或多者所覆蓋的像素區域著色;第三邏輯,用以將該第二邏輯對於該多個交錯基元之輸出交錯成單一渲染目標,該單一渲染目標包括與該多個交錯基元相關聯的輸出。

Description

用於虛擬實境和多視角系統之交錯光柵化和像素著色的架構
實施例大致關於圖形處理邏輯。更具體言之,實施例有關用於虛擬實境及/或多視角系統之交錯光柵化及像素著色。
光柵化是一種處理,藉其可將三維(3D)多邊形之場景渲染(rendered)於二維(2D)表面上。光柵化處理可被執行於數個階段,包括轉換階段、剪裁(clipping)階段、及掃描變換階段。轉換階段將3D多邊形頂點轉換成在2D平面上之頂點。一旦頂點被轉換成2D位置,一些頂點會在場景的觀察窗之外部。該組頂點可被剪裁,使得僅在場景內之頂點接受進一步處理。一旦3D多邊形被轉換成2D位置且被剪裁於觀察窗中,掃描變換處理被執行以決定哪些像素被使用以描繪影像。
對具有HMD(頭戴式顯示器)之VR(虛擬實境)系統執行光柵化需要產生對於適當地沉浸式體驗對應至以高圖框率從兩顆眼睛所見之視圖的兩個圖框緩衝器,其會使GPU上的負擔加倍(除非一些聰明的技術被使用)。
100‧‧‧處理系統
102‧‧‧處理器
104‧‧‧快取記憶體
106‧‧‧暫存器檔案
107‧‧‧處理器核心
108‧‧‧圖形處理器
109‧‧‧指令集
110‧‧‧處理器匯流排
112‧‧‧圖形處理器
116‧‧‧記憶體控制器集線器
120‧‧‧記憶體裝置
121‧‧‧指令
122‧‧‧資料
124‧‧‧資料儲存裝置
126‧‧‧無線收發器
128‧‧‧韌體介面
130‧‧‧I/O控制集線器
134‧‧‧網路控制器
140‧‧‧I/O控制器
142‧‧‧通用串列匯流排(USB)控制器
144‧‧‧鍵盤與滑鼠
146‧‧‧音訊控制器
200‧‧‧處理器
202A‧‧‧處理器核心
202N‧‧‧處理器核心
204A‧‧‧快取單元
204N‧‧‧快取單元
206‧‧‧共用快取單元
208‧‧‧圖形處理器
210‧‧‧系統代理核心
211‧‧‧顯示控制器
212‧‧‧環狀互連單元
213‧‧‧I/O鏈結
214‧‧‧記憶體控制器
216‧‧‧匯流排控制器單元
218‧‧‧嵌入式記憶體模組
300‧‧‧圖形處理器
302‧‧‧顯示控制器
304‧‧‧區塊影像轉換引擎
306‧‧‧視訊編解碼器引擎
310‧‧‧圖形處理引擎
312‧‧‧3D管線
314‧‧‧記憶體介面
315‧‧‧3D/媒體子系統
316‧‧‧媒體管線
320‧‧‧顯示裝置
403‧‧‧命令串流器
410‧‧‧圖形處理引擎
414‧‧‧圖形核心陣列
418‧‧‧統一返回緩衝器
420‧‧‧共用功能邏輯
421‧‧‧取樣器
422‧‧‧數學
423‧‧‧執行緒間通訊
425‧‧‧快取
500‧‧‧圖形處理器
502‧‧‧環狀互連
503‧‧‧命令串流器
504‧‧‧管線前端
530‧‧‧視訊品質引擎
533‧‧‧多格式編碼/解碼
534‧‧‧視訊前端
536‧‧‧幾何管線
537‧‧‧媒體引擎
550A‧‧‧子核心
550N‧‧‧子核心
552A‧‧‧執行單元
552N‧‧‧執行單元
554A‧‧‧媒體/紋理取樣器
554N‧‧‧媒體/紋理取樣器
560A‧‧‧子核心
560N‧‧‧子核心
562A‧‧‧執行單元
562N‧‧‧執行單元
564A‧‧‧取樣器
564N‧‧‧取樣器
570A‧‧‧共用的資源
570N‧‧‧共用的資源
580A‧‧‧圖形核心
580N‧‧‧圖形核心
600‧‧‧執行邏輯
602‧‧‧著色器處理器
604‧‧‧執行緒配送器
606‧‧‧指令快取
608A‧‧‧執行單元
608B‧‧‧執行單元
608C‧‧‧執行單元
608D‧‧‧執行單元
608N-1‧‧‧執行單元
608N‧‧‧執行單元
610‧‧‧取樣器
612‧‧‧資料快取
614‧‧‧資料埠
700‧‧‧圖形處理器指令格式
710‧‧‧128位元指令格式
712‧‧‧操作碼
713‧‧‧索引欄
714‧‧‧控制欄
716‧‧‧執行尺寸欄
718‧‧‧目的
720‧‧‧來源運算元
722‧‧‧來源運算元
724‧‧‧來源運算元
726‧‧‧存取/位址模式欄
730‧‧‧64位元緊密的指令格式
740‧‧‧操作碼解碼
742‧‧‧移動與邏輯操作碼群組
744‧‧‧流量控制指令群組
746‧‧‧雜項指令群組
748‧‧‧平行數學指令群組
750‧‧‧向量數學群組
800‧‧‧圖形處理器
802‧‧‧環狀互連
803‧‧‧命令串流器
805‧‧‧頂點擷取器
807‧‧‧頂點著色器
811‧‧‧外殼著色器
813‧‧‧鑲嵌器
817‧‧‧域著色器
819‧‧‧幾何著色器
820‧‧‧圖形管線
823‧‧‧串流輸出單元
829‧‧‧剪裁器
830‧‧‧媒體管線
831‧‧‧執行緒配送器
834‧‧‧視訊前端
837‧‧‧媒體引擎
840‧‧‧顯示器引擎
841‧‧‧2D引擎
843‧‧‧顯示控制器
850‧‧‧執行邏輯
851‧‧‧L1快取
852A‧‧‧執行單元
852B‧‧‧執行單元
854‧‧‧取樣器
856‧‧‧資料埠
858‧‧‧紋理/取樣器快取
870‧‧‧渲染輸出管線
873‧‧‧光柵器與深度測試組件
875‧‧‧L3快取
877‧‧‧像素操作組件
878‧‧‧渲染快取
879‧‧‧深度快取
900‧‧‧圖形處理器命令格式
902‧‧‧用戶
904‧‧‧操作碼
905‧‧‧子操作碼
906‧‧‧資料
908‧‧‧命令尺寸
910‧‧‧圖形處理器命令序列
912‧‧‧管線刷新命令
913‧‧‧管線選擇命令
914‧‧‧管線控制命令
916‧‧‧返回緩衝器狀態
920‧‧‧管線決定
922‧‧‧3D管線
924‧‧‧媒體管線
930‧‧‧3D管線狀態
932‧‧‧3D基元
934‧‧‧執行
940‧‧‧媒體管線狀態
942‧‧‧媒體物件命令
944‧‧‧執行命令
1000‧‧‧資料處理系統
1010‧‧‧3D圖形應用
1012‧‧‧著色器指令
1014‧‧‧可執行的指令
1016‧‧‧圖形物件
1020‧‧‧作業系統
1022‧‧‧圖形API
1024‧‧‧著色器編譯器
1026‧‧‧使用者模式圖形驅動器
1027‧‧‧著色器編譯器
1028‧‧‧作業系統內核模式功能
1029‧‧‧內核模式圖形驅動器
1030‧‧‧處理器
1032‧‧‧圖形處理器
1034‧‧‧一般目的處理器核心
1050‧‧‧系統記憶體
1100‧‧‧IP核心開發系統
1110‧‧‧軟體模擬
1112‧‧‧模擬模型
1115‧‧‧暫存器轉移層次設計
1120‧‧‧硬體模型
1130‧‧‧設計設施
1140‧‧‧非揮發性記憶體
1150‧‧‧有線連接
1160‧‧‧無線連接
1165‧‧‧製造設施
1200‧‧‧系統單晶片積體電路
1205‧‧‧應用程式處理器
1210‧‧‧圖形處理器
1215‧‧‧影像處理器
1220‧‧‧視訊處理器
1225‧‧‧USB控制器
1230‧‧‧UART控制器
1235‧‧‧SPI/SDIO控制器
1240‧‧‧I2S/I2C控制器
1245‧‧‧顯示裝置
1250‧‧‧高解析度多媒體介面控制器
1255‧‧‧行動產業處理器介面顯示介面
1260‧‧‧快閃記憶體子系統
1265‧‧‧記憶體控制器
1270‧‧‧安全引擎
1305‧‧‧頂點處理器
1310‧‧‧圖形處理器
1315A‧‧‧分割塊處理器
1315B‧‧‧分割塊處理器
1315C‧‧‧分割塊處理器
1315D‧‧‧分割塊處理器
1315N-1‧‧‧分割塊處理器
1315N‧‧‧分割塊處理器
1320A‧‧‧記憶體管理單元
1320B‧‧‧記憶體管理單元
1325A‧‧‧快取
1325B‧‧‧快取
1330A‧‧‧電路互連
1330B‧‧‧電路互連
1405‧‧‧核心間任務管理器
1410‧‧‧圖形處理器
1415A‧‧‧著色器核心
1415B‧‧‧著色器核心
1415C‧‧‧著色器核心
1415D‧‧‧著色器核心
1415E‧‧‧著色器核心
1415F‧‧‧著色器核心
1415N-1‧‧‧著色器核心
1415N‧‧‧著色器核心
1418‧‧‧圖塊單元
1500‧‧‧圖形渲染管線
1502‧‧‧光柵化單元
1504‧‧‧深度測試單元
1506‧‧‧像素著色器單元
1510‧‧‧輸出合併單元
1600‧‧‧例示光柵化元件
1602‧‧‧螢幕邊界
1604‧‧‧定界框
1605A‧‧‧頂點
1605B‧‧‧頂點
1605C‧‧‧頂點
1606‧‧‧起始巨型跨度
1608‧‧‧起始超級跨度
1700‧‧‧圖塊光柵化交錯
1701‧‧‧第三定界框
1702‧‧‧第一定界框
1704‧‧‧第二定界框
1706‧‧‧第一基元
1708‧‧‧第二基元
1710‧‧‧第一圖塊
1712‧‧‧第二圖塊
1714‧‧‧圖塊
1800‧‧‧交錯渲染目標
1802‧‧‧第一渲染目標
1803‧‧‧第一基元
1804‧‧‧第二渲染目標
1805‧‧‧第二基元
1806‧‧‧交錯渲染目標
1807‧‧‧
1808‧‧‧交錯渲染目標
1809‧‧‧
1900‧‧‧圖塊渲染交錯邏輯
1902‧‧‧方塊
1904‧‧‧方塊
1906‧‧‧方塊
1907‧‧‧決定
1908‧‧‧方塊
1910‧‧‧方塊
2000‧‧‧交錯光柵化回落邏輯
2004‧‧‧方塊
2005‧‧‧決定
2006‧‧‧方塊
2008‧‧‧方塊
2100‧‧‧計算裝置
2102‧‧‧作業系統
2104‧‧‧圖形處理器
2106‧‧‧應用程式處理器
2108‧‧‧記憶體
2110‧‧‧I/O來源
2114‧‧‧快取記憶體
2122‧‧‧驅動器邏輯
2123‧‧‧圖形驅動器邏輯
2124‧‧‧交錯邏輯
2134‧‧‧顯示器引擎
2144‧‧‧紋理取樣器
2154‧‧‧圖形引擎
藉由閱讀以下說明及所附申請專利範圍及藉由參照以下圖式,實施例之各種優點將對於所屬技術領域中具有通常知識者變得淺顯易懂,其中:第1圖為具有一或多個處理器核心及圖形處理器之處理器的電腦系統之實施例的方塊圖;第2圖為具有一或多個實施例核心、整合式記憶體控制器、及整合式圖形處理器之處理器的一實施例的方塊圖;第3圖為圖形處理器之一實施例的方塊圖,其可為離散圖形處理單元或可為整合複數個處理核心之圖形處理器;第4圖為用於圖形處理器之圖形處理引擎的實施例之方塊圖;第5圖為圖形處理器的另一實施例之方塊圖;第6圖為包括處理元件之陣列的緒執行邏輯之方塊圖;第7圖顯示根據實施例之圖形處理器執行單元指令格式; 第8圖為圖形處理器之另一實施例的方塊圖,其包括圖形管線、媒體管線、顯示器引擎、緒執行邏輯、及渲染輸出管線;第9A圖為顯示根據實施例之圖形處理器命令格式的方塊圖;第9B圖為顯示根據實施例之圖形處理器命令序列的方塊圖;第10圖顯示根據實施例之用於資料處理系統的例示圖形軟體架構;第11圖為顯示根據實施例之IP核心開發系統的方塊圖,其可被使用以製造積體電路以執行操作;第12圖為顯示根據實施例之可使用一或多個IP核心來製造的例示系統單晶片積體電路的方塊圖;第13圖為顯示系統單晶片積體電路之例示圖形處理器的方塊圖;第14圖為顯示系統單晶片積體電路之額外例示圖形處理器的方塊圖;第15圖為根據實施例之圖形渲染管線的方塊圖;第16圖為例示光柵化元件之顯示;第17圖為根據實施例之圖塊(tile)光柵化交錯的圖示;第18圖為根據實施例之交錯渲染目標的圖示;第19圖為根據實施例之圖塊渲染交錯邏輯的流程圖;第20圖為根據實施例之交錯光柵化回落(fallback)邏輯;及 第21圖為根據實施例之包括圖形處理器的計算裝置之方塊圖。
【發明內容】及【實施方式】
一個可能的技術是產生在頂點著色器中之兩組觀察孔位置,各對應至各觀察孔,其避免幾何著色器(GS)產生被渲染於兩個觀察孔內之兩個三角形的需求。此處所述之實施例延伸此技術至更下游於渲染管線內且對於光柵化與像素著色提供交錯架構。於一實施例中,物件之交錯係關於基元(primitive)之對而被執行,包括在光柵化期間之基元內的圖塊及在像素著色期間之用於基元的像素資料。交錯架構增加與處理基元相關聯之時間區域性,包括增加的在像素處理期間所存取的紋理資料之時間區域性。
為了說明之目的,許多特定細節被提出以提供以下所述之各種實施例的完整了解。然而,所屬技術領域中具有通常知識者應了解的是,實施例可在沒有這些特定細節之其中一些的情況下被實行。於其他範例中,眾所周知的結構與裝置係以方塊圖形式來顯示以避免模糊下面的原理,且提供實施例之更完整了解。雖然以下實施例之其中一些係參照圖形處理器來說明,此處所述之技術與教示可被應用至各種類型的電路或半導體裝置,包括一般目的處理裝置或圖形處理裝置。於此,「一個實施例(one embodiment)」或「一實施例(an embodiment)」之參照表 示關於實施例所述之特定特徵、結構、或特性可被包括於此等實施例之至少一者中。然而,在說明書中許多地方出現的短語「於一個實施例中(in one embodiment)」不一定要全部參照相同實施例。
於以下說明及申請專利範圍中,用語「耦接(coupled)」及「連接(connected)」以及其衍生可被使用。應了解的是,這些用語並不意欲為彼此同義。「耦接」被使用以表示兩個或更多元件(其可或可不彼此直接物理或電性接觸)彼此合作或互動。「連接」被使用以表示彼此耦接的兩個或更多元件之間的通訊之建立。
於以下說明中,第1-14圖提供結合或有關各種實施例之例示資料處理系統與圖形處理器邏輯之綜覽。第14-21圖提供各種實施例之特定細節。雖然以下實施例之其中一些係參照圖形處理器來說明,類似技術與教示可被應用至其他類型的電路或半導體裝置,因為教示可應用至操縱或處理影像資料之任何處理器或機器。
系統綜覽
第1圖為根據實施例之處理系統100的方塊圖。於各種實施例中,系統100包括一或多個處理器102及一或多個圖形處理器108,且可為單一處理器桌上型電腦系統、多處理器工作站系統、或具有大量的處理器102或處理器核心107之伺服器系統。於一實施例中,系統100為在使用於行動、手持、或嵌入式裝置的系統單晶片(SoC) 積體電路內結合的處理平台。
系統100的實施例可包括(或可被結合於)伺服器式遊戲平台、遊戲控制台,包括遊戲與媒體控制台、行動遊戲控制台、手持遊戲控制台、或線上遊戲控制台。於一些實施例中,系統100為行動電話、智慧型手機、平板計算裝置或行動網際網路裝置。資料處理系統100亦可包括、耦接、或結合於可穿戴式裝置內,例如智慧型手錶可穿戴式裝置、智慧型眼睛穿戴裝置、擴增式實境裝置、或虛擬實境裝置。於一些實施例中,資料處理系統100為具有一或多個處理器102及藉由一或多個圖形處理器108產生的圖形介面之電視或機上盒裝置。
於一些實施例中,一或多個處理器102各包括一或多個處理器核心107以處理指令(當指令被執行時會執行用於系統及使用者軟體之操作)。於一些實施例中,一或多個處理器核心107中之各者被組構以處理特定指令集109。於一些實施例中,指令集109可促進複雜指令集計算(CISC)、精減指令集計算(RISC)、或經由超長指令字(VLIW)之計算。多個處理器核心107可各處理不同的指令集109,其可包括促進其他指令集之仿真的指令。處理器核心107亦可包括其他處理裝置,例如數位訊號處理器(DSP)。
於一些實施例中,處理器102包括快取記憶體104。根據該架構,處理器102可具有單一內部快取或多階內部快取。於一些實施例中,快取記憶體被共用於處理器 102之各種組件中。於一些實施例中,處理器102亦使用外部快取(例如,3階(L3)快取或末階快取(LLC))(未圖示),其可被共用於使用已知快取一致性技術之處理器核心107中。暫存器檔案106被額外地包括於處理器102中,其可包括用以儲存不同類型的資料之不同類型的暫存器(例如,整數暫存器、浮點暫存器、狀態暫存器、及指令指標暫存器)。一些暫存器可為一般目的暫存器,而其他暫存器可特定於處理器102之設計。
於一些實施例中,處理器102與處理器匯流排110耦接以在系統100中的處理器102與其他組件之間傳送通訊訊號,例如位址、資料、或控制訊號。於一實施例中,系統100使用例示「集線器(hub)」系統架構,包括記憶體控制器集線器116與輸入輸出(I/O)控制器集線器130。記憶體控制器集線器116促進在系統100的記憶體裝置與其他組件之間的通訊,而I/O控制器集線器(ICH)130提供經由本地I/O匯流排至I/O裝置的連接。於一實施例中,記憶體控制器集線器116之邏輯被整合於處理器內。
記憶體裝置120可為動態隨機存取記憶體(DRAM)裝置、靜態隨機存取記憶體(SRAM)裝置、快閃記憶體裝置、相變記憶體裝置、或具有適合的效能以作為處理記憶體之一些其他記憶體裝置。於一實施例中,記憶體裝置120可操作為用於系統100之系統記憶體以儲存資料122及指令121以當一或多個處理器102執行應用程式或處理時使用。記憶體控制器集線器116亦耦接選項的外部圖 形處理器112,其可與處理器102中之一或多個圖形處理器108通訊以執行圖形與媒體操作。
於一些實施例中,ICH 130賦能週邊裝置以經由高速I/O匯流排而連接至記憶體裝置120及處理器102。I/O週邊裝置包括(但不限於)音訊控制器146、韌體介面128、無線收發器126(例如,Wi-Fi、藍牙)、資料儲存裝置124(例如,硬碟機、快閃記憶體等等)、及用於耦接舊有(例如,Personal System 2(PS/2))裝置至系統之舊有I/O控制器140。一或多個通用串列匯流排(USB)控制器142連接輸入裝置,例如鍵盤與滑鼠144組合。網路控制器134亦可耦接ICH 130。於一些實施例中,高效能網路控制器(未圖示)耦接處理器匯流排110。應了解的是,所顯示的系統100僅為例示而非限制用,被不同地組構的其他類型之資料處理系統亦可被使用。舉例來說,I/O控制器集線器130可被整合於一或多個處理器102中,或記憶體控制器集線器116及I/O控制器集線器130可被整合於離散外部圖形處理器,例如外部圖形處理器112。
第2圖為具有一或多個處理器核心202A-202N、整合式記憶體控制器214、及整合式圖形處理器208之處理器200的實施例之方塊圖。第2圖中具有相同元件符號(或名稱)的那些元件(作為此處之任何其他圖式的元件)可操作或作用於類似此處所述之任何方式(但不以此為限)。處理器200可包括額外的核心,適於及包括由虛線框所代表之額外的核心202N。各處理器核心202A-202N包括 一或多個內部快取單元204A-204N。於一些實施例中,各處理器核心亦具有至一或多個共用快取單元206之存取。
內部快取單元204A-204N及共用快取單元206代表處理器200內之快取記憶體階層。快取記憶體階層可包括各處理器核心內之至少一階的指令與資料快取及一或多階的共用中階快取,例如2階(L2)、3階(L3)、4階(L4)、或其他階的快取,其中外部記憶體之前的最高階之快取被分類為LLC。於一些實施例中,快取一致性邏輯維持各種快取單元206與204A-204N之間的一致性。
於一些實施例中,處理器200亦可包括一組一或多個匯流排控制器單元216與系統代理核心210。一或多個匯流排控制器單元216管理一組週邊匯流排,例如一或多個週邊組件互連匯流排(例如,PCI、PCI Express)。系統代理核心210對於各種處理器組件提供管理功能。於一些實施例中,系統代理核心210包括一或多個整合式記憶體控制器214以管理至各種外部記憶體裝置(未圖示)之存取。
於一些實施例中,處理器核心202A-202N中之一或多者包括用於同時多處理緒的支援。於此實施例中,系統代理核心210包括用於在多處理緒處理期間協調及操作核心202A-202N之組件。系統代理核心210可額外地包括電源控制單元(PCU),其包括邏輯與組件以調節處理器核心202A-202N與圖形處理器208之電源狀態。
於一些實施例中,處理器200額外地包括圖形 處理器208以執行圖形處理操作。於一些實施例中,圖形處理器208耦接該組共用快取單元206及系統代理核心210,包括一或多個整合式記憶體控制器214。於一些實施例中,顯示控制器211耦接圖形處理器208以驅動圖形處理器輸出至一或多個耦接的顯示器。於一些實施例中,顯示控制器211可為經由至少一互連來耦接圖形處理器之分開的模組,或可被整合於圖形處理器208或系統代理核心210內。
於一些實施例中,環狀互連單元212被使用以耦接至處理器200之內部組件。然而,替代的互連單元可被使用,例如點對點互連、交換式互連、或其他技術,包括該領域中眾所周知的技術。於一些實施例中,圖形處理器208經由I/O鏈結213而耦接環狀互連212。
例示I/O鏈結213代表多個種類的I/O互連中之至少一者,包括封裝I/O互連,其促進在各種處理器組件與高效能嵌入式記憶體模組218(例如,eDRAM模組)之間的通訊。於一些實施例中,處理器核心202A-202N及圖形處理器208中之各者使用嵌入式記憶體模組218作為共用末階快取。
於一些實施例中,處理器核心202A-202N為執行相同指令集架構之同質的(homogenous)核心。於另一實施例中,處理器核心202A-202N在指令集架構(ISA)方面為異質的(heterogeneous),於其中,處理器核心202A-202N之一或多者執行第一指令集,同時其他核心中之至少一者 執行第一指令集或不同指令集之子集。於一實施例中,處理器核心202A-202N在微架構方面為異質的,於其中,具有相對較高的功率消耗之一或多個核心耦接具有較低功率消耗之一或多個電源核心。此外,處理器200可被實現於一或多個晶片上或被實現為具有所說明的組件(除了其他組件以外)之SoC積體電路。
第3圖為圖形處理器300之方塊圖,其可為離散圖形處理單元或可為整合複數個處理核心之圖形處理器。於一些實施例中,圖形處理器經由記憶體映射的I/O介面而與在圖形處理器上之暫存器和放置於處理器記憶體內的命令通訊。於一些實施例中,圖形處理器300包括記憶體介面314以存取記憶體。記憶體介面314可為至本地記憶體、一或多個內部快取、一或多個共用外部快取、及/或至系統記憶體之介面。
於一些實施例中,圖形處理器300亦包括顯示控制器302以驅動顯示輸出資料至顯示裝置320。顯示控制器302包括用於視訊或使用者介面元件之多個層的顯示與組成之一或多個覆蓋平面的硬體。於一些實施例中,圖形處理器300包括視訊編解碼器引擎306以編碼、解碼、或譯碼(transcode)媒體至、從、或在一或多個媒體編碼格式之間,包括(但不限於)動態圖像專家群組(MPEG)格式(例如,MPEG-2)、先進視訊編碼(Advanced Video Coding;AVC)格式(例如,H.264/MPEG-4 AVC、以及電影電視工程師協會(Society of Motion Picture & Television Engineers;SMPTE)421M/VC-1)、及聯合圖像專家群(Joint Photographic Experts Group;JPEG)格式(例如,JPEG、及Motion JPEG(MJPEG)格式。
於一些實施例中,圖形處理器300包括區塊影像轉換(block image transfer;BLIT)引擎304以執行二維(2D)光柵器(rasterizer)操作,包括,舉例來說,位元邊界區塊轉換。然而,於一實施例中,2D圖形操作係使用圖形處理引擎(GPE)310之一或多個組件來執行。於一些實施例中,GPE 310為用於執行圖形操作(包括三維(3D)圖形操作及媒體操作)之電腦引擎。
於一些實施例中,GPE 310包括用於執行3D操作(例如使用作用於3D基元形狀(例如,矩形、三角形等等)之處理功能來渲染三維影像與場景)之3D管線312。3D管線312包括可程式化及固定的功能元件,其執行元件內之各種任務及/或大量生產執行緒至3D/媒體子系統315。雖然3D管線312可被使用以執行媒體操作,GPE 310之實施例亦包括媒體管線316,其係被特定使用以執行媒體操作,例如視訊後處理(post-processing)及影像加強。
於一些實施例中,媒體管線316包括固定功能或可程式化邏輯單元以執行一或多個被特殊化的媒體操作,例如視訊解碼加速、視訊去交錯(de-interlacing)、及視訊編碼加速(取代、或代表視訊編解碼器引擎306)。於一些實施例中,媒體管線316額外地包括以大量生產用於在3D/媒體子系統315上執行的執行緒。大量生產的執行緒 執行對於在包括於3D/媒體子系統315中之一或多個圖形執行單元上的媒體操作之計算。
於一些實施例中,3D/媒體子系統315包括用於執行藉由3D管線312與媒體管線316而大量生產的執行緒之邏輯。於一實施例中,該等管線發送執行緒執行請求至3D/媒體子系統315,其包括用於仲裁(arbitrating)及配送各種請求至可用的執行緒執行資源之執行緒配送邏輯。執行資源包括圖形執行單元之陣列以處理3D與媒體執行緒。於一些實施例中,3D/媒體子系統315包括用於執行緒指令與資料之一或多個內部快取。於一些實施例中,子系統亦包括共用記憶體(包括暫存器與可定址記憶體)以共用在執行緒之間的資料及以儲存輸出資料。
圖形處理引擎
第4圖為根據一些實施例之圖形處理器的圖形處理引擎410之方塊圖。於一實施例中,圖形處理引擎(GPE)410為第3圖中所顯示的GPE 310之一版本。第4圖中具有相同元件符號(或名稱)的元件(作為此處之任何其他圖式的元件)可操作或作用於類似此處所述之任何方式(但不以此為限)。舉例來說,第3圖之3D管線312與媒體管線316係被說明。在GPE 410之一些實施例中,媒體管線316是選項的,且可不明確地包括於GPE 410內。舉例來說,且於至少一實施例中,分開的媒體及/或影像處理器係耦接至GPE 410。
於一些實施例中,GPE 410耦接或包括命令串流器403,其提供命令串流至3D管線312及/或媒體管線316。於一些實施例中,命令串流器403耦接記憶體(其可為系統記憶體)或內部快取記憶體與共用快取記憶體中之一或多者。於一些實施例中,命令串流器403接收來自記憶體之命令及發送命令至3D管線312及/或媒體管線316。命令為從環狀緩衝器擷取之指引(directive),其儲存用於3D管線312與媒體管線316。於一實施例中,環狀緩衝器可額外地包括儲存多個命令之批次的批次命令緩衝器。用於3D管線312之命令亦可包括對儲存於記憶體中之資料的參照,例如(但不限於)用於3D管線312之頂點與幾何資料及/或用於媒體管線316之影像資料與記憶體物件。3D管線312與媒體管線316藉由經由在個別管線內之邏輯而執行操作或藉由配送一或多個執行緒至圖形核心陣列414來處理命令與資料。
於各種實施例中,3D管線312可藉由處理指令與配送執行緒至圖形核心陣列414來執行一或多個著色器程式,例如頂點著色器、幾何著色器、像素著色器、分割塊(fragment)著色器、計算著色器、或其他著色器程式。圖形核心陣列414提供統一的執行資源之區塊。圖形核心陣列414內之多目的執行邏輯(例如,執行單元)包括用於各種3D API著色器語言之支援且可執行與多個著色器相關聯之多個同步執行緒。
於一些實施例中,圖形核心陣列414亦包括執 行邏輯以執行媒體功能,例如視訊及/或影像處理。於一實施例中,執行單元額外地包括一般目的邏輯,其可程式化以執行平行的一般目的計算操作(除了圖形處理操作之外)。一般目的邏輯可平行或聯同在第1圖之處理器核心107或如於第2圖中之核心202A-202N內之一般目的邏輯來執行處理操作。
執行於圖形核心陣列414上之藉由執行緒所產生的輸出資料可輸出資料至記憶體於統一返回緩衝器(unified return buffer;URB)418中。URB 418可儲存用於多個執行緒之資料。於一些實施例中,URB 418可被使用以發送在執行於圖形核心陣列414上的不同執行緒之間的資料。於一些實施例中,URB 418可額外地被使用於在共用功能邏輯420內之圖形核心陣列與固定的功能邏輯上的執行緒之間的同步化。
於一些實施例中,圖形核心陣列414為可擴充的(scalable),使得陣列包括可變數量的圖形核心,各具有基於GPE 410之目標電源與效能位準的可變數量之執行單元。於一實施例中,執行資源為動態地可擴充的,使得當有需要時執行資源可被賦能或去能。
圖形核心陣列414耦接共用功能邏輯420,其包括在圖形核心陣列中的圖形核心之間被共用的多個資源。在共用功能邏輯420內之共用功能為硬體邏輯單元,其提供特殊化的輔助功能至圖形核心陣列414。於各種實施例中,共用功能邏輯420包括(但不限於)取樣器421、數 學422、與執行緒間通訊(ITC)423邏輯。此外,一些實施例實現共用功能邏輯420內之一或多個快取425。共用功能被實現於其中對於給定特殊化功能之需求不足以包括於圖形核心陣列414內。取代的是,該特殊化功能的單一例示被實現為共用功能邏輯420中之獨立個體且在圖形核心陣列414內之執行資源之間共用。在圖形核心陣列414之間共用且被包括於圖形核心陣列414內之精確的功能組隨實施例改變。
第5圖為圖形處理器500的另一實施例之方塊圖。第5圖中具有相同元件符號(或名稱)的元件(作為此處之任何其他圖式的元件)可操作或作用於類似此處所述之任何方式(但不以此為限)。
於一些實施例中,圖形處理器500包括環狀互連502、管線前端504、媒體引擎537、與圖形核心580A-580N。於一些實施例中,環狀互連502耦接圖形處理器至其他處理單元,包括其他圖形處理器或一或多個一般目的處理器核心。於一些實施例中,圖形處理器為整合於多核心處理系統的許多處理器之其中一者。
於一些實施例中,圖形處理器500經由環狀互連502接收命令的批次。進來的命令藉由管線前端504中之命令串流器503來解譯。於一些實施例中,圖形處理器500包括可擴充的執行邏輯以經由圖形核心580A-580N來執行3D幾何處理與媒體處理。對於3D幾何處理命令,命令串流器503供應命令至幾何管線536。對於至少一些媒體處理 命令,命令串流器503供應命令至視訊前端534,其耦接媒體引擎537。於一些實施例中,媒體引擎537包括視訊品質引擎(VQE)530,用於視訊與影像後處理及多格式編碼/解碼(multi-format encode/decode;MFX)533引擎,以提供硬體加速的媒體資料編碼與解碼。於一些實施例中,幾何管線536與媒體引擎537各產生執行緒以用於藉由至少一圖形核心580A所提供的執行緒執行資源。
於一些實施例中,圖形處理器500包括可擴充的執行緒執行資源,特色為模組化核心(modular core)580A-580N(有時參照為核心切片(core slice)),各具有多個子核心550A-550N、560A-560N(有時參照為核心子切片)。於一些實施例中,圖形處理器500可具有任何數量的圖形核心580A至580N。於一些實施例中,圖形處理器500包括具有至少一第一子核心550A與第二核心子核心560A之圖形核心580A。於其他實施例中,圖形處理器為具有單一子核心(例如,550A)之低電源處理器。於一些實施例中,圖形處理器500包括多個圖形核心580A-580N,各包括一組第一子核心550A-550N與一組第二子核心560A-560N。於第一子核心550A-550N之組中的各子核心包括至少一第一組的執行單元552A-552N與媒體/紋理取樣器554A-554N。於第二子核心560A-560N之組中的各子核心包括至少一第二組的執行單元562A-562N與取樣器564A-564N。於一些實施例中,各子核心550A-550N、560A-560N共用一組共用的資源570A-570N。於一些實施 例中,共用的資源包括共用快取記憶體與像素操作邏輯。其他共用的資源亦可包括於圖形處理器之各種實施例中。
執行單元
第6圖顯示包括於GPE之一些實施例中被利用的處理元件之陣列的緒執行邏輯600。第6圖中具有相同元件符號(或名稱)的元件(作為此處之任何其他圖式的元件)可操作或作用於類似此處所述之任何方式(但不以此為限)。
於一些實施例中,緒執行邏輯600包括著色器處理器602、執行緒配送器604、指令快取606、包括複數個執行單元608A-608N之可擴充的執行單元陣列、取樣器610、資料快取612、與資料埠614。於一實施例中,所包括的組件經由互連結構(其鏈結至組件中之各者)而互連。於一些實施例中,緒執行邏輯600包括透過指令快取606、資料埠614、取樣器610、與執行單元608A-608N中之一或多者而連接至記憶體(例如系統記憶體或快取記憶體)之一或多個連接。於一些實施例中,各執行單元(例如,608A)為獨立可程式化一般目的計算單元,其能執行多個同步硬體執行緒同時對於各執行緒平行處理多個資料元件。於各種實施例中,執行單元608A-608N之陣列為可擴充的以包括任何數量的個別執行單元。
於一些實施例中,執行單元608A-608N主要被使用以執行著色器程式。著色器處理器602可處理各種著 色器程式且經由執行緒配送器604來配送與著色器程式相關聯的執行緒。於一實施例中,執行緒配送器包括用以仲裁來自圖形與媒體管線之執行緒初始請求的邏輯且例示所請求的執行緒於執行單元608A-608N中之一或多個執行單元。舉例來說,幾何管線(例如,第5圖之536)可配送頂點、鑲嵌(tessellation)、或幾何著色器至緒執行邏輯600(第6圖)以供處理。於一些實施例中,執行緒配送器604亦可處理從執行著色器程式大量生產請求之運行時間執行緒。
於一些實施例中,執行單元608A-608N支援指令集,其包括對於許多標準3D圖形著色器指令之原有的(native)支援,使得來自圖形程式庫(例如,Direct 3D與OpenGL)之著色器程式以最小轉譯被執行。執行單元支援頂點與幾何處理(例如,頂點程式、幾何程式、頂點著色器)、像素處理(例如,像素著色器、分割塊著色器)與一般目的處理(例如,計算與媒體著色器)。執行單元608A-608N中之各者能進行多重發出(multi-issue)的單一指令多重資料(single instruction multiple data;SIMD)執行且多執行緒的操作賦能在較高潛伏記憶體存取面上之有效率的執行環境。各執行單元內之各硬體執行緒具有專屬高頻寬暫存器檔案與相關聯的獨立執行緒狀態。執行是按時脈至管線的多重發出,能進行整數、單與雙精度浮點操作、SIMD分支能力、邏輯操作、超越操作(transcendental operation)、與其他雜項操作。當等待來自記憶體或共用 功能中之一者的資料的同時,在執行單元608A-608N內之相依性邏輯造成等待執行緒進入睡眠,直到所請求的資料已返回。雖然等待執行緒正在睡眠,硬體資源可投入於處理其他執行緒。舉例來說,在與頂點著色器操作相關聯的延遲期間,執行單元可執行用於像素著色器、分割塊著色器、或另一類型的著色器程式(包括不同的頂點著色器)之操作。
執行單元608A-608N中之各執行單元操作於資料元件之陣列。資料元件的數量為「執行尺寸(execution size)」、或用於指令的通道之數量。執行通道為用於指令內之資料元件存取、遮蔽、與流量控制的執行之邏輯單元。通道的數量可與對於特定圖形處理器之實體算術邏輯單元(Arithmetic Logic Units;ALU)或浮點單元(Floating Point Units;FPU)的數量無關。於一些實施例中,執行單元608A-608N支援整數與浮點資料類型。
執行單元指令集包括SIMD指令。各種資料元件可被儲存為封裝資料類型於暫存器中且執行單元將基於元件之資料尺寸來處理各種元件。舉例來說,當操作於256位元寬的向量時,向量之256位元被儲存於暫存器中且執行單元操作為四個分開的64位元之封裝資料元件(Quad-Word(QW)尺寸資料元件)、八個分開的32位元之封裝資料元件(Double Word(DW)尺寸資料元件)、十六個分開的16位元之封裝資料元件(Word(W)尺寸資料元件)、或三十二個分開的8位元資料元件(位元組(B)尺寸資料元件)之向 量。然而,不同的向量寬度與暫存器尺寸是可能的。
一或多個內部指令快取(例如,606)被包括於緒執行邏輯600中以對於執行單元對執行緒指令進行快取。於一些實施例中,一或多個資料快取(例如,612)被包括以在執行緒執行期間對執行緒資料進行快取。於一些實施例中,取樣器610被包括以對於3D操作提供紋理取樣及對於媒體操作提供媒體取樣。於一些實施例中,取樣器610包括特殊化的紋理或媒體取樣功能以在取樣處理期間在提供經取樣的資料至執行單元之前處理紋理或媒體資料。
在執行期間,圖形與媒體管線經由執行緒大量生產與配送邏輯來發送執行緒初始請求至緒執行邏輯600。一旦幾何物件的群組已被處理及光柵化成像素資料,在著色器處理器602內之像素處理器邏輯(例如,像素著色器邏輯,分割塊著色器邏輯等等)被調用(invoked)以進一步計算輸出資訊並將結果寫入至輸出表面(例如,色彩緩衝器、深度緩衝器、模板(stencil)緩衝器等等)。於一些實施例中,像素著色器或分割塊著色器計算各種頂點屬性(其將被插入光柵化物件之中)的值。於一些實施例中,在著色器處理器602內之像素處理器邏輯接著執行應用程式編程介面(application programming interface;API)供應的像素或分割塊著色器程式。要執行著色器程式,著色器處理器602經由執行緒配送器604來配送執行緒至執行單元(例如,608A)。於一些實施例中,像素著色器602使用在 取樣器610中之紋理取樣邏輯以存取紋理資料於儲存於記憶體中之紋理圖中。紋理資料與輸入幾何資料上之算術操作對於各幾何分割塊計算像素色彩資料、或從進一步處理丟棄一或多個像素。
於一些實施例中,資料埠614對於緒執行邏輯600提供記憶體存取機制,其輸出經處理的資料至記憶體以在圖形處理器輸出管線上處理。於一些實施例中,資料埠614包括或耦接至一或多個快取記憶體(例如,資料快取612)以經由資料埠對用於記憶體存取之資料進行快取。
第7圖為顯示根據一些實施例之圖形處理器指令格式700的方塊圖。於一或多個實施例中,圖形處理器執行單元支援具有多種格式的指令之指令集。實線框顯示通常被包括於執行單元指令中之組件,而虛線包括選項的或僅被包括於指令之子集中的組件。於一些實施例中,所說明與顯示的指令格式700為巨集指令,於其中,其為供應至執行單元之指令,相對於一旦指令被處理而從指令解碼產生之微操作。
於一些實施例中,圖形處理器執行單元原有地支援128位元指令格式710之指令。64位元緊密的(compacted)指令格式730對於一些指令(基於所選擇的指令、指令選項、與運算元的數量)為可用的。原有的128位元指令格式710提供存取至所有指令選項,而一些選項與操作被限制於64位元格式730。64位元格式730中可用之原有的指令隨實施例改變。於一些實施例中,指令被部份地 緊密結合,使用於索引欄713中之一組索引值。執行單元硬體基於索引值來參照一組緊密表(compaction table)且使用緊密表輸出以重建128位元指令格式710之原有的指令。
對於各格式,指令操作碼712界定執行單元將執行之操作。執行單元在各運算元之多個資料元件中平行地執行各指令。舉例來說,因應加法指令,執行單元在代表紋理元件或圖片元件之各色彩通道中執行同時的加法操作。預設的是,執行單元在運算元之所有資料通道中執行各指令。於一些實施例中,指令控制欄714賦能特定執行選項之控制,例如通道選擇(例如,預測)與資料通道次序(例如,攪拌)。對於128位元指令格式710之指令,執行尺寸欄716限制將被平行執行之資料通道的數量。於一些實施例中,執行尺寸欄716沒有被使用於64位元緊密的指令格式730中。
一些執行單元指令具有多達三個運算元,包括兩個來源運算元(src0 720,src1 722)與一個目的718。於一些實施例中,執行單元支援雙目的指令,於其中目的中之一者被暗示。資料操縱指令可具有第三來源運算元(例如,SRC2 724),其中,指令操作碼712決定來源運算元之數量。指令的最後來源運算元可為連同指令被傳送的立即(例如,硬編碼)值。
於一些實施例中,128位元指令格式710包括存取/位址模式欄726,指明例如是否直接暫存器定址模式或間接暫存器定址模式被使用。當直接暫存器定址模式被 使用時,一或多個運算元之暫存器位址以指令中之位元被直接地提供。
於一些實施例中,128位元指令格式710包括存取/位址模式欄726,其指明用於指令之位址模式及/或存取模式。於一實施例中,存取模式被使用以對於指令界定資料存取校正。一些實施例支援存取模式,包括16位元組校正的存取模式與1位元組校正的存取模式,於其中,存取模式之位元組校正決定存取指令運算元之校正。舉例來說,當於第一模式時,指令可對於來源與目的運算元使用位元組校正的(byte-aligned)定址且當於第二模式時,指令可對於所有來源與目的運算元使用16位元組校正的定址。
於一實施例中,存取/位址模式欄726之位址模式部份決定是否指令將使用直接或間接定址。當直接暫存器定址模式被使用時,指令中之位元直接地提供一或多個運算元之暫存器位址。當間接暫存器定址模式被使用時,一或多個運算元之暫存器位址可基於指令中之位址暫存器值與位址立即欄而被計算。
於一些實施例中,指令基於操作碼712位元欄被分組以簡化操作碼解碼740。對於8位元操作碼,位元4、5、與6允許執行單元決定操作碼之類型。所顯示之精確的操作碼分組僅為範例。於一些實施例中,移動與邏輯操作碼群組742包括資料移動與邏輯指令(例如,移動(mov)、比較(cmp))。於一些實施例中,移動與邏輯操作碼群組742共用五個最大有效位元(MSB),於其中,移動 (mov)指令係於0000xxxxb之形式且邏輯指令係於0001xxxxb之形式。流量控制指令群組744(例如,呼叫、跳躍(jmp))包括於0010xxxxb之形式的指令(例如,0x20)。雜項指令群組746包括指令的混合,包括於0011xxxxb之形式(例如,0x30)的同步指令(例如,等待、發送)。平行數學指令群組748包括於0100xxxxb之形式(例如,0x40)的按組件(component-wise)算術指令(例如,加法、乘法(mul))。平行數學群組748在資料通道之平行地執行算術操作。向量數學群組750包括於0101xxxxb之形式(例如,0x50)的算術指令(例如,dp4)。向量數學群組執行算術,例如於向量運算元上之點積計算。
圖形管線
第8圖為圖形處理器800之另一實施例的方塊圖。第8圖中具有相同元件符號(或名稱)的元件(作為此處之任何其他圖式的元件)可操作或作用於類似此處所述之任何方式(但不以此為限)。
於一些實施例中,圖形處理器800包括圖形管線820、媒體管線830、顯示器引擎840、緒執行邏輯850、與渲染輸出管線870。於一些實施例中,圖形處理器800為在包括一或多個一般目的處理核心之多核心處理系統內的圖形處理器。圖形處理器係經由環狀互連802藉由暫存器寫入至一或多個控制暫存器(未圖示)或經由被發出至圖形處理器800的命令來控制。於一些實施例中,環狀互連802 耦接圖形處理器800至其他處理組件,例如其他圖形處理器或一般目的處理器。來自環狀互連802之命令藉由命令串流器803被解譯,其供應指令至圖形管線820或媒體管線830之個別的組件。
於一些實施例中,命令串流器803指揮頂點擷取器805之操作,其讀取來自記憶體之頂點資料及執行由命令串流器803所提供之頂點處理(vertex-processing)命令。於一些實施例中,頂點擷取器805提供頂點資料至頂點著色器807,其執行座標空間轉換與照明操作至各頂點。於一些實施例中,頂點擷取器805與頂點著色器807藉由經由執行緒配送器831配送執行緒至執行單元852A、852B來執行頂點處理指令。
於一些實施例中,執行單元852A、852B為具有用以執行圖形與媒體操作之指令集的向量處理器之陣列。於一些實施例中,執行單元852A、852B具有附接的L1快取851,其係特定用於各陣列或在陣列之間共用。該快取可被組構為資料快取、指令快取、或被分割成不同分區以包含資料與指令之單一快取。
於一些實施例中,圖形管線820包括鑲嵌組件以執行3D物件之硬體加速的(hardware-accelerated)鑲嵌。於一些實施例中,可程式化外殼著色器811組構鑲嵌操作。可程式化域著色器817提供鑲嵌輸出之後端評估。鑲嵌器813操作於外殼著色器811之方向且含有特殊目的邏輯以基於被提供為至圖形管線820的輸入之粗略的幾何模型 來產生一組詳細的幾何物件。於一些實施例中,若鑲嵌未被使用,則鑲嵌組件(例如,外殼著色器811、鑲嵌器813、與域著色器817)可被跳過。
於一些實施例中,完整幾何物件可經由被配送至執行單元852A、852B之一或多個執行緒藉由幾何著色器819被處理或可直接繼續至剪裁器829。於一些實施例中,幾何著色器操作於整個幾何物件,而非如圖形管線的先前階段中之頂點或頂點的補綴。若鑲嵌被去能,則幾何著色器819接收來自頂點著色器807之輸入。於一些實施例中,幾何著色器819係藉由幾何著色器程式而為可程式化的,用以執行幾何鑲嵌(若鑲嵌單元被去能)。
在光柵化之前,剪裁器829處理頂點資料。剪裁器829可為固定的功能剪裁器或具有剪裁與幾何著色器功能之可程式化剪裁器。於一些實施例中,渲染輸出管線870中之光柵器與深度測試組件873配送像素著色器以將幾何物件轉換成其按像素(per pixel)表示。於一些實施例中,像素著色器邏輯被包括於緒執行邏輯850中。於一些實施例中,應用可略過光柵器與深度測試組件873且經由串流輸出單元823來存取未光柵化的頂點資料。
圖形處理器800具有互連匯流排、互連結構、或允許資料與訊息經過處理器之主要組件中的一些其他互連機制。於一些實施例中,執行單元852A、852B與相關聯的快取851、紋理與媒體取樣器854、及紋理/取樣器快取858經由資料埠856而互連以執行記憶體存取及與處理器 之渲染輸出管線組件通訊。於一些實施例中,取樣器854、快取851、858與執行單元852A、852B各具有分開的記憶體存取路徑。
於一些實施例中,渲染輸出管線870含有光柵器與深度測試組件873,其將頂點式(vertex-based)物件轉換成相關聯的像素式(pixel-based)表示。於一些實施例中,光柵器邏輯包括視窗/遮蔽器單元(masker unit)以執行固定的功能三角與線光柵化。於一些實施例中,相關聯的渲染快取878與深度快取879亦為可用的。像素操作組件877對資料執行像素式操作,雖然於一些範例中,與2D操作(例如,帶有攪拌(blending)的位元區塊影像轉換)相關聯的像素操作藉由2D引擎841被執行或在顯示時間藉由顯示控制器843使用覆蓋顯示平面而被取代。於一些實施例中,共用的L3快取875對於所有圖形組件為可用的,允許資料在沒有主系統記憶體之使用的情況下共用。
於一些實施例中,圖形處理器媒體管線830包括媒體引擎837與視訊前端834。於一些實施例中,視訊前端834接收來自命令串流器803之管線命令。於一些實施例中,媒體管線830包括分開的命令串流器。於一些實施例中,視訊前端834在將命令發送至媒體引擎837之前處理媒體命令。於一些實施例中,媒體引擎837包括執行緒大量生產功能以大量生產執行緒用於經由執行緒配送器831而配送至緒執行邏輯850。
於一些實施例中,圖形處理器800包括顯示器 引擎840。於一些實施例中,顯示器引擎840在處理器800外部且經由環狀互連802(或一些其他互連匯流排或結構)而耦接圖形處理器。於一些實施例中,顯示器引擎840包括2D引擎841與顯示控制器843。於一些實施例中,顯示器引擎840含有能獨立地操作3D管線之特殊目的邏輯。於一些實施例中,顯示控制器843耦接顯示裝置(未圖示),其可為系統整合型顯示裝置,如在膝上型電腦中、或經由顯示裝置連接器而附接的外部顯示裝置。
於一些實施例中,圖形管線820與媒體管線830為可組構的,以基於多個圖形與媒體程式介面(且非特定至任何一種應用程式編程介面(API))來執行操作。於一些實施例中,用於圖形處理器之驅動軟體將API呼叫(其係指明至特定圖形或媒體程式庫)轉譯成可被圖形處理器處理之命令。於一些實施例中,支援係被提供用於開放圖形程式庫(Open Graphics Library;OpenGL)、開放計算語言(Open Computing Language;OpenCL)、及/或Vulkan圖形與計算API(皆來自科納斯組織)。於一些實施例中,支援亦可被提供用於來自微軟公司(Microsoft Corporation)之Direct3D程式庫。於一些實施例中,這些程式庫的組合可被支援。支援亦可被提供用於開放來源電腦視覺程式庫(Open Source Computer Vision Library;OpenCV)。若從未來的API之管線至圖形處理器之管線的映射可被完成,則具有相容的3D管線之未來API亦可被支援。
圖形管線編程
第9A圖為顯示根據一些實施例之圖形處理器命令格式900的方塊圖。第9B圖為顯示根據實施例之圖形處理器命令序列910的方塊圖。第9A圖中之實線框顯示通常被包括於圖形命令中之組件,而虛線框包括選項的或僅被包括於圖形命令之子集中之組件。第9A圖之例示圖形處理器命令格式900包括資料欄以識別命令之目標用戶、命令操作碼(opcode)904、及與命令相關的資料906。子操作碼905與命令尺寸908亦包括於一些命令中。
於一些實施例中,用戶902指明處理命令資料的圖形裝置之用戶。於一些實施例中,圖形處理器命令解析器檢查各命令之用戶欄以調節命令之進一步處理及將命令資料路由至適當的用戶單元。於一些實施例中,圖形處理器用戶單元包括記憶體介面單元、渲染單元、2D單元、3D單元、與媒體單元。各用戶單元具有處理命令之對應的處理管線。一旦命令被用戶單元接收,則用戶單元讀取操作碼904且子操作碼905(若存在)決定要執行之操作。用戶單元使用在資料欄906中之資訊來執行命令。對於一些命令,明確的命令尺寸908被期望以指明命令之尺寸。於一些實施例中,命令解析器基於命令操作碼而自動地決定該等命令中之至少一些的尺寸。於一些實施例中,命令經由雙字(double word)的倍數被校正。
第9B圖中之流程圖顯示例示圖形處理器命令序列910。於一些實施例中,資料處理系統之軟體或韌體 (特色為圖形處理器之實施例)使用所顯示的命令序列之版本以設定、執行、及終止一組圖形操作。樣本命令序列被顯示及說明僅用於範例之目的,實施例並非受限至這些特定的命令或至此命令序列。再者,命令可被發出為批次的命令於命令序列中,使得圖形處理器將至少部份同時地處理命令的序列。
於一些實施例中,圖形處理器命令序列910可開始於管線刷新命令912以造成任何活動的(active)圖形管線來完成用於管線之目前待決的命令。於一些實施例中,3D管線922與媒體管線924不同時操作。管線刷新被執行以造成活動的圖形管線來完成任何待決的命令。因應管線刷新,用於圖形處理器之命令解析器將暫停命令處理直到活動的描繪引擎完成待決操作且相關的讀取快取被無效。選項地,在渲染快取中被標記「髒(dirty)」之任何資料可被刷新至記憶體。於一些實施例中,管線刷新命令912可被使用於管線同步化或在將圖形處理器置於低電源狀態中之前。
於一些實施例中,管線選擇命令913係當命令序列需要圖形處理器明確地在管線之間切換時被使用。於一些實施例中,管線選擇命令913在發出管線命令之前在執行脈絡(execution context)內僅需要一次,除非脈絡為對於兩管線皆發出命令。於一些實施例中,管線刷新命令912在經由管線選擇命令913的管線切換之前立即被需要。
於一些實施例中,管線控制命令914組構圖形 管線以用於操作且被使用以編程3D管線922與媒體管線924。於一些實施例中,管線控制命令914對於活動的管線組構管線。於一實施例中,管線控制命令914被使用於管線同步化及在處理批次的命令之前清除來自在活動的管線內之一或多個快取記憶體的資料。
於一些實施例中,用於返回緩衝器狀態916之命令被使用以對於個別的管線組構一組返回緩衝器以寫入資料。一些管線操作需要一或多個返回緩衝器(該等操作在處理期間寫入中間資料於其中)之分配、選擇、或組態。於一些實施例中,圖形處理器亦使用一或多個返回緩衝器以儲存輸出資料及執行於執行緒通訊中。於一些實施例中,返回緩衝器狀態916包括選擇返回緩衝器之尺寸與數量以使用於一組管線操作。
於命令序列中之其餘命令基於用於操作之活動的管線而不同。基於管線決定920,命令序列被訂製至3D管線922(開始於3D管線狀態930)、或媒體管線924(開始於媒體管線狀態940)。
用於3D管線狀態930之命令包括3D狀態設定命令以用於頂點緩衝器狀態、頂點元件狀態、恆定色彩狀態、深度緩衝器狀態、與在3D基元命令被處理之前被組構的其他狀態變數。這些命令的值至少部份基於使用中的特定3D API而被決定。於一些實施例中,3D管線狀態930命令亦能選擇地去能或略過特定管線元件(若那些元件將不會被使用)。
於一些實施例中,3D基元932命令被使用以提交3D基元來被3D管線處理。經由3D基元932命令被傳送至圖形處理器之命令與相關聯的參數被轉送至圖形管線中之頂點擷取功能。頂點擷取功能使用3D基元932命令資料以產生頂點資料結構。頂點資料結構被儲存於一或多個返回緩衝器中。於一些實施例中,3D基元932命令被使用以經由頂點著色器來執行頂點操作於3D基元上。要處理頂點著色器,3D管線922配送著色器執行緒至圖形處理器執行單元。
於一些實施例中,3D管線922經由執行934命令或事件被觸發。於一些實施例中,暫存器寫入觸發命令執行。於一些實施例中,執行係經由命令序列中之‘go’或‘kick’命令被觸發。於一實施例中,命令執行係使用管線同步化命令以透過圖形管線來刷新命令序列而被觸發。3D管線將對於3D基元執行幾何處理。一旦操作完成,所得幾何物件被光柵化且像素引擎對所得像素塗上顏色。至控制像素著色與像素後端操作之額外的命令亦可被包括用於那些操作。
於一些實施例中,當執行媒體操作時,圖形處理器命令序列910遵循媒體管線924路徑。通常,對於媒體管線924之編程的特定使用與方式依靠所執行的媒體或計算操作。特定媒體解碼操作可在媒體解碼期間被卸載至媒體管線。於一些實施例中,媒體管線亦可被略過且媒體解碼可使用藉由一或多個一般目的處理核心所提供的資源 而被整體或部份地執行。於一實施例中,媒體管線亦包括用於一般目的圖形處理器單元(GPGPU)操作之元件,於其中,圖形處理器被使用以使用計算的著色器程式(其沒有明確地有關於圖形基元之渲染)來執行SIMD向量操作。
於一些實施例中,媒體管線924以類似如3D管線922之方式被組構。一組媒體管線狀態命令940在媒體物件命令942之前被配送或置放於命令佇列。於一些實施例中,用於媒體管線狀態940之命令包括用以組構媒體管線元件(其將被使用以處理媒體物件)之資料。其包括用以組構在媒體管線內之視訊解碼與視訊編碼邏輯的資料,例如編碼或解碼格式。於一些實施例中,用於媒體管線狀態940之命令亦支援一或多個指標至含有批次的狀態設定之“間接”狀態元件的使用。
於一些實施例中,媒體物件命令942供應指標至媒體物件以藉由媒體管線來處理。媒體物件包括含有待處理之視訊資料的記憶體緩衝器。於一些實施例中,所有媒體管線狀態必須在發出媒體物件命令942之前為有效的(valid)。一旦管線狀態被組構且媒體物件命令942進入佇列,則媒體管線924經由執行命令944或等效的執行事件(例如,暫存器寫入)被觸發。來自媒體管線924之輸出可接著藉由3D管線922或媒體管線924所提供的操作被後處理。於一些實施例中,GPGPU操作以類似如媒體操作之方式被組構與執行。
圖形軟體架構
第10圖顯示根據一些實施例之用於資料處理系統1000的例示圖形軟體架構。於一些實施例中,軟體架構包括3D圖形應用1010、作業系統1020、與至少一處理器1030。於一些實施例中,處理器1030包括圖形處理器1032與一或多個一般目的處理器核心1034。圖形應用1010與作業系統1020各執行於資料處理系統之系統記憶體1050中。
於一些實施例中,3D圖形應用1010含有包括著色器指令1012之一或多個著色器程式。著色器語言指令可在高階著色器語言中,例如高階著色器語言(High Level Shader Language;HLSL)或OpenGL著色器語言(OpenGL Shader Language;GLSL)。應用亦包括適合藉由一般目的處理器核心1034來執行的機器語言中之可執行的指令1014。應用亦包括由頂點資料所界定的圖形物件1016。
於一些實施例中,作業系統1020為來自微軟公司之Microsoft® Windows®作業系統、所有權的(proprietary)類UNIX(UNIX-like)作業系統、或使用Linux內核(kernel)的變體之開源的(open source)類UNIX作業系統。作業系統1020可支援圖形API 1022,例如Direct3D API、OpenGL API、或Vulkan API。當Direct3D API在使用中時,作業系統1020使用前端著色器編譯器1024以將採HLSL之任何著色器指令1012編譯成較低階著色器語言。編譯可為即時(just-in-time;JIT)編譯或該應用可執行著色器預編譯(pre-compilation)。於一些實施例中,高階著色 器在3D圖形應用1010的編譯期間被編譯成低階著色器。於一些實施例中,著色器指令1012被提供為中間形式,例如藉由Vulkan API所使用的標準可攜式中間表示(Standard Portable Intermediate Representation;SPIR)之版本。
於一些實施例中,使用者模式圖形驅動器1026含有後端著色器編譯器1027以將著色器指令1012轉換成硬體特定表示。當OpenGL API在使用中時,採GLSL高階語言之著色器指令1012被傳送至使用者模式圖形驅動器1026以供編譯。於一些實施例中,使用者模式圖形驅動器1026使作業系統內核模式功能1028以與內核模式圖形驅動器1029通訊。於一些實施例中,內核模式圖形驅動器1029與圖形處理器1032通訊以配送命令與指令。
IP核心實現
至少一實施例一或多個態樣可藉由被儲存於機器可讀取媒體上之代表碼(representative code)被實現,其表示及/或界定在積體電路(例如處理器)內之邏輯。舉例來說,機器可讀取媒體可包括表示在處理器內之各種邏輯之指令。當藉由機器來讀取時,指令可造成機器製造邏輯以執行此處所述之技術。此表示(已知為「IP核心(IP core)」)為對於積體電路可再使用的邏輯之單元,其可被儲存於實體的(tangible)機器可讀取媒體作為硬體模型(其描述積體電路之結構)。硬體模型可被供應至各種顧客或製造設施,其載入硬體模型於製造機器(其製造積體電 路)。積體電路可被製造使得電路執行有關任何此處所述之實施例所述之操作。
第11圖為顯示根據實施例之IP核心開發系統1100的方塊圖,其可被使用以製造積體電路以執行操作。IP核心開發系統1100可被使用以產生模組化、可再使用的設計,其可被結合於較大設計中或被使用以建構整個積體電路(例如,SOC積體電路)。設計設施1130可產生採高階程式語言(例如,C/C++)之IP核心設計的軟體模擬1110。軟體模擬1110可被使用以使用模擬模型1112來設計、測試、與驗證IP核心之行為。模擬模型1112可包括功能的、行為的、及/或時序模擬。暫存器轉移層次(register transfer level;RTL)設計可接著被建立或從模擬模型1112合成。RTL設計1115為積體電路之行為的提取(abstraction),其模型化在硬體暫存器之間的數位訊號的流程,包括使用被模型化的數位訊號所執行之相關聯的邏輯。除了RTL設計1115以外,邏輯位準或電晶體位準之較低階設計亦可被建立、設計、或合成。因此,初始設計與模擬之特定細節可改變。
RTL設計1115或等效可被設計設施進一步合成為硬體模型1120,其可採硬體描述語言(hardware description language;HDL)、或實際設計資料之一些其他表示。HDL可被進一步模擬或測試以驗證IP核心設計。IP核心設計可使用非揮發性記憶體1140(例如,硬碟、快閃記憶體、或任何非揮發性儲存媒體)而被儲存以用於遞送 至3rd方製造設施1165。替代地,IP核心設計可透過有線連接1150或無線連接1160被傳送(例如,經由網際網路)。製造設施1165可接著製造至少部份基於IP核心設計之積體電路。根據此處所述之至少一實施例,所製造的積體電路可被組構以執行操作。
例示系統單晶片積體電路
第12-14圖顯示根據此處所述之各種實施例的可使用一或多個IP核心來製造之例示積體電路與相關聯的圖形處理器。除了所顯示者以外,其他邏輯與電路可被包括,包括額外的圖形處理器/核心、週邊介面控制器、或一般目的處理器核心。
第12圖為顯示根據實施例之可使用一或多個IP核心來製造的例示系統單晶片積體電路1200的方塊圖。例示積體電路1200包括一或多個應用程式處理器1205(例如,CPU)、至少一圖形處理器1210、且可額外地包括影像處理器1215及/或視訊處理器1220,其任一者可為來自相同或多個不同的設計設施之模組化IP核心。積體電路1200包括週邊或匯流排邏輯,包括USB控制器1225、UART控制器1230、SPI/SDIO控制器1235、與I2S/I2C控制器1240。此外,積體電路可包括耦接至高解析度多媒體介面(HDMI)控制器1250與行動產業處理器介面(mobile industry processor interface;MIPI)顯示介面1255中之一或多者的顯示裝置1245。儲存器可藉由快閃記憶體子系統 1260被提供,包括快閃記憶體及快閃記憶體控制器。記憶體介面可經由記憶體控制器1265被提供用於存取至SDRAM或SRAM記憶體裝置。一些積體電路額外地包括嵌入式安全引擎1270。
第13圖為顯示根據實施例之可使用一或多個IP核心來製造的系統單晶片積體電路之例示圖形處理器1310的方塊圖。圖形處理器1310可為第12圖之圖形處理器1210的變體。圖形處理器1310包括頂點處理器1305與一或多個分割塊處理器1315A-1315N。圖形處理器1310可經由分開的邏輯來執行不同的著色器程式,使得頂點處理器1305被最佳化以對於頂點著色器程式執行操作,而一或多個分割塊處理器1315A-1315N對於分割塊或像素著色器程式執行分割塊(例如,像素)著色操作。頂點處理器1305執行3D圖形管線之頂點處理階段且產生基元與頂點資料。分割塊處理器1315A-1315N使用藉由頂點處理器1305所產生之基元與頂點資料以產生圖框緩衝器(其被顯示於顯示裝置上)。於一實施例中,分割塊處理器1315A-1315N被最佳化以執行分割塊著色器程式(如於OpenGL API中所提供者),其可被使用以執行類似像素著色器程式(如於Direct 3D API中所提供者)的操作。
圖形處理器1310額外地包括一或多個記憶體管理單元(memory management unit;MMU)1320A-1320B、快取1325A-1325B、與電路互連1330A-1330B。一或多個MMU 1320A-1320B提供對於積體電路1300之用於 虛擬至實體位址映射,包括頂點處理器1305及/或分割塊處理器1315A-1315N,其可參照被儲存於記憶體中之頂點或影像/紋理資料(除了被儲存於一或多個快取1325A-1325B中之頂點或影像/紋理資料以外)。於一實施例中,一或多個MMU 1320A-1320B可與在系統內之其他MMU同步,包括與第12圖一或多個應用程式處理器1205、影像處理器1215、及/或視訊處理器1220相關聯的一或多個MMU,使得各處理器1205-1220可參與共用的或統一的虛擬記憶體系統。根據實施例,一或多個電路互連1330A-1330B賦能圖形處理器1310以經由SoC之內部匯流排或經由直接連接來介接(interface)在SoC內之其他IP核心。
第14圖為顯示根據實施例之可使用一或多個IP核心來製造的系統單晶片積體電路之額外例示圖形處理器1410的方塊圖。圖形處理器1410可為第12圖之圖形處理器1210的變體。圖形處理器1410包括第13圖的積體電路1300之一或多個MMU 1320A-1320B、快取1325A-1325B、與電路互連1330A-1330B。
圖形處理器1410包括一或多個著色器核心1415A-1415N,其提供用於統一的著色器核心架構,於其中單一核心或類型或核心可執行所有類型的可程式化著色器碼,包括頂點著色器、分割塊著色器、與計算著色器。所呈現的著色器核心之實際數量可隨實施例與實現來改變。此外,圖形處理器1410包括核心間(inter-core)任務管理器1405,其作用為執行緒配送器以配送執行緒至一或多 個著色器核心1415A-1415N及圖塊單元1418以對圖塊式渲染加速圖塊操作,於其中,用於場景之渲染操作於影像空間中被再細分,以例如利用在場景內之本地空間一致或最佳化內部快取之使用。
光柵化綜覽
此處所述之實施例提供利用階層式光柵化之最佳化的渲染技術。光柵化綜覽由第15-16圖提供。
第15圖為根據實施例之圖形渲染管線1500的方塊圖。於一實施例中,圖形渲染管線1500包括光柵化單元1502、深度測試單元1504、像素著色器單元1506、與輸出合併單元1510。光柵化單元1502可被組構以使用數個可用的光柵化演算法來將3D幾何基元(例如矩形、三角形、線條等等)轉換成分割塊。於一實施例中,階層式光柵化演算法被使用。深度測試單元1504可被使用以處理由光柵化單元1502所輸出之分割塊。於一實施例中,深度測試單元1504可為早期(early)深度測試單元。像素著色器單元1506基於輸入分割塊而產生像素且所得像素可在被寫入至渲染目標之前被發送至輸出合併單元1510。
第16圖為例示光柵化元件1600之顯示。三角形係被顯示,其由三個頂點(例如,頂點1605A-C)所界定。定界框(bounding box)1604可被描繪在三角形周圍且粗略的位準迭代器(level iterator)可透過從起始巨型跨度(megaspan)1606開始的像素之的連續的巨型跨度區塊(例 如,16x16區塊)而迭代。起始巨型跨度1606可包括四個超級跨度象限,包括起始超級跨度1608。區塊選擇邏輯可被組構以選擇起始巨型跨度1606或起始超級跨度1608之螢幕空間座標作為像素之初始區塊且邊緣測試邏輯可分析像素之初始區塊以決定像素之初始區塊的一組完全覆蓋的象限。
邊緣決定邏輯可額外地分析鄰近像素之初始區塊的像素之區塊(例如,鄰近巨型跨度)以決定是否鄰近像素的區塊為空的(void),意指所選擇之像素的區塊內沒有樣本在三角形內,表示所選擇之像素的區塊完全在三角形外部。完全在三角形外部之巨型跨度可被丟棄且進一步迭代不在那些區塊上執行。對於各部份地覆蓋的巨型跨度,額外的覆蓋檢查可被執行以決定於如第15圖中所示之超級跨度(例如,8x8)、跨度(span)(例如,4x4)、子跨度(subspan)(例如,2x2)、與像素位準之較精細的覆蓋之位準。
雖然此處之光柵化通常被描述於像素樣本位準,實施例亦支援多樣本抗混疊(multi-sample anti-aliasing;MSAA)(於其中,多個樣本位置被使用於各像素)。舉例來說,在4x MSAA被賦能之處,對於多邊形基元之螢幕覆蓋值可每個像素使用4個樣本點而被決定。然而,為了避免模糊實施例之細節,概念將在各像素的中心大致使用一個樣本點來描述。
交錯光柵化
此處所述之實施例提供用於多個基元之交錯光柵化。當對於虛擬實境系統處理第二基元時,交錯光柵化的使用可導致可觀的資料之再使用。涉及處理基元之典型的步驟為設定、剪裁、階層式光柵化與像素著色。如第16圖所示之階層式光柵化可被使用以決定哪個圖塊被基元覆蓋以在移動至下個基元之前將所覆蓋的圖塊著色。在VR的情形中,下個基元碰巧為相同基元,如從不同眼睛的視角來看。換句話說,圖塊光柵化交錯執行兩個基元之交錯的渲染,於一實施例中,其對於各眼睛被渲染成兩個圖框緩衝器、一個圖框緩衝器。
圖塊光柵化交錯增加由來自兩個基元之像素所完成的紋理存取之時間區域性。此處所提出的實施例處理被兩個基元之定界框的聯集以交錯方式覆蓋的圖塊。於一實施例中,在移動至下個圖塊之前,渲染邏輯對第一基元(例如對應至左眼)處理相同圖塊,之後跟著第二基元(例如對應至右眼)。交錯光柵化使用於來自第二基元之像素的紋理請求將導致快取命中為可能的(由於存取之時間區域性)。於一實施例中,脈絡切換邏輯被增強以賦能於正被渲染的兩個基元之間的細粒度(fine-grain)脈絡切換。
當執行交錯光柵化時,若對於兩顆眼睛三角形經受徹底地不同視角轉換,舉例來說,若基元非常接近眼睛,則其存取的紋理像素(texel)會不同,導致效能降級。為了避免效能降級,架構可在繼續前進至下一個之前 在基元之間的覆蓋之程度少於最佳者的事件中回落(fall back)以整體地處理一個基元。覆蓋的延伸可被決定為在螢幕空間中的兩個三角形之定界框的交集之區域與其聯集之區域的比率。當其中沒有覆蓋時,此比率為0.0。對於完全地覆蓋的三角形,比率為1.0。
第17圖為根據實施例之圖塊光柵化交錯1700的圖示。如第17圖所示,對於將被渲染的各基元P,基元可被渲染為從將被渲染的第一眼睛視野之視角的第一基元1706及為從第二眼睛視野之視角的第二基元1708。對於第一基元1706與第二基元1708之渲染目標的覆蓋係被顯示。
為了執行圖塊光柵化交錯1700,個別的基元之定界框係被決定。定界框包括用於第一基元1706之第一定界框1702與用於第二基元1708之第二定界框1704。第三定界框1701亦可被決定,其為第一定界框1702與第二定界框1704之聯集。
在第三定界框1701內之圖塊可被對著第一基元1706之邊緣(之後跟著第二基元1708之邊緣)橫越(traversed)與測試以決定哪個基元覆蓋圖塊。舉例來說,光柵化邏輯可被組構以對著第一基元1706與第二基元1708兩者而在移動至第二圖塊(1712)之前光柵化第一圖塊T1(1710)。在第三定界框1701內之所有圖塊可被光柵化。因此,一些圖塊(例如,TN 1714)可對著基元(例如,第一基元1706)被光柵化,即使對於第一基元1706圖塊在第一定界框1702外部可被決定。雖然此過度光柵化會導致過度 工作,於一實施例中,沒有可觀的電源或效能影響發生,除非很少或沒有覆蓋存在第一定界框1702與第二定界框1704之間。於覆蓋比率被決定為在臨界值以下之事件中,邏輯可回落至非交錯光柵化以避免處理大量之不必要的圖塊。
一旦對於圖塊之覆蓋測試被執行,圖塊可被像素著色器處理。若給定圖塊僅被一個基元覆蓋,則僅覆蓋的基元被渲染。若圖塊同時被基元覆蓋,則由第一基元所覆蓋的像素被著色,之後跟著由第二基元所覆蓋的像素。像素著色器可避免一次將兩個不同基元著色,其減少在像素著色器內之暫存器壓力。
於一實施例中,紋理快取效能可當著色時藉由來自兩個基元之交錯子圖塊、四字(quads)、或像素而被增加,其改良紋理存取一致,由於增加的存取之區域性,其導致效能之增加及電源消耗的減少。當被渲染的三角形為相對地小時,來自兩個三角形的交錯像素或四字之額外的好處被實現,由於SIMD利用對於較小的三角形可為較大,由於圖形架構能在單一SIMD批次中對多個三角形著色。然而,若來自不同基元之像素在SIMD批次中被分組在一起,則暫存器壓力增加(由於較大量的資料被處理)。因此,基於交錯圖塊或像素之間的選擇,在紋理快取效能與暫存器壓力之間有個權衡。
以下碼1與碼2顯示相較於由此處所述之實施例所提出的方法之與光柵化像素著色之舊有機制相關聯的 偽碼(pseudo code)。
碼1顯示舊有邏輯,其在處理第二基元的圖塊之前處理第一基元內之各圖塊。交錯圖塊光柵化被顯示於碼2。交錯圖塊光柵化邏輯處理在定界框內之圖塊,其為兩個基元之定界框的聯集。邏輯可對第一基元處理各圖塊,然後對第二基元。
使用圖塊交錯光柵化邏輯,當光柵化具有大三角形(與兩個眼睛點皆有段距離)的VR場景時,所消耗的紋理帶寬不應明顯地增加(由於藉由雙眼之交錯圖塊來實現之所增加的紋理快取使用)。
於一些實現中,大圖塊可減少藉由交錯所實現的時間一致改良,由於藉由較早像素所存取的紋理像素會被藉由較晚像素所存取的紋理像素從紋理快取中逐出。 於一實施例中,交錯可基於子圖塊而被執行,使得來自兩個圖塊之像素象限或像素被交錯。交錯於其中被完成之位準可依靠被光柵化的圖塊之尺寸、紋理快取之尺寸、過濾模式(異向性(anisotropic)較三線性(trilinear)需要更多紋理像素)、或紋理的數量及個別的紋理像素之每像素的位元深度。作為於一個SMID批次中之此交錯四字或像素的結果,於一實施例中,具有同時讀取與寫入至兩個渲染目標內的能力之下游硬體(例如,輸出合併單元1510)可被實現。替代地,輸出合併單元可被組構以將立體渲染目標之像素或像素群組交錯成交錯渲染目標,其可被使用以降低在輸出合併階段所需的帶寬之量。當兩個渲染目標含有相同基元之不同視野時,對於兩個交錯的像素之輸出色彩在色彩上有可能相同或類似。色彩壓縮邏輯可被使用以壓縮像素之色彩。當在壓縮的區域中之想訴的色彩為類似的時,色彩壓縮演算法之效能可明顯地增加。
交錯渲染目標
第18圖為根據實施例之交錯渲染目標1800的圖示。於先前實現中,對於第一眼睛視野之第一渲染目標1802可含有與第一基元1803相關聯的像素(a,b,c,d)。對於第二眼睛視野之第二渲染目標1804可含有與第二基元1805相關聯的像素(e,f,g,h)。然而,與第一基元1803相關聯的像素及與第二基元1805相關聯的像素僅為相同基元之不同視野且可具有類似的色彩資料。
於一實施例中,取代將像素寫入至分開的渲染目標內,交錯渲染目標1806或1808可被使用。水平交錯渲染目標1806可被使用或垂直交錯渲染目標1808可被使用,依照哪個交錯的方法產生被渲染的內容之類型的較佳壓縮。各交錯渲染目標1806與1808的大小大於原始渲染目標的大小,因為各交錯渲染目標1806、1808會從分開的渲染目標1802、1804儲存所有的像素資料。然而,交錯渲染目標1806或交錯渲染目標1808之任一者可能會展現較平滑的資料集至圖框緩衝器壓縮演算法,導致對於交錯資料之增加的壓縮比率。
於一實施例中,像素之區塊可被交錯,相對於個別的像素。舉例來說,若所得壓縮比率高於使用像素區塊交錯,或像素區塊交錯設計可使用較按像素交錯實現簡單的邏輯而被實現,2x2或4x2之像素的區塊可被選擇。
於一實施例中,當交錯渲染目標將被使用作為中間渲染目標時,一些邏輯可在那些表面被定界為將在後來的經過中被取樣與過濾的紋理之前解交錯(de-interleave)任何交錯的表面。解交錯中間渲染目標避免了解交錯方法之取樣器邏輯的需求。此外,若顯示邏輯不支援讀取交錯渲染目標,則被寫入至交錯渲染目標的表面可在表面被顯示管線消耗之前被解交錯。
第19圖為根據實施例之圖塊渲染交錯邏輯1900的流程圖。圖塊光柵化交錯邏輯1900可被圖形渲染管線(例如第15圖之圖形渲染管線1500)執行,其可被圖形處 理邏輯(例如第8圖之光柵/深度邏輯873)執行。圖塊光柵化交錯邏輯1900可被使用以對輸出至頭戴式顯示器的虛擬實境應用渲染立體場景。
於一實施例中,圖塊光柵化交錯邏輯1900可決定第三定界框,其為第一定界框與第二定界框之聯集,如1902所示。第一定界框可與第一基元相關聯,而第二定界框可與第二基元相關聯。
對於在第三定界框內之各圖塊,圖塊光柵化交錯邏輯1900可接著光柵化有關第一基元與第二基元之場景的區域。經光柵化的區域可為圖塊、或可為場景(例如像素四字)之子圖塊區域、或可為個別的像素。對於立體渲染VR場景,第一基元與第一眼睛相關聯,而第二基元與第二眼睛相關聯。光柵化包括對於VR場景內之圖塊決定基元覆蓋。
將圖塊或子圖塊區域對兩基元光柵化,圖塊光柵化交錯邏輯1900可接著對於各覆蓋的基元以像素著色器來處理覆蓋的區域。像素著色器可對於被兩基元覆蓋的區域處理兩基元、且可對於被單一基元所覆蓋的區域處理單一基元。當像素著色器處理被兩基元覆蓋的區域時,像素著色器將處理兩個基元(其為相同基元之不同視野),而非處理兩個獨立的基元。
一旦區域被像素著色器處理,舉例來說,圖塊光柵化交錯邏輯1900經由輸出合併單元(例如,第15圖之輸出合併1510)可輸出經處理的圖塊至渲染目標。於一 實施例中,輸出合併單元可被組構以同時地輸出至多個渲染目標。然而,一實施例對交錯渲染目標提供支援,使得對於VR場景之雙眼的輸出可在單一渲染目標內被交錯。圖塊光柵化交錯邏輯1900可決定是否輸出至交錯渲染目標,於1907。若邏輯被組構以輸出交錯渲染目標,則邏輯可輸出經處理的區域(例如,圖塊區域、子圖塊區域等等)至交錯渲染目標,如1908所示。交錯渲染目標可為水平交錯渲染目標(例如,第18圖之渲染目標1806)、或可為垂直交錯渲染目標(例如,第18圖之渲染目標1808)。於一實施例中,交錯與否的決定可依圖塊接著圖塊方式(tile-by-tile basis)完成,且一個位元可在圖塊壓縮元資料(metadata)內可被使用以表示圖塊被交錯或未被交錯。於一實施例中,基於用於經處理的區域的輸出色彩具有在臨界值之上的相似之決定來將渲染目標交錯的決定(於1907)可被執行,使得,舉例來說,被交錯渲染目標所消耗的空間之總量在壓縮之後會少於由分開地壓縮渲染目標所消耗的空間之總量。
於一實施例中,當經處理的區域輸出至交錯渲染目標為將被受限至被取樣與過濾的紋理之表面的部份時,若取樣器不支援來自交錯渲染目標的表面之取樣,則表面可在取樣之前被解交錯。此外,若顯示邏輯不支援讀取交錯渲染目標,則寫入至交錯渲染目標之表面可在表面被顯示管線消耗之前被解交錯。
於交錯像素在色彩上開始偏離之事件中,舉 例來說,對於映射太靠近世界空間中之眼睛的渲染目標區域,渲染邏輯可回落至非交錯的佈局。若交錯渲染目標被去能,則圖塊光柵化交錯邏輯1900可組構輸出邏輯以對於各眼睛回落至非交錯佈局且輸出經處理的區域至分開的渲染目標,如1910所示。
第20圖為根據實施例之交錯光柵化回落邏輯2000的流程圖。於一實施例中,交錯光柵化回落邏輯2000可被執行以決定是否效能會使用此處所述之交錯光柵化方法而被改良、或是否對於各眼睛視野之基元應被分開地光柵化。
交錯光柵化回落邏輯2000可被執行,舉例來說,在第三定界框被決定之後,如第19圖之方塊1902。於2004所示,交錯光柵化回落邏輯2000可決定定界框之交集的面積與第一定界框與第二定界框之聯集的面積之間的比率。此決定可被執行以避免效能降級,其會導致當於基元上執行交錯光柵化上時會沒有明顯的覆蓋。在覆蓋的程度在臨界值以下之事件中,架構可回落以在移動至下一個之前處理一整個基元。覆蓋的延伸可被決定為在螢幕空間中的兩個三角形之定界框的交集之區域與其聯集之區域的比率。當其中沒有覆蓋時,此比率為0.0。對於完全地覆蓋的三角形,比率為1.0。
於2005所示,邏輯可決定是否比率在臨界值之上,於其中,當執行交錯光柵化時效能可增加、及賦能交錯光柵化於2006。若比率在臨界值之下,則交錯光柵化 回落邏輯2000可去能交錯光柵化。
第21圖為根據實施例之包括圖形處理器2104的計算裝置2100之方塊圖。計算裝置2100可為例如於第1圖中之資料處理系統100的計算裝置。計算裝置2100亦可為或被包括於通訊裝置內,例如機上盒(例如,網際網路式有線電視機上盒等等)、全球定位系統(GPS)式裝置等等。計算裝置2100亦可或被包括於行動計算裝置內,例如蜂巢式電話、智慧型手機、個人數位助理(PDA)、平板電腦、膝上型電腦、電子閱讀器(e-reader)、智慧型電視、電視平台、可穿戴式裝置(例如,眼鏡、手錶、手鐲、智慧卡、珠寶、衣服物件等等)、媒體播放器等等。舉例來說,於一實施例中,計算裝置2100包括採用積體電路(“IC”)之行動計算裝置,例如系統單晶片(“SoC”或“SOC”),其整合計算裝置2100之各種硬體及/或軟體組件於單一晶片上。
計算裝置2100包括圖形處理器2104,其可為此處所述之任何圖形處理器。圖形處理器2104可包括交錯邏輯2124,其可被組構以經由在圖形處理器2104內之一或多個圖形引擎2154來對於虛擬實境與多視角渲染賦能交錯光柵化與像素著色。交錯的表面可在被一或多個紋理取樣器2144或顯示器引擎2134消耗之前被解交錯。快取記憶體2114(例如,L3快取、或其他類型的快取記憶體)亦可被包括於圖形處理器2104內。於一實施例中,快取記憶體2114為嵌入式記憶體模組,例如第2圖之嵌入式記憶體模組218。快取記憶體2114可被使用為共用記憶體,其可被交 錯邏輯2124、顯示器引擎2134、紋理取樣器2144、與圖形引擎2154存取。
圖形處理器2104亦包括一或多個顯示器引擎2134以耦接圖形處理器至顯示裝置。被圖形處理器2104處理之資料被儲存於在硬體圖形管線內之緩衝器中而狀態資訊被儲存於記憶體2108中。所得影像接著被轉換至顯示器引擎2134之顯示控制器而經由顯示裝置(例如第3圖之顯示裝置320)來輸出。顯示裝置可為各種類型,例如陰極射線管(CRT)、薄膜電晶體(TFT)、液晶顯示器(LCD)、有機發光二極體(OLED)陣列,且可被組構以將資訊顯示至使用者。
如圖所示,於一實施例中,除了圖形處理器2104以外,計算裝置2100可進一步包括任何數量與類型的硬體組件及/或軟體組件,例如(但不限於)應用程式處理器2106、記憶體2108、與輸入/輸出(I/O)來源2110。應用程式處理器2106可與硬體圖形管線互動(如參照第3圖所示)以共用圖形管線功能。應用程式處理器2106可包括一或多個處理器(例如第1圖之處理器102)且可為至少部份被使用以對於計算裝置2100執行作業系統(OS)2102之中央處理單元(CPU)。OS 2102可作為在電腦裝置2100之硬體及/或實體資源與使用者之間的介面。OS 2102可包括用於計算裝置2100中之各種硬體裝置的驅動器邏輯2122。驅動器邏輯2122可包括圖形驅動器邏輯2123,例如第10圖之使用者模式圖形驅動器1026及/或內核模式圖形驅動器1029。於一 實施例中,圖形驅動器邏輯2123包括用以賦能或去能此處所述之交錯光柵化與像素著色邏輯的邏輯。
於一些實施例中,圖形處理器2104可存在為部份的應用程式處理器2106(例如部份的實體CPU封裝),在此情形中,至少一部份的記憶體2108可被應用程式處理器2106與圖形處理器2104共用,雖然至少一部分的記憶體2108可為圖形處理器2104所獨佔、或圖形處理器2104可具有分開的記憶體之儲存。記憶體2108可包含緩衝器(例如,圖框緩衝器)之預先分配的區域;然而,所屬技術領域中具有通常知識者應了解的是,實施例並不以此為限,且可存取至較低圖形管線之任何記憶體可被使用。記憶體2108可包括包含使用圖形處理器2104來渲染桌面(desktop)或3D圖形場景的應用程式之各種形式的隨機存取記憶體(RAM)(例如,SDRAM、SRAM等等)。記憶體控制器集線器(例如第1圖之記憶體控制器集線器116)可存取資料於記憶體2108中且將其轉送至圖形處理器2104以用於圖形管線處理。記憶體2108可被製為對於在計算裝置2100內之其他組件為可用的。舉例來說,從計算裝置2100之各種I/O來源2110接收的任何資料(例如,輸入圖形資料)可在其在軟體程式或應用程式的實現中被一或多個處理器(例如,應用程式處理器2106)操作之前被暫時地於記憶體2108內排入佇列。同樣地,應透過計算系統介面中之一者從計算裝置2100被發送至外部實體、或被儲存於內部儲存器元件內的軟體程式決定之資料通常在其被傳送或儲存之前被暫時 地排入記憶體2108之佇列中。
I/O來源可包括例如觸碰螢幕、觸碰板、觸碰墊、虛擬或一般鍵盤、虛擬或一般滑鼠、接口、連接器、網路裝置、或諸如此類之裝置,且可經由輸入/輸出(I/O)控制集線器(ICH)130(如第1圖所示)來附接。此外,I/O來源2110可包括一或多個I/O裝置,其係被實現用於傳送資料至及/或從計算裝置2100(例如,網路配接器);或用於在計算裝置2100內之大規模非揮發性儲存器(例如,硬碟機)。使用者輸入裝置(包括文數與其他鍵)可被使用以將資訊與命令選擇與圖形處理器2104通訊。另一類型的使用者輸入裝置為游標控制(例如滑鼠、軌跡球、觸碰螢幕、觸碰墊、或游標方向鍵)以將方向資訊及命令與GPU通訊及於顯示裝置上控制游標移動。電腦裝置2100之相機與麥克風陣列可被利用以觀察手勢、記錄音訊與視訊、及接收與傳送視覺與音訊命令。
經組構為一或多個網路介面之I/O來源2110可提供至網路的存取,例如LAN、廣域網路(WAN)、都會網路(MAN)、個人區域網路(PAN)、藍牙、雲端網路、蜂巢式或行動網路(例如,3rd代(3G)、4th代(4G)等等)、內部網路、網際網路等等。網路介面可包括,舉例來說,具有一或多個天線之無線網路介面。網路介面亦可包括,舉例來說,有線網路介面以經由網路電纜與遠端裝置通訊,其可為例如乙太網路電纜、同軸電纜、光纖電纜、序列電纜(serial cable)、或平行電纜(parallel cable)。
網路介面可提供至LAN(例如藉由遵照IEEE 802.11標準)之存取、及/或無線網路介面可提供存取至個人區域網路(例如藉由遵照藍牙標準)。其他無線網路介面及/或協定(包括之前的與之後之版本的標準)亦可被支援。除了經由無線LAN標準之通訊之外(或取而代之),網路介面可提供使用例如分時多重存取(TDMA)協定、全球行動通訊系統(GSM)協定、碼分多重存取(CDMA)協定、及/或任何其他類型的無線通訊協定之無線通訊。
應了解的是,採用較以上所述範例少或多裝備的系統對於特定實現為較佳。因此,計算裝置2100之組態可根據許多因素,例如價格限制、效能需求、技術改良、或其他情形隨著實現而改變。範例包括(但不限於)行動裝置、個人數位助理、行動計算裝置、智慧型手機、蜂巢式電話、手機(handset)、單向呼叫器、雙向呼叫器、傳訊裝置、電腦、個人電腦(PC)、桌上型電腦、膝上型電腦、筆記型電腦、手持式電腦、平板電腦、伺服器、伺服器陣列或伺服器場、網頁伺服器、網路伺服器、網際網路伺服器、工作站、迷你電腦、大型電腦、超級電腦、網路設備、網頁設備、分散式計算系統、多處理器系統、處理器式系統、消費性電子產品、可程式化消費性電子產品、電視、數位電視、機上盒、無線存取點、基地台、用戶站、行動用戶中心、無線電網路控制器、路由器、集線器、閘道器、橋接器、交換器、機器、或其組合。
實施例可被實現為以下之任一者或組合:使 用雙親板(parent-board)來互連的一或多個微晶片或積體電路、硬線邏輯、藉由記憶體裝置及藉由微處理器來執行來儲存之軟體、韌體、特定應用積體電路(ASIC)、及/或場可程式化閘極陣列(FPGA)。用語「邏輯(logic)」可包括例如軟體或硬體及/或軟體與硬體之組。
實施例可被提供為例如電腦程式產品,其可包括具有機器可執行的指令儲存於其中之一或多個機器可讀取媒體,當機器可執行的指令被一或多個機器(例如電腦、電腦的網路、或其它電子裝置)執行時,會造成一或多個機器實行根據此處所述之實施例的操作。機器可讀取媒體可包括(但不限於)軟碟、光碟、光碟唯讀記憶體(Compact Disc-Read Only Memories;CD-ROM)、與磁光碟、ROM、RAM、可抹除可程式化唯讀記憶體(Erasable Programmable Read Only Memories;EPROM)、電性可抹除可程式化唯讀記憶體(Electrically Erasable Programmable Read Only Memories;EEPROM)、磁或光卡、快閃記憶體、或適於儲存機器可執行的指令之其他類型的媒體/機器可讀取媒體。
再者,實施例可被下載為電腦程式產品,其中程式可經由通訊鏈結(例如,數據機及/或網路連接)藉由體現載波或傳播媒體及/或藉由載波或傳播媒體來調變之一或多個資料訊號從遠端電腦(例如,伺服器)傳送至請求電腦(例如,用戶)。
以下子句(clauses)及/或範例涉及特定實施例 或其範例。範例中之特性可被使用於一或多個實施例中。不同實施例或範例之各種特徵可被多方面地與所包含的及所排除的一些特徵結合以符合各種各樣的不同應用。範例可包括標的,例如方法、用以執行方法的動作之手段、包括當被機器執行時會造成機器執行方法之動作的指令之至少一機器可讀取媒體、或根據此處所述之實施例與範例的裝置或系統。各種組件可為用以執行所述操作或功能之手段。
一個實施例提供一種圖形處理設備,包含:第一邏輯,用以將與多個交錯基元相關聯的像素區域光柵化;第二邏輯,用以對藉由該多個交錯基元中之一或多者所覆蓋的像素區域著色;及第三邏輯,用以將該第二邏輯對於該多個交錯基元之輸出交錯成單一渲染目標,該單一渲染目標包括與該多個交錯基元相關聯的輸出。
一個實施例提供一種資料處理系統,包含:記憶體,用以儲存交錯渲染目標,該交錯渲染目標用以儲存對於與多視角場景相關聯的多個基元之像素資料;及圖形處理設備,包括第一邏輯,用以將與該多視角場景之多個交錯基元相關聯的像素區域光柵化;第二邏輯,用以對藉由該多個交錯基元中之一或多者所覆蓋的像素區域著色;及第三邏輯,用以將該第二邏輯對於該多個交錯基元之輸出交錯成交錯渲染目標。
一個實施例提供一種光柵化藉由多個交錯基元所覆蓋的像素區域之方法,該方法包含:決定第三定界 框,其為第一定界框與第二定界框之聯集,該第一定界框與該多個交錯基元之第一基元相關聯且該第二定界框與該多個交錯基元之第二基元相關聯;對於在該第三定界框內之各像素區域,將有關該第一基元與該第二基元之場景區域光柵化;及其中將該場景區域光柵化決定對於有關該像素區域之場景區域的像素覆蓋。
所屬技術領域中具有通常知識者將從前述說明了解到實施例之廣大技術可依各種各樣的形式來實現。因此,雖然實施例已關於其特定範例來說明,實施例之真實範疇不應被限制,由於其他修改將對於熟練之從業者在研究圖式、說明書、及所附申請專利範圍後變得淺顯易懂。
100‧‧‧處理系統
102‧‧‧處理器
104‧‧‧快取記憶體
106‧‧‧暫存器檔案
107‧‧‧處理器核心
108‧‧‧圖形處理器
109‧‧‧指令集
110‧‧‧處理器匯流排
112‧‧‧圖形處理器
116‧‧‧記憶體控制器集線器
120‧‧‧記憶體裝置
121‧‧‧指令
122‧‧‧資料
124‧‧‧資料儲存裝置
126‧‧‧無線收發器
128‧‧‧韌體介面
130‧‧‧I/O控制集線器
134‧‧‧網路控制器
140‧‧‧I/O控制器
142‧‧‧通用串列匯流排(USB)控制器
144‧‧‧鍵盤與滑鼠
146‧‧‧音訊控制器

Claims (20)

  1. 一種圖形處理設備,包含:第一邏輯,用以將與多個交錯基元相關聯的像素區域光柵化;第二邏輯,用以對藉由該多個交錯基元中之一或多者所覆蓋的像素區域著色;及第三邏輯,用以將該第二邏輯對於該多個交錯基元之輸出交錯成單一渲染目標,該單一渲染目標包括與該多個交錯基元相關聯的輸出。
  2. 如申請專利範圍第1項之圖形處理設備,該多個交錯基元包括與立體場景之第一視角相關聯的第一基元及與該立體場景之第二視角相關聯的第二基元,該立體場景係經由頭戴式顯示器來顯示。
  3. 如申請專利範圍第2項之圖形處理設備,其中用以將藉由該多個交錯基元所覆蓋的像素區域光柵化之第一邏輯係用以決定該多個交錯基元中之一或多者是否覆蓋該像素區域。
  4. 如申請專利範圍第3項之圖形處理設備,其中該第一邏輯係用以在決定對於該多個交錯基元中之各者的第二像素區域的覆蓋之前決定對於該多個交錯基元中之各者的第 一像素區域的覆蓋。
  5. 如申請專利範圍第3項之圖形處理設備,其中用以將藉由該多個交錯基元所覆蓋的像素區域光柵化之該第一邏輯係用以:決定第三定界框,其為第一定界框與第二定界框之聯集,該第一定界框與該多個交錯基元之第一基元相關聯且該第二定界框與該多個交錯基元之第二基元相關聯;及對於在該第三定界框內之各像素區域,將有關該第一基元與該第二基元之場景區域光柵化,其中將該場景區域光柵化包括決定對於有關該像素區域之場景區域的像素覆蓋。
  6. 如申請專利範圍第5項之圖形處理設備,其中該像素區域為圖塊像素區域且該第一邏輯包括圖塊式光柵器。
  7. 如申請專利範圍第5項之圖形處理設備,其中該場景區域為圖塊像素區域或子圖塊像素區域中之一者。
  8. 如申請專利範圍第7項之圖形處理設備,其中該場景區域為子圖塊像素區域且該第一邏輯係用以決定對於與該子圖塊像素區域有關的場景之像素覆蓋。
  9. 如申請專利範圍第8項之圖形處理設備,其中用以決 定對於與該子圖塊像素區域有關的該場景之像素覆蓋包括用以決定用於該第一基元的第一子圖塊像素區域之像素覆蓋及用以在用於第二子圖塊像素區域之像素覆蓋被決定之前決定用於該第二基元用於第二子圖塊像素區域之像素覆蓋。
  10. 如申請專利範圍第1項之圖形處理設備,因應對於該多個基元中之各者的該第二邏輯之輸出具有大於臨界值的相似性之決定,該第三邏輯用以將對於該多個交錯基元之該第二邏輯的輸出交錯成該單一渲染目標。
  11. 如申請專利範圍第1項之圖形處理設備,額外地包括第四邏輯,用以壓縮被寫入至該單一渲染目標之輸出。
  12. 一種資料處理系統,包含:記憶體,用以儲存交錯渲染目標,該交錯渲染目標用以儲存對於與多視角場景相關聯的多個基元之像素資料;及圖形處理設備,包括第一邏輯,用以將與該多視角場景之多個交錯基元相關聯的像素區域光柵化;第二邏輯,用以對藉由該多個交錯基元中之一或多者所覆蓋的像素區域著色;及第三邏輯,用以將該第二邏輯對於該多個交錯基元之輸出交錯成交錯渲染目標。
  13. 如申請專利範圍第12項之資料處理系統,其中該交錯渲染目標係依水平交錯方式來儲存像素資料。
  14. 如申請專利範圍第12項之資料處理系統,其中該交錯渲染目標係依垂直交錯方式來儲存像素資料。
  15. 如申請專利範圍第12項之資料處理系統,其中用以將藉由該多個交錯基元所覆蓋的像素區域光柵化之第一邏輯係用以:決定第三定界框,其為第一定界框與第二定界框之聯集,該第一定界框與該多個交錯基元之第一基元相關聯且該第二定界框與該多個交錯基元之第二基元相關聯;及對於在該第三定界框內之各像素區域,將有關該第一基元與該第二基元之場景區域光柵化,其中將該場景區域光柵化包括決定對於有關該像素區域之場景區域的像素覆蓋。
  16. 如申請專利範圍第15項之資料處理系統,該第一邏輯進一步用以決定該第三定界框之交集的區域對於該第一定界框與該第二定界框之交集的區域之比率及因應該比率在臨界值以下的決定而使交錯光柵化無效。
  17. 一種光柵化藉由多個交錯基元所覆蓋的像素區域之方法,該方法包含: 決定第三定界框,其為第一定界框與第二定界框之聯集,該第一定界框與該多個交錯基元之第一基元相關聯且該第二定界框與該多個交錯基元之第二基元相關聯;對於在該第三定界框內之各像素區域,將有關該第一基元與該第二基元之場景區域光柵化;及其中將該場景區域光柵化決定對於有關該像素區域之場景區域的像素覆蓋。
  18. 如申請專利範圍第17項之方法,其中該場景區域為圖塊像素區域或子圖塊像素區域中之一者。
  19. 如申請專利範圍第18項之方法,其中該場景區域為子圖塊像素區域且該方法額外地包含決定對於與該子圖塊像素區域有關的場景之像素覆蓋。
  20. 如申請專利範圍第19項之方法,其中決定對於與該子圖塊像素區域有關的場景之像素覆蓋包括決定用於該第一基元的第一子圖塊像素區域之像素覆蓋及決定用於第二子圖塊像素區域之像素覆蓋之前決定用於該第二基元的第二子圖塊像素區域之像素覆蓋。
TW106116491A 2016-06-28 2017-05-18 用於虛擬實境和多視角系統之交錯光柵化和像素著色的架構 TWI733808B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/195,005 US10636110B2 (en) 2016-06-28 2016-06-28 Architecture for interleaved rasterization and pixel shading for virtual reality and multi-view systems
US15/195,005 2016-06-28

Publications (2)

Publication Number Publication Date
TW201810179A true TW201810179A (zh) 2018-03-16
TWI733808B TWI733808B (zh) 2021-07-21

Family

ID=60676986

Family Applications (1)

Application Number Title Priority Date Filing Date
TW106116491A TWI733808B (zh) 2016-06-28 2017-05-18 用於虛擬實境和多視角系統之交錯光柵化和像素著色的架構

Country Status (4)

Country Link
US (1) US10636110B2 (zh)
CN (1) CN109196550B (zh)
TW (1) TWI733808B (zh)
WO (1) WO2018004860A1 (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10460513B2 (en) 2016-09-22 2019-10-29 Advanced Micro Devices, Inc. Combined world-space pipeline shader stages
US10664942B2 (en) * 2016-10-21 2020-05-26 Advanced Micro Devices, Inc. Reconfigurable virtual graphics and compute processor pipeline
CN108520490B (zh) * 2018-04-17 2023-04-14 长沙景美集成电路设计有限公司 基于gpgpu中的2d桌面光栅化操作的实现
CN115379185B (zh) * 2018-08-09 2024-04-02 辉达公司 使用可变速率着色的运动自适应渲染
US10916052B2 (en) 2019-04-26 2021-02-09 Intel Corporation Dynamically enabling tiling in 3D workloads
CN112162640B (zh) * 2020-10-13 2022-10-25 深圳晶泰科技有限公司 晶体显示方法及系统
CN115841433B (zh) * 2023-02-20 2023-05-09 摩尔线程智能科技(北京)有限责任公司 基于图块的光栅化方法和设备、图像渲染方法和设备

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5388206A (en) * 1992-11-13 1995-02-07 The University Of North Carolina Architecture and apparatus for image generation
EP1960968A4 (en) 2005-12-01 2016-06-29 Intel Corp INFOGRAPHIC PROCESSOR AND THREE-DIMENSIONAL IMAGE RENDERING METHOD ON DISPLAY SCREEN
US7728841B1 (en) * 2005-12-19 2010-06-01 Nvidia Corporation Coherent shader output for multiple targets
US7697751B2 (en) * 2005-12-29 2010-04-13 Graphics Properties Holdings, Inc. Use of ray tracing for generating images for auto-stereo displays
GB0922126D0 (en) 2009-12-17 2010-02-03 Advanced Risc Mach Ltd Graphics processing systems
CN101826215B (zh) * 2010-04-19 2012-05-09 浙江大学 实时二级光线跟踪的并行渲染方法
US9946076B2 (en) * 2010-10-04 2018-04-17 Gerard Dirk Smits System and method for 3-D projection and enhancements for interactivity
GB2534504B (en) * 2011-03-11 2016-12-28 Snell Ltd Analysis of stereoscopic images
US9196083B2 (en) * 2012-01-16 2015-11-24 Intel Corporation Time-continuous collision detection using 3D rasterization
US9495781B2 (en) 2012-06-21 2016-11-15 Nvidia Corporation Early sample evaluation during coarse rasterization
US9652815B2 (en) 2012-09-11 2017-05-16 Nvidia Corporation Texel data structure for graphics processing unit programmable shader and method of operation thereof
US9165399B2 (en) * 2012-11-01 2015-10-20 Nvidia Corporation System, method, and computer program product for inputting modified coverage data into a pixel shader
US10284908B2 (en) * 2013-02-26 2019-05-07 Comcast Cable Communications, Llc Providing multiple data transmissions
US9947084B2 (en) * 2013-03-08 2018-04-17 Nvidia Corporation Multiresolution consistent rasterization
US9953455B2 (en) * 2013-03-13 2018-04-24 Nvidia Corporation Handling post-Z coverage data in raster operations
US20140375663A1 (en) 2013-06-24 2014-12-25 Alexander Pfaffe Interleaved tiled rendering of stereoscopic scenes
JP6232994B2 (ja) * 2013-12-16 2017-11-22 ソニー株式会社 画像処理装置、および画像処理方法、並びにプログラム
CN103700134A (zh) * 2013-12-24 2014-04-02 四川川大智胜软件股份有限公司 基于可控制纹理烘焙的三维矢量模型实时光影延迟着色渲染方法
US20160093069A1 (en) * 2014-09-26 2016-03-31 Subramaniam Maiyuran Method and apparatus for pixel hashing
US10410081B2 (en) * 2014-12-23 2019-09-10 Intel Corporation Method and apparatus for a high throughput rasterizer
US20170085964A1 (en) * 2015-09-17 2017-03-23 Lens Entertainment PTY. LTD. Interactive Object Placement in Virtual Reality Videos

Also Published As

Publication number Publication date
CN109196550A (zh) 2019-01-11
CN109196550B (zh) 2024-03-15
TWI733808B (zh) 2021-07-21
WO2018004860A1 (en) 2018-01-04
US10636110B2 (en) 2020-04-28
US20170372519A1 (en) 2017-12-28

Similar Documents

Publication Publication Date Title
US10497173B2 (en) Apparatus and method for hierarchical adaptive tessellation
US9916682B2 (en) Variable precision shading
US11010858B2 (en) Mechanism to accelerate graphics workloads in a multi-core computing architecture
CN110136223B (zh) 使用三角形的属性的加权平均来合并粗像素着色的片段
TWI733808B (zh) 用於虛擬實境和多視角系統之交錯光柵化和像素著色的架構
US10636112B2 (en) Graphics processor register data re-use mechanism
US20180005345A1 (en) Reducing memory latency in graphics operations
US20170140570A1 (en) Facilitating efficeint centralized rendering of viewpoint-agnostic graphics workloads at computing devices
US20160379400A1 (en) Three-Dimensional Renderer
WO2018052613A1 (en) Varying image quality rendering in a sort middle architecture
CN109844802B (zh) 用于在图形处理器中提高线程并行性的机制
US10037625B2 (en) Load-balanced tessellation distribution for parallel architectures
WO2017172032A1 (en) System and method of caching for pixel synchronization-based graphics techniques
US9633452B2 (en) Resolving multi-sampled anti-aliasing buffers into single sampled buffers
US11150943B2 (en) Enabling a single context hardware system to operate as a multi-context system
US10269154B2 (en) Rasterization based on partial spans
US20190228511A1 (en) Tone-mapping high dynamic range images
US10332278B2 (en) Multi-format range detect YCoCg compression
US10599582B2 (en) Using a virtual to virtual address table for memory compression
US20180174350A1 (en) Single input multiple data processing mechanism
US20180286022A1 (en) Barreling and compositing of images