TW201439975A - 在光柵操作中處理後置z覆蓋率資料 - Google Patents

在光柵操作中處理後置z覆蓋率資料 Download PDF

Info

Publication number
TW201439975A
TW201439975A TW102147797A TW102147797A TW201439975A TW 201439975 A TW201439975 A TW 201439975A TW 102147797 A TW102147797 A TW 102147797A TW 102147797 A TW102147797 A TW 102147797A TW 201439975 A TW201439975 A TW 201439975A
Authority
TW
Taiwan
Prior art keywords
coverage
data
pixel
unit
memory
Prior art date
Application number
TW102147797A
Other languages
English (en)
Inventor
Eric B Lum
Rui M Bastos
Duluk, Jr
Henry Packard Moreton
Yury Y Uralsky
Original Assignee
Nvidia Corp
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 Nvidia Corp filed Critical Nvidia Corp
Publication of TW201439975A publication Critical patent/TW201439975A/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • 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/10Geometric effects
    • G06T15/40Hidden part removal
    • G06T15/405Hidden part removal using Z-buffer

Landscapes

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

Abstract

本發明揭示用於將後置Z覆蓋率資料儲存在一著色目標內之技術。一色彩光柵操作(CROP,Color Raster Operation)單元接收有關一圖形圖元之一部分的一覆蓋率遮罩,其中該圖形圖元交叉含有多重樣本的像素,並且該部分覆蓋至少一樣本。該色彩光柵操作單元將該覆蓋率遮罩儲存在有關該像素的一位置上的該著色目標中的一資料欄位。所揭示技術的一優點為該圖形處理單元依照後置Z覆蓋率資料的決定,只計算可見片段的色彩與其他像素資料。該圖形處理單元不會計算模糊片段的色彩與其他像素資訊,藉此降低整體功率消耗並且改善整體著色效能。

Description

