TW201727575A - 可變精確度著色 - Google Patents

可變精確度著色 Download PDF

Info

Publication number
TW201727575A
TW201727575A TW105130473A TW105130473A TW201727575A TW 201727575 A TW201727575 A TW 201727575A TW 105130473 A TW105130473 A TW 105130473A TW 105130473 A TW105130473 A TW 105130473A TW 201727575 A TW201727575 A TW 201727575A
Authority
TW
Taiwan
Prior art keywords
precision
processor
coloring
graphics
pipeline
Prior art date
Application number
TW105130473A
Other languages
English (en)
Other versions
TWI715633B (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 TW201727575A publication Critical patent/TW201727575A/zh
Application granted granted Critical
Publication of TWI715633B publication Critical patent/TWI715633B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • G06T15/80Shading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/04Texture mapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/04Indexing scheme for image data processing or generation, in general involving 3D image data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/28Indexing scheme for image data processing or generation, in general involving image processing hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/36Level of detail
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2215/00Indexing scheme for image rendering
    • G06T2215/16Using real world measurements to influence rendering

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Graphics (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Image Generation (AREA)
  • Image Processing (AREA)

Abstract

以處理器為基礎之裝置的功率消耗可藉由在圖形處理期間降低功率消耗來降低。在一些實施例中,在假影較可令人接受之處之影像部分中的像素著色精確度可被降低。例如,在使用者不直接觀看之區中,精確度可被降低以節省功率。同時,因為人們不聚焦在那些區域上,所以即使通常可察覺到的假影由於精確度降低而發生,但仍可得到總體上令人滿意的繪圖。

Description

可變精確度著色
本發明通常關於圖形處理。
著色是將照明效果施加到待描繪之物件的過程。延遲著色係為一種將場景渲染的普遍方式,在此,在分辨出能見度之後,施行渲染。具體地,將照明延遲,直到已經分辨出遮蔽為止。一般而言,這以兩進程進行。第一進程將著色(表面法線、深度、觀看向量等等)所需要的輸入寫出到稱為幾何緩衝區的緩衝區中。第二進程係為進行著色計算的全螢幕進程或計算著色器進程。延遲著色的一項優點係為僅將可見的表面片段著色。將著色延遲,直到全部幾何處理完成為止。
圖形系統消耗在電池供電應用中的大量功率,其中低功率使用是有利的。電池供電的裝置實例包括手機與平板電腦。降低功率消耗,增加電池壽命,至關重要。
10‧‧‧焦點區域
10‧‧‧中心區域
12‧‧‧週邊區域
14‧‧‧剩下角落
18‧‧‧中心區域
20‧‧‧下一個區域
22‧‧‧剩下的螢幕
30‧‧‧序列
32‧‧‧菱形
34‧‧‧方塊
36‧‧‧方塊
38‧‧‧方塊
42‧‧‧菱形
44‧‧‧方塊
46‧‧‧方塊
48‧‧‧方塊
100‧‧‧處理系統
102‧‧‧處理器
104‧‧‧快取記憶體
106‧‧‧暫存器檔案
107‧‧‧處理器核心
108‧‧‧圖形處理器
109‧‧‧指令集
110‧‧‧處理器匯流排
112‧‧‧外部圖形處理器
116‧‧‧記憶體控制器集線器
120‧‧‧記憶體裝置
121‧‧‧指令
122‧‧‧資料
124‧‧‧資料儲存裝置
126‧‧‧無線收發器
128‧‧‧韌體介面
130‧‧‧輸入輸出控制器集線器
140‧‧‧舊有輸入/輸出控制器
142‧‧‧通用序列匯流排控制器
144‧‧‧鍵盤及滑鼠
146‧‧‧音訊控制器
200‧‧‧處理器
202A-202N‧‧‧處理器核心
204A-204N‧‧‧內部快取單元
206‧‧‧共享快取單元
208‧‧‧積體圖形處理器
210‧‧‧系統代理器核心
211‧‧‧顯示控制器
212‧‧‧環型互連單元
213‧‧‧輸入/輸出連結
214‧‧‧積體記憶體控制器
216‧‧‧匯流排控制器單元
218‧‧‧嵌入式記憶體模組
300‧‧‧圖形處理器
302‧‧‧顯示控制器
304‧‧‧方塊影像轉移引擎
306‧‧‧視訊編解碼引擎
310‧‧‧圖形處理引擎
312‧‧‧3D管線
314‧‧‧記憶體介面
315‧‧‧3D/媒體子系統
316‧‧‧媒體管線
320‧‧‧顯示裝置
403‧‧‧命令串流器
410‧‧‧圖形處理引擎
412‧‧‧3D管線
414‧‧‧執行單元陣列
416‧‧‧媒體管線
430‧‧‧取樣引擎
432‧‧‧去噪音/去交錯模組
434‧‧‧動作估計引擎
436‧‧‧影像縮放與過濾模組
444‧‧‧資料埠
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-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‧‧‧作業系統
1024‧‧‧前端著色器編譯器
1026‧‧‧圖形驅動器
1027‧‧‧後端著色器編譯器
1028‧‧‧作業系統核模式功能
1029‧‧‧核模式圖形驅動器
1030‧‧‧處理器
1032‧‧‧圖形處理器
1034‧‧‧通用處理器核心
1050‧‧‧系統記憶體
1100‧‧‧IP核心發展系統
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‧‧‧高解析度多媒體介面(HDMI)控制器
1255‧‧‧行動產業處理器介面(MIPI)顯示介面
1260‧‧‧快閃記憶體子系統
1265‧‧‧記憶體控制器
1270‧‧‧嵌入式安全性引擎
一些實施例係相關於以下圖式來說明:圖1係根據一項實施例之可變精確度著色的描繪;圖2係根據一項實施例之以眼睛追蹤之可變精確度著色的描繪;圖3係用於一項實施例的流程圖;圖4係根據一項實施例之處理系統的方塊圖;圖5係根據一項實施例之處理器的方塊圖;圖6係根據一項實施例之圖形處理器的方塊圖;圖7係根據一項實施例之圖形處理引擎的方塊圖;圖8係圖形處理器之另一實施例的方塊圖;圖9係根據一項實施例之執行緒執行邏輯的描繪;圖10係根據一些實施例之圖形處理器指令格式的方塊圖;圖11係圖形處理器之另一實施例的方塊圖;圖12A係根據一些實施例之圖形處理器命令格式的方塊圖;圖12B係繪示根據一些實施例之圖形處理器命令序列的方塊圖;圖13係根據一些實施例之例示性圖形軟體架構的描繪;圖14係繪示根據一些實施例之IP核心發展系統的方塊圖;以及圖15係顯示根據一些實施例之例示性系統單晶片積體電路的方塊圖。
【發明內容及實施方式】
以處理器為基礎之裝置的功率消耗可藉由在圖形處理期間降低功率消耗而降低。在一些實施例中,在假影較可令人接受之處之影像部件中之像素著色的精確度可降低。例如,在使用者不直接觀看之區中,精確度可降低,以節省功率。同時,因為人們不聚焦在那些區域上,所以縱使視覺上可感知的假影由於精確度降低而發生,卻仍可得到整體上令人滿意的繪圖。
浮點數是大約表示固定數目之有效數字的數目,稱為有效數字,並使用指數縮放。指數的基數通常是2。
在單一或全精確度(fp32)中,使用32位元,且有效數字具有24位元的精確度。雙精確度(fp64)使用64位元,擴大的雙精確度或擴大的精確度至少使用79位元。半精確度(fp16)使用16位元。許多其他的精確度是可能的。
通常來說,浮點數的精確度越高,所使用的位元越多,且計算的成本以及所得的功率消耗越高。相反來說,較低的精確度造成較低的功率消耗但卻可導致假影的產生。
使用者一般而言更聚焦於顯示螢幕的中心而不是其週邊。現代的圖形應用程式介面(API)有足夠彈性,以促使圖形處理器降低精確度,以與功率效率和圖像保真度進行權衡。但是它們缺乏在影像之選擇性部份中如此進行的能力。由於缺乏精確度的影像假影在使用者注意力集中之處 最顯著。
隨著越遠離使用者注意力聚焦之點,降低像素著色的精確度會降低功率消耗。在簡單的情形中,這轉換成隨著越遠離螢幕縱橫比適當縮放的螢幕中心,精確度會降低。
在眼睛追蹤機構存在時,最高精確度的此點會移動到使用者正觀看之螢幕上的點,並且可根據距此點之距離而降低精確度,在一些實施例中,針對眼睛相對於螢幕的定位而將該點縮放及適當地旋轉。
通常來說,使用者距螢幕越遠,定義螢幕焦點區的錐體越寬,且焦點的區域越大。因此,在一些實施例中,感興趣的區域可相關於使用者相對於螢幕的定位來定義。在一些情形中,這可能是經過測定量,且在其他情形中,可能從應用程式推測。例如,結合遊戲應用程式,舉一個實例,可假定16英吋的螢幕寬度以及4英尺的使用者距離。因此,較高精確度的區域尺寸可能是根據使用者距螢幕所推測或測量之距離。
如圖1所示,焦點區域10可能是橢圓的,其具有長軸與短軸。橢圓形可能是根據螢幕縱橫比。例如,在一項實施例中,橢圓的長軸與短軸可與螢幕的縱橫比成正比。在使用者相對遠離螢幕的情形中,長軸可以是水平螢幕距離的60%,且短軸可以是垂直螢幕距離的60%。相反地,當使用者相對靠近時,那些尺寸可以減半。在一項實施例中,降低精確度的區域12亦可能是橢圓的。在一項實施例中,可定義精確度仍然較低的區域14,且在一項實施 例中,區域14可能是取決於在特定GPU上有支持多少浮點精確類型的剩下螢幕區。在一些實施例中,可具有更多此等區域,其對應由GPU支持的特定精確度。
由諸如來自微軟公司之DirectX API的應用程式介面、驅動器、著色器編譯器與硬體所製成的系統,可降低經由應用程式介面由應用程式所具體指定之螢幕特定區域中的像素著色精確度。API的一項實施方案係為用於像素著色的新著色語言資料類型,其基於被著色之像素位於的螢幕區域來改變精確度。可用API呼叫優先地具體指定多少精確度用於螢幕上的哪個區域,諸如在圖1所示之橢圓的中心點與軸。在圖1中,在中心區域10中,像素著色器可以全精確度運行。在一項實施例中,在外圍橢圓的週邊區域12中,可能以中等精確度運行像素著色。在一項實施例中,可能以甚至更低的精確度來渲染螢幕的剩下角落14,以節省功率消耗。
可具體指定著色語言的資料類型,以致使精確度改變,以降低功率消耗。來自微軟公司的DirectX 9、10、與11 API包括具體指定特定資料類型的高階著色語言(HLSL)。例如,有純量資料型、浮動資料型、向量資料型(諸如浮動2與3)、以及整數資料型。不過,這些資料型通常是固定精確度。在一項實施例中,使用額外的資料型,其具體指定如何改變精確度。
不同的應用程式可用可變精確度著色(包括那些使用粗糙像素著色者)而有利地改善,粗糙像素著色在一模式 中規律地自螢幕中心降低著色率,而使精確度不變。在注視點渲染中,用於可變精確度著色的另一應用程式,使用者注意繞著它們目光僅僅五度圓之細節的事實,其被用來以合成那些層的不同速率渲染在許多層中的場景。因此,粗糙像素著色與注視點渲染可有利地與可變精確度著色結合。
在本文中說明的演算法可藉由架構具有一些不同精確度之多個版本的延遲著色而有利地實施。應用程式隨後使用具有適當精確度的著色器,來啟動對應於不同精確度之各區域的計算著色器。
在前向進程中對紋理映圖進行u、ν查找,這在功率消耗方面不昂貴,因此在一項實施例中可能以全精確度進行。於是,在功率消耗方面的精確度可能在第二進程中改變,在一項實施例中,第二進程可能是延遲著色進程。
通常來說,在紋理映射中,二維(2D)影像的u、ν值使用u、ν紋理映圖映射到在三維的表面映射內。在三維的紋理映射使用紋理來進行。因此,在一些區中,紋理可用來以不同精確度著色,一般而言精確度比在前向進程中還低。因為在前向進程內改變精確度沒有很多優點,所以在延遲著色進程中,可使用較低的精確度以節省功率。
在前向渲染的情況下,幾何體觸碰螢幕哪個區域的知識並非先驗地已知(當著色器被綁定時)。結果,則不能綁定專用於特定精確度的著色器。
人們可寫具有控制流的著色器,該控制流以適當精確 度選擇著色,但是具有動態控制流的此種單片著色器則可能由於預測而無法與專用著色器一樣有效。更者,因為無法在執行緒分配時間上知道要採用什麼控制路徑,所以執行緒分配器採取保守的立場,並採用較高的精確度來啟動執行緒。結果,在一些情形中,將無法看到最佳可能的產量。
在前向著色中,習知地,沒有任何方式可以改變精確度,因為你不知道任何給定的圖元(例如三角形)已落在螢幕空間中之何處。不過,可變的精確度著色仍可以多個進程實施,在各進程中,深度(Z)或模板緩衝區過濾出不需要的區域。這導致幾何體被處理多次,且利用在前向渲染中不充分的可變精確度。不過,使用動態切換精確度的著色器語言資料類型(在本文中說明),人們不需要處理幾何體多次。
在圖2所示的實例中,當啟動眼睛追蹤且使用者已將他或她的注意力聚焦到偏心點並以角度θ定向時,精確度降低。在一項實施例中,中心區域18顯示像素著色器以全精確度運行之處,在下一個區域20,像素著色器以中間精確度運行,且在剩下的螢幕22中,用於像素的著色器以甚至更低的精確度運行。
有將使用者較不感興趣之區中的精確度改變的不同方式。在特定的實施方案中,精確度可相對連續地降低,例如,當遠離感興趣之點移動時,一次降低x位元數。在另一項實施例中,可使用較不連續或更分開的步驟,例如, 使用二的冪次,從全精確度(fp32),到半精確度(fp16),到低精確度(fp10)。
參考圖3,在一些實施例中,序列30可能以軟體、韌體及/或硬體實施。例如,其可藉由包括著色功能的API實施。在軟體與韌體實施例中,可藉由儲存在一或多個電腦可讀取媒體(諸如,磁性、光學、或半導體儲存器)中之以電腦執行的指令來實施。在一些實施例中,可能在與處理器圖形或圖形處理單元相關聯的儲存器中實施。
可藉由判定是否著色器語言中的資料值被設定為可變精確度(如菱形32所示),來開始序列30。在一項實施例中,此檢測可在已經完成前向著色進程以後發生。
隨後在方塊34,啟動可變精確度著色。在方塊36,可用許多方式中的一種方式來判定使用者感興趣的焦點。在一些情形中,可推定是在螢幕中心,且在其他情形中,可依據眼睛追蹤或使用者輸入(諸如滑鼠選定或螢幕觸控)來判定。
隨後,橢圓區域係定義在焦點周圍,如方塊38中所示。接著,在SIMD寬度邊界上,保守地將橢圓區域細化。
在菱形42,根據API,一檢測判定是否有不同精確度著色的另一區域。如果如此,則在方塊44,定義下一個橢圓區域,且將那區域的邊界細化,以保守地對準圖形處理器的SIMD寬度,如方塊46中所示。
如方塊48指示,在各區域中施行可變精確度的著 色。在其他實施例中,取代具有明確的區域,而定義一步驟,使得當你自焦點向外移動時,精確度以相對連續或相對不連續或分開的步驟改變。
在任一情形中,針對特定的精確度,可保守地將過渡邊界量化成硬體的固有單一指令多重資料(SIMD)寬度。圖形處理器以像素束著色,通常為8或16像素。因此,橢圓區域有利地對準那些像素束的邊界。這是因為不改變那些束內的精確度是較佳的,因為處理器藉由以相同方式處理該束內的所有像素而更有效率地操作。因此,有利的是確定在該束中的每一像素(可能是4×4或16-像素方塊)是在具有相同精確度的粗糙橢圓區域內。
可將精確度過渡區域保守地量化,以便在特定的精確度上得到與像素等值的一個SIMD寬度。以具有大固有SIMD寬度的處理器,這可代表在較高精確度上的明顯過度著色。藉由在區塊粒度上保守地量化精確度過渡,可實施區塊式架構。
其他圖形子系統,舉一些例子,例如光柵化、早期深度測試、深度模板測試、輸出合併、顏色壓縮,可利用這種精確度的降低或者與必要的上下轉換完全正交地設計。不過,為了提取最佳的性能,其他系統與可變像素著色合作地運作可能為有利的。
通常來說,以較低精確度施行的執行單元具有較高的產量。
較低精確度可在影像品質中產生明顯假像的其中一區 是當從大紋理(例如4,000×4,000紋理檔案)取樣應用程式時。在產生u、ν座標時降低的精確度可導致在取樣值中的大差值,而使影像看起來不正確。在一些實施例中,這可避免,其係藉由選擇評估在像素著色器中以較高精確度產生紋理坐標、同時以較低精確度執行剩下像素著色器的那些操作。
圖4係根據一項實施例之處理系統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,以傳送通訊訊號(諸如位址、資料、或控制訊號)於處理器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,其可與在處理器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。
圖5係具有一或多個處理器核心202A至202N、積體記憶體控制器214、及積體圖形處理器208之處理器200之一實施例的方塊圖。具有與本文中任何其他圖式之元件相同參考號碼(或名稱)的圖5的那些元件,其可用與本文中其他地方所說明之類似的任何方式來操作或發揮功能,但不限於此。處理器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)。系統代理器核心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互連件的至少其中一種,其包括促進多個處理器組件與高性能嵌入式記憶體模組218(諸如eDRAM模組)之間通訊的開啟封裝I/O互連件。在一些實施例中,處理器核心202至202N的各者與圖形處理器208使用嵌入式記憶體模組218當作共享的最後層次快取。
在一些實施例中,處理器核心202A至202N係為執行相同指令集架構的均質核心。在另一項實施例中,根據指令集架構(ISA),處理器核心202A至202N係非均質,其中處理器核心202A至N中的一或多者執行第一指令集,而其他核心中的至少一者執行第一指令集之子集或不同指令集。在一項實施例中,根據微架構,處理器核心202A至202N係非均質,其中,具有相對較高功率消耗的一或多個核心,與具有較低功率消耗的一或多個功率核心耦合。此外,處理器200可在一或多個晶片上實施,或者以具有所繪示組件(除了其他組件以外)的SoC積體電路來實施。
圖6係圖形處理器300的方塊圖,其可以是分開的圖形處理單元,或可以是與複數個處理核心整合的圖形處理器。在一些實施例中,圖形處理器經由記憶體映射I/O介面而通訊到在圖形處理器上的暫存器,且與放置在處理器 記憶體內的命令通訊。在一些實施例中,圖形處理器300包括用以存取記憶體的記憶體介面314。記憶體介面314可以是到局部記憶體、一或多個內部快取、一或多個共享外部快取、及/或到系統記憶體的介面。
在一些實施例中,圖形處理器300也包括用以驅動顯示輸出資料到顯示裝置320的顯示控制器302。顯示控制器302包括用於多層次視訊或使用者介面元件之顯示與組成的一或多個重疊平面的硬體。在一些實施例中,圖形處理器300包括視訊編解碼引擎306,以將至、從、或介於一或多個媒體編碼格式之間的媒體編碼、解碼、或轉碼,該等格式包括但不限於動態影像專家群(MPEG)格式(諸如MPEG-2)、先進視訊編碼(AVC)格式(諸如H.264/MPEG-4 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與媒體執行緒的圖形執行單元陣列。在一些實施例中,3D/媒體子系統315包括用於執行緒指令與資料的一或多個內部快取。在一些實施例中,子系統也包括用以在執行緒之間共享資料且用以儲存輸出資料的共享記憶體, 包括暫存器與可定址記憶體。
圖7係根據一些實施例之圖形處理器之圖形處理引擎410的方塊圖。在一項實施例中,GPE 410係為在圖6中所示之GPE 310的一個版本。具有與本文中任何其他圖式之元件相同參考號碼(或名稱)的圖7元件,其可用與本文中其他地方所說明之類似的任何方式來操作或發揮功能,但不限於此。
在一些實施例中,GPE 410耦合命令串流器403,其提供命令串流到GPE 3D與媒體管線412、416。在一些實施例中,命令串流器403耦合到記憶體,其可以是系統記憶體,或內部快取記憶體與共享快取記憶體的其中一或多者。在一些實施例中,命令串流器403接收來自記憶體的命令,且將命令發送到3D管線412及/或媒體管線416。該等命令是從環緩衝區提取的指令,該環緩衝區儲存用於3D與媒體管線412、416的命令。在一項實施例中,環緩衝區可額外地包括儲存數批多個命令的批次命令緩衝區。藉由經由在個別管線內的邏輯來施行操作,或藉由分配一或多個執行執行緒到執行單元陣列414,3D與媒體管線412、416處理該等命令。在一些實施例中,執行單元陣列414係可縮放,使得該陣列包括基於GPE 410之目標功率與性能位準之可變數目的執行單元。
在一些實施例中,取樣引擎430耦合記憶體(例如,快取記憶體或系統記憶體)與執行單元陣列414。在一些實施例中,取樣引擎430提供用於執行單元陣列414的記 憶體存取機構,該執行單元陣列讓執行陣列414讀取來自記憶體的圖形與媒體資料。在一些實施例中,取樣引擎430包括用以施行用於媒體之專用影像取樣操作的邏輯。
在一些實施例中,在取樣引擎430中的專用媒體取樣邏輯包括去噪音/去交錯模組432、動作估計模組434、以及影像縮放與過濾模組436。在一些實施例中,去噪音/去交錯模組432包括用以對解碼視訊資料施行去噪音或去交錯演算法中之一或多個的邏輯。去交錯邏輯將交替領域的交錯視訊內容組合成單一訊框的視訊。去噪音邏輯降低或移除來自視訊與影像資料的資料噪音。在一些實施例中,去噪音邏輯與去交錯邏輯係動作調適性,且基於在視訊資料中偵測到的動作數量來使用空間性或時間性過濾。在一些實施例中,去噪音/去交錯模組432包括專屬的動作偵測邏輯(例如,在動作估計引擎434內)。
在一些實施例中,藉由施行視訊加速功能(諸如動作向量估計與預測)於視訊資料上,動作估計引擎434提供用於視訊操作的硬體加速。動作估計引擎判定說明在連續視訊訊框之間之影像資料轉移的動作向量。在一些實施例中,圖形處理器媒體編解碼器使用視訊動作估計引擎434,以對巨集區塊層次處的視訊施行操作,否則,該等操作可能太計算密集而無法以通用處理器施行。在一些實施例中,動作估計引擎434通常可用於圖形處理器組件,以輔助對視訊資料內之動作的方向或量值敏感或適應的視訊解碼與處理功能。
在一些實施例中,影像縮放與過濾模組436施行影像處理操作,以增強所產生影像與視訊的視覺品質。在一些實施例中,在提供資料到執行單元陣列414之前,縮放與過濾模組436在取樣操作期間處理影像與視訊資料。
在一些實施例中,GPE 410包括資料埠444,其提供額外的機構給圖形子系統以存取記憶體。在一些實施例中,資料埠444促進用於操作的記憶體存取,該等操作包括渲染目標寫入、固定緩衝區讀取、刮擦記憶體空間讀取/寫入、以及媒體表面存取。在一些實施例中,資料埠444包括用以快取存取到記憶體的快取記憶體空間。快取記憶體可以是用於經由資料埠存取記憶體之多個子系統的單一資料快取或分成多個快取(例如,渲染緩衝區快取、固定緩衝區快取等等)。在一些實施例中,在執行單元陣列414中之執行單元上執行的執行緒,其藉由經由耦合GPE 410之各子系統的資料分布互連件來互換訊息而與資料埠通訊。
圖8係圖形處理器500之另一實施例的方塊圖。具有與本文中任何其他圖式之元件相同參考號碼(或名稱)的圖8元件,其可用與本文中其他地方所說明之類似的任何方式來操作或發揮功能,但不限於此。
在一些實施例中,圖形處理器500包括環型互連件502、管線前端504、媒體引擎537、以及圖形核心580A至580N。在一些實施例中,環型互連件502將圖形處理器耦合至其他處理單元,包括其他圖形處理器或一或多個 通用處理器核心。在一些實施例中,圖形處理器係整合在多核心處理系統內之許多處理器的一者。
在一些實施例中,圖形處理器500經由環型互連件502接收數批命令。進來的命令係由在管線前端504中的命令串流器503解譯。在一些實施例中,圖形處理器500包括用以經由圖形核心580A至580N來施行3D幾何處理與媒體處理的可縮放執行邏輯。就3D幾何處理命令而言,命令串流器503供應命令到幾何管線536。就至少一些媒體處理命令而言,命令串流器503供應命令到視訊前端534,其耦合媒體引擎537。在一些實施例中,媒體引擎537包括用於視訊與影像後處理的視訊品質引擎(VQE)530、以及用以提供經硬體加速之媒體資料編碼與解碼的多格式編碼/解碼(MFX)533引擎。在一些實施例中,幾何管線536與媒體引擎537各產生用於由至少一圖形核心580A所提供之執行緒執行資源的執行執行緒。
在一些實施例中,圖形處理器500包括以模組化核心580A至580N(有時稱為核心切片)為特徵的可縮放執行緒執行資源,該等模組化核心各具有多個子核心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。在一些實施例中,共享的資源包括共享的快取記憶體與像素操作邏輯。其他共享的資源也可包括在圖形處理器的許多實施例中。
圖9繪示執行緒執行邏輯600,其包括在GPE之一些實施例中所使用之處理元件的陣列。具有與本文中任何其他圖式之元件相同參考號碼(或名稱)的圖9元件,其可用與本文中其他地方所說明之類似的任何方式來操作或發揮功能,但不限於此。
在一些實施例中,執行緒執行邏輯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,該分配器仲裁來自圖形與媒體管線的執行緒啟動請求,且實例化在一或多個執行單元608A至608N上的請求執行緒。例如,幾何管線(例如,圖8的536)將頂點處理、細化、或幾何處理執行緒分配到執行緒執行邏輯600(圖9)。在一些實施例中,執行緒分配器604也可 處理來自執行著色器程式的運行時間執行緒產生請求。
一旦已將一組幾何物件處理且光柵化為像素資料,則引動像素著色器602,以進一步計算輸出資訊且導致結果寫入到輸出表面(例如,顏色緩衝區、深度緩衝區、模板緩衝區等等)。在一些實施例中,像素著色器602計算將內插橫跨光柵化物件之許多頂點屬性的值。在一些實施例中,像素著色器602隨後執行供應應用程式介面(API)的像素著色器程式。為了執行像素著色器程式,像素著色器602經由執行緒分配器604分配執行緒到執行單元(例如,608A)。在一些實施例中,像素著色器602使用在取樣器610中的紋理取樣邏輯,以將紋理資料存取在儲存於記憶體中的紋理映圖。在紋理資料與輸入幾何資料上的算數操作,計算用於各幾何片段的像素顏色資料,或從進一步處理丟棄一或多個像素。
在一些實施例中,資料埠614將用於執行緒執行邏輯600輸出處理資料的記憶體存取機構提供到用於在圖形處理器輸出管線上處理的記憶體。在一些實施例中,資料埠614包括或耦合到一或多個快取記憶體(例如,資料快取612),以經由資料埠快取用於記憶體存取的資料。
圖10係繪示根據一些實施例之圖形處理器指令格式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,其例如具體指定是否使用直接暫存器定址模式或間接暫存器定址模式。當使用直接暫存器定址模式時,一或多個運算元的暫存器位址係直接由指令710中的位元提供。
在一些實施例中,128位元指令格式710包括存取/位址模式欄726,其具體指定用於該指令的位址模式及/或存取模式。在一項實施例中,存取模式用以定義用於指令的資料存取對準。一些實施例支持存取模式,其包括16位元組的對準存取模式以及1位元組的對準存取模式,其中存取模式的位元組對準判定指令運算元的存取對準。例如,當在第一模式時,指令710可使用用於來源與目的地運算元的位元組對準定址,且當在第二模式時,指令710可使用用於全部來源與目的地運算元的16位元組對準定址。
在一項實施例中,存取/位址模式欄726的位址模式部份判定是否指令使用直接或間接定址。當使用直接暫存器定址模式時,在指令710中的位元直接提供一或多個運 算元的暫存器位址。當使用間接暫存器定址模式時,基於在指令中的位址暫存器值與位址立即欄,可計算一或多個運算元的暫存器位址。
在一些實施例中,基於運算碼712位元欄,將指令分組,以簡化運算碼解碼740。就8位元運算碼而言,位元4、5、及6容許執行單元判定運算碼的類型。所顯示之精確運算碼分組僅僅為實例。在一些實施例中,移動與邏輯運算碼組742包括資料移動與邏輯指令(例如,移動(mov)、比較(cmp))。在一些實施例中,移動與邏輯組742共享五個最明顯位元(MSB),其中移動(mov)指令呈0000xxxxb形式且邏輯指令呈0001xxxxb形式。流量控制指令組744(例如,呼叫、跳躍(jmp))包括形式為0010xxxxb(例如,0x20)的指令。雜項指令組746包括指令的混合,包括形式為0011xxxxb(例如,0x30)的同步指令(例如,等待、發送)。平行數學指令組748包括形式為0100xxxxb(例如,0x40)的分量方式算術指令(例如,加、乘(mul))。平行數學組748橫跨資料通道平行地施行算術操作。向量數學組750包括形式為0101xxxxb(例如,0x50)的算術指令(例如,dp4)。向量數學組對向量運算元施行算術(諸如點積計算)。
圖11係圖形處理器800之另一實施例的方塊圖。具有與本文中任何其他圖式之元件相同參考號碼(或名稱)的圖11元件,其可用與本文中其他地方所說明之類似的任何方式來操作或發揮功能,但不限於此。
在一些實施例中,圖形處理器800包括圖形管線820、媒體管線830、顯示引擎840、執行緒執行邏輯850、以及渲染輸出管線870。在一些實施例中,圖形處理器800係在多核心處理系統內的圖形處理器,該多核心處理系統包括一或多個通用處理核心。圖形處理器係由到一或多個控制暫存器(未圖示)的暫存器寫入或藉由經由環型互連件802而發送到圖形處理器800的命令所控制。在一些實施例中,環型互連件802將圖形處理器800耦合到其他處理組件,諸如其他圖形處理器或通用處理器。來自環型互連件802的命令由命令串流器803解譯,該串流器則將指令供應到圖形管線820或媒體管線830的個別組件。
在一些實施例中,命令串流器803指揮頂點提取器805的操作,該頂點提取器讀取來自記憶體的頂點資料,且執行由命令串流器803所提供的頂點處理命令。在一些實施例中,頂點提取器805提供頂點資料到頂點著色器807,其施行座標空間轉換與發光操作到各頂點。在一些實施例中,頂點提取器805與頂點著色器807藉由經由執行緒分配器831分配執行執行緒到執行單元852A、852B而來執行頂點處理指令。
在一些實施例中,執行單元852A、852B係為具有用於施行圖形與媒體操作之指令集的向量處理器陣列。在一些實施例中,執行單元852A、852B具有專針對各陣列或者在該等陣列之間共享的附加L1快取851。該快取可經 組態作為資料快取、指令快取、或單一快取,其經分割,以在不同分割區中含有資料與指令。
在一些實施例中,圖形管線820包括用以施行3D物件之硬體加速細化的細化組件。在一些實施例中,可程式化船體著色器811組態細化操作。可程式化域著色器817提供細化輸出的後端評估。細化器813在船體著色器811的方向上操作,且含有基於粗糙幾何模型產生一組詳細幾何物件的專用邏輯,其提供當作到圖形管線820的輸入。在一些實施例中,假如沒有使用細化,可將細化組件811、813、817旁通。
在一些實施例中,完整的幾何物件可經由分配到執行單元852A、852B的一或多個執行緒而由幾何著色器819處理,或可直接進行到夾持器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,其將以頂點為基礎的物件轉換成相關的以像素為基礎的表示。在一些實施例中,光柵邏輯包括用以施行固定功能三角形與線性光柵化的窗段化器/遮蔽器單元。在一些實施例中,相關的渲染快取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呼叫轉譯成可由圖形處理器處理的命令。在一些實施例中,提供支持給來自Khronos Group的開放圖形庫(OpenGL)以及開放計算語言(OpenCL)、來自MicrosoftCorporation的Direct3D庫,或可提供支持到OpenGL與D3D兩者。也可提供支持給開放來源電腦視覺庫 (OpenCV)。具有相容3D管線的未來API也將被支持,如果可從未來API的管線進行映射到圖形處理器的管線。
圖12A係根據一些實施例之圖形處理器命令格式900的方塊圖。圖12B係為繪示根據一實施例之圖形處理器命令序列910的方塊圖。在圖12A中的實線框繪示通常包括在圖形命令中的組件,而虛線框包括可選的或僅包括在圖形命令之子集中的組件。圖12A的例示性圖形處理器命令格式900包括用以識別命令之目標客戶端902、命令運算碼(opcode)904、以及用於命令之相關資料906的資料欄。子運算碼905及命令尺寸908也包括在相同命令中。
在一些實施例中,客戶端902具體指定處理命令資料之圖形裝置的客戶端單元。在一些實施例中,圖形處理器命令剖析器檢查各命令的客戶端欄,以調節命令的進一步處理,並將命令資料路由到適當的客戶端單元。在一些實施例中,圖形處理器客戶端單元包括記憶體介面單元、著色器單元、2D單元、3D單元、以及媒體單元。各客戶端單元具有處理命令的對應處理管線。一旦客戶端單元接收命令,客戶端單元讀取運算碼904,且若存在,則讀取子運算碼905,以判定用以施行的操作。客戶端單元施行使用在資料欄906中之資訊的命令。就一些命令而言,期待明確命令尺寸908,以具體指定命令的尺寸。在一些實施例中,命令剖析器基於命令運算碼自動判定至少一些命令的尺寸。在一些實施例中,命令係經由多個雙字來校準。
在圖12B的流程圖顯示例示性圖形處理器命令序列 910。在一些實施例中,具有圖形處理器實施例之特徵之資料處理系統的軟體或韌體,使用所示之命令序列的一版本,以設置、執行、以及終止一組圖形操作。樣本命令序列僅僅為了實例之目的而顯示與說明,因為實施例不限於這些特定命令或此命令序列。更者,命令可能以命令序列中的成批命令發出,使得圖形處理器將至少部分地同時處理命令序列。
在一些實施例中,圖形處理器命令序列910可能以管線刷新命令912開始,以導致任何主動的圖形管線完成目前用於管線的擱置命令。在一些實施例中,3D管線922與媒體管線924沒有同時操作。施行管線刷新,以導致主動的圖形管線以完成任何擱置的命令。回應於管線刷新,用於圖形處理器的命令剖析器將暫停命令處理,直到主動繪圖引擎完成擱置操作且相關讀取快取失效為止。可選地,標為「骯髒」之著色器快取中的任何資料可刷新到記憶體。在一些實施例中,可將管線刷新命令912使用於管線同步化或在將圖形處理器置於低功率狀態以前。
在一些實施例中,當命令序列要求圖形處理器在管線之間明顯地切換時,使用管線選擇命令913。在一些實施例中,在發出管線命令之前,在執行脈絡內,僅要求管線選擇命令913一次,除非該脈絡用以發出命令給兩管線。在一些實施例中,在管線切換以前,立即要求管線刷新命令912,其經由管線選擇命令913。
在一些實施例中,管線控制命令914組態用於操作的 圖形管線,且使用來程式化3D管線922與媒體管線924。在一些實施例中,管線控制命令914組態用於主動管線的管線狀態。在一項實施例中,管線控制命令914使用於管線同步化,且用以在處理一批命令之前,清除來自主動管線內之一或多個快取記憶體的資料。
在一些實施例中,使用返回緩衝區狀態命令916,以組態用於個別管線的一組返回緩衝區,以寫入資料。一些管線操作要求在處理期間內該等操作將中間資料寫入之一或多個返回緩衝區的配置、選擇、或組態。在一些實施例中,圖形處理器也使用一或多個返回緩衝區來儲存輸出資料,且施行跨執行緒通訊。在一些實施例中,返回緩衝區狀態916包括選擇返回緩衝區的尺寸與數目,以使用於一組管線操作。
基於用於操作的主動管線,在命令序列中的剩餘命令有所不同。基於管線判定920,將命令序列定製成以3D管線狀態930開始的3D管線922,或在媒體管線狀態940時開始的媒體管線924。
用於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的方式來組態。在媒體物件命令942之前,將一組媒體管線狀態命令940分配或放置於命令佇列內。在一些實施例中,媒體管線狀態命令940包括用以組態媒體管線元件的資料,該等媒體管線元件將使用來處理媒體物件。這包括用以組態視訊解碼與視訊編碼邏輯於媒體管線內的資料,諸如編碼或解碼格式。在一些實施例中,媒體管線狀態命令940也支持一或多個指標對含有一批狀態設定之「間接」狀態元件的使用。
在一些實施例中,媒體物件命令942供應指標到媒體物件,以用於由媒體管線所處理。媒體物件包括含有欲處理之視訊資料的記憶體緩衝區。在一些實施例中,全部媒體管線在發出媒體物件命令942之前必須有效。一旦將管線狀態組態,且將媒體物件命令942佇列,媒體管線924則經由執行命令944或相等的執行事件(例如,暫存器寫入)觸發。來自媒體管線924的輸出隨後可藉由3D管線922或媒體管線924所提供的操作來後處理。在一些實施例中,GPGPU操作係以類似媒體操作的方式來組態與執行。
圖13繪示根據一些實施例之用於資料處理系統1000 的例示性圖形軟體架構。在一些實施例中,軟體架構包括3D圖形應用程式1010、作業系統1020、以及至少一個處理器1030。在一些實施例中,處理器1030包括圖形處理器1032以及一或多個通用處理器核心1034。圖形應用程式1010與作業系統1020各在資料處理系統的系統記憶體1050中執行。
在一些實施例中,3D圖形應用程式1010含有包括著色器指令1012的一或多個著色器程式。著色器語言指令可呈高階著色器語言,諸如高階著色器語言(HLSL)或開放圖形庫著色器語言(GLSL)。該應用程式也包括呈機器語言的可執行指令1014,該機器語言適用於由通用處理器核心1034所執行。該應用程式也包括由頂點資料定義的圖形物件1016。
在一些實施例中,作業系統1020係為來自Microsoft Corporation的Microsoft®Windows®作業系統、專屬類似於UNIX的作業系統、或使用Linux核的變體之開源類似UNIX的作業系統。當Direct3D API正在使用時,作業系統1020使用前端著色器編譯器1024,以將呈HLSL的任何著色器指令1012編譯成較低階著色器語言。該編譯可能是即時(JIT)編譯,或者該應用程式可施行著色器事先編譯。在一些實施例中,在3D圖形應用程式1010的編譯期間,將高階著色器編譯成低階著色器。
在一些實施例中,使用者模式圖形驅動器1026含有用以將著色器指令1012轉換成硬體專用表示的後端著色 器編譯器1027。當OpenGL API正在使用時,呈GLSL高階語言的著色器指令1012則通到使用者模式圖形驅動器1026用於編譯。在一些實施例中,使用者模式圖形驅動器1026使用作業系統核模式功能1028,以與核模式圖形驅動器1029通訊。在一些實施例中,核模式圖形驅動器1029與圖形處理器1032通訊,以分配命令與指令。
至少一項實施例的一或多個態樣可藉由儲存在機器可讀取媒體上的代表性代碼所實施,其代表及/或定義在諸如處理器之積體電路內的邏輯。例如,機器可讀取媒體可包括代表處理器內之許多邏輯的指令。當由機器讀取時,指令可導致機器製造邏輯,以施行在本文中所說明的技術。稱為「IP核心」的此等表示係為用於積體電路的邏輯可再用單元,其可儲存在有形、機器可讀取媒體上,以作為說明積體電路結構的硬體模型。硬體模型可供應到許多顧客或製造設施,其將硬體模型裝載在製造積體電路的製造機器上。可製造積體電路,使得電路施行結合本文中所說明之任何實施例來說明的操作。
圖14係繪示IP核心發展系統1100的方塊圖,該IP核心發展系統可用來製造積體電路,以施行根據一實施例的操作。IP核心發展系統1100可用來產生模組化、可再用設計,該設計可結合到更大的設計內或用來架構整個積體電路(例如,SOC積體電路)。設計設施1130可產生呈高階程式化語言(例如,C/C++)之IP核心設計的軟體模擬1110。軟體模擬1110可用來設計、測試、以及驗證 使用模擬模型1112之IP核心的行為。模擬模型1112可包括功能性、行為性、及/或計時模擬。暫存器轉移層次(RTL)設計隨後可從模擬模型1112產生或合成。RTL設計1115係為將介於硬體暫存器之間之數位訊號的流動模型化的積體電路行為的摘要,其包括使用模型化數位訊號來施行的有關邏輯。除了RTL設計1115以外,在邏輯層次或電晶體層次的較低層次設計也可被產生、設計、或合成。因此,最初設計與模擬的特定細節可能改變。
RTL設計1115或等同物可藉由設計設施進一步合成為硬體模型1120,該模型可能呈硬體說明語言(HDL)或實體設計資料的一些其他表示。HDL可進一步經模擬或測試,以驗證IP核心設計。IP核心設計可經儲存,以使用非揮發性記憶體1140(例如,硬碟、快閃記憶體、或任何非揮發性儲存媒體)傳送到第三方製造設施1165。或者,IP核心設計可在有線連接1150或無線連接1160上傳送(例如,經有網際網路)。製造設施1165隨後可製造至少部份基於IP核心設計的積體電路。經製造的積體電路可經組態,以施行根據本文中所說明之至少一項實施例的操作。
圖15係繪示根據一實施例之例示性系統單晶片積體電路1200的方塊圖,該系統單晶片可使用一或多個IP核心來製造。例示性積體電路包括一或多個應用程式處理器1205(例如,CPU)、至少一個圖形處理器1210,且可額外地包括影像處理器1215及/或視訊處理器1220,其中任 一者可能是來自相同或多個不同設計設施的模組化IP核心。積體電路包括週邊或匯流排邏輯,其包括USB控制器1225、UART控制器1230、SPI/SDIO控制器1235、以及I2S/I2C控制器1240。此外,積體電路可包括顯示裝置1245,其耦合到高解析度多媒體介面(HDMI)控制器1250與行動產業處理器介面(MIPI)顯示介面1255的一或多者。儲存器可由包括快閃記憶體與快閃記憶體控制器的快閃記憶體子系統1260所提供。記憶體介面可經由記憶體控制器1265提供,以用於存取到SDRAM或SRAM記憶體裝置。一些積體電路額外地包括嵌入式安全性引擎1270。
此外,其他邏輯與電路可包括在積體電路1200的處理器中,其包括額外的圖形處理器/核心、週邊介面控制器、或通用處理器核心。
以下的子句及/或實例屬於進一步實施例:一項實例實施例可以是一種方法,該方法包含在至少兩種不同的精確度上能夠選擇性地施行像素著色。該方法也包括在延遲著色期間使用不同的著色精確度。該方法也包括降低在使用者較不感興趣之螢幕區中的精確度。該方法也包括定義較高精確度之使用者感興趣的實質橢圓形螢幕區域以及定義精確度降低的周圍螢幕區域。該方法也包括定義具有不同精確度的兩個實質橢圓形螢幕區域,一個區域在另一個區域內。該方法也包括將可變精確度著色具體指定為著色語言資料類型,該著色語言資料類型依據其 著色的該螢幕區域而具有可變精確度。該方法也包括定義具有不同精確度的至少兩螢幕區域。該方法也包括施行粗糙的像素著色。該方法也包括基於硬體單一指令多重資料寬度,將不同精確度區域之間的過渡邊界量化。
在另一實例中,實施例可以是儲存用以施行序列之指令的一或多個非暫態電腦可讀取媒體,該序列包含在至少兩種不同的精確度上能夠選擇性地施行像素著色。該媒體也可包括進一步儲存用以施行包括在延遲著色期間使用不同著色精確度之序列的指令。該媒體也可包括進一步儲存用以施行包括降低在使用者較不感興趣之螢幕區中的精確度之序列的指令。該媒體也可包括進一步儲存用以施行包括定義較高精確度之使用者感興趣的實質橢圓形螢幕區域以及定義精確度降低的周圍螢幕區域之序列的指令。該媒體也可進一步包括進一步儲存用以施行包括定義具有不同精確度的兩個實質橢圓形螢幕區域,一個區域在另一個區域內之序列的指令。該媒體也可進一步包括進一步儲存用以施行包括將可變精確度著色具體指定為著色語言資料類型,該著色語言資料類型依據其著色的螢幕區域而具有可變精確度之序列的指令。該媒體也可進一步包括進一步儲存用以施行包括定義具有不同精確度的至少兩螢幕區域之序列的指令。該媒體也可進一步包括進一步儲存用以施行包括施行粗糙的像素著色之序列的指令。該媒體也可進一步包括進一步儲存用以施行包括基於硬體單一指令多重資料寬度,將不同精確度區域之間的過渡邊界量化之序列的 指令。
另一實例實施例可以是一種設備,其包含:處理器,其用以在至少兩種不同的精確度上能夠選擇性地施行像素著色;以及記憶體,其耦合至該處理器。該設備可包括用以在延遲著色期間使用不同的著色精確度的該處理器。該設備可包括用以降低在使用者較不感興趣之螢幕區中的精確度的該處理器。該設備可包括用以定義較高精確度之使用者感興趣的實質橢圓形螢幕區域以及定義精確度降低的周圍螢幕區域的該處理器。該設備可包括用以定義具有不同精確度的兩個實質橢圓形螢幕區域,一個區域在另一個區域內的該處理器。該設備可包括用以將可變精確度著色具體指定為著色語言資料類型,該著色語言資料類型依據其著色的該螢幕區域而具有可變精確度的該處理器。該設備可包括用以定義具有不同精確度的至少兩螢幕區域的該處理器。該設備可包括用以施行粗糙的像素著色的該處理器。該設備可包括用以基於硬體單一指令多重資料寬度,將不同精確度區域之間的過渡邊界量化的該處理器。
在本文中所說明的圖形處理技術可用許多硬體架構實施。例如,圖形功能可整合在晶片組內。或者,可使用分開的圖形處理器。如又一實施例,圖形功能可藉由通用處理器實施,包括多核心處理器。
在整個本說明書中,提及「一項實施例」或「一實施例」意味著,結合該實施例來說明的特定特徵、結構、或特色包括在包含於本揭露內的至少一項實施方案中。因 此,用詞「一項實施例」或「在一實施例中」的出現不一定意指相同實施例。更者,特定特徵、結構、或特色可能以不同於所繪示之特定實施例的其他適合形式來建立,且全部此等形式可包含在本申請案的申請專利範圍內。
雖然已經將有限數目的實施例說明,但是所屬技術領域中具有通常知識者將瞭解從中的許多修改與變化。附加申請專利範圍意圖含蓋在本揭露之真實精神與範圍內的全部此等修改與變化。

Claims (27)

  1. 一種方法,其包含:在至少兩種不同的精確度上能夠選擇性地施行像素著色。
  2. 如申請專利範圍第1項之方法,其包括在延遲著色期間使用不同的著色精確度。
  3. 如申請專利範圍第1項之方法,其包括降低在使用者較不感興趣之螢幕區中的精確度。
  4. 如申請專利範圍第3項之方法,其包括定義較高精確度之使用者感興趣的實質橢圓形螢幕區域以及定義精確度降低的周圍螢幕區域。
  5. 如申請專利範圍第1項之方法,其包括定義具有不同精確度的兩個實質橢圓形螢幕區域,一個區域在另一個區域內。
  6. 如申請專利範圍第1項之方法,其包括將可變精確度著色具體指定為著色語言資料類型,該著色語言資料類型依據其著色的該螢幕區域而具有可變精確度。
  7. 如申請專利範圍第1項之方法,其包括定義具有不同精確度的至少兩螢幕區域。
  8. 如申請專利範圍第1項之方法,其包括施行粗糙的像素著色。
  9. 如申請專利範圍第1項之方法,其包括基於硬體單一指令多重資料寬度,將不同精確度區域之間的過渡邊界量化。
  10. 一種儲存用以施行序列的指令之非暫態電腦可讀取媒體,該序列包含:在至少兩種不同的精確度上能夠選擇性地施行像素著色。
  11. 如申請專利範圍第10項之媒體,其進一步儲存用以施行包括在延遲著色期間使用不同的著色精確度之序列的指令。
  12. 如申請專利範圍第10項之媒體,其進一步儲存用以施行包括降低在使用者較不感興趣之螢幕區中的精確度之序列的指令。
  13. 如申請專利範圍第12項之媒體,其進一步儲存用以施行包括定義較高精確度之使用者感興趣的實質橢圓形螢幕區域以及定義精確度降低的周圍螢幕區域之序列的指令。
  14. 如申請專利範圍第10項之方法,其進一步儲存用以施行包括定義具有不同精確度的兩個實質橢圓形螢幕區域,一個區域在另一個區域內之序列的指令。
  15. 如申請專利範圍第10項之媒體,其進一步儲存用以施行包括將可變精確度著色具體指定為著色語言資料類型,該著色語言資料類型依據其著色的螢幕區域而具有可變精確度之序列的指令。
  16. 如申請專利範圍第10項之媒體,其進一步儲存用以施行包括定義具有不同精確度的至少兩螢幕區域之序列的指令。
  17. 如申請專利範圍第10項之媒體,其進一步儲存用以施行包括施行粗糙的像素著色之序列的指令。
  18. 如申請專利範圍第10項之媒體,其進一步儲存用以施行包括基於硬體單一指令多重資料寬度,將不同精確度區域之間的過渡邊界量化之序列的指令。
  19. 一種設備,其包含:處理器,其用以在至少兩種不同的精確度上能夠選擇性地施行像素著色;以及記憶體,其耦合至該處理器。
  20. 如申請專利範圍第19項之設備,該處理器用以在延遲著色期間使用不同的著色精確度。
  21. 如申請專利範圍第19項之設備,該處理器用以降低在使用者較不感興趣之螢幕區中的精確度。
  22. 如申請專利範圍第21項之設備,該處理器用以定義較高精確度之使用者感興趣的實質橢圓形螢幕區域以及定義精確度降低的周圍螢幕區域。
  23. 如申請專利範圍第19項之設備,該處理器用以定義具有不同精確度的兩個實質橢圓形螢幕區域,一個區域在另一個區域內。
  24. 如申請專利範圍第19項之設備,該處理器用以將可變精確度著色具體指定為著色語言資料類型,該著色語言資料類型依據其著色的該螢幕區域而具有可變精確度。
  25. 如申請專利範圍第19項之設備,該處理器用以定義具有不同精確度的至少兩螢幕區域。
  26. 如申請專利範圍第19項之設備,該處理器用以施行粗糙的像素著色。
  27. 如申請專利範圍第19項之設備,該處理器用以基於硬體單一指令多重資料寬度,將不同精確度區域之間的過渡邊界量化。
TW105130473A 2015-10-28 2016-09-21 可變精確度著色 TWI715633B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/925,325 2015-10-28
US14/925,325 US9916682B2 (en) 2015-10-28 2015-10-28 Variable precision shading

Publications (2)

Publication Number Publication Date
TW201727575A true TW201727575A (zh) 2017-08-01
TWI715633B TWI715633B (zh) 2021-01-11

Family

ID=58630625

Family Applications (1)

Application Number Title Priority Date Filing Date
TW105130473A TWI715633B (zh) 2015-10-28 2016-09-21 可變精確度著色

Country Status (3)

Country Link
US (1) US9916682B2 (zh)
TW (1) TWI715633B (zh)
WO (1) WO2017074608A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI724615B (zh) * 2019-11-07 2021-04-11 南開科技大學 依據擴增實境之圖像配置進行解鎖的系統及其方法
CN113837920A (zh) * 2021-08-18 2021-12-24 荣耀终端有限公司 一种图像渲染方法及电子设备

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10438400B2 (en) * 2016-03-08 2019-10-08 Nvidia Corporation Perceptually-based foveated rendering using a contrast-enhancing filter
GB2556634B (en) * 2016-11-18 2020-05-27 Advanced Risc Mach Ltd Graphics processing systems
US10424097B2 (en) 2017-04-01 2019-09-24 Intel Corporation Predictive viewport renderer and foveated color compressor
US10069972B1 (en) * 2017-06-26 2018-09-04 Splunk, Inc. Call center analysis
US10504281B2 (en) 2017-06-30 2019-12-10 Microsoft Technology Licensing, Llc Tracking pixel lineage in variable rate shading
US10235799B2 (en) * 2017-06-30 2019-03-19 Microsoft Technology Licensing, Llc Variable rate deferred passes in graphics rendering
US10699368B1 (en) 2017-08-30 2020-06-30 Apple Inc. Memory allocation techniques for graphics shader
US11455766B2 (en) * 2018-09-18 2022-09-27 Advanced Micro Devices, Inc. Variable precision computing system
BR112022001434A2 (pt) * 2019-07-28 2022-06-07 Google Llc Métodos, sistemas e mídia para renderizar conteúdo de vídeo imersivo com malhas otimizadas
US20210358191A1 (en) * 2020-05-14 2021-11-18 Samsung Electronics Co., Ltd. Precision modulated shading
GB2598366B (en) * 2020-08-28 2023-03-08 Sony Interactive Entertainment Inc Image rendering system and method
US11935175B2 (en) * 2022-04-07 2024-03-19 Huawei Technologies Co., Ltd. Apparatus, method, and computer-readable medium for image processing using variable-precision shading

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7436405B2 (en) * 2004-05-14 2008-10-14 Microsoft Corporation Terrain rendering using nested regular grids
JP4394018B2 (ja) 2005-03-04 2010-01-06 パナソニック株式会社 シェーディング補正装置、シェーディング補正方法
US7496416B2 (en) 2005-08-01 2009-02-24 Luxology, Llc Input/output curve editor
US9082212B2 (en) 2012-12-21 2015-07-14 Nvidia Corporation Programmable blending via multiple pixel shader dispatches
US9767595B2 (en) 2013-05-02 2017-09-19 Arm Limited Graphics processing systems
US20140347363A1 (en) 2013-05-22 2014-11-27 Nikos Kaburlasos Localized Graphics Processing Based on User Interest
US9652882B2 (en) * 2014-04-05 2017-05-16 Sony Interactive Entertainment America Llc Gradient adjustment for texture mapping for multiple render targets with resolution that varies by screen location
US9547931B2 (en) * 2014-05-05 2017-01-17 Nvidia Corporation System, method, and computer program product for pre-filtered anti-aliasing with deferred shading

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI724615B (zh) * 2019-11-07 2021-04-11 南開科技大學 依據擴增實境之圖像配置進行解鎖的系統及其方法
CN113837920A (zh) * 2021-08-18 2021-12-24 荣耀终端有限公司 一种图像渲染方法及电子设备

Also Published As

Publication number Publication date
TWI715633B (zh) 2021-01-11
US20170124757A1 (en) 2017-05-04
WO2017074608A1 (en) 2017-05-04
US9916682B2 (en) 2018-03-13

Similar Documents

Publication Publication Date Title
TWI715633B (zh) 可變精確度著色
CN110136223B (zh) 使用三角形的属性的加权平均来合并粗像素着色的片段
US10565775B2 (en) Method and apparatus for load balancing in a ray tracing architecture
US10354434B1 (en) Level of detail selection during ray tracing
US10002455B2 (en) Optimized depth buffer cache apparatus and method
US20160188491A1 (en) Apparatus and method for asynchronous tile-based rendering control
TW201810179A (zh) 用於虛擬實境和多視角系統之交錯光柵化和像素著色的架構
WO2016205976A1 (en) Apparatus and method for efficient communication between virtual machines
US20160189681A1 (en) Ordering Mechanism for Offload Graphics Scheduling
US10768935B2 (en) Boosting local memory performance in processor graphics
US20180165799A1 (en) Screen matrix rendering in head mounted displays
US9830676B2 (en) Packet processing on graphics processing units using continuous threads
WO2017172307A1 (en) Method and apparatus for sampling pattern generation for a ray tracing architecture
US10269154B2 (en) Rasterization based on partial spans
US10546362B2 (en) Method and apparatus for adaptive pixel hashing for graphics processors
US11800083B2 (en) Barreling and compositing of images