TWI601096B - 用於細分表面的直接和互動式射線追蹤之方法及設備 - Google Patents
用於細分表面的直接和互動式射線追蹤之方法及設備 Download PDFInfo
- Publication number
- TWI601096B TWI601096B TW105100044A TW105100044A TWI601096B TW I601096 B TWI601096 B TW I601096B TW 105100044 A TW105100044 A TW 105100044A TW 105100044 A TW105100044 A TW 105100044A TW I601096 B TWI601096 B TW I601096B
- Authority
- TW
- Taiwan
- Prior art keywords
- patch
- type
- face
- ray
- pipeline
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/06—Ray-tracing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
- G06T15/80—Shading
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Graphics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Image Generation (AREA)
Description
本發明大體係關於電腦處理器之領域。更特定言之,本發明係關於用於細分表面之直接及互動式射線追蹤的設備及方法。
細分表面廣泛地採用於數位內容產生(DCC)產業中,此係因為其為平滑的,其支援任意拓撲,且其可有效地變形。簡要地,細分表面技術用以經由較粗糙之多邊形網格的規範表示平滑表面。平滑表面可使用遞迴處理程序自粗糙的多邊形網格計算,該遞迴處理程序將每一多邊形面細分為更準確地近似平滑表面的較小面。
在基於光柵化之轉譯系統(例如,REYES或轉譯你所看見之所有內容(Renders Everything You Ever Saw))中,細分表面通常鑲嵌為三角形,且三角形立即光柵化為圖框緩衝器。經鑲嵌網格在光柵化之後無需處於記憶體中。對比而言,在基於射線追蹤之轉譯系統(例如,MCRT或蒙特卡羅射線追蹤(Monte Carlo Ray Tracing))中,整個經鑲嵌網
格在轉譯完成之前需要處於記憶體中,此係因為射線可在任何時間在任何方向上碰撞網格。因此,針對使用射線追蹤之產生轉譯器,針對經鑲嵌網格所需之記憶體可容易地超過現代電腦系統的容量。
鑲嵌通常在攝影機空間中完成,使得接近攝影機之表面應被精細地鑲嵌,且遠離攝影機的表面應被粗糙地鑲嵌。視野相依性鑲嵌意味鑲嵌需要在每次攝影機移動時進行,即使細分表面不改變亦如此。針對射線追蹤系統,此亦導致重建置包圍體階層(BVH)。
依據本發明之一實施例,係特地提出一種用於執行射線追蹤之設備,其包含:特徵適應細分邏輯,其分析一細分表面上之面且回應地識別該等面為一第一類型或一第二類型;該特徵適應細分邏輯向該第一類型之面使用處理技術的一第一集合以產生一第一面片類型,且向該第二類型之面使用處理技術的一第二集合以產生一第二面片類型;及射線相交判定邏輯,其判定一射線與該第一面片類型及該第二面片類型之面片中之每一者之間的一交點。
100‧‧‧處理系統/資料處理系統
102、200、1030‧‧‧處理器
104‧‧‧快取記憶體
106‧‧‧暫存器檔案
107、202A、202N‧‧‧處理器核心
108、300、500、800、1032、1210‧‧‧圖形處理器
109‧‧‧指令集
110‧‧‧處理器匯流排
112‧‧‧外部圖形處理器
116‧‧‧記憶體控制器中樞
120‧‧‧記憶體裝置
121‧‧‧指令
122‧‧‧資料
124‧‧‧資料儲存裝置
126‧‧‧無線收發器
128‧‧‧韌體介面
130‧‧‧輸入輸出(I/O)控制器中樞
134‧‧‧網路控制器
140‧‧‧舊版I/O控制器
142‧‧‧通用串列匯流排(USB)控制器
144‧‧‧鍵盤及滑鼠
146‧‧‧音訊控制器
204A、204N‧‧‧內部快取記憶體單元
206‧‧‧共用快取單元/共用快取記憶體單元
208‧‧‧整合式圖形處理器
210‧‧‧系統代理器核心
211、302、843‧‧‧顯示控制器
212‧‧‧基於環之互連單元/環形互連體
213‧‧‧I/O鏈路
214‧‧‧整合式記憶體控制器
216‧‧‧匯流排控制器單元
218‧‧‧高效能嵌入式記憶體模組
304‧‧‧區塊影像傳送(BLIT)引擎
306‧‧‧視訊編解碼器引擎
310、410‧‧‧圖形處理引擎(GPE)
312、412、922‧‧‧3D管線
314‧‧‧記憶體介面
315‧‧‧3D/媒體子系統
316、416、830、924‧‧‧媒體管線
320、1245‧‧‧顯示裝置
403、503、803‧‧‧命令流轉化器
414‧‧‧執行單元陣列
430‧‧‧取樣引擎
432‧‧‧解雜訊/解交錯模組
434‧‧‧運動估計模組/運動估計引擎
436‧‧‧影像縮放及濾波模組
444、614、856‧‧‧資料埠
502、802‧‧‧環形互連體
504‧‧‧管線前端
530‧‧‧視訊品質引擎(VQE)
533‧‧‧多格式編碼/解碼(MFX)
534、834‧‧‧視訊前端
536‧‧‧幾何管線
537、837‧‧‧媒體引擎
550A、550N、560A、560N‧‧‧子核心
552A、552N、562A、562N、852A、852B‧‧‧執行單元
554A、554N‧‧‧媒體/紋理取樣器
564A、564N、610‧‧‧取樣器
570A、570N‧‧‧共用資源
580A、580N‧‧‧圖形核心/模組化核心
600、850‧‧‧執行緒執行邏輯
602‧‧‧像素著色器
604、831‧‧‧執行緒調度器
606‧‧‧指令快取記憶體
608A、608B、608C、608D、608N-1、608N‧‧‧執行單元/執行單元陣列
612‧‧‧資料快取記憶體
700‧‧‧圖形處理器指令格式
710‧‧‧128位元格式/指令
712‧‧‧指令運算碼
713‧‧‧索引欄位
714‧‧‧指令控制欄位
716‧‧‧執行大小欄位
718‧‧‧目的地
720‧‧‧src0
722‧‧‧src1
724‧‧‧SRC2
726‧‧‧存取/位址模式資訊//存取/位址模式欄位
730‧‧‧64位元緊密指令格式
740‧‧‧運算碼解碼
742‧‧‧移動及邏輯運算碼群組
744‧‧‧流量控制指令群組
746‧‧‧雜項指令群組
748‧‧‧並行數學指令群組
750‧‧‧向量數學群組
805‧‧‧頂點提取器
807‧‧‧頂點著色器
811‧‧‧可規劃外殼著色器/鑲嵌組件
813‧‧‧鑲嵌器/鑲嵌組件
817‧‧‧可規劃域著色器/鑲嵌組件
819‧‧‧幾何著色器
820‧‧‧圖形管線
823‧‧‧串流輸出單元
829‧‧‧裁剪器
840‧‧‧顯示引擎
841‧‧‧2D引擎
851‧‧‧L1快取記憶體
854‧‧‧紋理及媒體取樣器
858‧‧‧紋理/取樣器快取記憶體
870‧‧‧轉譯輸出管線
873‧‧‧光柵化器/深度//光柵化器及深度測試組件
875‧‧‧共用L3快取記憶體
877‧‧‧像素操作組件
878‧‧‧轉譯快取記憶體
879‧‧‧深度快取記憶體
900‧‧‧圖形處理器命令格式
902‧‧‧目標用戶端
904‧‧‧命令操作碼(運算碼)
905‧‧‧子運算碼
906‧‧‧資料/資料欄位
908‧‧‧命令大小
910‧‧‧圖形處理器命令序列
912‧‧‧管線排清命令
913‧‧‧管線選擇命令
914‧‧‧管線控制命令
916‧‧‧回覆緩衝器狀態命令
920‧‧‧管線判定
930‧‧‧3D管線狀態
932‧‧‧3D基元
934‧‧‧執行
940‧‧‧媒體管線狀態/媒體管線狀態命令
942‧‧‧媒體物件命令
944‧‧‧執行命令
1000‧‧‧資料處理系統
1010‧‧‧3D圖形應用程式
1012‧‧‧著色器指令
1014‧‧‧可執行指令
1016‧‧‧圖形物件
1020‧‧‧作業系統
1024‧‧‧前端著色器編譯器
1026‧‧‧使用者模式圖形驅動器
1027‧‧‧後端著色器編譯器
1028‧‧‧作業系統內核模式功能
1029‧‧‧內核模式圖形驅動器
1034‧‧‧通用處理器核心
1050‧‧‧系統記憶體
1100‧‧‧IP核心開發系統/模擬模型
1110‧‧‧軟體模擬
1115‧‧‧RTL設計
1120‧‧‧硬體模型
1130‧‧‧設計設施
1140‧‧‧非依電性記憶體
1150‧‧‧有線連接
1160‧‧‧無線連接
1165‧‧‧第三方製造設施
1200‧‧‧系統單晶片積體電路
1205‧‧‧應用程式處理器
1215‧‧‧影像處理器
1220‧‧‧視訊處理器
1225‧‧‧USB控制器
1230‧‧‧UART控制器
1235‧‧‧SPI/SDIO控制器
1240‧‧‧I2S/I2C控制器
1250‧‧‧高清晰度多媒體介面(HDMI)控制器
1255‧‧‧行動產業處理器介面(MIPI)顯示介面
1260‧‧‧快閃記憶體子系統
1265‧‧‧記憶體控制器
1270‧‧‧嵌入式安全引擎
1300‧‧‧射線追蹤邏輯/電路
1301‧‧‧特徵適應細分邏輯
1302‧‧‧射線相交判定邏輯
1305‧‧‧細分表面
1306‧‧‧雙立方貝齊爾面片
1307‧‧‧格里哥利面片
1308‧‧‧射線相交資料
1309‧‧‧交點
1370‧‧‧圖形轉譯引擎
1400‧‧‧面片
1701~1707‧‧‧步驟
可自以下詳細描述結合以下圖式來獲得對本發明的更好理解,其中:圖1為具有處理器之電腦系統之實施例的方塊圖,該處理器具有一或多個處理器核心及圖形處理器;
圖2為具有一或多個處理器核心、整合式記憶體控制器及整合式圖形處理器之處理器之一實施例的方塊圖;圖3為可為謹慎圖形處理單元或可為與多個處理核心整合之圖形處理器的圖形處理器之一實施例的方塊圖;圖4為用於圖形處理器之圖形處理引擎之實施例的方塊圖;圖5為圖形處理器之另一實施例的方塊圖;圖6為包括一陣列之處理元件的執行緒執行邏輯之方塊圖;圖7例示根據實施例之圖形處理器執行單元指令格式;圖8為包括圖形管線、媒體管線、顯示引擎、執行緒執行邏輯及轉譯輸出管線之圖形處理器之另一實施例的方塊圖;圖9A為例示根據實施例之圖形處理器命令格式的方塊圖;圖9B為例示根據實施例之圖形處理器命令序列的方塊圖;圖10例示根據實施例之用於資料處理系統的示範性圖形軟體架構;圖11例示根據實施例之可用以製造積體電路以執行操作的示範性IP核心開發系統;圖12例示根據實施例之可使用一或多個IP核心製造的示範性系統單晶片積體電路;圖13例示用於實施本發明之一實施例的在轉譯引擎內包括射線追蹤邏輯及電路之示範性圖形處理器架構;圖14例示圍繞一組控制頂點所界定的示範性環;圖15A至圖15B例示包括三維空間中之表面及射線(15A)及對應的投射表面(15B)之貝齊爾表面的投影;圖16例示具有20個控制頂點之示範性格里哥利面片;及
圖17例示根據本發明之一實施例的用於執行射線追蹤之方法。
在以下描述中,出於解釋之目的,闡述眾多特定細節以便提供對下文所述之本發明之實施例的詳盡理解。然而,熟習此項技術者將顯而易見,本發明之實施例可在無此等特定細節中之一些的情況下實踐。在其他情況下,以方塊圖形式展示熟知結構及裝置,以避免混淆本發明之實施例的基礎原理。
系統綜述
圖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,指令集109可包括指令以促進其他指令集之仿真。處理器核心107亦可包括其他處理裝置,諸如數位信號處理器(DSP)。
在一些實施例中,處理器102包括快取記憶體104。取決於架構,處理器102可具有單一內部快取記憶體或多個層級之內部快取記憶體。在一些實施例中,快取記憶體在處理器102之各種組件當中共用。在一些實施例中,處理器102亦使用外部快取記憶體(例如,層級-3(L3)快取記憶體或最後層級快取記憶體(LLC))(未圖示),該外部快取記憶體可使用已知的快取一致性技術在處理器核心107當中共用。暫存器檔案106另外包括於處理器102中,其可包括用於儲存不同類型之資料的不同類型之暫存器(例如,整數暫存器、
浮點暫存器、狀態暫存器及指令指標暫存器)。一些暫存器可為通用暫存器,而其他暫存器對處理器102之設計可為特定的。
在一些實施例中,處理器102耦接至處理器匯流排110,以在處理器102與系統100中之其他組件之間傳輸通訊信號,諸如位址、資料或控制信號。在一實施例中,系統100使用示範性『中樞』系統架構,包括記憶體控制器中樞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耦接,外部圖形處理器112可與處理器102中之該一或多個圖形處理器108通訊以執行圖形及媒體操作。
在一些實施例中,ICH 130使周邊裝置能夠經由高速I/O匯流排連接至記憶體裝置120及處理器102。I/O周邊
裝置包括但不限於音訊控制器146、韌體介面128、無線收發器126(例如,Wi-Fi、藍牙)、資料儲存裝置124(例如,硬碟驅動機、快閃記憶體等),及用於將舊版(例如,個人系統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,及包括該一或多個整
合式記憶體控制器214之系統代理器核心210耦接。在一些實施例中,顯示控制器211與圖形處理器208耦接以驅動對一或多個經耦接顯示器之圖形處理器輸出。在一些實施例中,顯示控制器211可為經由至少一互連體與圖形處理器耦接之單獨模組,或可整合於圖形處理器208或系統代理器核心210內。
在一些實施例中,基於環之互連單元212用以耦接處理器200之內部組件。然而,替代性互連單元可得以使用,諸如點對點互連體、切換互連體或其他技術,包括此項技術中熟知的技術。在一些實施例中,圖形處理器208經由I/O鏈路213與環形互連體212耦接。
示範性I/O鏈路213表示多種I/O互連體中之至少一者,包括促進各種處理器組件與諸如eDRAM模組之高效能嵌入式記憶體模組218之間的通訊之封裝上I/O互連體。在一些實施例中,處理器核心202-202N中之每一者及圖形處理器208使用嵌入式記憶體模組218作為共用最後層級快取記憶體。
在一些實施例中,處理器核心202A-202N為執行同一指令集架構之同質核心。在另一實施例中,處理器核心202A-202N就指令集架構(ISA)而言為異質的,其中處理器核心202A-N中之一或多者執行第一指令集,而其他核心中之至少一者執行第一指令集的子集或不同指令集。在一實施例中,處理器核心202A-202N就微架構而言係異質的,其中具有相對較高之功率消耗的一或多個核心與具有較低
功率消耗的一或多個功率核心耦接。另外,處理器200可實施於一或多個晶片上,或實施為除了其他組件之外亦具有所例示組件的SoC積體電路。
圖3為可為謹慎圖形處理單元或可為與多個處理核心整合之圖形處理器的圖形處理器300之方塊圖。在一些實施例中,圖形處理器經由對圖形處理器上之暫存器的記憶體對映之I/O介面及藉由置放至處理器記憶體中之命令來進行通訊。在一些實施例中,圖形處理器300包括記憶體介面314來存取記憶體。記憶體介面314可為對局域記憶體、一或多個內部快取記憶體、一或多個共用外部快取記憶體,及/或對系統記憶體之介面。
在一些實施例中,圖形處理器300亦包括顯示控制器302來將顯示輸出資料驅動至顯示裝置320。顯示控制器302包括用於顯示器之一或多個上覆平面的硬體,及視訊或使用者介面元件之多個層的複合物。在一些實施例中,圖形處理器300包括視訊編解碼器引擎306來自一或多個媒體編碼格式或在該一或多個格式之間編碼、解碼或轉碼媒體,該一或多個格式包括但不限於諸如動畫專家群(MPEG)-2之MPEG格式、諸如H.264/MPEG-4 AVC之進階視訊寫碼(AVC)格式,以及電影與電視工程師協會(SMPTE)421M/VC-1,及諸如聯合圖像專家群(JPEG)之JPEG格式,及運動JPEG(MJPEG)格式。
在一些實施例中,圖形處理器300包括區塊影像傳送(BLIT)引擎304來執行二維(2D)光柵化器操作,包括例
如位元邊界區塊傳送。然而,在一實施例中,2D圖形操作係使用圖形處理引擎(GPE)310之一或多個組件來執行。在一些實施例中,圖形處理引擎310為用於執行圖形操作之計算引擎,該等操作包括三維(3D)圖形操作及媒體操作。
在一些實施例中,GPE 310包括用於執行3D操作之3D管線312,諸如使用作用於3D基元形狀(例如,矩形、三角形等)之處理功能轉譯三維影像及場景。3D管線312包括可規劃及固定功能元件,該等元件執行元件內之各種任務及/或對3D/媒體子系統315引發執行緒。儘管3D管線312可用以執行媒體操作,但GPE 310之實施例亦包括特定地用以執行媒體操作的媒體管線316,該等媒體操作諸如視訊後處理及影像增強。
在一些實施例中,媒體管線316包括固定功能或可規劃邏輯單元來替代於或代表視訊編解碼器引擎306執行一或多個專門的媒體操作,諸如視訊解碼加速、視訊解交錯及視訊編碼加速。在一些實施例中,媒體管線316另外包括執行緒引發單元以引發執行緒以供在3D/媒體子系統315上執行。經引發執行緒針對包括於3D/媒體子系統315中之一或多個圖形執行單元上的媒體操作執行計算。
在一些實施例中,3D/媒體子系統315包括用於執行藉由3D管線312及媒體管線316所引發之執行緒的邏輯。在一實施例中,管線將執行緒執行請求發送至3D/媒體子系統315,3D/媒體子系統315包括用於仲裁及調度對可利用之執行緒執行資源之各種請求的執行緒調度邏輯。執行資源
包括一陣列之圖形執行單元來處理3D及媒體執行緒。在一些實施例中,3D/媒體子系統315包括用於執行緒指令及資料之一或多個內部快取記憶體。在一些實施例中,子系統亦包括共用記憶體來在執行緒之間共用資料且儲存輸出資料,該共用記憶體包括暫存器及可定址記憶體。
3D/媒體處理
圖4為根據一些實施例之圖形處理器之圖形處理引擎410的方塊圖。在一實施例中,GPE 410為圖3中所示之GPE 310的一版本。圖4的與本文之任何其他圖之元件具有相同參考數字(或名稱)的元件可以類似於本文中別處所述之方式的任何方式操作或起作用,但並不限於此。
在一些實施例中,GPE 410與命令流轉化器403耦接,命令流轉化器403將命令串流提供至GPE 3D管線412及媒體管線416。在一些實施例中,命令流轉化器403耦接至記憶體,該記憶體可為系統記憶體,或內部快取記憶體及共用快取記憶體中之一或多者。在一些實施例中,命令流轉化器403自記憶體接收命令且將命令發送至3D管線412及/或媒體管線416。該等命令為自環形緩衝器所提取之指示,該環形緩衝器儲存針對3D管線412及媒體管線416的命令。在一實施例中,環形緩衝器可另外包括儲存分批之多個命令的分批命令緩衝器。3D管線412及媒體管線416藉由經由個別管線內之邏輯執行操作或藉由將一或多個執行緒調度至執行單元陣列414而處理命令。在一些實施例中,執行單元陣列414為可縮放的,使得陣列基於GPE 410之目標
功率及效能位準包括可變數目個執行單元。
在一些實施例中,取樣引擎430與記憶體(例如,快取記憶體或系統記憶體)及執行單元陣列414耦接。在一些實施例中,取樣引擎430提供允許執行陣列414自記憶體讀取圖形及媒體資料的用於執行單元陣列414之記憶體存取機制。在一些實施例中,取樣引擎430包括針對媒體執行專門的影像取樣操作之邏輯。
在一些實施例中,取樣引擎430中之專門的媒體取樣邏輯包括解雜訊/解交錯模組432、運動估計模組434及影像縮放及濾波模組436。在一些實施例中,解雜訊/解交錯模組432包括對經解碼視訊資料執行解雜訊或解交錯演算法中之一或多者的邏輯。解交錯邏輯將交錯視訊內容之交替欄位組合為單一視訊圖框。解雜訊邏輯自視訊及影像資料降低或移除資料雜訊。在一些實施例中,解雜訊邏輯及解交錯邏輯為運動適應性的,且基於視訊資料中偵測到之運動的量使用空間或時間濾波。在一些實施例中,解雜訊/解交錯模組432包括專用運動偵測邏輯(例如,在運動估計引擎434內)。
在一些實施例中,運動估計引擎434藉由對視訊資料執行諸如運動向量估計及預測之視訊加速功能而針對視訊操作提供硬體加速。運動估計引擎判定運動向量,該等運動向量描述影像資料在接連之視訊圖框之間的變換。在一些實施例中,圖形處理器媒體編解碼器使用視訊運動估計引擎434來在巨集區塊層級處對視訊執行操作,該巨集
區塊層級可另外為過於計算密集的而不能藉由通用處理器來執行。在一些實施例中,運動估計引擎434對圖形處理器組件為大體可利用的以輔助視訊解碼及處理功能,該等功能對視訊資料內之運動的方向或量值為敏感的或適應性的。
在一些實施例中,影像縮放及濾波模組436執行影像處理操作以增強所產生影像及視訊之視覺品質。在一些實施例中,縮放及濾波模組436在將資料提供至執行單元陣列414之前在取樣操作期間處理影像及視訊資料。
在一些實施例中,GPE 410包括資料埠444,資料埠444提供用於圖形子系統之額外機制以存取記憶體。在一些實施例中,資料埠444促進針對操作之記憶體存取,該等操作包括轉譯目標寫入、恆定緩衝器讀取、暫用記憶體空間讀取/寫入及媒體表面存取。在一些實施例中,資料埠444包括快取記憶體空間以快取存取記憶體。快取記憶體可為單一資料快取記憶體或針對經由資料埠存取記憶體之多個子系統分為多個快取記憶體(例如,轉譯緩衝快取記憶體、恆定緩衝快取記憶體等)。在一些實施例中,在執行單元陣列414中之執行單元上執行的執行緒藉由經由資料分佈互連體交換訊息而與資料埠通訊,該互連體耦接GPE 410之子系統中的每一者。
執行單元
圖5為圖形處理器500之另一實施例的方塊圖。圖5的與本文之任何其他圖之元件具有相同參考數字(或名稱)
的元件可以類似於本文中別處所述之方式的任何方式操作或起作用,但並不限於此。
在一些實施例中,圖形處理器500包括環形互連體502、管線前端504、媒體引擎537及圖形核心580A-580N。在一些實施例中,環形互連體502將圖形處理器耦接至其他處理單元,包括其他圖形處理器或一或多個通用處理器核心。在一些實施例中,圖形處理器為整合於多核心處理系統內之許多處理器中的一者。
在一些實施例中,圖形處理器500經由環形互連體502接收分批之命令。傳入命令藉由管線前端504中之命令流轉化器503解譯。在一些實施例中,圖形處理器500包括可縮放執行邏輯以經由圖形核心580A-580N執行3D幾何處理及媒體處理。針對3D幾何處理命令,命令流轉化器503將命令供應至幾何管線536。針對至少一些媒體處理命令,命令流轉化器503將命令供應至視訊前端534,視訊前端534與媒體引擎537耦接。在一些實施例中,媒體引擎537包括用於視訊及影像後處理之視訊品質引擎(VQE)530,及多格式編碼/解碼(MFX)533引擎以提供經硬體加速之媒體資料編碼及解碼。在一些實施例中,幾何管線536及媒體引擎537各自針對藉由至少一圖形核心580A所提供之執行緒執行資源產生執行緒。
在一些實施例中,圖形處理器500包括表徵模組化核心580A-580N(有時被稱為核心片段)之可縮放執行緒執行資源,模組化核心580A-580N各自具有多個子核心
550A-550N、560A-560N(有時被稱為核心子片段)。在一些實施例中,圖形處理器500可具有任何數目個圖形核心580A至580N。在一些實施例中,圖形處理器500包括至少具有第一子核心550A及第二核心子核心560A之圖形核心580A。在其他實施例中,圖形處理器為具有單一子核心(例如,550A)之低功率處理器。在一些實施例中,圖形處理器500包括多個圖形核心580A-580N,該等圖形核心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主要用以執行「著色器」程式。在一些實施例中,陣列608A-608N中之執行單元執行包括針對許多標準3D圖形著色器指令之原生支援的指令集,使得來自圖形程式庫之著色器程式(例如,Direct 3D及OpenGL)藉由最小轉譯來執行。執行單元支援頂點及幾何處理(例如,頂點程式、幾何程式、頂點著色器)、像素處理(例如,像素著色器、碎片著色器)及通用處理(例如,計算及媒體著色器)。
執行單元陣列608A-608N中之每一執行單元對多個陣列之資料元素進行操作。資料元素之數目為「執行大小」或用於指令之通道的數目。執行通道為用於資料元素存取、遮蔽及指令內之流量控制的邏輯執行單元。通道之數目可獨立於用於特定圖形處理器之實體算術邏輯單元(ALU)或浮點單元(FPU)的數目。在一些實施例中,執行單
元608A-608N支援整數及浮點資料類型。
執行單元指令集包括單指令多資料(SIMD)指令。各種資料元素可作為經包裝資料類型儲存於暫存器中,且執行單元將基於元素之資料大小處理各種元素。舉例而言,當對256位元寬向量進行操作時,向量之256個位元儲存於暫存器中,且執行單元對作為四個單獨的64位元經包裝資料元素(四字(QW)大小資料元素)、八個單獨的32位元經包裝資料元素(雙字(DW)大小資料元素)、十六個單獨的16位元經包裝資料元素(字(W)大小資料元素)或三十二個單獨的8位元資料元素(位元組(B)大小資料元素)之向量進行操作。然而,不同的向量寬度及暫存器大小係可能的。
一或多個內部指令快取記憶體(例如,606)包括於執行緒執行邏輯600中以快取用於執行單元之執行緒指令。在一些實施例中,一或多個資料快取記憶體(例如,612)得以包括以在執行緒執行期間快取執行緒資料。在一些實施例中,取樣器610得以包括以針對3D操作提供紋理取樣且針對媒體操作提供媒體取樣。在一些實施例中,取樣器610包括專門的紋理或媒體取樣功能性,以在將經取樣資料提供至執行單元之前在取樣處理程序期間處理紋理或媒體資料。
在執行期間,圖形管線及媒體管線經由執行緒引發及調度邏輯將執行緒起始請求發送至執行緒執行邏輯600。在一些實施例中,執行緒執行邏輯600包括局域執行緒調度器604,執行緒調度器604仲裁來自圖形管線及媒體
管線之執行緒起始請求且執行個體化一或多個執行單元608A-608N上的所請求執行緒。舉例而言,幾何管線(例如,圖5之536)將頂點處理、鑲嵌或幾何處理執行緒調度至執行緒執行邏輯600(圖6)。在一些實施例中,執行緒調度器604亦可處理來自執行著色器程式之執行時間執行緒引發請求。
一旦一群組之幾何物件已受處理且光柵化為像素資料,則像素著色器602經調用以進一步計算輸出資訊且使結果寫入至輸出表面(例如,色彩緩衝器、深度緩衝器、模板緩衝器等)。在一些實施例中,像素著色器602計算將要跨於經光柵化物件上內插的各種頂點屬性之值。在一些實施例中,像素著色器602接著執行應用程式規劃介面(API)供應之像素著色器程式。為了執行像素著色器程式,像素著色器602經由執行緒調度器604將執行緒調度至執行單元(例如,608A)。在一些實施例中,像素著色器602使用取樣器610中之紋理取樣邏輯來存取儲存於記憶體中之紋理圖中的紋理資料。對紋理資料及輸入幾何資料之算術運算針對每一幾何碎片計算像素色彩資料,或自進一步處理捨棄一或多個像素。
在一些實施例中,資料埠614提供記憶體存取機制,該機制供執行緒執行邏輯600將經處理資料輸出至記憶體以供在圖形處理器輸出管線上處理。在一些實施例中,資料埠614包括或耦接至一或多個快取記憶體(例如,資料快取記憶體612)以經由資料埠快取用於記憶體存取之資
料。
圖7為例示根據一些實施例之圖形處理器指令格式700的方塊圖。在一或多個實施例中,圖形處理器執行單元支援具有呈多個格式之指令的指令集。實線框例示一般包括於執行單元指令中之分量,而虛線包括任擇的或僅包括於指令之子集中的分量。在一些實施例中,所描述及例示之指令格式700為巨集指令,因為其為供應至執行單元之指令,如與一旦指令受處理而得自指令解碼的微操作相對。
在一些實施例中,圖形處理器執行單元原生地支援呈128位元格式710之指令。64位元緊密指令格式730基於所選擇之指令、指令選項及運算元之數目針對一些指令為可利用的。原生的128位元格式710提供對所有指令選項之存取,而一些選項及操作在64位元格式730中受限制。在64位元格式730中可利用之原生指令藉由實施例而變化。在一些實施例中,指令使用索引欄位713中之一組索引值部分地變緊密。執行單元硬體基於索引值參考一組壓實度表格,且使用壓實度表格輸出來以128位元格式710重建構原生指令。
針對每一格式,指令運算碼712定義執行單元將執行之操作。執行單元跨於每一運算元之多個資料元素上而並行地執行每一指令。舉例而言,回應於加法指令,執行單元跨於表示紋理元素或圖像元素之每一色彩通道上而執行同時加法運算。藉由預設,執行單元跨於運算元之所
有資料通道上而執行每一指令。在一些實施例中,指令控制欄位714實現對某些執行選項之控制,諸如通道選擇(例如,預測)及資料通道次序(例如,拌和)。針對128位元指令710,執行大小欄位716限制將並行執行之資料通道的數目。在一些實施例中,執行大小欄位716不可利用於在64位元緊密指令格式730中使用。
一些執行單元指令具有達至三個運算元,包括兩個源運算元src0 722、src1 722,及一目的地718。在一些實施例中,執行單元支援雙目的地指令,其中目的地中之一者被暗示。資料操縱指令可具有第三源運算元(例如,SRC2 724),其中指令運算碼712判定源運算元之數目。指令之最後源運算元可為與指令一起傳遞之立即(例如,硬寫碼)值。
在一些實施例中,128位元指令格式710包括存取/位址模式資訊726,資訊726指定例如使用直接暫存器定址模式抑或間接暫存器定址模式。當使用直接暫存器定址模式時,一或多個運算元之暫存器位址藉由指令710中之位元直接提供。
在一些實施例中,128位元指令格式710包括存取/位址模式欄位726,欄位726指定針對指令之位址模式及/或存取模式。在一實施例中,存取模式定義針對指令之資料存取對準。一些實施例支援包括16位元組對準式存取模式及1位元組對準式存取模式的存取模式,其中存取模式之位元組對準判定指令運算元的存取對準。舉例而言,當處於第一模式時,指令710可針對源及目的地運算元使用位元
組對準式定址,且當處於第二模式時,指令710可針對所有源及目的地運算元使用16位元組對準式定址。
在一實施例中,存取/位址模式欄位726之存取模式部分判定指令將使用直接抑或間接定址。當使用直接暫存器定址模式時,指令710中之位元間接地提供一或多個運算元的暫存器位址。當使用間接暫存器定址模式時,一或多個運算元之暫存器位址可基於指令中之位址暫存器值及位址直接欄位(address immediate field)來計算。
在一些實施例中,指令基於運算碼712位元欄位而分群以簡化運算碼解碼740。針對8位元運算碼,位元4、5及6允許執行單元判定運算碼之類型。所展示之精確運算碼分群僅為實例。在一些實施例中,移動及邏輯運算碼群組742包括資料移動及邏輯指令(例如,移動(mov)、比較(cmp))。在一些實施例中,移動及邏輯群組742共用五個最高有效位元(MSB),其中移動(mov)指令呈000xxxxxb形式且邏輯指令呈0001xxxxb形式。流量控制指令群組744(例如,調用、跳(jmp))包括呈0010xxxxb形式(例如,0x20)之指令。雜項指令群組746包括指令之混合,包括呈0011xxxxb形式(例如,0x30)之同步指令(例如,等待、發送)。並行數學指令群組748包括呈0100xxxxb形式(例如,0x40)之逐分量算術指令(例如,相加、相乘(mul))。並行數學群組748跨於資料通道上並行地執行算術運算。向量數學群組750包括呈0101xxxxb形式(例如,0x50)之算術指令(例如,dp4)。向量數學群組對向量運算元執行諸如點積計算之算術運算。
圖形管線
圖8為圖形處理器800之另一實施例的方塊圖。圖8的與本文之任何其他圖之元件具有相同參考數字(或名稱)的元件可以類似於本文中別處所述之方式的任何方式操作或起作用,但並不限於此。
在一些實施例中,圖形處理器800包括圖形管線820、媒體管線830、顯示引擎840、執行緒執行邏輯850及轉譯輸出管線870。在一些實施例中,圖形處理器800為包括一或多個通用處理核心之多核心處理系統內的圖形處理器。圖形處理器藉由對一或多個控制暫存器(未圖示)之暫存器寫入或經由發出至圖形處理器800之命令而控制,該發出係經由環形互連體802而進行。在一些實施例中,環形互連體802將圖形處理器800耦接至其他處理組件,諸如其他圖形處理器或通用處理器。來自環形互連體802之命令藉由命令流轉化器803來解譯,命令流轉化器803將指令供應至圖形管線820或媒體管線830之個別組件。
在一些實施例中,命令流轉化器803指導頂點提取器805之操作,頂點提取器805自記憶體讀取頂點資料且執行藉由命令流轉化器803所提供之頂點處理命令。在一些實施例中,頂點提取器805將頂點資料提供至頂點著色器807,頂點著色器807執行對每一頂點之協調空間變換及照明操作。在一些實施例中,頂點提取器805及頂點著色器807藉由經由執行緒調度器831將執行緒調度至執行單元852A、852B而執行頂點處理指令。
在一些實施例中,執行單元852A、852B為具有用於執行圖形及媒體操作之指令集的一陣列之向量處理器。在一些實施例中,執行單元852A、852B具有針對每一陣列為特定的或在陣列之間共用的附加之L1快取記憶體851。快取記憶體可經組配為資料快取記憶體、指令快取記憶體,或經分割以在不同的分割區中含有資料及指令的單一快取記憶體。
在一些實施例中,圖形管線820包括鑲嵌組件來執行3D物件之經硬體加速鑲嵌。在一些實施例中,可規劃外殼著色器811組配鑲嵌操作。可規劃域著色器817提供鑲嵌輸出之後端評估。鑲嵌器813在外殼著色器811之方向處操作,且含有專用邏輯以基於粗略幾何模型產生一組詳細幾何物件,該粗略幾何模型作為輸入提供至圖形管線820。在一些實施例中,若並未使用鑲嵌,則可繞過鑲嵌組件811、813、817。
在一些實施例中,完整的幾何物件可藉由幾何著色器819經由調度至執行單元852A、852B之一或多個執行緒處理,或可直接進行至裁剪器829。在一些實施例中,幾何著色器對全部幾何物件進行操作,而非如在圖形管線之先前階段中對頂點或頂點之面片進行操作。若鑲嵌被停用,則幾何著色器819自頂點著色器807接收輸入。在一些實施例中,幾何著色器819可藉由幾何著色器程式規劃,以在鑲嵌單元經停用的情況下執行幾何鑲嵌。
在光柵化之前,裁剪器829處理頂點資料。裁剪
器829可為固定功能裁剪器或具有裁剪及幾何著色器功能之可規劃裁剪器。在一些實施例中,轉譯輸出管線870中之光柵化器/深度873調度像素著色器以將幾何物件轉換為其每像素表示。在一些實施例中,像素著色器邏輯包括於執行緒執行邏輯850中。在一些實施例中,應用程式可繞過光柵化器873,且經由串流輸出單元823存取未光柵化之頂點資料。
圖形處理器800具有允許資料及訊息在處理器之主要組件當中通過的互連匯流排、互連組構或某其他互連機制。在一些實施例中,執行單元852A、852B及相關聯之快取記憶體851、紋理及媒體取樣器854及紋理/取樣器快取記憶體858經由資料埠856互連,以執行記憶體存取且與處理器之轉譯輸出管線組件通訊。在一些實施例中,取樣器854、快取記憶體851、858及執行單元852A、852B各自具有單獨的記憶體存取路徑。
在一些實施例中,轉譯輸出管線870含有光柵化器及深度測試組件873,組件873將基於頂點之物件轉換為相關聯的基於像素之表示。在一些實施例中,光柵化器邏輯包括分窗器(windower)/遮蔽器(masker)單元以執行固定功能三角形及線光柵化。相關聯之轉譯快取記憶體878及深度快取記憶體879在一些實施例中亦為可利用的。像素操作組件877對資料執行基於像素之操作,但在一些情況下,與2D操作相關聯之像素操作(例如,藉由摻合之位元區塊影像傳送)藉由2D引擎841執行,或藉由顯示控制器843使用上覆
顯示平面在顯示時間取代。在一些實施例中,共用L3快取記憶體875對所有圖形組件為可利用的,從而允許資料在不使用主系統記憶體之情況下的共用。
在一些實施例中,圖形處理器媒體管線830包括媒體引擎837及視訊前端834。在一些實施例中,視訊前端834自命令流轉化器803接收管線命令。在一些實施例中,媒體管線830包括單獨的命令流轉化器。在一些實施例中,視訊前端834在將媒體命令發送至媒體引擎837之前處理該等命令。在一些實施例中,媒體引擎337包括執行緒引發功能性以引發執行緒以供經由執行緒調度器831調度至執行緒執行邏輯850。
在一些實施例中,圖形處理器800包括顯示引擎840。在一些實施例中,顯示引擎840在處理器800外部,且經由環形互連體802或某其他互連匯流排或組構與圖形處理器耦接。在一些實施例中,顯示引擎840包括2D引擎841及顯示控制器843。在一些實施例中,顯示引擎840含有能夠獨立於3D管線進行操作之專用邏輯。在一些實施例中,顯示控制器843與顯示裝置(未圖示)耦接,該顯示裝置可如在膝上型電腦中為系統整合式顯示裝置或為經由顯示裝置連接器所附接的外部顯示裝置。
在一些實施例中,圖形管線820及媒體管線830可組配以基於多個圖形及媒體規劃介面執行操作,且對任一應用程式規劃介面(API)並非特定的。在一些實施例中,用於圖形處理器之驅動器軟體將對特定圖形或媒體程式庫
為特定的API調用轉譯為可藉由圖形處理器處理的命令。在一些實施例中,支援係針對來自科納斯組織之開放圖形程式庫(OpenGL)及開放計算語言(OpenCL)、來自微軟公司之Direct3D程式庫提供,或支援可提供至OpenGL及D3D兩者。支援亦可針對開放源電腦視覺程式庫(OpenCV)而提供。具有相容3D管線之未來API亦將在對映可自未來API之管線進行至圖形處理器的管線之情況下得以支援。
圖形管線規劃
圖9A為例示根據一些實施例之圖形處理器命令格式900的方塊圖。圖9B為例示根據實施例之圖形處理器命令序列910的方塊圖。圖9A中之實線框例示一般包括於圖形命令中之分量,而虛線包括任擇的或僅包括於圖形命令之子集中的分量。圖9A之示範性圖形處理器命令格式900包括資料欄位來識別命令之目標用戶端902、命令操作碼(運算碼)904及用於命令之相關資料906。子運算碼905及命令大小908亦包括於一些命令中。
在一些實施例中,用戶端902指定圖形裝置的處理命令資料之用戶端單元。在一些實施例中,圖形處理器命令剖析器檢驗每一命令之用戶端欄位以調節命令之進一步處理且將命令資料投送至適當的用戶端單元。在一些實施例中,圖形處理器用戶端單元包括記憶體介面單元、轉譯單元、2D單元、3D單元及媒體單元。每一用戶端單元具有處理命令之對應的處理管線。一旦命令藉由用戶端單元接收,則用戶端單元讀取運算碼904及若存在則讀取子運算
碼905以判定將執行的操作。用戶端單元使用資料欄位906中之資訊執行命令。針對一些命令,顯式命令大小908被預期指定命令之大小。在一些實施例中,命令剖析器基於命令運算碼自動地判定命令中之至少一些的大小。在一些實施例中,命令經由雙字之倍數來對準。
圖9B中之流程圖展示示範性圖形處理器命令序列910。在一些實施例中,表徵圖形處理器之實施例的資料處理系統之軟體或韌體使用所展示之命令序列的一版本來設立、執行及終止一組圖形操作。樣本命令序列僅為實例之目的得以展示及描述,此係由於實施例不限於此等特定命令或此命令序列。此外,命令可作為命令序列中之批次之命令而發出,使得圖形處理器將以至少部分地同時的方式處理命令之序列。
在一些實施例中,圖形處理器命令序列910可以管線排清命令912開始,以使任何作用圖形管線針對管線完成當前未決的命令。在一些實施例中,3D管線922及媒體管線924並未同時操作。管線排清經執行以使作用圖形管線完成任何未決之命令。回應於管線排清,用於圖形處理器之命令剖析器將暫停命令處理直至作用製圖引擎完成未決的操作為止,且相關之讀取快取記憶體為無效的。任擇地,轉譯快取記憶體中標記為「髒」之任何資料可排清至記憶體。在一些實施例中,管線排清命令912可用於管線同步或在將圖形處理器置於低功率狀態之前得以使用。
在一些實施例中,當命令序列要求圖形處理器在
管線之間顯式地切換時,管線選擇命令913得以使用。在一些實施例中,管線選擇命令913在發出管線命令之前在執行上下文內僅被需要一次,除非上下文將針對兩個管線發出命令。在一些實施例中,緊接在經由管線選擇命令913之管線切換之前需要管線排清命令912。
在一些實施例中,管線控制命令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之前,所有媒體管線狀態必須為有效的。一旦管線狀態經組配且媒體物件命令942經排佇列,則媒體管線924經由執行命令944或等效執行事件(例如,暫存器寫入)來觸發。來自媒體管線924之輸出可接著藉由3D管線922
或媒體管線924所提供之操作進行後處理。在一些實施例中,GPGPU操作以與媒體操作類似之方式來組配及執行。
圖形軟體架構
圖10例示根據一些實施例之用於資料處理系統1000的示範性圖形軟體架構。在一些實施例中,軟體架構包括3D圖形應用程式1010、作業系統1020及至少一處理器1030。在一些實施例中,處理器1030包括圖形處理器1032及一或多個通用處理器核心1034。圖形應用程式1010及作業系統1020各自在資料處理系統之系統記憶體1050中執行。
在一些實施例中,3D圖形應用程式1010含有包括著色器指令1012之一或多個著色器程式。著色器語言指令可呈高階著色器語言,諸如高階著色器語言(HLSL)或OpenGL著色器語言(GLSL)。應用程式亦包括可執行指令1014,可執行指令1014呈適於藉由通用處理器核心1034執行之機器語言。應用程式亦包括藉由頂點資料所界定之圖形物件1016。
在一些實施例中,作業系統1020為來自微軟公司之Microsoft® Windows®作業系統、專屬的類UNIX作業系統,或使用Linux內核之變體的開放源類UNIX作業系統。當Direct3D API在使用中時,作業系統1020使用前端著色器編譯器1024來將呈HLSL之任何著色器指令1012編譯為較低階著色器語言。編譯可為及時(JIT)編譯或應用程式可執行著色器預編譯。在一些實施例中,高階著色器在3D圖形
應用程式1010之編譯期間編譯為低階著色器。
在一些實施例中,使用者模式圖形驅動器1026含有後端著色器編譯器1027以將著色器指令1012轉換為特定硬體表示。當OpenGL API在使用中時,呈GLSL高階語言之著色器指令1012傳遞至使用者模式圖形驅動器1026以供編譯。在一些實施例中,使用者模式圖形驅動器1026使用作業系統內核模式功能1028來與內核模式圖形驅動器1029通訊。在一些實施例中,內核模式圖形驅動器1029與圖形處理器1032通訊以調度命令及指令。
IP核心實行方案
至少一實施例之一或多個態樣可藉由儲存於機器可讀媒體上之代表性程式碼來實施,該機器可讀媒體表示及/或定義諸如處理器之積體電路內的邏輯。舉例而言,機器可讀媒體可包括表示處理器內之各種邏輯的指令。當藉由機器讀取時,指令可使機器製造邏輯來執行本文所述之技術。被稱為「IP核心」之此等表示為用於積體電路之邏輯的可再用單元,該等單元可儲存於有形機器可讀媒體上作為描述積體電路之結構的硬體模型。硬體模型可供應至各種客戶或製造設施,該等客戶或製造設施將硬體模型裝載於製造積體電路的製造機器上。積體電路可經製造,使得電路執行聯合本文所述之實施例中之任一者所述的操作。
圖11為例示根據實施例之可用以製造積體電路以執行操作之IP核心開發系統1100的方塊圖。IP核心開發
系統1100可用以產生可併入至較大設計中之模組化可再用設計,或用以建構整個積體電路(例如,SOC積體電路)。設計設施1130可以高階規劃語言(例如,C/C++)產生IP核心設計之軟體模擬1110。軟體模擬1110可用以設計、測試及驗證IP核心之行為。暫存器傳送層級(RTL)設計可接著自模擬模型1100產生或合成。RTL設計1115為模型化硬體暫存器之間的數位信號流的積體電路之行為之抽象化,包括使用模型化之數位信號所執行的相關聯邏輯。除了RTL設計1115之外,在邏輯層級或電晶體層級處之較低階設計亦可得以產生、設計或合成。因此,初始設計及模擬之特定細節可變化。
RTL設計1115或等效物可藉由設計設施進一步合成為硬體模型1120,硬體模型1120可呈硬體描述語言(HDL)或實體設計資料之某其他表示。HDL可經進一步模擬或測試以驗證IP核心設計。IP核心設計可使用非依電性記憶體1140(例如,硬碟、快閃記憶體,或任何非依電性儲存媒體)來儲存以供遞送至第三方製造設施1165。或者,IP核心設計可經有線連接1150或無線連接1160來傳輸(例如,經由網際網路)。製造設施1165可接著製造至少部分地基於IP核心設計之積體電路。所製造之積體電路可經組配來根據本文所述之至少一實施例執行操作。
圖12為例示根據實施例之可使用一或多個IP核心製造之示範性系統單晶片積體電路1200的方塊圖。示範性積體電路包括一或多個應用程式處理器1205(例如,CPU)、
至少一圖形處理器1210,且可另外包括影像處理器1215及/或視訊處理器1220,其中任一者可為來自相同或多個不同設計設施之模組化IP核心。積體電路包括周邊或匯流排邏輯,該邏輯包括USB控制器1225、UART控制器1230、SPI/SDIO控制器1235及I2S/I2C控制器1240。另外,積體電路可包括顯示裝置1245,顯示裝置1245耦接至高清晰度多媒體介面(HDMI)控制器1250及行動產業處理器介面(MIPI)顯示介面1255中之一或多者。儲存可藉由包括快閃記憶體及快閃記憶體控制器之快閃記憶體子系統1260提供。記憶體介面可經由記憶體控制器1265提供以供存取SDRAM或SRAM記憶體裝置。一些積體電路另外包括嵌入式安全引擎1270。
另外,其他邏輯及電路可包括於積體電路1200之處理器中,包括額外圖形處理器/核心、周邊介面控制器或通用處理器核心。
用於細分表面之直接及互動式射線追蹤的設備及方法
下文所述之本發明的實施例包括用於射線及細分表面在無鑲嵌之情況下直接相交之射線追蹤的經改良技術。數值解算器可用以找出交點。在一實施例中,數值解算器包含牛頓法(亦稱為牛頓拉福森法),牛頓法為用於找出對真值函數之根(或零)之接連更佳近似的方法。實驗已證實,此解決方案可藉由較小的記憶體佔據面積以高品質互動式地轉譯細分表面。
如圖13中所例示,本發明之一實施例實施為具有
圖形處理器之圖形轉譯引擎1370內的射線追蹤邏輯/電路1300。射線追蹤邏輯1300包括特徵適應細分邏輯1301,特徵適應細分邏輯1301用於在細分之每一階段識別細分表面1305之「規則」及「不規則」面。在一實施例中,面在以下情況下被視為「規則的」:其為具有所有規則頂點之四邊形,其邊緣或頂點均不加標籤為尖銳的,及不存在將影響限制面片之形狀的階層式編輯。規則面可用以產生雙立方貝齊爾面片1306,且不規則面可用以產生格里哥利面片1307。射線相交判定邏輯1302接著判定射線與每一貝齊爾面片1306及格里哥利面片1307之間的交點(例如,在一實施例中使用牛頓法,如下文所論述)。所得之射線相交資料1308接著用以識別射線與面片之相交,且交點1309之著色係在在顯示器上轉譯最終圖形影像之前執行。
現將提供本發明之一實施例的更詳細描述。然而,應注意,本發明之基本原理不限於此等特定細節中之一些細節。
如所提及,特徵適應細分邏輯1301藉由在細分之每一階段識別「規則」面而進行操作。在一實施例中,圍繞規則面之控制頂點的一環經擷取以形成雙立方貝齊爾面片1306。在圖14中所示之實例中,針對經著色域中所界定的面片1400(藉由頂點6、7、11及10所界定),環定義為圍繞此矩形的頂點-亦即,頂點1、2、3、4、8、12、16、15、14、13、9及5。在一實施例中,「不規則」面得以細化,且處理程序在下一更精細層級處重複。當達到最大細分層級
時,不規則面藉由格里哥利面片1307近似。
在一實施例中,特徵適應細分邏輯1301產生一清單之雙立方貝齊爾面片1306及格里哥利面片1307。假定格里哥利面片僅用於圍繞不規則面之極小隔離區域,此等面片中之大多數為貝齊爾面片。
因為不存在解析解來找出射線與貝齊爾面片/格里哥利面片之間的交點,所以在一實施例中,應用牛頓法來找出數值解。為了降低牛頓法之複雜性,貝齊爾面片/格里哥利面片沿著該射線自3D空間投射至2D空間,其中該射線穿過經投射2D座標系統的原點。圖15A例示3D空間中之示範性面片的表示,且圖15B例示投射至2D空間中之該面片的表示。藉由此投影,找出交點可藉由找出所有(u,v)對使得P(u,v)=0來完成,其中0u、v 1。牛頓迭代可寫為:
其中(u k ,v k )為第k階之uv,且(u k+1 ,v k+1)為其次的第k+1階之uv。
為了計算上文之方程式,貝齊爾及格里哥利面片需要經評估以判定位置及偏導數。在一實施例中,貝齊爾面片根據以下方程式評估:
其中。
在一實施例中,格里哥利面片具有如圖16中所例示而標注的20個控制頂點。使用此組控制頂點,格里哥利面片可定義為:
其中
不同於貝齊爾面片,控制頂點矩陣G針對不同uv係不同的。然而,針對給定uv,G可藉由上文之公式來計算,且接著評估貝齊爾面片之同一方法可用以評估該uv下的格里哥
利面片。
作為針對牛頓法之常見問題,用來開始之初始uv係關鍵的。不適當的初始uv可導致不正確的交點或根本無相交。在一實施例中,為了幫助判定準確的初始uv,貝齊爾面片/格里哥利面片遞迴地劃分為子域直至針對子域之控制網格為平坦的為止。在一實施例中,包圍體階層(BVH)針對貝齊爾面片/格里哥利面片得以建置。BVH為樹型結構,其中所有幾何物件以形成樹之葉節點的包圍體纏繞。在一實施例中,BVH之每一非葉節點僅保存經定向定界框,且每一葉節點亦保存針對子域之最小及最大uv。當射線與貝齊爾面片/格里哥利面片相交時,BVH與射線相交以找出BVH之相交葉節點,且葉節點之子域的中間點用作初始uv來應用牛頓法。測試已展示在射線與貝齊爾/格里哥利面片之間產生穩定且準確的相交之此方法。
圖17中例示根據本發明之一實施例的方法。該方法可實施於上文所述之圖形架構上,但不限於任何特定架構。在1701處,接收界定細分表面之控制網格。在1702處,在細分之每一階段分析細分表面之每一面。在1703處,若將面判定為「規則的」,則在1704處,圍繞其控制頂點提取環以形成雙立方貝齊爾面片。如所提及,在一實施例中,面在以下情況下被視為「規則的」:其為具有所有正則頂點之四邊形,其邊緣或頂點均不加標籤為尖銳的,及不存在將影響限制面片之形狀的階層式編輯。若面為不規則的,則在1705處,面在每一細分層級被細化。在1706處,在最
大細分層級處,藉由格里哥利面片近似面。在任一狀況下,在1707處,使用牛頓法(例如,使用上文所闡述之技術)判定射線與貝齊爾/格里哥利面片之間的交點。
使用本文所述之技術提供優於現有的基於鑲嵌之解決方案的許多優點。首先,此等技術引起顯著較小的記憶體佔據面積。為了呈現高品質影像,基於鑲嵌之系統需要將細分表面鑲嵌為極小的多邊形。經鑲嵌多邊形之每一頂點通常需要保存資料之多個通道,諸如位置、法線、紋理座標及偏導數。然而,直接射線及細分表面相交僅需要將此等資料保存於控制網格上。在數值解算器找出交點之UV之後,此等資料可針對交點容易地評估。
另外,使用本文所述之技術,當在互動式轉譯期間視點改變時不存在額外負荷。針對基於鑲嵌之系統,鑲嵌量度通常為視野相依的。接近視點之表面需要密集鑲嵌,且遠離視點之表面需要粗鑲嵌,從而在視點正改變時導致不同鑲嵌。不同鑲嵌亦導致BVH重建置。如本文所述之直接射線及細分表面相交不具有此額外負荷。
最終,本文所述之技術產生更準確的相交資料。鑲嵌為針對細分表面之限制表面的近似。在射線碰撞經鑲嵌多邊形之後,經碰撞多邊形之頂點資料經線性地內插以計算針對碰撞點的此等資料。此近似針對大多數狀況通常為可接受的;然而,其可導致一些視覺假影,諸如陰影創面及非平滑輪廓。直接射線及細分表面相交始終在限制表面上找出交點,且結果與此等現有技術相比更準確。
本發明之實施例可包括上文已描述之各種步驟。該等步驟可體現於機器可執行指令中,該等機器可執行指令可用以使通用處理器或專用處理器執行該等步驟。或者,此等步驟可藉由含有用於執行該等步驟之硬連線邏輯的特定硬體組件來執行,或藉由經規劃電腦組件與慣用硬體組件之任何組合來執行。
如本文所述,指令可指代諸如特定應用積體電路(ASIC)之硬體的特定組態,該硬體經組配來執行某些操作或具有儲存於體現於非暫時性電腦可讀媒體中之記憶體中的預定功能性或軟體指令。因此,諸圖中所示之技術可使用儲存於一或多個電子裝置(例如,終端站、網路元件等)上之程式碼及資料來實施且在該一或多個電子裝置上執行。此等電子裝置儲存程式碼及資料,且使用電腦機器可讀媒體來進行通訊(內部通訊及/或經網路與其他電子裝置通訊),該電腦機器可讀媒體諸如非暫時性電腦機器可讀儲存媒體(例如,磁碟;光碟;隨機存取記憶體;唯讀記憶體;快閃記憶體裝置;相變記憶體)及暫時性電腦機器可讀通訊媒體(例如,電氣、光學、聲學或其他形式之傳播信號-諸如,載波、紅外信號、數位信號等)。另外,此等電子裝置通常包括耦接至一或多個其他組件之一組一或多個處理器,該一或多個其他組件諸如一或多個儲存裝置(非暫時性機器可讀儲存媒體)、使用者輸入/輸出裝置(例如,鍵盤、觸控螢幕及/或顯示器)及網路連接。該組處理器與其他組件之耦接係通常經由一或多個匯流排及橋接器(亦稱為匯流排控制
器)來進行。攜載網路訊務之儲存裝置及信號分別表示一或多個機器可讀儲存媒體及機器可讀通訊媒體。因此,給定電子裝置之儲存裝置通常儲存供在該電子裝置之該組一或多個處理器上執行的程式碼及/或資料。當然,本發明之實施例的一或多個部分可使用軟體、韌體及/或硬體之不同組合來實施。遍及此詳細描述,出於解釋之目的,闡述眾多特定細節以便提供對本發明之徹底理解。然而,熟習此項技術者將顯而易見,本發明可在無此等特定細節中之一些的情況下實踐。在某些情況下,並未以詳盡細節描述熟知之結構及功能,以便避免混淆本發明之標的。因此,本發明之範疇及精神應依據下文之申請專利範圍來判斷。
1300‧‧‧射線追蹤邏輯/電路
1301‧‧‧特徵適應細分邏輯
1302‧‧‧射線相交判定邏輯
1305‧‧‧細分表面
1306‧‧‧雙立方貝齊爾面片
1307‧‧‧格里哥利面片
1308‧‧‧射線相交資料
1309‧‧‧交點
1370‧‧‧圖形轉譯引擎
Claims (20)
- 一種用於執行射線追蹤之設備,其包含:特徵適應細分電路,其分析一細分表面上之面且回應地識別該等面為一第一類型或一第二類型,其中一面在以下情況下被視為一第一類型之面:其為具有全部規則頂點之一四邊形、其沒有邊緣或頂點被標記為尖銳的、及不存在會影響一限制面片之形狀的階層式編輯,且其中一面在其並不滿足對第一類型之面的要求之情況下被視為第二類型的面;該特徵適應細分電路向該第一類型之面使用處理技術的一第一集合以產生一第一面片類型,且向該第二類型之面使用處理技術的一第二集合以產生一第二面片類型;以及射線相交判定電路,其判定在一射線與該第一面片類型及該第二面片類型之面片中之每一者之間的一交點。
- 如請求項1之設備,其中該第一面片類型包含一雙立方貝齊爾(bi-cubic Bezier)面片。
- 如請求項2之設備,其中該第一類型之一面包括一組控制頂點,且其中該處理技術之第一集合包含擷取圍繞該面之該等控制頂點的一環以形成該雙立方貝齊爾面片。
- 如請求項2之設備,其中該第二面片類型包含一格里哥 利(Gregory)面片。
- 如請求項4之設備,其中該第二類型之面的處理技術之該第二集合包含在每一更精細細分層級反覆地細化該等面,其中當達到一最大細分層級時,一不規則面用該格里哥利面片來近似。
- 如請求項1之設備,其中該射線相交判定電路使用牛頓法判定在一射線與該第一面片類型及該第二面片類型之該等面片中之每一者之間的該交點。
- 如請求項6之設備,其中為了降低牛頓法之複雜性,該第一面片類型及該第二面片類型之每一面片沿著該射線自三維空間投射至二維空間,其中該射線穿過二維投影的一原點。
- 如請求項7之設備,其中使用該二維投影找出交點係藉由找出所有(u,v)對使得P(u,v)=0來完成,其中0u、v 1且其中一牛頓迭代包含:
- 如請求項8之設備,其中該第一面片類型包含一貝齊爾面片,且其中該貝齊爾面片根據以下方程式評估:
- 如請求項8之設備,其中該第二面片類型包含具有控制頂點p0-3、e0-3+、e0-3-、f0-3+及f0-3-之一格里哥利面片,其中該格里哥利面片根據以下方程式評估:
- 一種用於射線追蹤之方法,其包含:分析一細分表面上之面且回應地識別該等面為一第一類型或一第二類型,其中一面在以下情況下被視為 一第一類型之面:其為具有全部規則頂點之一四邊形、其沒有邊緣或頂點被標記為尖銳的、及不存在會影響一限制面片之形狀的階層式編輯,且其中一面在其並不滿足對第一類型之面的要求之情況下被視為第二類型的面;向該第一類型之面使用處理技術的一第一集合以產生一第一面片類型,且向該第二類型之面使用處理技術的一第二集合以產生一第二面片類型;以及判定在一射線與該第一面片類型及該第二面片類型之面片中之每一者之間的一交點。
- 如請求項11之方法,其中該第一面片類型包含一雙立方貝齊爾面片。
- 如請求項12之方法,其中該第一類型之一面包括一組控制頂點,且其中該處理技術之第一集合包含擷取圍繞該面之該等控制頂點的一環以形成該雙立方貝齊爾面片。
- 如請求項12之方法,其中該第二面片類型包含一格里哥利面片。
- 如請求項14之方法,其中該第二類型之面的該處理技術之第二集合包含在每一更精細細分層級反覆地細化該等面,其中當達到一最大細分層級時,一不規則面用該格里哥利面片來近似。
- 如請求項11之方法,其中判定在一射線與該第一面片類型及該第二面片類型之該等面片中之每一者之間的 該交點係使用牛頓法執行。
- 如請求項16之方法,其中為了降低牛頓法之複雜性,該第一面片類型及該第二面片類型之每一面片沿著該射線自三維空間投射至二維空間,其中該射線穿過二維投影的一原點。
- 如請求項17之方法,其中使用該二維投影找出交點係藉由找出所有(u,v)對使得P(u,v)=0來完成,其中0u、v 1且其中一牛頓迭代包含:
- 如請求項18之方法,其中該第一面片類型包含一貝齊爾面片,且其中該貝齊爾面片根據以下方程式評估:
- 如請求項18之方法,其中該第二面片類型包含具有控制頂點p0-3、e0-3+、e0-3-、f0-3+及f0-3-之一格里哥利面片,其中該格里哥利面片根據以下方程式評估:
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/615,804 US9805498B2 (en) | 2015-02-06 | 2015-02-06 | Method and apparatus for direct and interactive ray tracing of a subdivision surface |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201638883A TW201638883A (zh) | 2016-11-01 |
TWI601096B true TWI601096B (zh) | 2017-10-01 |
Family
ID=56564501
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW105100044A TWI601096B (zh) | 2015-02-06 | 2016-01-04 | 用於細分表面的直接和互動式射線追蹤之方法及設備 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9805498B2 (zh) |
TW (1) | TWI601096B (zh) |
WO (1) | WO2016126400A1 (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3065051A1 (en) * | 2015-03-05 | 2016-09-07 | Ingo Josopait | Flow control for language-embedded programming in general-purpose computing on graphics processing units |
US11373360B2 (en) | 2020-07-30 | 2022-06-28 | Apple Inc. | Grouping techniques for ray intersection traversal |
US11367242B2 (en) * | 2020-07-30 | 2022-06-21 | Apple Inc. | Ray intersect circuitry with parallel ray testing |
GB202318608D0 (en) * | 2021-09-24 | 2024-01-17 | Apple Inc | Ray intersection testing with quantization and interval representations |
US11830124B2 (en) | 2021-09-24 | 2023-11-28 | Apple Inc. | Quantized ray intersection testing with definitive hit detection |
US11734871B2 (en) | 2021-09-24 | 2023-08-22 | Apple Inc. | Ray intersection testing with quantization and interval representations |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6553337B1 (en) * | 1998-12-23 | 2003-04-22 | Silicon Graphics, Inc. | Parameterization of subdivision surfaces |
US20050017971A1 (en) * | 2003-07-24 | 2005-01-27 | Cleve Ard | Ray tracing hierarchy |
US20080079714A1 (en) * | 2006-09-28 | 2008-04-03 | Shearer Robert A | Workload Distribution Through Frame Division in a Ray Tracing Image Processing System |
CN102176052A (zh) * | 2011-01-26 | 2011-09-07 | 北京航空航天大学 | 一种面向三维层面网格生成的层序分析方法 |
US20130009948A1 (en) * | 2003-12-10 | 2013-01-10 | Torsten Berger | Apparatus and Methods for Wrapping Texture onto the Surface of a Virtual Object |
US20140078143A1 (en) * | 2012-09-17 | 2014-03-20 | Samsung Electronics Co., Ltd. | Apparatus and method for scheduling of ray tracing |
CN102243074B (zh) * | 2010-05-13 | 2014-06-18 | 中国科学院遥感应用研究所 | 基于光线追踪技术的航空遥感成像几何变形仿真方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5390292A (en) * | 1987-01-26 | 1995-02-14 | Ricoh Company, Ltd. | Apparatus for converting a gregory patch |
-
2015
- 2015-02-06 US US14/615,804 patent/US9805498B2/en active Active
-
2016
- 2016-01-04 TW TW105100044A patent/TWI601096B/zh active
- 2016-01-14 WO PCT/US2016/013324 patent/WO2016126400A1/en active Application Filing
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6553337B1 (en) * | 1998-12-23 | 2003-04-22 | Silicon Graphics, Inc. | Parameterization of subdivision surfaces |
US20050017971A1 (en) * | 2003-07-24 | 2005-01-27 | Cleve Ard | Ray tracing hierarchy |
US20130009948A1 (en) * | 2003-12-10 | 2013-01-10 | Torsten Berger | Apparatus and Methods for Wrapping Texture onto the Surface of a Virtual Object |
US20080079714A1 (en) * | 2006-09-28 | 2008-04-03 | Shearer Robert A | Workload Distribution Through Frame Division in a Ray Tracing Image Processing System |
CN102243074B (zh) * | 2010-05-13 | 2014-06-18 | 中国科学院遥感应用研究所 | 基于光线追踪技术的航空遥感成像几何变形仿真方法 |
CN102176052A (zh) * | 2011-01-26 | 2011-09-07 | 北京航空航天大学 | 一种面向三维层面网格生成的层序分析方法 |
US20140078143A1 (en) * | 2012-09-17 | 2014-03-20 | Samsung Electronics Co., Ltd. | Apparatus and method for scheduling of ray tracing |
Also Published As
Publication number | Publication date |
---|---|
US20160232702A1 (en) | 2016-08-11 |
US9805498B2 (en) | 2017-10-31 |
WO2016126400A1 (en) | 2016-08-11 |
TW201638883A (zh) | 2016-11-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11024007B2 (en) | Apparatus and method for non-uniform frame buffer rasterization | |
US10354432B2 (en) | Texture space shading and reconstruction for ray tracing | |
EP3608880B1 (en) | Merging fragments for coarse pixel shading using a weighted average of the attributes of triangles | |
TWI601096B (zh) | 用於細分表面的直接和互動式射線追蹤之方法及設備 | |
TWI632524B (zh) | 以邊緣爲基礎之覆蓋遮罩壓縮技術 | |
US20170178398A1 (en) | Method and apparatus for extracting and using path shading coherence in a ray tracing architecture | |
TWI609350B (zh) | 分群調色板壓縮技術 | |
US9659402B2 (en) | Filtering multi-sample surfaces | |
TW201724010A (zh) | 對於具有較寬單指令多資料(simd)執行寬度之3d管線增加執行緒酬載的技術 | |
US10037621B2 (en) | Hierarchical quadrant based coverage testing for rasterization | |
US10546362B2 (en) | Method and apparatus for adaptive pixel hashing for graphics processors | |
US9940734B2 (en) | Color transformation using one or multi-dimensional hierarchical lookup table |