在光柵操作中處理後置Z覆蓋率資料
本發明一般係關於三維(3D)圖形處理,尤其係關於在光柵操作當中處理後置Z覆蓋率資料。
通常使用具有一或多個多重階段圖形處理管線的圖形處理單元(GPU,Graphics Processing Unit),著色電腦所產生包括2D和3D圖形物件的影像。這種圖形管線包括許多可程式與固定式功能階段。可程式階段包括許多處理單元,執行著色器程式來著色圖形物件,並且產生有關圖形物件的許多視覺效果。固定的功能階段執行該可程式階段不執行的額外圖形操作。一此固定功能單元為一光柵操作單元,其執行光柵操作,例如模板、z測試、混色等等,並且將像素資料當成處理過的圖形資料,以便儲存在圖形記憶體。該圖形處理單元將圖形物件著色成一或多個著色目標,每一著色目標都包括多重相片元素(像素),接著每一像素都可依序包括多重樣本。一旦著色完成,則一或多個著色目標內的該等像素可傳輸至一顯示裝置,以顯示該著色的視覺影像。
在著色期間,該圖形處理單元決定每一圖形圖元的覆蓋率資訊,其中一圖形圖元包括3D空間內的點、線和三角形。該等圖形圖元分成片段,其中每一片段都對應著色目標內的特定像素之一或多個樣本。一旦該圖形處理單元決定該等片段的覆蓋率資訊,則該圖形處理單元計算用於每一片段覆蓋樣本的色彩或其他像素資訊。此方式的一缺點就是該圖形處理單元會浪費計算資源,計算最終著色影像內看不見的片段之色彩與其他像素資訊。有關特定圖形圖元的片段會由有關最靠近顯示裝置螢幕表面的不同圖形圖元之片段所覆蓋。計算模糊片段的色彩與其他像素資訊減少可用於著色最終影像內可見的圖形物件之時間,因此降低整體圖形處理單元 效能。
對於這個問題的一可能解決方案是要計算通過一深度測試的片段的色彩與其他像素資訊,其中該深度測試根據與螢幕表面的距離,決定哪些片段可見及哪些片段不可見。不過在某些情況下,這種深度測試可在該圖形處理管線內的稍後階段上執行。因此,在計算出該色彩與其他像素資訊之時並不知道該深度測試結果。在其他情況下,通常執行這種深度測試的單元可在低功率狀態,以增加電池壽命。因此,可能無法在該圖形處理單元著色該等片段時取得該深度測試結果。
如先前所例示,業界需要一種用於著色一圖形處理管線內片段資料,減少執行模糊片段處理量之技術。
【簡述】
本發明之一具體實施例揭示一種用於在一著色目標內儲存後置Z覆蓋率資料之方法。該方法包括接收有關一圖形圖元之一部分的一覆蓋率遮罩,其中該圖形圖元交叉含有多重樣本的像素,且該部分覆蓋至少一樣本。該方法更包括將該覆蓋率遮罩儲存在有關該像素的一位置上的該著色目標中的一資料欄位。
其他具體實施例包括但不受限於:一電腦可讀取媒體,其包括可讓一處理單元實施所揭示方法中一或多個態樣的指令。本發明的其他具體實施例包括但不受限於一子系統,該子系統包括:一處理單元,構成實施該等揭示方法的一或多個態樣;及一系統,構成實施該等揭示方法的一或更多態樣。
所揭示技術的一項優點為該圖形處理單元依照後置Z覆蓋率資料的決定,只計算可見片段的色彩與其他像素資料。該圖形處理單元不會計算模糊片段的色彩與其他像素資訊,藉此降低整體功率消耗並且改善整體著色效能。
100‧‧‧電腦系統
102‧‧‧中央處理單元
103‧‧‧裝置驅動程式
104‧‧‧系統記憶體
105‧‧‧記憶體橋接器
106‧‧‧通訊路徑
107‧‧‧輸入/輸出橋接器
108‧‧‧使用者輸入裝置
110‧‧‧顯示裝置
112‧‧‧平行處理子系統
113‧‧‧第二通訊路徑
114‧‧‧系統磁碟
116‧‧‧開關
118‧‧‧網路配接器
120-121‧‧‧外接卡
202‧‧‧平行處理單元
204‧‧‧平行處理記憶體
205‧‧‧輸入/輸出橋接器
206‧‧‧主介面
207‧‧‧任務/工作單元
208‧‧‧一般處理叢集
210‧‧‧記憶體交換開關單元
212‧‧‧前端
214‧‧‧記憶體介面
215‧‧‧劃分單元
220‧‧‧動態隨機存取記憶體
230‧‧‧處理叢集陣列
302‧‧‧執行單元
303‧‧‧載入儲存單元
304‧‧‧本機暫存檔
305‧‧‧管線管理員
306‧‧‧共用記憶體
310‧‧‧串流多重處理器
312‧‧‧線程束排程器與指令單元
320‧‧‧L1快取
328‧‧‧記憶體管理單元
335‧‧‧第一點五層快取
350‧‧‧L2快取
352‧‧‧統一位址映射單元
355‧‧‧訊框緩衝區動態隨機存取記憶體介面
360‧‧‧光柵操作單元
370‧‧‧指令L1快取
380‧‧‧記憶體與快取互連
400‧‧‧圖形處理管線
410‧‧‧圖元分配器與頂點屬性擷取
415‧‧‧頂點處理單元
420‧‧‧曲面細分初始化處理單元
425‧‧‧任務產生單元
430‧‧‧任務分配器
435‧‧‧拓撲產生單元
440‧‧‧曲面細分處理單元
445‧‧‧幾何處理單元
450‧‧‧視埠縮放、消隱與裁切單元
455‧‧‧光柵器
460‧‧‧片段處理單元
465‧‧‧光柵操作單元
510‧‧‧前置Z光柵操作單元
520‧‧‧前置Z/後置Z多工器
525‧‧‧佇列
530‧‧‧片段著色器
540‧‧‧後置Z光柵操作單元
545‧‧‧色彩/覆蓋率多工器
550‧‧‧色彩光柵操作單元
560‧‧‧控制信號
562‧‧‧控制信號
570‧‧‧前z覆蓋率資訊
572‧‧‧覆蓋率資訊
580‧‧‧後置Z覆蓋率資訊
582‧‧‧色彩資訊
600‧‧‧著色目標
610‧‧‧著色目標
610(0)-610(7)‧‧‧著色目標
615‧‧‧紅色值
620‧‧‧綠色值
625‧‧‧藍色值
630‧‧‧α值
635‧‧‧z值
640‧‧‧模板遮罩
645‧‧‧x軸法線向量
650‧‧‧y軸法線向量
655‧‧‧z軸法線向量
660‧‧‧未使用欄位
665‧‧‧後置Z覆蓋率資訊
710‧‧‧像素
720‧‧‧樣本
720(0)-720(15)‧‧‧樣本
730‧‧‧圖形圖元
735‧‧‧圖形圖元
740‧‧‧圖形圖元
800‧‧‧方法
如此上面簡單彙總可詳細了解本發明上述特色的方式,本發明的更特定說明則參照具體實施例,某些具體實施例說明於附圖。不過吾人應注意,附圖只說明本發明的典型具體實施例,因此未限制本發明的範 疇,本發明承認其他等效具體實施例。
第一圖為例示構成實施本發明之一或多個態樣之電腦系統的方塊圖;第二圖為根據本發明之一具體實施例之用於第一圖的該電腦系統之一平行處理子系統的方塊圖;第三A圖為根據本發明之一具體實施例之第二圖的平行處理單元之一者內之一劃分單元的方塊圖;第三B圖為根據本發明之一具體實施例之第二圖的一般處理叢集(GPC,General Processing Cluster)內的一串流多重處理器(SM,Streaming Multiprocessor)之一部分的方塊圖;第四圖為根據本發明之一具體實施例之可構成第二圖的平行處理單元之一或多者以實施一圖形處理管線的概念圖;第五圖例示根據本發明之一具體實施例之第四圖的該片段處理單元及光柵操作單元;第六圖例示根據本發明之一具體實施例之儲存在第二圖的一或多個該等劃分單元內的一組著色目標;第七A圖至第七D圖例示根據本發明之一具體實施例之一像素交叉多重圖形圖元;及第八圖揭示根據本發明之一具體實施例之用於儲存後置Z覆蓋率資料之方法步驟的流程圖。
在以下描述中,揭示許多特定細節以對本發明有更徹底之理解。但是,精通技術人士應瞭解,在沒有一或多個該等特定細節之下還是可實施本發明。
系統概觀
第一圖為例示構成實施本發明之一或多個態樣之電腦系統100的方塊圖。電腦系統100包括一中央處理單元(CPU,Central Processing Unit)102;及一系統記憶體104,其通過一互連路徑通訊,其中該路徑可包括一記憶體橋接器105。例如可為北橋晶片的記憶體橋接器105透過匯流排 或其他通訊路徑106(例如超傳輸連結),連接一I/O(輸入/輸出)橋接器107。例如可為南僑晶片的輸入/輸出橋接器107接收來自一或多個使用者輸入裝置108(例如鍵盤、滑鼠)的使用者輸入,並透過通訊路徑106和記憶體橋接器105將該輸入轉送至中央處理單元102。一平行處理子系統112透過匯流排或第二通訊路徑113(例如週邊組件互連(PCI)Express、加速圖形連接埠(Accelerated Graphics Port)或HyperTransport連結)連接記憶體橋接器105;在一具體實施例中,平行處理子系統112為傳遞畫素給顯示裝置110(任何傳統陰極射線管、液晶監視器、發光二極體顯示器等等)的圖形子系統。系統磁碟114也連接I/O橋接器107,並且可構成儲存內容與應用程式以及資料,供中央處理單元102及平行處理子系統112使用。系統磁碟114提供非揮發性儲存裝置給應用程式與資料,並且可包括固定式或可移除式硬碟機、快閃記憶體裝置及CD-ROM(小型光碟唯讀記憶體)、DVD-ROM(數位多用途光碟-ROM)、藍光、HD-DVD(高傳真DVD)或其他詞性、光學或固態儲存裝置。
一開關116提供輸入/輸出橋接器107與其他組件,像是網路配接器118及許多外接卡120和121之間的連接。其他組件(未明確顯示),包括萬用序列匯流排(USB,Universal Serial Bus)或其他連接埠連接、小型光碟(CD)光碟機、數位多用途光碟(DVD)光碟機、檔案記錄裝置等等,也可連接輸入/輸出橋接器107。第一圖顯示的許多通訊路徑,包括特地指名的通訊路徑106和113,都可使用任何合適的協定來實施,例如PCI Express、AGP(加速圖形連接埠)、HyperTransport或任何其他匯流排或點對點通訊協定,以及不同組件之間的連接都可使用業界內已知的不同協定。
在一具體實施例中,平行處理子系統112併入將圖形與視訊處理最佳化的電路,包括例如視訊輸出電路,並且構成一圖形處理單元(GPU,Graphics Processing Unit)。在另一具體實施例中,平行處理子系統112結合針對一般用途處理的最佳化電路,同時保留底層計算架構,本說明書內有更詳細描述。在仍舊另一具體實施例中,平行處理子系統112可在單一子系統內結合一或多個其他系統元件,例如結合記憶體橋接器105、中央處理單元102和輸入/輸出橋接器107以形成一晶片上系統(SoC,system on chip)。
應瞭解,本說明書中顯示的該系統為例示,所以可進行改變與修改。包括橋接器的數量與配置、中央處理單元102的數量及平行處理子系統112的數量這類連接拓撲可依照需求修改。例如在某些具體實施例中,系統記憶體104直接連接中央處理單元102,而不是透過橋接器,並且其他裝置透過記憶體橋接器105及中央處理單元102與系統記憶體104通訊。在其他替代拓撲中,平行處理子系統112連接輸入/輸出橋接器107或直接連接中央處理單元102,而不是連接記憶體橋接器105。在仍舊其他具體實施例中,輸入/輸出橋接器107和記憶體橋接器105可整合成為單一晶片,以替代現有的一或多個分散裝置。大型組件可包括兩或多個中央處理單元102及兩或多個平行處理子系統112。本說明書中顯示的該等特定組件為選擇性;例如可支援任何數量的外接卡或周邊裝置。在某些具體實施例中,省略開關116,並且網路配接器118和外接卡120、121都直接連接輸入/輸出橋接器107。
第二圖例示根據本發明之一具體實施例的平行處理子系統112。如所示,平行處理子系統112包括一或多個平行處理單元(PPU,Parallel Processing Unit)202,每一者都耦接至本機平行處理(PP,Parallel Processing)記憶體204。一般來說,平行處理子系統包括數量為U的平行處理單元,其中U1。(本說明書中多個類似物體的實例都用參考號碼標示出該物體,並且括號標示所需的實例。)平行處理單元202及平行處理記憶體204可使用一或多個積體電路裝置來實施,例如可程式處理器、特殊應用積體電路(ASIC,Application Specific Integrated Circuit)或記憶體裝置,或以任何其他技術可行方式。
請即重新參考第一圖、以及第二圖,在一具體實施例中,平行處理子系統112內的某些或全部平行處理單元202為具有著色管線的圖形處理器,其可構成執行許多操作,這些操作有關透過記憶體橋接器105和第二通訊路徑113,從中央處理單元102及/或系統記憶體104供應的圖形資料產生畫素資料、與本機平行處理記憶體204(可用來當成圖形記憶體,包括例如傳統訊框緩衝區)互動來儲存與更新畫素資料、傳遞畫素資料 給顯示裝置110等等。在某些具體實施例中,平行處理子系統112可包括操作當成圖形處理器的一或多個平行處理單元202,及用於一般用途計算的一或多個其他平行處理單元202。該等平行處理單元可相同或不同,並且每一平行處理單元都可擁有一專屬的平行處理記憶體裝置或無專屬的平行處理記憶體裝置。平行處理子系統112內的一或多個平行處理單元202可輸出資料至顯示裝置110,或平行處理子系統112內的每一平行處理單元202都可輸出資料至一或多個顯示裝置110。
在操作上,中央處理單元102為電腦系統100的主要處理器,控制與協調其他系統組件的操作。尤其是,中央處理單元102發出指令控制平行處理單元202的操作。在某些具體實施例中,中央處理單元102將每一平行處理單元202的指令串流寫入一資料結構(第一圖或第二圖未明確顯示),其可位於系統記憶體104、平行處理記憶體204或可存取中央處理單元102和平行處理單元202的其他儲存位置內。每一資料結構已經寫入一推送緩衝區的指標,開始在該資料結構內處理該指令串流。平行處理單元202讀取來自一或多個推送緩衝區的指令串流,然後關於中央處理單元102的操作非同步執行指令。利用應用程式透過裝置驅動程式103來控制不同推送緩衝區的排程,指定每一推送緩衝區的執行優先順序。
請即重新參考第二圖及第一圖,每一平行處理單元202都包括一I/O(輸入/輸出)單元205,其透過連接記憶體橋接器105(或在替代具體實施例中,直接至中央處理單元102)的通訊路徑113,與電腦系統100的其餘組件通訊。平行處理單元202與電腦系統100其餘組件的連接也可改變。在某些具體實施例中,平行處理子系統112實施成為可插入電腦系統100內擴充槽的外接卡。在其他具體實施例中,平行處理單元202可與例如記憶體橋接器105或輸入/輸出橋接器107這類匯流排橋接器整合在單一晶片上。在仍舊其他具體實施例中,平行處理單元202的某些或全部元件可與中央處理單元102整合在單一晶片上。
在一具體實施例中,通訊路徑113為一PCI Express連結,其中分配專屬通道給每一平行處理單元202,如業界內所熟知。在一具體實施例中,通訊路徑113為一PCI Express連結,其中分配專屬通道給每一平 行處理單元202,如業界內所熟知。一輸入/輸出單元205產生在通訊路徑113上傳輸的封包(或其他信號),也從通訊路徑113上接收所有傳入封包(或其他信號),將該等傳入封包導引至平行處理單元202的適當組件。例如:有關處理任務的指令可導引至主介面206,而有關記憶體操作的指令(例如讀取或寫入平行處理記憶體204)可導引至記憶體交換開關單元210。主介面206讀取每一推送緩衝區,並將該推送緩衝區內儲存的該指令串流輸出至一前端212。
每一平行處理單元202都有利地實施一高平行處理架構。如細節內所示,平行處理單元202(0)包括一處理叢集陣列230,其包括數量為C的一般處理叢集(GPC,General Processing Cluster)208,其中C1。每個一般處理叢集208都可同時執行大量的(例如數百或數千)執行緒,其中每一執行緒都是一程式的實例。在許多應用當中,不同的一般處理叢集208可分配用於處理不同類型的程式,或用於執行不同類型的計算。一般處理叢集208的分配絕大部分取決於針對每一種程式或計算所賦予的工作負荷。
一般處理叢集208從任務/工作單元207內的工作分配單元當中接收要執行的處理任務,該工作分配單元接收指標來處理任務,其編碼為任務中繼資料(TMD,Task Metadata)並儲存在記憶體內。該指標至任務中繼資料包括在指令串流內,其儲存當成一推送緩衝區並由前端單元212從主介面206接收。可編碼為任務中繼資料的處理任務包括要處理的資料索引,以及定義如何處理該資料的狀態參數與指令(例如要執行哪個程式)。任務/工作單元207從前端212接收任務,並且確保在每一任務中繼資料指定的處理開始之前已經將一般處理叢集208構成有效狀態。一優先順序可指定給每一任務中繼資料,用來排定該處理任務的執行時間。處理任務也可從處理叢集陣列230接收。或者,該任務中繼資料可包括一參數,其控制該任務中繼資料加入處理任務清單(或處理任務指標清單)的頭部或尾部,藉此提供另一優先順序控制等級。
記憶體介面214包括數量為D的劃分單元215,這些單元每一都直接連接一部分平行處理記憶體204,其中D1。如所示,劃分單元215的數量一般等於動態隨機存取記憶體(DRAM,Dynamic Random Access Memory)220的數量。在其他具體實施例中,劃分單元215的數量可不等於記憶體裝置的數量。精通技術人士應瞭解,動態隨機存取記憶體220可用其他合適的裝置取代,並且可為一般傳統設計,因此省略其詳細說明。像是訊框緩衝區或貼圖地圖這類著色目標可通過動態隨機存取記憶體220儲存,允許劃分單元215平行寫入每一著色目標的部分,以有效使用平行處理記憶體204的可用頻寬。
一般處理叢集208之任一者都可處理寫入平行處理記憶體204內任一動態隨機存取記憶體220的資料。交換開關單元210構成將每一一般處理叢集208的輸出繞送至任意劃分單元215的輸入或至用於進一步處理的其他一般處理叢集208。一般處理叢集208透過交換開關單元210與記憶體介面214通訊,以讀取或寫入許多外部記憶體裝置。在一具體實施例中,交換開關單元210具有一連接記憶體介面214以與輸入/輸出單元205通訊,及一連接本機平行處理記憶體204,藉此讓不同一般處理叢集208內的處理核心與系統記憶體104或不在平行處理單元202本機上的其他記憶體通訊。在第二圖所示的具體實施例中,交換開關單元210直接連接輸入/輸出單元205。交換開關單元210可使用虛擬通道,以分隔一般處理叢集208與劃分單元215之間的流量串流。
再者,一般處理叢集208可經程式編輯以處理有關廣泛應用的任務,包括但不受限於線性與非線性資料傳輸、視訊及/或音訊資料篩選、模型化運算(例如套用實體規則來決定位置、速度及其他物體屬性)、影像著色運算(例如曲線細分著色、影點著色、幾何著色及/或畫素著色程式)等等。平行處理單元202可從系統記憶體104及/或本機平行處理記憶體204將資料傳輸進入內部(晶片上)記憶體、處理該資料並將結果資料寫回系統記憶體104及/或本機平行處理記憶體204,其中這種資料可由其他系統組件存取,包括中央處理單元102或另一平行處理子系統112。
一平行處理單元202可提供任何數量的本機平行處理記憶體204,包括非本機記憶體,並且可任何情況下使用本機記憶體和系統記憶體。例如:平行處理單元202可為統一記憶體架構(UMA,Unified Memory Architecture)具體實施例內的圖形處理器。在這種具體實施例中,提供一些 或無專屬圖形(平行處理)記憶體,並且平行處理單元202完全或幾乎完全使用系統記憶體。在統一記憶體架構具體實施例中,平行處理單元202可整合至橋接器晶片或處理器晶片,或提供當成分散式晶片,具有高速連結(例如PCI Express)透過橋接器晶片或其他通訊方式將平行處理單元202連接系統記憶體。
如上述,任何數量的平行處理單元202都可包括在一平行處理子系統112內。例如:單一外接卡上可提供多個平行處理單元202,或多張外接卡可連接通訊路徑113,或一或多個平行處理單元202可整合到一橋接器晶片上。多平行處理單元系統內的平行處理單元202可彼此相同或不同。例如:不同的平行處理單元202可具有不同數量的處理核心、不同大小的本機平行處理記憶體等等。當存在多個平行處理單元202時,這些平行處理單元可平行操作,以比單一平行處理單元202還要高產量的方式來處理資料。結合一或多個平行處理單元202的系統可在許多設置與外型因素之下實施,包括桌上型、膝上型或手持式個人電腦、伺服器、工作站、遊戲機、嵌入式系統等等。
第三A圖為根據本發明之一具體實施例之第二圖中平行處理單元202之一者內之一劃分單元215的方塊圖。如所示,劃分單元215包括一L2快取350、一訊框緩衝區(FB,Frame Buffer)隨機存取記憶體介面355及一光柵操作單元(ROP,Raster Operation Unit)360。L2快取350為一讀取/寫入快取,構成執行接收自交換開關單元210和光柵操作單元360的載入與儲存操作。讀取遺失與緊急寫回要求由L2快取350輸出至訊框緩衝區隨機存取記憶體介面355進行處理。髒更新也傳送至訊框緩衝區355進行隨機處理。訊框緩衝區355直接與隨機存取記憶體220介接、輸出讀取與寫入要求並且接收讀取自隨機存取記憶體220的資料。
在圖形應用當中,光柵操作單元360為一種處理單元,其執行光柵操作,例如模板、Z測試、混色等等,並且將像素資料當成處理過的圖形資料輸出,以便儲存在圖形記憶體內。在本發明的某些具體實施例中,光柵操作單元360包括在每個一般處理叢集208而非劃分單元215內,並且像素讀取與寫入要求透過交換開關單元210傳輸,而非像素片段資料。
該處理圖形資料可顯示在顯示裝置110上,或繞送供中央處理單元102或平行處理子系統112內該等處理實體之一者進一步處理。每一劃分單元215都包括一光柵操作單元360,以分配該等光柵操作的處理。在某些具體實施例中,光柵操作單元360構成將寫入記憶體的z或顏色資料壓縮,並且將從記憶體讀取的z或顏色資料解壓縮。
第三B圖為根據本發明之一具體實施例之第二圖中一般處理叢集(GPC,General Processing Cluster)208內的一串流多重處理器(SM,Streaming Multiprocessor)310之一部分的方塊圖。每個一般處理叢集208都可構成同時執行大量執行緒,其中「執行緒」一詞代表在特定輸入資料集上執行的特定程式之實例。在某些具體實施例中,單一指令、多重資料(SIMD,Single-Instruction,Multiple-Data)指令發行技術用於支援大量執行緒的平行執行,而不用提供多個獨立指令單元。在其他具體實施例中,單一指令、多重執行緒(SIMT,Single-Instruction,Multiple-Thread)技術用於支援大量一般同步執行緒的平行執行,使用共用指令單元,其構成發出指令至每個一般處理叢集208內的處理引擎集。不同於一單一指令、多重資料執行系統,其中所有處理引擎通常執行相同的指令,單一指令、多重執行緒執行允許不同執行緒透過一已知執行緒程式以更迅速遵循分散的執行路徑。業界內精通技術人士應瞭解,單一指令、多重資料處理區域代表一單一指令、多重執行緒處理區域的函數子集。
透過將處理任務分配至一或多個串流多重處理器(SM,Streaming Multiprocessor)310的管線管理員(未顯示)可有利地控制一般處理叢集208的操作,其中每一串流多重處理器310都構成處理一或多個執行緒群組。每一串流多重處理器310都包括一指令L1快取370,其構成透過一般處理叢集208內的一L1.5快取(未顯示)接收指令與常數。線程束排程器與指令單元312接收來自指令L1快取370的指令與常數,並且根據該等指令與常數控制本機暫存檔304及串流多重處理器310功能單元。串流多重處理器310功能單元包括N個執行(執行或處理)單元302及P個載入儲存單元(ISU,Load-Store Unit)303。該串流多重處理器功能單元可管線化,允許在先前指令完成之前發出新指令,如業界所熟知。本發明可提供任何 功能執行單元組合。在一具體實施例中,該等功能單元支援許多種運算,包括整數與浮點演算(例如加法與乘法)、比較運算、布林運算(AND、OR、XOR)、位元位移和許多代數函數的計算(例如平面插值、三角函數以及對數函數等等);並且可運用該相同功能單元來執行不同運算。
傳輸至特定一般處理叢集208的一系列指令構成一執行緒,如本說明書先前所定義,並且通過串流多重處理器310內平行處理引擎(未顯示)的特定數量同時執行的執行緒之集合在此稱為「線程束」或「執行緒群組」。如本說明書所使用,「執行緒群組」代表在不同輸入資料上同時執行相同程式的執行緒群組,其中該群組的一執行緒指派給串流多重處理器310內不同的處理引擎。一執行緒群組可包括數量比串流多重處理器310內的處理引擎數量還要少的執行緒,在此案例中,某些處理引擎會在處理該執行緒群組的循環期間閒置。執行緒群組也可包括數量比串流多重處理器310內處理引擎數量還要多的執行緒,在此案例中,將在連續時脈循環上進行處理。因為每一串流多重處理器310都可同時支援最多G個執行緒群組,故其遵循在包括 M 個串流多重處理器310的一般處理叢集208內,最多G*M個執行緒群組可隨時在一般處理叢集208內執行之系統。
此外,在串流多重處理器310內可同時啟用複數個相關執行緒群組(在不同執行相位內)。此執行緒群組的集合稱為「協作執行緒陣列」(CAT,Cooperative Thread Array)或「執行緒陣列」。特定協作執行緒陣列的大小等於m*k,其中k為執行緒群組內同時執行的執行緒數量,通常為串流多重處理器310內平行處理引擎數量的整數倍數,並且m為串流多重處理器310內同時啟用的執行緒群組數量。協作執行緒陣列的大小一般由程式設計師及該協作執行緒陣列可用的硬體資源數量,例如記憶體或暫存器,來決定。
在本發明的具體實施例中,吾人想要使用一計算系統的平行處理單元202或其他處理器,運用執行緒陣列來執行一般用途計算。該執行緒陣列內的每一執行緒都可指派一唯獨的執行緒識別碼(「執行緒ID」),其可在該執行緒執行期間存取該執行緒。該執行緒ID可定義為一維度或多維度數值,控制該執行緒處理行為的許多態樣。例如:一執行緒ID可用於 決定設定一執行緒的哪個輸入資料部分要處理及/或決定設定一執行緒的哪個輸入資料部分要產生或寫入。
每個執行緒指令的序列可包括至少一指令,其定義該代表性執行緒與該執行緒陣列的一或多個其他執行緒之間的協作行為。例如:每一執行緒指令的順序可包括將在該順序內特定點上該代表執行緒運算執行中斷,直到一或多個其他執行緒到達該特定點上為止之指令、讓該代表執行緒將一或多個其他執行緒可存的資料儲存至一共用記憶體內之指令、讓該代表執行緒根據其執行緒ID自動讀取與更新一共用記憶體內一或多個該等其他執行緒已經存取過的資料之指令等等。該協作執行緒陣列程式也可包括一指令,計算該共用記憶體內所要讀取資料的位址,其中該位址為執行緒ID的函數。利用定義合適的功能並且提供同步技術,資料可利用CAT的一執行緒寫入共用記憶體內的一已知位置,並且以可預測方式用相同協作執行緒陣列的不同執行緒從該位置當中讀取。因此,支援在執行緒之間共用的任何資料圖案,並且一協作執行緒陣列內的任何執行緒都可與相同協作執行緒陣列內任何其他執行緒共用資料。在協作執行緒陣列執行緒之間共用的資料內容(若有的話)由該協作執行緒陣列程式決定;如此,應瞭解,在使用協作執行緒陣列的特定應用當中,根據該協作執行緒陣列程式,一協作執行緒陣列的執行緒彼此之間可以或不實際共用資料,並且在本說明書中同時使用「協作執行緒陣列」與「執行緒陣列」等詞。
串流多重處理器310提供具備不同存取階層的晶片上(內部)資料儲存。特殊暫存器(未顯示)可由載入儲存單元303讀取但是無法寫入,並且可用於定義每一執行緒「位置」的參數。在一具體實施例中,特殊暫存器包括每一執行緒(或串流多重處理器310內每一執行單元302)一暫存器,其儲存一執行緒ID;每一執行緒ID暫存器都只能由個別一執行單元302存取。特殊暫存器也可包括額外暫存器,可由執行任務中繼資料(TMD)(未顯示)(或由所有載入儲存單元303)所呈現相同處理任務的所有執行緒讀取,其儲存一協作執行緒陣列識別碼、該協作執行緒陣列維度、該協作執行緒陣列所屬網格的維度(或若任務中繼資料編碼一佇列任務而非一網格任務時的佇列位置)及指派協作執行緒陣列的任務中繼資料之識別碼。
若任務中繼資料為一網格任務中繼資料,則執行任務中繼資料會導致啟動並執行固定數量的協作執行緒陣列,來處理佇列525內所儲存的固定數量資料。協作執行緒陣列的數量依照網格寬度、高度與深度的乘積來指定。該固定數量的資料可儲存在任務中繼資料內,或任務中繼資料可儲存將由協作執行緒陣列處理的資料之指標。任務中繼資料也儲存該協作執行緒陣列所執行程式的開始位址。
若任務中繼資料為佇列任務中繼資料,然後使用任務中繼資料的佇列功能,表示要處理的資料量並不需要固定。佇列記錄儲存資料,供指派給任務中繼資料的該等協作執行緒陣列處理。該等佇列記錄也呈現執行緒執行期間由另一任務中繼資料產生的子任務,藉此提供巢狀平行。一般來說,執行緒的執行或包括該執行緒的協作執行緒陣列會中止,直到子任務執行完成為止。該佇列可儲存在任務中繼資料內,或與任務中繼資料分開,在此案例中任務中繼資料儲存至該佇列的佇列指標。有利的是,由該子任務產生的資料可寫入該佇列,同時任務中繼資料代表已經執行的該子任務。該佇列可實施為一圓形佇列,如此資料總量並不受限於該佇列的大小。
屬於一網格的協作執行緒陣列具有隱涵的網格寬度、高度和深度參數,指示該網格內個別協作執行緒陣列的位置。在初始化期間會寫入特殊暫存器,以回應透過前端212從裝置驅動程式103接收命令,並且在一處理任務期間不會改變。前端212排程執行每一處理任務。每一協作執行緒陣列都關聯於一特定任務中繼資料,以同時執行一或多個任務。此外,單一一般處理叢集208可同時執行多個任務。
一參數記憶體(未顯示)儲存可由相同協作執行緒陣列(或任何載入儲存單元303)內任何執行緒讀取但無法寫入的執行時間參數(常數)。在一具體實施例中,裝置驅動程式103在導引串流多重處理器310開始執行使用這些參數的任務之前,提供參數該參數記憶體。任何協作執行緒陣列內的任何執行緒(或串流多重處理器310內的任何執行單元)都可透過記憶體介面214存取全域記憶體。全域記憶體的一部分可儲存在L1快取320內。
每一執行緒都使用本機暫存檔304當成暫存空間;每一暫存器都分配給一執行緒專用,並且任何本機暫存檔304內的資料都只能由分配給該暫存器的該執行緒存取。本機暫存檔304可實施為實體或邏輯上區分成P個通路的暫存檔,每一通路都具有某些數量的記錄(在此每一記錄都可儲存例如32位元字)。一通路指派給該N個執行單元302及P個載入儲存單元載入儲存單元303之每一者,並且不同通路內的對應記錄可填入執行相同程式的不同執行緒之資料,以幫助單一指令、多重資料執行。通路的不同部分可分配給該G個同時執行緒群組中不同的執行緒,如此本機暫存檔304內的一已知記錄只能由特定執行緒存取。在一具體實施例中,本機暫存檔304內的特定記錄保留用於儲存執行緒識別碼,實施該等特殊暫存器之一者。此外,一同型L1快取375儲存N個執行單元302及P個載入儲存單元載入儲存單元303的每一通路之同型或常數值。
共用記憶體306可由單一協作執行緒陣列內的執行緒存取;換言之,共用記憶體306內的任何位置都可由相同協作執行緒陣列內任何執行緒(或串流多重處理器310內任何處理引擎)來存取。共用記憶體306可實施為具有互連的一共用暫存檔或共用晶片上記憶體,允許任何處理引擎從該共用記憶體內任何位置讀取或寫入。在其他具體實施例中,共用的狀態空間可映射至晶片外記憶體的每一協作執行緒陣列區域,並且快取在L1快取320內。該參數記憶體可實施為該相同共用暫存檔或實施共用記憶體306的共用快取記憶體內一指定區段,或實施為載入儲存單元303具有唯讀存取的一個別共用暫存檔或晶片上快取記憶體。在一具體實施例中,實施該參數記憶體的區域也用於儲存該協作執行緒陣列ID和任務ID,及協作執行緒陣列和網格大小或佇列位置,實施該特殊暫存器的位置。串流多重處理器310內每一載入儲存單元303都耦接至統一位址映射單元352,將提供用於載入與儲存統一記憶體空間內所指定指令的一位址轉換至每一分散記憶體空間內一位址。因此,利用指定該統一記憶體空間內一位址,可使用一指令來存取任何該本機、共用或全域記憶體空間。
每一串流多重處理器310內的L1快取320都可用於快取私用每一執行緒本機資料,並且也快取每一應用程式全域資料。在某些具體 實施例中,該每一協作執行緒陣列共用資料可快取在L1快取320內。載入儲存單元303可透過一記憶體與快取互連380耦接至共用記憶體306以及L1快取320。
應瞭解,本說明書中顯示的該核心架構為例示,所以可進行改變與修改。任何數量的處理單元,例如串流多重處理器310可包括在一般處理叢集208內。此外,如第二圖所示,平行處理單元202可包括任意數量功能彼此類似的一般處理叢集208,如此執行行為並不取決於接收特定處理任務的一般處理叢集208。此外,每個一般處理叢集208都得利於與其他一般處理叢集208無關的操作,運用分離並分散的處理單元、L1快取,來執行一或多個應用程式的任務。
精通此技術人士應瞭解,第一圖至第三B圖描述的架構並非用於限制本發明範疇,本說明書內的技術可在任何正確設置的處理單元上實施,在不悖離本發明範疇之下包括但不受限於一或多個中央處理單元、一或多個多核心中央處理單元、一或多個平行處理單元202、一或多個一般處理叢集208、一或多個圖形或特殊用途處理單元等等。
圖形管線架構
第四圖為根據本發明的一具體實施例之可構成第二圖中平行處理單元202之一或多者來實施之一圖形處理管線400的概念圖。例如:一串流多重處理器310可構成執行頂點處理單元415、曲面細分初始化處理單元420、曲面細分處理單元440、幾何處理單元445及片段處理單元460之一者或多者的功能。圖元分配器410、任務產生單元425、任務分配器430、拓撲產生單元435、視埠縮放、消隱與裁切單元450、光柵器455及光柵操作單元465的功能也可由一般處理叢集208與對應劃分單元215內的其他處理引擎所執行。另外,可使用一或多個功能的專屬處理單元,實施圖形處理管線400。
圖形處理管線也包括使用在串流多重處理器310內的圖形處理管線400之一共用記憶體306。如以下進一步描述,依照需要,共用記憶體306內的中間階段緩衝區(未顯示)已經由圖形處理管線400內的許多處理單元分配與取消分配。一處理單元從一或多個中間階段緩衝區讀取輸入 資料、處理該輸入資料以產生輸出資料,並且將該結果輸出資料儲存在一或多個中間緩衝區內。一後續處理單元可讀取此結果輸出資料,當成該後續處理單元的輸入資料。該後續處理單元處理該資料,並且將輸出資料儲存在一或多個中間階段緩衝區內,以此類推。共用記憶體306和該圖形處理管線的許多其他階段都透過記憶體介面214而與外部記憶體相連。
圖元分配器410匯集高階表面、圖元等等的頂點資料,並且將包括該等頂點屬性的該頂點資料輸出至頂點處理單元415。在某些具體實施例中,圖元分配器410包括一頂點屬性擷取單元(未顯示),其取得共用記憶體306內的該等頂點屬性並且將該等頂點屬性儲存至此。頂點處理單元415為一可程式執行單元,其構成執行頂點著色程式,依照該頂點著色程式所規定照明與轉換頂點資料。例如:頂點處理單元415可程式編輯成將該頂點資料從一物件型座標代表(物件空間)轉換成一替代型座標系統,例如世界空間或標準化裝置座標(NDC,Normalized Device Coordinates)空間。頂點處理單元415可用圖元分配器410讀取共用記憶體306、L1快取320、平行處理記憶體204或系統記憶體104內儲存的資料,用來處理該頂點資料。頂點處理單元415將處理過的頂點儲存在共用記憶體306內的中間階段緩衝區內。
曲面細分初始化處理單元420為一可程式執行單元,其構成執行曲面細分初始化著色程式。曲面細分初始化處理單元420處理頂點處理單元415所產生的頂點,並產生圖形圖元,就是塊面。曲面細分初始化處理單元420也產生許多塊面屬性,然後曲面細分初始化處理單元420將該塊面資料以及塊面屬性儲存在共用記憶體360內的該等中間階段緩衝區內。在某些具體實施例中,該曲面細分著色程式可稱為外表著色或曲面細分控制著色。
任務產生單元425從共用記憶體306的該等中間階段緩衝區當中取得頂點的資料與屬性及塊面。任務產生單元產生425用於處理該等頂點與塊面的任務,供圖形處理管線400內稍後階段進行處理。
任務分配器430重新分配任務產生單元425所產生的任務。該頂點著色程式及該曲面細分初始化程式的許多實例所產生之任務可在一 圖形處理管線400與另一之間顯著改變。任務分配器430重新分配這些任務,如此每一圖形處理管線400在稍後管線階段期間具有大約相同的工作負荷。
拓撲產生單元435獲得由任務分配器430分配的任務。拓撲產生單元435將該等頂點索引,包括有關塊面的頂點,並且計算對應該等頂點的貼圖座標。然後拓撲產生單元435將索引頂點儲存在共用記憶體306內的中間階段緩衝區內。
曲面細分處理單元440為一可程式執行單元,其構成執行曲面細分著色程式。曲面細分處理單元440讀取來自共用記憶體的輸入資料,並且將輸出資料寫入共用記憶體306的該等中間階段緩衝區。在該中間階段緩衝區內的此輸出資料會傳遞至下一著色階段,當成幾何處理單元455的輸入資料。在某些具體實施例中,該曲面細分著色程式可稱為領域著色或曲面細分評估著色。
曲面細分處理單元445為一可程式執行單元,其構成執行幾何著色程式,藉此轉換圖形圖元。頂點經過分組,建構用於處理的圖形圖元,其中圖形圖元包括三角形、線段、點等等。例如:幾何處理單元445可程式編輯成將該等圖形圖元分成一或多個新圖形圖元,並且計算參數,例如平面等式係數,用來將該等新圖形圖元光柵化。
在某些具體實施例中,幾何處理單元445也可新增或刪除該幾何串流內的元件。幾何處理單元445輸出將新圖形圖元指定至一視埠縮放、消隱及裁切單元450的該等參數與頂點。幾何處理單元445可讀取儲存在共用記憶體306、平行處理記憶體204或系統記憶體104內的資料,用來處理該幾何資料。視埠縮放、消隱與裁切單元450執行裁切、消隱與視埠縮放,並且將處理過的圖形圖元輸出至一光柵器455。
光柵器455掃描轉換新圖形圖元,並且將片段與覆蓋率資料輸出至片段處理單元460。此外,光柵器455可構成執行Z消隱及其他z型最佳化。
片段處理單元460為一可程式執行單元,其構成執行片段著色程式,依照該片段著色程式所規定轉換接收自光柵器455的片段。例如: 片段處理單元460可程式編輯成執行操作,例如透視修正、貼圖映射、著色、混色等等,以產生輸出至光柵操作單元465的已著色片段。片段處理單元460可讀取儲存在共用記憶體306、平行處理記憶體204或系統記憶體104內的資料,用來處理該片段資料。根據該程式編輯的取樣率,片段可依照像素、取樣或其他細微性來著色。
光柵操作單元465為一種處理單元,其執行光柵操作,例如模板、z測試、混色等等,並且將像素資料當成處理過的圖形資料,以儲存在圖形記憶體內。該處理過的圖形資料可儲存在圖形記憶體內,例如平行處理記憶體204,及/或系統記憶體104,用於顯示在顯示裝置110或用於由中央處理單元102或平行處理子系統112進一步處理。在本發明的某些具體實施例中,光柵操作單元465構成將寫入記憶體的z或顏色資料壓縮,並且將從記憶體讀取的z或顏色資料解壓縮。在許多具體實施例中,光柵運算單元465可位於記憶體介面214、一般處理叢集208、該一般處理叢集之外的處理叢集陣列230或平行處理單元202的一個別單元(未顯示)內。
在光柵操作中處理後置Z覆蓋率資料
在圖形處理管線400的特定階段執行Z測試允許圖形處理管線400提早忽略特定片段,如此,進一步處理循環不會浪費在最終著色影像內看不見的片段。通常這種Z測試的結果並不會直接儲存在該等著色目標內。不過,如以下進一步描述,某些應用程式可從將Z測試結果儲存在著色目標內供後續處理操作使用而獲得好處。
第五圖例示根據本發明之一具體實施例之第四圖的該片段處理單元460及光柵操作單元465。如所示,片段處理單元460包括一前置Z光柵操作(ZROP,Z-Raster Operation)單元510、一前置Z/後置Z多工器520及一片段著色器530。如進一步顯示,光柵操作單元465包括一後置Z光柵操作單元540、一色彩/覆蓋率多工器545及一色彩光柵操作(CROP,Color Raster Operation)單元550。
前置Z光柵操作單元510接收來自光柵器455的片段資料,其中該片段資料可包括但不受限於Z平面等式資料、色彩成份與貼圖座標的平面等式資料、一螢幕空間位置(x,y)及光柵化覆蓋率遮罩。前置Z光柵 操作單元510使用由多樣本模式指定的樣本位置,及光柵器455提供的平面等式資料,計算用於每一樣本位置的Z資訊。前置Z光柵操作單元510將目前樣本的Z值與對應樣本位置的先前儲存Z值比較。這種處理就是熟知的「Z測試」或「隱藏表面移除」。在某些具體實施例中,前置Z光柵操作單元510可將通過該Z測試的樣本Z值,寫入構成一深度(或Z)緩衝區的一著色目標。前置Z光柵操作單元510忽略未通過Z測試的樣本,並且前置Z光柵操作單元510不寫入這些已忽略樣本的任何Z值。
前置Z光柵操作單元510也根據目前已經處理過的該片段覆蓋哪個已知像素的樣本,來計算覆蓋率資訊。當前置Z光柵操作單元510單獨根據目前已經處理過的該片段來計算該覆蓋率遮罩時,這種覆蓋率遮罩已知為前置Z覆蓋率資訊570。當前置Z光柵操作單元510根據目前已經處理過的該片段及先前著色的片段資料來計算該覆蓋率遮罩時,這種覆蓋率遮罩已知為後置Z覆蓋率資訊580。前置Z光柵操作單元510將每一片段的該等覆蓋率遮罩提供給前置Z/後置Z多工器520。在某些具體實施例中,前置Z光柵操作單元510也可計算模板值,其用於在決定特定樣本是否通過Z測試時與Z值結合。
前置Z/後置Z多工器520根據控制信號560的狀態,選擇是前z覆蓋率資訊570或後置Z覆蓋率資訊580從前置Z光柵操作單元510傳送至片段著色器530。前置Z/後置Z多工器520從串流多重處理器310內一機構(未顯示)接收控制信號560當成一狀態屬性。不過,圖形處理管線400內任何技術上可行的單元都可提供控制信號560。
片段著色器530使用透過前置Z/後置Z多工器520從光柵器455接收的該片段資訊,計算並處理一像素的一或多個樣本位置之色彩值及其他像素資訊。在某些具體實施例中,片段著色器530也可使用光柵器455提供的該平面等式資料,修改從前置Z/後置Z多工器520接收用於一或多個樣本位置的Z值。另外,片段著色器530可以不使用光柵器455提供的該平面等式資料,就可計算出新Z值。另外,片段著色器530可傳遞接收自前置Z/後置Z多工器520的z值,不做修改。片段著色器530將色彩資訊582傳輸至色彩/覆蓋率多工器545。
除了後置Z光柵操作單元在片段著色器530完成片段處理之後才執行Z測試以外,後置Z光柵操作單元540的作用基本上於前置Z光柵操作單元510相同。當片段著色器530針對一或多個片段建立新Z資訊時、當片段著色器530修改有關一或多個片段的現有z資訊時,或當前置Z光柵操作單元510所計算的Z資訊失效時,則使用後置Z光柵操作單元540進行Z測試。後置Z光柵操作單元540將覆蓋率資訊572傳輸至色彩/覆蓋率多工器545。
色彩/覆蓋率多工器545根據控制信號562的狀態,以選擇來自片段著色器530的色彩資訊582或來自後置Z光柵操作單元540的覆蓋率資訊572是否傳遞至色彩光柵操作單元550。色彩/覆蓋率多工器545從串流多重處理器310內的一機構(未顯示)接收控制信號562當成一狀態屬性。不過,圖形處理管線400內的任何技術上可行的單元都可提供控制信號562。
色彩光柵操作單元550在接收自片段著色器530的該像素資訊及一或多個著色目標內所儲存的該像素資訊上,執行許多混色或合成操作。色彩光柵操作單元550根據接收自該片段著色器的該前置Z或後置Z覆蓋率資訊,將這種混色或合成操作的結果儲存在一或多個著色目標內。如以下進一步描述,除了(或者不是)儲存混色或合成操作的結果以外,色彩光柵操作單元550將後置Z覆蓋率資訊儲存在一或多個著色目標內。色彩光柵操作單元550透過一或多個劃分單元215,將資訊儲存在該等著色目標內。
第六圖例示根據本發明之一具體實施例之儲存在第二圖的一或多個該等劃分單元215中的一組著色目標600。如所示,該組著色目標600包括八個別著色目標610(0)-610(7)。
第一著色目標610(0)包括四個欄位,代表有關對應樣本或片段的色彩與透明度資訊。如所示,該等四個欄位包括紅色值615、綠色值620、藍色值625及α或透明值630。
第二著色目標610(1)包括兩個欄位,代表有關對應樣本或片段的深度與模板資訊。如所示,該等兩個欄位包括一z或深度值635以及 一模板遮罩640。如所示,Z值635包括的位元超過模板遮罩640。
第三著色目標610(2)包括四個欄位,代表有關對應樣本或片段的表面法線向量資訊。如所示,該等四個欄位包括X軸法線向量645、Y軸法線向量650及Z軸法線向量655。在此第三著色目標610(2)的特定組態內,第四欄位為未使用的欄位660。
第四著色目標610(3)包括單一欄位,代表有關對應樣本或片段的後置Z覆蓋率資訊665。如本說明書所述,色彩光柵操作單元550將後置Z覆蓋率資訊儲存在一著色目標。在一具體實施例中,該色彩光柵操作單元可將這種後置Z覆蓋率資訊儲存在第四著色目標610(3)的後置Z覆蓋率資訊665欄位。
其餘的著色目標610(4)-610(7)構成儲存有關對應樣本或片段的額外資訊。這種組態(未顯示)包括許多資訊的儲存,包括但不受限於3D位置資料、擴散照明資訊及視鏡照明資訊。
應瞭解,本說明書中顯示的該架構僅為例示,所以可進行改變與修改。在一範例中,本說明書內用已知組態內八個著色目標610的範疇來描述該等技術。不過,所描述的技術可運用在任何數量的著色目標610。每一著色目標都可構成獨立於其他著色目標,以包括任何數量的欄位。一著色目標內的每一欄位都可構成獨立於其他欄位,以包括任何數量的位元。在另一範例中,該組著色目標600包括一著色目標610(3),其具有單一欄位用來儲存後置Z覆蓋率資訊665。不過,後置Z覆蓋率資訊可儲存在任何著色目標610內的任何技術可行欄位內,如此該欄位包括足夠數量的位元來儲存該後置Z覆蓋率資訊。尤其是,該後置Z覆蓋率資訊可儲存在第三著色目標610(2)的第四未使用欄位660內。另外,當一特定應用程式不使用一模板遮罩時,該後置Z覆蓋率資訊可儲存在第二著色目標610(1)的模板遮罩欄位640內。
在另一範例中,色彩光柵操作單元550試圖將後置Z覆蓋率資訊儲存在被認為沒有資格儲存這種資訊的欄位內。在這種情況下,色彩光柵操作單元550可執行任何合適的操作,包括但不受限於將該後置Z覆蓋率資訊儲存在沒有資格的欄位內、忽略該儲存操作如此不會覆寫該等 欄位內儲存的資料,或根據目前應用程式所指是的偏好來儲存或忽略。仍舊在另一範例中,如本說明書所述,色彩光柵操作單元550將後置Z覆蓋率資訊儲存在一著色目標610內。不過,圖形處理管線400內任何技術上可行的單元都可將後置Z覆蓋率資料儲存在一著色目標610內,包括但不受限於片段著色器530、前置Z光柵操作單元510及後置Z光柵操作單元540。在另一範例中,本說明書內描述的該系統包括用於z光柵操作的兩分離單元,尤其是前置Z光柵操作單元510及後置Z光柵操作單元540。不過,本說明書內描述的該等技術可與具有單一Z光柵操作單元(未顯示)的技術結合使用,其可構成執行前置Z光柵操作或後置Z光柵操作。這種共用的Z光柵操作單元應該可透過通訊路徑、多工器等等來設置,在片段著色器530之前執行Z測試(前置Z測試)或片段著色器530之後執行z測試(後置Z測試)。
第七A圖至第七D圖例示根據本發明之一具體實施例之交叉多重圖形圖元730、735、740的一像素710。如第七A圖所示,每一像素710都分成十六個樣本720(0)-720(15)。如本說明書的進一步描述,根據由圖形圖元730、735、740覆蓋的樣本720,計算用圖形圖元730、735、740之每一者的後置Z覆蓋率資料。在一具體實施例中,後置Z覆蓋率資料可用一位元遮罩表示,其中該映射內的每一位元都包括一已知樣本720的後置Z覆蓋率資料。此一位元遮罩可為十六位元寬,包括像素710的十六個樣本720(0)-720(15)之後置Z覆蓋率資料。最高有效位元遮罩可對應樣本720(15),而最低有效位元遮罩可對應樣本720(0)。在該位元遮罩之一位元位置的「1」值可指出一圖形圖元730、735、740覆蓋對應樣本720,而在該位元遮罩之一位元位置的「0」值可指出一圖形圖元730、735、740未覆蓋對應樣本720。
如第七B圖所示,第一圖形圖元730交叉像素710。圖形圖元730覆蓋已著色的樣本720(0)、720(1)、720(4)、720(5)、720(8)、720(9)、720(12)和720(13)。該對應位元遮罩可為0x3333,反映像素710內被圖形圖元730覆蓋的八個樣本。色彩光柵操作單元550將此後置Z覆蓋率位元遮罩儲存在對應像素710及有關圖形圖元730的位置上之一著色目標610內。 該後置Z覆蓋率位元遮罩可儲存在該等著色目標內的多個位置內,其中每一位置都代表在相同像素710內由覆蓋的樣本720。
如第七C圖所示,一第二圖形圖元735交叉像素710。圖形圖元735覆蓋已著色的樣本720(2)、720(3)、720(6)、720(7)、720(10)、720(11)、720(14)和720(15)。該對應位元遮罩可為0xCCCC,反映像素710內被圖形圖元735覆蓋的八個樣本。色彩光柵操作單元550將此後置Z覆蓋率位元遮罩儲存在對應像素710及有關圖形圖元735的位置上之一著色目標610內。該後置Z覆蓋率位元遮罩可儲存在該等著色目標內的多個位置內,其中每一位置都代表在相同像素710內由覆蓋的樣本720。
如第七D圖所示,第三圖形圖元740交叉像素710。圖形圖元740位於圖形圖元730之前及圖形圖元735之後。在進行Z測試之前,圖形圖元740覆蓋六個樣本720(9)、720(10)、720(11)、720(13)、720(14)和720(15)。該對應前置Z覆蓋率位元遮罩可為0xEE00,反映在進行z測試之前,像素710內被圖形圖元740覆蓋的六個樣本。在進行z測試之後,圖形圖元740覆蓋已著色的樣本720(9)和720(13)。該對應後置Z覆蓋率位元遮罩可為0x2222,反映在進行Z測試之後像素710內被圖形圖元740覆蓋的兩樣本。色彩光柵操作單元550將此後置Z覆蓋率位元遮罩儲存在對應像素710及有關圖形圖元740的位置上之一著色目標610內。該後置Z覆蓋率位元遮罩可儲存在該等著色目標內的多個位置內,其中每一位置都代表在相同像素710內由覆蓋的樣本720。
在著色圖形圖元740之後,圖形圖元730只覆蓋六個樣本720(0)、720(1)、720(4)、720(5)、720(8)和720(12)。不過,如上面結合第七A圖所示,圖形圖元730在原始著色圖形圖元730時覆蓋八個位元。在一具體實施例中,該後置Z覆蓋率遮罩可代表在每一圖形圖元第一次著色時的後置Z覆蓋。在這種情況下,圖形圖元730的該後置Z覆蓋率位元遮罩可仍舊為0x3333,反映出圖形圖元730在著色時覆蓋的像素710之八個樣本。在另一具體實施例中,該後置Z覆蓋率遮罩可代表在場景內所有圖形圖元都已經著色之後的後置Z覆蓋。在這種情況下,圖形圖元730的該後置Z覆蓋率位元遮罩可修改為0x1133,反映在著色圖形圖元740之後由圖 形圖元730覆蓋的像素710之六個樣本。
在某些具體實施例中,像素710包括已經通過可見度測試的樣本。這種可見度測試可包括任一或多個測試,以決定在一最後著色影像當中是否看見該等樣本,包括但不受限於任意組合之下的一深度測試、一模板測試、一α測試及一深度邊界測試。該可見度測試可在該等樣本已經由片段著色器530處理之後執行。在替代具體實施例中,該等樣本不會由片段著色器530處理。在這種情況下,片段著色器530可關閉或進入低功率狀態。
除了典型3D著色技術以外,後置Z覆蓋率資訊可用在許多應用當中。在一範例中,後置Z覆蓋率資訊可用於支援延遲著色。在延遲著色之下,片段處理單元460或光柵操作單元465將片段資料直接儲存在一或多個著色目標610內,不用著色該片段資料。在著色目標610累積有關多個圖形圖元的片段資料之後,片段處理單元460或光柵操作單元465從著色目標610取得該片段資料、在取得的片段資料上執行一或多次混色或合成操作,並且將結果色彩值或其他像素資訊儲存在該等著色目標內。該後置Z覆蓋率資料可用來決定受到該等已儲存片段之每一者所影響的樣本集合。
在另一範例中,後置Z覆蓋率資訊可用於支援路徑著色。路徑著色為一種2D圖形著色技術,其中一場景指定為一序列解析無關輪廓,稱為填滿或描邊的路徑。這些路徑也稱為輪廓,將要著色的物件指定為用於繪製連線、曲線與弧形的一序列命令。這些路徑可為凹陷、可以自交叉、可含孔洞並且可為任意複雜度。此路徑可塗上不變的色彩、線性或放射狀漸層或影像(填滿)輪廓,以形成該路徑(描邊)的反繪圖,或兩者。隨著經過特定路徑,該後置Z覆蓋率資訊可用來決定一樣本是否在該路徑圍繞的空間之內或之外。一組樣本的該後置Z覆蓋率資訊在開始可為0,隨著片段處理,著色器程式530可將目前片段的該後置Z覆蓋率資訊與該著色目標內儲存的該後置Z覆蓋率資訊執行XOR運算。一旦該樣本第一次交叉一片段,則該後置Z覆蓋率資訊可設定為1。在該樣本第二次交叉一片段時,該後置Z覆蓋率資訊可重設為0,在該片段第三次交叉一片段時,設定 為1。一旦完成通過,「1」值表示樣本在該路徑圍繞的空間內,而「0」值表示樣本在該路徑圍繞的空間之外。
或者,該路徑圍繞的該空間可隨通過路徑時填滿。著色器程式530可將該目前片段的該後置Z覆蓋率資訊與該著色目標內儲存的該後置Z覆蓋率資訊執行OR運算。一旦完成通過,「1」值表示樣本在該通過期間已經填滿,而「0」值表示樣本在該通過期間未填滿。
在仍舊另一範例中,後置Z覆蓋率資訊可用於支援目標無關光柵化。運用目標無關光柵化,可指定每像素的樣本數量,而與分配用於儲存該著色影像的記憶體無關。例如:該圖形處理管線可構成光柵化每像素的八個樣本,而色彩光柵操作單元550構成寫入單一著色目標應該構成儲存每像素的一樣本。這種組態可稱為8:1模式。在這種情況下,可用與該著色目標組態無關的速率處理光柵化。後置Z覆蓋可用來決定已知像素內由一或多個圖形圖元覆蓋的樣本數量。若已經覆蓋十六個當中的八個樣本,則像素具有50%覆蓋,若已經覆蓋十六個當中的十二個,則該像素具有75%覆蓋,以此類推。然後,色彩光柵操作單元550計算該像素的單一色彩值,以覆蓋百分比衡量。
最後,後置Z覆蓋率資訊可用來決定一片段的前置Z或後置Z覆蓋率矩心。請即重新參考第七D圖,像素710的矩心為在像素710所覆蓋區域中央上的一點。不過,此點並非像素710上被圖形圖元740所覆蓋部分的矩心。如上述,圖形圖元740的前置Z軸蓋包括六個樣本720(9)、720(10)、720(11)、720(13)、720(14)和720(15)。利用試驗該前z覆蓋率資料,像素710與圖形圖元740的交點之該前z矩心可決定為連結樣本720(10)與720(14)的線段之中點。圖形圖元740的該後置Z覆蓋包括兩個樣本720(9)和720(13)。利用試驗該後置Z覆蓋率資料,像素710與圖形圖元740的交點之該後置Z矩心可決定為連結樣本720(9)與720(13)的線段之中點。
第八圖揭示根據本發明之一具體實施例之用於儲存後置Z覆蓋率資料之方法步驟的流程圖。雖然已經結合第一圖至第六圖的系統來描述該等方法步驟,精通技術人士應瞭解,構成執行該等方法步驟(以任何 順序)的任何系統都在本發明範疇內。
如所示,方法800從步驟802開始,其中色彩光柵操作單元550接收有關一包括一或多重樣本的片段之後置Z覆蓋率資訊。在步驟804,色彩光柵操作單元550接收有關該片段的色彩或其他資訊。在步驟806,色彩光柵操作單元550決定該應用程式是否構成在該後置Z覆蓋率資訊上執行邏輯運算。例如:色彩光柵操作單元550應使用取自於一著色目標610的先前儲存後置Z覆蓋率資訊,執行目前接收的後置Z覆蓋率資訊之邏輯OR或XOR運算。若該應用程式構成執行一邏輯運算,則方法800前往步驟808,在此色彩光柵操作單元550從一著色目標610取得現有後置Z覆蓋率資訊。
在步驟810,色彩光柵操作單元550根據接收的後置Z覆蓋率資訊以及取得的後置Z覆蓋率資訊,執行該邏輯運算。在步驟812,色彩光柵操作單元550決定後置Z覆蓋率資訊是否直接儲存至一符合條件的著色目標610。若直接儲存至符合條件的著色目標,則方法800前往步驟814,在此色彩光柵操作單元550將該後置Z覆蓋率資訊儲存到著色目標610內。在步驟816,色彩光柵操作單元550決定是否可處理額外片段。若有額外片段要處理,則方法800返回步驟802,如上述。若無額外片段可處理,則終止方法800。
請即回到步驟812,若該儲存操作直接至條件不符的著色目標,則方法800前往步驟816,如上述。
請即回到步驟806,若該應用程式並未構成執行邏輯運算,則方法800前往步驟812,如上述。
總結來說,一光柵操作單元將後置Z覆蓋率資訊儲存至一著色目標。該後置Z覆蓋率資料可由前置Z測試單元、後置Z測試單元或片段著色單元來計算。該光柵操作單元將後置Z覆蓋率資料儲存至單一組件著色目標。或者,該光柵操作單元將後置Z覆蓋率資料儲存至多組件著色目標的一組件。然後,該圖形處理單元根據該後置Z覆蓋率資料,計算該等樣本的色彩與其他像素資訊。後置Z覆蓋率資料也可用來支援其他著色技術,例如延遲著色、路徑著色;及計算一片段的該後置Z覆蓋矩心。
所揭示技術的一項優點為該圖形處理單元依照後置Z覆蓋率資料的決定,只計算可見片段的色彩與其他像素資料。該圖形處理單元不會計算模糊片段的色彩與其他像素資訊,藉此降低整體功率消耗並且改善整體著色效能。
本發明之一具體實施例可實施當成搭配電腦系統使用的程式產品。該程式產品的程式定義該等具體實施例(包括本說明書所述的方法)的功能,並且可包括在電腦可讀取儲存媒體上。例示的電腦可讀取儲存媒體包括但不受限於:(i)其上資訊永久儲存的不可抹寫儲存媒體(例如電腦內的唯讀記憶體裝置,例如小型碟片唯讀記憶體(CD-ROM)光碟機可讀取的CD-ROM光碟、快閃記憶體、ROM晶片或任何一種固態非揮發性半導體記憶體);以及(ii)上其儲存可變資訊的可抹寫儲存媒體(例如磁碟機或硬碟內的磁碟或任何一種固態隨機存取半導體記憶體)。
在此已經參考特定具體實施例說明本發明。不過精通此技術的人士將會了解,在不悖離申請專利範圍內公佈之本發明廣泛精神以及領域下,可進行許多修改與變更。因此前述說明與圖式僅供參考而不做限制。
因此,本發明具體實施例的範疇公布於以下的申請專利範圍內。

Claims (10)

  1. 一種子系統,包括:一光柵操作單元,構成利用執行以下步驟,將覆蓋率資訊儲存在一著色目標內:接收有關一第一圖形圖元的一第一部分之一第一覆蓋率遮罩,其中該第一圖形圖元交叉含有複數個樣本的一像素,並且該第一部分覆蓋該等複數個樣本內含的至少一樣本;及將該第一覆蓋率遮罩儲存在有關該像素的一第一位置上的該著色目標中的一資料欄位。
  2. 如申請專利範圍第1項之子系統,其中該光柵操作單元更構成執行包括偵測該著色目標是否符合儲存覆蓋率資訊的條件之步驟。
  3. 如申請專利範圍第1項之子系統,其中該光柵操作單元更構成執行以下步驟:從該第一位置取得一第二覆蓋率遮罩;及儲存該第一覆蓋率遮罩之前,利用根據該第一覆蓋率遮罩及該第二覆蓋率遮罩執行一邏輯運算,修改該第一覆蓋率遮罩。
  4. 如申請專利範圍第1項之子方法,其中該資料欄位選自於有關該著色目標的複數個資料欄位。
  5. 如申請專利範圍第1項之子方法,其中該第一覆蓋率遮罩包括複數個位元,其中每一位元對應該等複數個樣本內的不同樣本。
  6. 如申請專利範圍第1項之子方法,其中該第一覆蓋率遮罩指出哪些樣本由該第一圖形圖元的該第一部分覆蓋。
  7. 如申請專利範圍第1項之子系統,其中該光柵操作單元更構成根據該第一覆蓋率遮罩,計算該像素由該第一圖形圖元的該第一部分覆蓋的百分比之步驟。
  8. 如申請專利範圍第1項之子系統,其中該光柵操作單元更構成執行以下步驟:接收有關一第二圖形圖元的一第二部分之一第二覆蓋率遮罩,其中該第二圖形圖元交叉該像素,並且該第二部分覆蓋該等複數個樣本內 含的至少一樣本;及將該第二覆蓋率遮罩儲存在有關該像素的一第二位置上的該著色目標中的一資料欄位;其中該第二覆蓋率遮罩指出哪些樣本由該第二圖形圖元的該第二部分覆蓋,並且不受該第一圖形圖元的該第一部分遮蔽。
  9. 如申請專利範圍第8項之子系統,其中該光柵操作單元更構成根據該第二覆蓋率遮罩,執行計算該第二部分矩心之步驟。
  10. 如申請專利範圍第8項之子系統,其中該光柵操作單元更構成執行以下步驟:將有關該第一圖形圖元的該第一部分之一第一屬性儲存在有關該像素的一第三位置上的該著色目標中的一資料欄位;將有關該第二圖形圖元的該第二部分之一第二屬性儲存在有關該像素的一第四位置上的該著色目標中的一資料欄位;根據至少該第一覆蓋率遮罩與該第二覆蓋率遮罩之一者,執行該第一屬性與該第二屬性的一混色操作;及將該混色結果儲存在有關該像素的一第五位置上的該著色目標中的一資料欄位。
TW102147797A 2013-03-13 2013-12-23 在光柵操作中處理後置z覆蓋率資料 TW201439975A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US13/802,182 US9953455B2 (en) 2013-03-13 2013-03-13 Handling post-Z coverage data in raster operations

Publications (1)

Publication Number Publication Date
TW201439975A true TW201439975A (zh) 2014-10-16

Family

ID=51418503

Family Applications (1)

Application Number Title Priority Date Filing Date
TW102147797A TW201439975A (zh) 2013-03-13 2013-12-23 在光柵操作中處理後置z覆蓋率資料

Country Status (4)

Country Link
US (1) US9953455B2 (zh)
CN (1) CN104050705A (zh)
DE (1) DE102013020807A1 (zh)
TW (1) TW201439975A (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10242286B2 (en) * 2015-03-25 2019-03-26 Intel Corporation Edge-based coverage mask compression
GB2540382B (en) * 2015-07-15 2020-03-04 Advanced Risc Mach Ltd Data processing systems
US10535114B2 (en) * 2015-08-18 2020-01-14 Nvidia Corporation Controlling multi-pass rendering sequences in a cache tiling architecture
US9824458B2 (en) * 2015-09-23 2017-11-21 Qualcomm Incorporated Dynamically switching between late depth testing and conservative depth testing
US10147222B2 (en) * 2015-11-25 2018-12-04 Nvidia Corporation Multi-pass rendering in a screen space pipeline
US10096147B2 (en) * 2016-03-10 2018-10-09 Qualcomm Incorporated Visibility information modification
US10636110B2 (en) * 2016-06-28 2020-04-28 Intel Corporation Architecture for interleaved rasterization and pixel shading for virtual reality and multi-view systems
US10534733B2 (en) * 2018-04-26 2020-01-14 EMC IP Holding Company LLC Flexible I/O slot connections
US10424074B1 (en) * 2018-07-03 2019-09-24 Nvidia Corporation Method and apparatus for obtaining sampled positions of texturing operations
US10726610B2 (en) * 2018-08-29 2020-07-28 Arm Limited Efficient graphics processing using metadata
US11227430B2 (en) 2019-06-19 2022-01-18 Samsung Electronics Co., Ltd. Optimized pixel shader attribute management
US11321806B2 (en) 2020-07-22 2022-05-03 Samsung Electronics Co., Ltd. Enhanced early coverage discard using opportunistic bypassing and dynamic queue resizing
CN116670719A (zh) * 2020-12-27 2023-08-29 华为技术有限公司 一种图形处理方法、装置及电子设备
CN113419913A (zh) * 2021-06-29 2021-09-21 华夏芯(北京)通用处理器技术有限公司 图形片段的后处理方法及装置
WO2023279246A1 (zh) * 2021-07-05 2023-01-12 华为技术有限公司 线程组创建方法、图形处理单元和电子设备

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5852443A (en) 1995-08-04 1998-12-22 Microsoft Corporation Method and system for memory decomposition in a graphics rendering system
US5818456A (en) 1996-04-30 1998-10-06 Evans & Sutherland Computer Corporation Computer graphics system with adaptive pixel multisampler
US6204859B1 (en) * 1997-10-15 2001-03-20 Digital Equipment Corporation Method and apparatus for compositing colors of images with memory constraints for storing pixel data
US6633297B2 (en) * 2000-08-18 2003-10-14 Hewlett-Packard Development Company, L.P. System and method for producing an antialiased image using a merge buffer
US6768491B2 (en) 2001-12-21 2004-07-27 Ati Technologies Inc. Barycentric centroid sampling method and apparatus
EP1447774B1 (en) * 2003-02-13 2018-03-07 ATI Technologies Inc. Method and apparatus for sampling on a non-power-of-two pixel grid
US8933933B2 (en) * 2006-05-08 2015-01-13 Nvidia Corporation Optimizing a graphics rendering pipeline using early Z-mode
TWI444047B (zh) 2006-06-16 2014-07-01 Via Tech Inc 用於視訊解碼的去方塊效應濾波器、視訊解碼器與圖形處理單元
US8232991B1 (en) * 2006-11-03 2012-07-31 Nvidia Corporation Z-test result reconciliation with multiple partitions
US7880747B1 (en) * 2006-12-13 2011-02-01 Nvidia Corporation Blend optimizations that are conformant to floating-point rules
GB0801812D0 (en) * 2008-01-31 2008-03-05 Arm Noway As Methods of and apparatus for processing computer graphics
GB0810205D0 (en) * 2008-06-04 2008-07-09 Advanced Risc Mach Ltd Graphics processing systems
US9406149B2 (en) * 2009-10-07 2016-08-02 Nvidia Corporation Selecting and representing multiple compression methods
US8922555B2 (en) * 2009-10-07 2014-12-30 Nvidia Corporation Pixel shader output map
KR101824665B1 (ko) * 2010-07-19 2018-02-01 어드밴스드 마이크로 디바이시즈, 인코포레이티드 안티-앨리어싱된 샘플들의 분할 저장
US8670613B2 (en) * 2010-08-31 2014-03-11 Nvidia Corporation Lossless frame buffer color compression
US9183651B2 (en) * 2010-10-06 2015-11-10 Microsoft Technology Licensing, Llc Target independent rasterization

Also Published As

Publication number Publication date
US20140267224A1 (en) 2014-09-18
US9953455B2 (en) 2018-04-24
DE102013020807A1 (de) 2014-09-18
CN104050705A (zh) 2014-09-17

Similar Documents

Publication Publication Date Title
TW201439975A (zh) 在光柵操作中處理後置z覆蓋率資料
TWI559729B (zh) 用於低功率圖形著色的像素著色器省略
TWI537870B (zh) 多重解析度一致性光柵化
TWI529660B (zh) 使用每像素著色器執行緒的高效超取樣
TWI515716B (zh) 具備緩衝區限制處理的世界空間與螢幕空間管線間之圖元重新排序
TWI645371B (zh) 在上游著色器內設定下游著色狀態
TWI525584B (zh) 多執行緒處理單元內之可程式繫結
CN109978751A (zh) 多gpu帧渲染
CN107038742B (zh) 屏幕空间管线中的多通道渲染
TWI533255B (zh) 快取具有表面壓縮的統一l2快取內之自調適大小快取拼貼
TW201432609A (zh) 已分配的拼貼快取
US20130342547A1 (en) Early sample evaluation during coarse rasterization
CN105321143A (zh) 来自片段着色程序的采样掩膜的控制
TWI611373B (zh) 路徑著色的最佳化三角形拓撲
TWI633516B (zh) 曲面細分及幾何著色器的功率效率屬性處理
US9269179B2 (en) System, method, and computer program product for generating primitive specific attributes
TW201439970A (zh) 儲存共用頂點之技術
US9720842B2 (en) Adaptive multilevel binning to improve hierarchical caching
CN107392836B (zh) 使用图形处理管线实现的立体多投影
TW201443826A (zh) 儲存共用頂點之技術
TW201447812A (zh) 有共用邊緣的先印後蓋路徑描繪
US9082212B2 (en) Programmable blending via multiple pixel shader dispatches