TWI810458B - 用於最佳化像素著色器屬性管理的設備、系統及方法 - Google Patents
用於最佳化像素著色器屬性管理的設備、系統及方法 Download PDFInfo
- Publication number
- TWI810458B TWI810458B TW109117832A TW109117832A TWI810458B TW I810458 B TWI810458 B TW I810458B TW 109117832 A TW109117832 A TW 109117832A TW 109117832 A TW109117832 A TW 109117832A TW I810458 B TWI810458 B TW I810458B
- Authority
- TW
- Taiwan
- Prior art keywords
- circuit
- data
- pipeline
- culling
- attribute
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 27
- 238000012545 processing Methods 0.000 claims abstract description 38
- 239000000872 buffer Substances 0.000 claims description 12
- 230000008569 process Effects 0.000 claims description 9
- 230000000717 retained effect Effects 0.000 claims 3
- 238000005516 engineering process Methods 0.000 description 20
- 238000012360 testing method Methods 0.000 description 17
- 230000010365 information processing Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 7
- 238000000605 extraction Methods 0.000 description 7
- 239000013598 vector Substances 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 238000009877 rendering Methods 0.000 description 4
- 239000004065 semiconductor Substances 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 239000007943 implant Substances 0.000 description 2
- 238000002513 implantation Methods 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 239000000919 ceramic Substances 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000020169 heat generation Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 239000003826 tablet Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 235000012773 waffles Nutrition 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/40—Hidden part removal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/40—Hidden part removal
- G06T15/405—Hidden part removal using Z-buffer
-
- 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)
- Physics & Mathematics (AREA)
- Computer Graphics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Geometry (AREA)
- Image Generation (AREA)
Abstract
一種用於最佳化像素著色器屬性管理的設備、系統及方
法。根據一個通用態樣,所述設備可包含圖形處理引擎,所述圖形處理引擎包括具有多個依序的電路級的管線,管線包括前端輸出邏輯電路,所述前端輸出邏輯電路經組態以將位置資訊分成位置資訊管線部分,且將非位置資訊分成非位置資訊管線部分。其中管線經組態以執行資料的多級剔除。
Description
本說明書係關於電腦架構,或更具體言之,係關於用於最佳化像素著色器屬性管理的設備及方法。
圖形處理單元(GPU)通常為專用電子電路,其經設計以快速操縱並更改記憶體以加速在意欲用於輸出至顯示裝置的圖框緩衝器中的影像的創建。GPU使用於嵌入式系統、行動電話、個人電腦、工作台以及遊戲控制台中。現代GPU在操縱電腦圖形及影像處理方面極其有效。對於並聯處理大資料區塊的演算法,現代GPU的高度並聯結構使其比通用中央處理單元(CPU)更有效。在個人電腦中,GPU可存在於視訊卡上或嵌入於主機板上。在特定處理器中,其嵌入於同一晶粒上。
GPU可用於加速紋理映射及渲染多邊形的記憶體密集研究,或加速幾何計算,諸如頂點至不同座標系統中的旋轉及平移。GPU的發展包含支援可程式化著色器,所述可程式化著色器可用由CPU支援的諸多相同操作來操縱頂點及紋理,支援過取樣及內插技術以減少混疊,以及支援極高精確度色彩空間。
在電腦圖形中,電腦圖形管線、渲染管線或僅圖形管線為描述圖形系統需要執行以將三維(3D)場景渲染至二維(2D)螢幕的步驟的概念性模型。一旦已經創建3D模型,例如在視訊遊戲或任何其他3D電腦動畫中,圖形管線即為將3D模型變成電腦顯示之物的程序。
根據一個通用態樣,一種用於最佳化像素著色器屬性管理的設備可包含圖形處理引擎,所述圖形處理引擎包括具有多個依序的電路級的管線,管線包括前端輸出邏輯電路,所述前端輸出邏輯電路經組態以將位置資訊分成位置資訊管線部分,且將非位置資訊分成非位置資訊管線部分。其中管線經組態以執行資料的多級剔除。
根據另一通用態樣,一種用於最佳化像素著色器屬性管理的系統可包含經組態以處理指令的處理器核心。系統可包含經組態以渲染圖形資料的圖形核心,其中所述圖形核心包括圖形處理管線,所述圖形處理管線包括依序配置成在資料流經圖形處理管線時至少部分地處理資料的多個電路級。多個電路級可包含經組態以將未剔除資料提供至一或多個後續電路級的前端輸出邏輯電路。多個電路級可包含多級剔除部分,所述多級剔除部分經組態以向前端輸出邏輯電路指示哪些資料為經剔除資料。
根據另一通用態樣,一種用於最佳化像素著色器屬性管理的方法可包含從一或多個前端輸出緩衝器接收圖形資料。所述方法可包含經由涉及多個圖形管線電路級的多級剔除判定可移除
哪些圖形資料,其中判定包含將三角形轉換成三角扇形。所述方法可包含防止後續圖形管線電路級存取經剔除資料。
一或多個實施的細節闡述於以下隨附圖式及描述中。其他特徵將自描述及圖式及自申請專利範圍而顯而易見。
一種用於電腦架構的系統及/或方法,或更具體言之,一種用於最佳化像素著色器屬性管理的設備及方法,實質上如圖式中的至少一者中所示及/或結合所述至少一者所描述,如申請專利範圍中更完整地闡述。
100:系統/高級管線/圖形管線
102:輸入屬性提取單元或電路/輸入屬性提取電路
104:著色器單元或電路/頂點著色器
106:前端(FE)級或電路/前端級
108:級/剪輯、剔除以及檢視區操作(CCV)單元或電路/CCV單元
110:級/光柵化引擎、單元或電路/光柵化電路
112:級/早期深度測試單元或電路/深度單元
114:級/像素著色器(PS)單元或電路/PS單元
115:級/紋理單元或電路
116:級/晚期深度測試單元或電路/深度單元
118:級/色彩混合及輸出單元或電路/色彩混合及輸出單元
150:前端管線部分
152:後端/後端管線部分
200:管線/系統
202:前端(FE)著色器單元或電路/FE著色器/著色器
203:前端輸出緩衝器(FOB)
204:前端輸出邏輯(FOL)單元/FOL單元或電路
206:級/剪輯、剔除、檢視區(CCV)單元或電路/CCV單元/CCV級/單元
208:級/光柵化設置單元或電路/光柵化設置單元/單元
210:級/光柵化及深度測試級/光柵化及早期深度測試單元或電路/光柵化單元/單元
212:像素著色器(PS)單元或電路/像素著色器單元/像素著色器/級
220:位置資訊佇列
222:級/屬性設置單元或電路/屬性設置單元
224:級/硬體內插單元或電路/內插單元
250:包含位置資訊的屬性/位置資訊
252:包含非位置資訊的屬性/非位置資訊
254、256:信號/反饋
300:資訊處理系統
305:系統匯流排
310:處理器
315:組合邏輯區塊(CLB)
320:揮發性記憶體
330:非揮發性記憶體
340:網路介面
350:使用者介面單元
360:硬體組件
370:軟體組件
圖1為根據所揭露主題的系統的實例實施例的方塊圖。
圖2為根據所揭露主題的系統的實例實施例的方塊圖。
圖3為可包含根據所揭露主題的原理形成的裝置的資訊處理系統的示意性方塊圖。
各個圖式中之類似參考符號指示類似元件。
將在下文中參考繪示一些實例實施例的隨附圖式更充分地描述各種實例實施例。然而,所揭露主題可以許多不同形式體現,且不應被解釋為限於本文所闡述的實例實施例。確切而言,提供這些實例實施例以使得本揭露內容將為透徹的且完整的,且將向熟習此項技術者充分傳達所揭露主題的範疇。在圖式中,為了清楚起見可誇示層及區的大小及相對大小。
應理解,當元件或層被稱作在另一元件或層「上」、「連接至」或「耦接至」另一元件或層時,所述元件或層可直接在另一元件或層上、直接連接至或耦合至另一元件或層,或可能存在介入之元件或層。與此對比,當元件被稱作「直接在另一元件或層上」、「直接連接至另一元件或層」或「直接耦接至另一元件或層」時,不存在介入的元件或層。類似數字貫穿全文係指類似元件。如本文中所使用,術語「及/或」包含相關聯所列項目中的一或多者的任何及所有組合。
將理解,儘管術語第一、第二、第三等可能在本文中用以描述各種元件、組件、區域、層及/或區段,但這些元件、組件、區域、層及/或區段不應受這些術語限制。這些術語僅用以區分一個元件、組件、區、層或區段與另一區、層或區段。因此,在不脫離所揭露主題的教示內容的情況下,下文所論述的第一元件、組件、區域、層或區段可稱為第二元件、組件、區域、層或區段。
為易於描述,本文中可使用諸如「在......底下」、「在......下方」、「下部」、「在......上方」、「上部」以及其類似者的空間相對術語來描述如圖式中所示出的一個元件或特徵與另一(些)元件或特徵的關係。應理解,空間相對術語意欲涵蓋裝置在使用或操作中除諸圖中所描繪的定向以外的不同定向。舉例而言,若將圖式中的裝置翻轉,則描述為「在其他元件或特徵下方」或「底下」的元件隨後將定向「在其他元件或特徵上方」。因此,例示性術語「在......下方」可涵蓋在......上方及在......下方兩個定向。裝置可以其他方式定向(旋轉90度或處於其他定向),且本文中所使用的空間上相關描述詞相應地進行解釋。
同樣地,為易於描述,本文中可使用諸如「高」、「低」、「上拉」、「下拉」、「1」、「0」以及其類似者的電性術語來描述如圖式中所示出的電壓位準或電流相對於其他電壓位準或另一(些)元件或特徵。應理解,電性相關術語意欲涵蓋裝置在使用或操作中除諸圖中所描繪的電壓或電流以外的不同參考電壓。舉例而言,若圖式中的裝置或信號反相或使用其他參考電壓、電流或電荷,則描述為「高」或「經上拉」的元件與新的參考電壓或電流相比將為「低」或「經下拉」。因此,例示性術語「高」可涵蓋相對低或高的電壓或電流兩者。裝置可另外基於不同的電性參考圖框,且本文中所使用的電性相關描述詞相應地進行解釋。
本文中所使用的術語僅用於描述特定實例實施例的目的,且不意欲為對所揭露主題的限制。如本文所使用,除非上下文另外清楚地指示,否則單數形式「一」及「所述」意欲亦包含複數形式。應進一步理解,術語「包括」在用於本說明書中時指定所陳述特徵、整數、步驟、操作、元件及/或組件的存在,但不排除一或多個其他特徵、整數、步驟、操作、元件、組件及/或其群組的存在或添加。
本文參考為理想化實例實施例(及中間結構)的示意性說明的橫截面說明而描述實例實施例。因此,預期圖解說明的形狀可以因為例如製造技術及/或公差而有所變化。因此,實例實施例不應解釋為限於本文中所說明的特定區域形狀,但包含由於(例如)製造造成的形狀偏差。舉例而言,被說明為矩形的植入區域通常將具有圓形或彎曲特徵及/或植入物濃度在其邊緣上的梯度,而非自植入區域至非植入區域的二進位改變。同樣,由植入形成
的內埋區域可在內埋區域與進行植入的表面之間的區域中產生某種植入。因此,諸圖中所示出的區域本質上為示意性的,且其形狀並不意欲說明裝置的區的實際形狀,而且並不意欲限制所揭露主題的範疇。
除非另外定義,否則本文中所使用的所有術語(包含技術及科學術語)具有與由所揭露主題所屬的一般技術者通常理解的含義相同的含義。更應瞭解,諸如常用詞典中所定義的彼等術語的術語應解釋為具有與其在相關技的上下文中的含義一致的含義,且將不在理想化或過度正式意義上進行解釋,除非在本文中明確地如此定義。
下文中,將參考隨附圖式詳細地解釋實例實施例。
圖1為根據所揭露主題的系統100的實例實施例的方塊圖。在各種實施例中,系統100可為獨立地或整合至晶片組或處理器(例如,系統單晶片(SoC))中的圖形處理單元(GPU)的部分。在各種實施例中,系統100可包含圖形處理管線。高級管線100經部分地繪示以為圖2中所繪示的管線的更詳細部分提供上下文。
在所示出的實施例中,系統100可包含多個級或單獨電路,其中資料經處理且隨後自流水級(pipe stage)傳統地傳遞至流水級。傳統地,資料的此傳遞已導致增加的電力使用量(且具有過量的熱量)且浪費計算資源。在所示出的實施例中,且參考圖2進一步描述,系統100可剔除或移除被判定為不再需要的資料。因此,所示出的實施例可導致較低電力使用量、熱量以及更少的計算資源浪費。
在所示出的實施例中,圖形管線100通常處理包含頂點(複數:頂點(vertices))的資料,所述頂點為三維世界中的點。多個點或頂點用於接合所述世界中的物件的表面。頂點通常形成基元或基礎形狀。三角形是電腦圖形中使用的最常見幾何基元。所述三角形由其三個頂點及法向向量限定。在各種實施例中,有時使用一個或三個法向向量。所述法向向量通常自頂點位置及順序導出。舉例而言,前表面由頂點順序及相對位置限定。通常,帶符號的三角形區域經計算,且所述符號指定正面或背面朝向。法向向量用以指示三角形的正面且為垂直於表面之向量。三角形頂點可具備多個屬性。舉例而言,屬性諸如色彩或紋理位置(紋理為「膠合」於三角形的頂部上的影像)。屬性可被認為包含指定位置(定位,例如,x/y座標)或關於除位置以外的某物(非定位,例如,色彩、亮度等)的資料。
在所示出的實施例中,系統100可包含輸入屬性提取單元或電路102。在此實施例中,輸入屬性提取電路102可經組態以接收頂點屬性資料(例如,呈陣列形式)。
在所示出的實施例中,系統100可包含一或多個著色器單元或電路104,諸如,頂點著色器(vertex shader;VS)或像素著色器(pixel shader;PS)。在各種實施例中,頂點著色器可經組態以將一些模型化或物件3D空間中的每一頂點的3D位置變換成其呈現於螢幕上的2D座標,且將Z緩衝器的深度值變換成被稱作「剪輯空間」的3D空間,在所述3D空間中可對由這些頂點形成的基元執行剪輯。剪輯移除不可見基元且再分部分可見的基元。
在所示出的實施例中,系統100可包含一或多個前端
(front-end;FE)級或電路106,例如,任選的級或諸如基元總成(primitive assembly;PA)的所需前端級。在各種實施例中,這些FE級106可包含零或多個任選的處理單元或電路(未獨立地繪示),所述任選的處理單元或電路可基於處理任務的需要而添加或自管線移除。實例FE級106可包含細分曲面(Tessellation)著色器、幾何著色器、外殼著色器、域著色器、統一著色器等等。應理解,上文僅為幾個說明性實例,所揭露主題並不限於所述說明性實例。
在所示出的實施例中,輸入屬性提取電路102、頂點著色器104以及任何前端級106可概念上分組成系統100的前端管線部分150。這些前端單元或電路可經組態以預處理或準備頂點資料以用於最終處理及渲染。這可包含將頂點形成為基元且隨後將頂點位置及屬性傳遞至後端152以供像素著色器使用。
在所示出的實施例中,級108、級110、級112、級114、級115、級116以及級118可考慮後端管線部分152的部分。在此實施例中,後端152可經組態以在影像顯示於螢幕或顯示器(未繪示)上之前執行最終圖形處理。
在所示出的實施例中,系統100可包含剪輯、剔除以及檢視區操作(CCV)單元或電路108。在各種實施例中,CCV單元108可經組態以判定需要更改或剪輯的基元,及需要對虛擬檢視區或攝影機進行的任何改變,且隨後視需要剔除資料。在傳統系統中,CCV單元108可為系統中的唯一或主要剔除操作。然而,如下文參考圖2所描述,所示出的系統100可採用多級剔除操作。
在所示出的實施例中,系統100可包含光柵化引擎、單
元或電路110。在此實施例中,光柵化電路110可經組態以使用基元輪廓來計算由所述基元覆蓋的像素。
在所示出的實施例中,系統100可包含早期深度測試單元或電路112。早期深度測試單元或電路112可經組態以將屬性內插至像素或樣本位置以供像素著色器使用。在各種實施例中,這可以專用內插硬體、藉由像素著色器或藉由這些的某一組合來進行。
在所示出的實施例中,系統100可包含一或多個像素著色器(PS)單元或電路114。在各種實施例中,PS單元114可經組態以計算像素色彩及通常使用紋理影像資料而導出的其他像素資料。在各種實施例中,紋理影像資料可由紋理單元或電路115供應。
在所示出的實施例中,系統100可包含晚期深度測試單元或電路116。在此實施例中,晚期深度測試單元或電路116可經組態以執行像素深度測試並更新深度及模板緩衝器。在各種實施例中,可藉由深度單元112及深度單元116執行額外剔除。
在所示出的實施例中,系統100亦可包含色彩混合及輸出單元或電路118。色彩混合及輸出單元118可經組態以執行像素混合計算並將最終像素色彩寫入色彩緩衝器(未繪示)。所述像素接著可顯示於螢幕(未繪示)上。
圖2為根據所揭露主題的系統或管線200的實例實施例的方塊圖。在所示出的實施例中,繪示了圖1中所繪示的圖形管線的子集的更詳細版本。
在所示出的實施例中,管線200可包含多個前端(FE)
著色器單元或電路202。這些FE著色器202可計算像素著色器屬性及其他資料。每一著色器202可包含前端輸出緩衝器(front-end output buffer;FOB)203。在另一實施例中,FOB 203可為單獨的且由在所述影像的處理中處於最末的任何著色器202填充。在另一實施例中,FOB 203可包含為下文描述的前端輸出邏輯(front-end output logic;FOL)單元204的部分。FOB 203可經組態以儲存著色器屬性。
在所示出的實施例中,系統200可包含FE輸出邏輯(FOL)單元或電路204。在各種實施例中,FOL單元或電路204可讀取頂點資料(包含所述屬性)且將所述資料傳遞至後續管線級。在所示出的實施例中,FOL單元204可有助於剔除或移除不需要的或非所需的資料,使得各種管線級不必處理所述資料,或系統200被要求移動所述資料。又,處理及移動資料涉及較高電力使用量及熱量產生,兩者皆需要減少。
在所示出的實施例中,FOL單元或電路204可經組態以將資料路徑分離成兩個部分:定位路徑(級206、級208以及級210)以及非定位路徑(級222及級224)。包含位置資訊的屬性250可經處理並用於作出剔除判定,如下文所描述。包含非位置資訊的屬性252可經保持(如下文所描述)直至已經進行定位剔除判定為止,且隨後分別經剔除。在此實施例中,FOL單元204可便於多級剔除處理,所述多級剔除處理在不需要的資訊由後續級處理之前移除所述資訊。
在此實施例中,FOL單元或電路204可經組態以自FOB 203讀取頂點位置資訊及基元連接性且形成基元。FOL單元204
可經組態以將位置資訊自這些頂點及相關連接性發送至CCV級206。作為交換,FOL單元204可自CCV級206接收關於存留哪些基元或並不存留CCV基元與頂點剔除的資訊。FOL單元204可經組態以在剔除之後自FOB 203讀取存留的非位置頂點屬性並將基元所要求的所述屬性傳遞至後續級(例如,級222及級224等等)。
系統200可包含剪輯、剔除、檢視區(CCV)單元或電路206。CCV單元206可經組態以執行基元剪輯及頂點剔除。其亦可消除不能渲染任何像素或樣本的較小基元。其亦可執行檢視區變換操作。
在此實施例中,CCV單元206可經組態以告知FOL單元204哪些頂點或其頂點的基元需要沿管線200傳遞以及哪些基元或頂點需要被丟棄,如上文所描述及由信號254繪示。
在一個實施例中,CCV單元206亦可執行剪輯。在各種實施例中,CCV單元206可經組態以執行基元剪輯而非屬性計算。藉由剪輯單個輸入基元產生的所有基元可被稱為「子基元」。舉例而言,經剪輯的三角形可轉換成三角扇形,此是因為三角形剪輯通常產生多個輸出三角形。這些子基元可能僅需要在光柵化期間為唯一的。在此實施例中,CCV單元206可經組態以針對所有經剪輯基元計算一組質心(Barycentric)因子。在各種實施例中,這些質心因子可由屬性設置單元222使用以計算剪輯頂點屬性值。輸入基元的所有子基元可使用相同屬性設置輸出(例如,相同平面方程式或質心設置)。
在所示出的實施例中,系統200可包含光柵化設置單元
或電路208。在此實施例中,光柵化設置單元208可經組態以針對光柵化及深度測試級210計算設置資訊。
在此實施例中,光柵化設置單元208可經組態以判定哪些資訊適用於屬性設置及哪些資訊是控制目的所需的,或兩者中無一者。在一個實施例中,此資訊可儲存於緩衝器中直至需要為止。基元可經測試以查看諸如剪刀式區、方塊區等是否存在覆蓋存留剔除。可在此級剔除並未經受住所有測試的基元(及其屬性)。
在所示出的實施例中,系統200可包含光柵化及早期深度測試單元或電路210。如上文所描述,在各種實施例中,這些可為多個單元或電路。在所示出的實施例中,光柵化單元210可經組態以針對每一基元產生像素或樣本覆蓋資訊。並且,單元210的早期深度測試部分可經組態以在像素著色器212執行之前執行深度測試。在此實施例中,可剔除無覆蓋且在光柵化、早期深度及/或模板測試之後在螢幕上不可見的基元。
在各種實施例中,額外單元或電路(未繪示)可為系統200的部分。在此實施例中,額外剔除可發生或藉由彼等單元執行。在各種實施例中,這些剔除操作可包含冗餘覆蓋丟棄(redundant coverage discard;RDC)及/或QuadMerge。應理解,上文僅為幾個說明性實例,所揭露主題並不限於所述說明性實例。
在所示出的實施例中,系統200可包含屬性設置單元或電路222。如上文所描述,屬性設置單元222可接收與位置資訊250相關聯的非位置資訊252。在此實施例中,屬性設置單元222可經組態以基於資訊剔除各種非位置資訊252且剔除管線(例如,單元206、單元208以及單元210)的定位部分的活動。在各種實
施例中且在作為整體的系統200中,可逐頂點執行屬性剔除。在此實施例中,可剔除由於存留基元不再需要頂點而不再需要的頂點屬性。
舉例而言,第一剔除可能並不藉由屬性設置單元222進行,而是回應於由CCV單元206提供的反饋254而藉由FOL單元204進行。FOL單元204可僅制止將任何經剔除屬性發送至屬性設置單元222。可在藉由光柵化設置單元208(經由位置資訊佇列220)提供位置資訊剔除結果時進行第二剔除。可在自光柵化單元210(經由信號256)接收到反饋時進行第三剔除。在另一實施例中,經由220及256的反饋可發送回FOL單元204,使得經剔除的非位置資訊決不傳輸至屬性設置單元222。
在此實施例中,非定位屬性處理可延遲直至已接收到來自多級剔除部分(單元206、單元208以及單元210)的所有剔除資訊為止。若特定頂點不具有「實時」覆蓋或已經剔除,則與其相關聯的非位置資訊可同樣地剔除或丟棄。因此,傳遞至後續級224及級212的資訊的量可不僅藉由定位級而且亦藉由非定位級減少。同樣地,屬性分離成兩個管線意謂較少資訊行進或經由兩個管線傳輸。在各種實施例中,所有屬性計算可藉由屬性設置單元222執行,包含應用來自剪輯及透視校正的質心因子。
此外,內插所需的屬性資訊(諸如平面方程式或質心因子)可經保存用於屬性設置單元222所包含的屬性儲存記憶體(或作為單獨記憶體,未繪示)。
在各種實施例中,系統200可包含硬體內插單元或電路224。內插單元224可經組態以內插資料。
在各種實施例中,系統200可包含像素著色器(PS)單元或電路212。像素著色器單元212可經組態以接收未剔除或存留的位置資訊及未剔除或存留的非位置資訊,且計算影響至多單個輸出像素的渲染工作的每一「片段」或單元的色彩及其他屬性。
在所示出的實施例中,藉由減少沿著管線200的資料移動量、減少計算(由於在每一剔除之後涉及的資料較少)以及減少(例如,每一管線級之間的緩衝器中的)儲存量來減少電力使用量。至於每當特定基元經剔除時的資料,其頂點及相關聯屬性可能不再需要且可丟棄。除沿著每一剔除級的計算節省以外,在不針對經剔除屬性執行屬性設置計算及內插時亦存在節省。應理解,上文僅為幾個說明性實例,所揭露主題並不限於所述說明性實例。
圖3為資訊處理系統300的示意性方塊圖,所述資訊處理系統可包含根據所揭露主題的原理形成的半導體裝置。
參考圖3,資訊處理系統300可包含根據所揭露主題的原理而建構的裝置中的一或多者。在另一實施例中,資訊處理系統300可採用或執行根據所揭露主題的原理的一或多種技術。
在各種實施例中,資訊處理系統300可包含計算裝置,諸如膝上型電腦、桌上型電腦、工作站、伺服器、刀鋒伺服器、個人數位助理、智慧型電話、平板電腦以及其他適當電腦或其虛擬機或虛擬計算裝置。在各種實施例中,資訊處理系統300可供使用者(未繪示)使用。
根據所揭露主題的資訊處理系統300可更包含中央處理單元(central processing unit;CPU)、邏輯或處理器310。在一些
實施例中,處理器310可包含一或多個功能單元區塊(functional unit block;FUB)或組合邏輯區塊(combinational logic block;CLB)315。在此實施例中,組合邏輯區塊可包含各種布林邏輯運算(例如,反及(NAND)、反或(NOR)、非(NOT)、異或(XOR))、穩定邏輯裝置(例如,正反器、鎖存器等)、其他邏輯裝置,或其組合。可以簡單或複雜方式組態這些組合邏輯運算以處理輸入信號以達成所要結果。應理解,雖然描述同步組合邏輯運算的少數說明性實例,但所揭露的主題不限於此且可包含異步運算或其混合。在一個實施例中,組合邏輯運算可包括多個互補金屬氧化物半導體(complementary metal oxide semiconductors;CMOS)電晶體。在各種實施例中,可將這些CMOS電晶體佈置為執行邏輯運算的閘極;但應理解,可使用其他技術且其他技術在所揭露主題的範疇內。
根據所揭露主題的資訊處理系統300可更包含揮發性記憶體320(例如,隨機存取記憶體(Random Access Memory;RAM))。根據所揭露主題的資訊處理系統300可更包含非揮發性記憶體330(例如,硬盤驅動器、光學記憶體、反及或快閃記憶體)。在一些實施例中,揮發性記憶體320、非揮發性記憶體330或其組合或其部分可被稱作「儲存媒體」。在各種實施例中,揮發性記憶體320及/或非揮發性記憶體330可經組態以按半永久性或實質上永久性形式儲存資料。
在各種實施例中,資訊處理系統300可包含經組態以允許資訊處理系統300成為通信網路的部分且經由通信網路通信的一或多個網路介面340。Wi-Fi協議的實例可包含(但不限於)電
機電子工程師學會(Institute of Electrical and Electronics Engineers;IEEE)802.11g、IEEE 802.11n。蜂巢協議的實例可包含(但不限於):IEEE 802.16m(亦稱為高級無線都會區域網路(Metropolitan Area Network;MAN)、高級長期演進(Long Term Evolution;LTE)、全球行動通信系統增強資料速率演進(Enhanced Data rates for Global System for Mobile Communications(GSM)Evolution;EDGE)、演進型高速封包存取(Evolved High-Speed Packet Access;HSPA+))。有線協定的實例可包含(但不限於)IEEE 802.3(亦稱為乙太網)、光纖通道、電力線通信(例如,電力線網路(HomePlug)、IEEE 1901)。應理解,上文僅為幾個說明性實例,所揭露主題並不限於所述說明性實例。
根據所揭露主題的資訊處理系統300可更包含使用者介面單元350(例如,顯示適配器、觸感介面、人類介面裝置)。在各種實施例中,此使用者介面單元350可經組態以接收來自使用者的輸入及/或將輸出提供給使用者。其他類型的裝置亦可用以提供與使用者的互動;例如,提供給使用者的反饋可為任何形式的感官反饋(例如,視覺反饋、聽覺反饋或觸覺反饋);且來自使用者的輸入可以任何形式接收,包含聲學、語音或觸覺輸入。
在各種實施例中,資訊處理系統300可包含一或多個其他裝置或硬體組件360(例如,顯示器或監測器、鍵盤、滑鼠、攝影機、指紋讀取器、視訊處理器)。應理解,上文僅為幾個說明性實例,所揭露主題並不限於所述說明性實例。
根據所揭露主題的資訊處理系統300可更包含一或多個系統匯流排305。在此實施例中,系統匯流排305可經組態以通信
地耦接處理器310、揮發性記憶體320、非揮發性記憶體330、網路介面340、使用者介面單元350以及一或多個硬體組件360。由處理器310處理的資料或自非揮發性記憶體330外部輸入的資料可儲存於非揮發性記憶體330或揮發性記憶體320中。
在各種實施例中,資訊處理系統300可包含或執行一或多個軟體組件370。在一些實施例中,軟體組件370可包含作業系統(operating system;OS)及/或應用程式。在一些實施例中,OS可經組態以為應用程式提供一或多個服務且管理或充當應用程式與資訊處理系統300的各種硬體組件(例如,處理器310、網路介面340等)之間的中間物。在此實施例中,資訊處理系統300可包含一或多個原生應用程式,所述原生應用程式可在本端安裝(例如,安裝於非揮發性記憶體330內)且經組態以直接由處理器310執行且直接與OS互動。在此實施例中,原生應用程式可包含經預先編譯的機器可執行程式碼。在一些實施例中,原生應用程式可包含指令碼解譯器(例如,C殼層(C shell;csh)、AppleScript、AutoHotkey等)或虛擬執行機器(virtual execution machine;VM)(例如,Java虛擬機、微軟通用語言運行平台(Microsoft Common Language Runtime)),所述原生應用程式經組態以將原始程式碼或目標程式碼轉譯為接著由處理器310執行的可執行程式碼。
可使用各種封裝技術來囊封上文所描述的半導體裝置。舉例而言,根據所揭露主題的原理建構的半導體裝置可使用以下中的任一者來囊封:疊層封裝(package on package;POP)技術、球狀柵格陣列(ball grid arrays;BGA)技術、晶片尺度封裝(chip scale packages;CSP)技術、塑膠引線晶片載體(plastic leaded chip
carrier;PLCC)技術、塑膠雙列直插型封裝(plastic dual in-line package;PDIP)技術、窩伏爾封裝晶粒(die in waffle pack)技術、晶片形式晶粒(die in wafer form)技術、板上晶片(chip on board;COB)技術、陶瓷雙列直插型封裝(ceramic dual in-line package;CERDIP)技術、塑膠量度四邊扁平封裝(plastic metric quad flat package;PMQFP)技術、塑膠四邊扁平封裝(plastic quad flat package;PQFP)技術、小型封裝(small outline package;SOIC)技術、縮減小型封裝(shrink small outline package;SSOP)技術、薄型小型封裝(thin small outline package;TSOP)技術、薄四邊扁平封裝(thin quad flat package;TQFP)技術、系統級封裝(system in package;SIP)技術、多晶片封裝(multi-chip package;MCP)技術、晶圓級製造封裝(wafer-level fabricated package;WFP)技術、晶圓級處理堆疊封裝(wafer-level processed stack package;WSP)技術,或熟習此項技術者已知的其他技術。
方法步驟可由一或多個可程式化處理器執行,所述可程式化處理器執行電腦程式以藉由操作輸入資料及生成輸出來執行功能。亦可藉由以下各者來執行方法步驟,且可將設備實施為以下各者:專用邏輯電路,例如,場可程式化閘陣列(field programmable gate array;FPGA)或特殊應用積體電路(application-specific integrated circuit;ASIC)。
在各種實施例中,電腦可讀媒體可包含在經執行時使得裝置執行方法步驟的至少一部分的指令。在一些實施例中,電腦可讀媒體可包含於磁性媒體、光學媒體、其他媒體或其組合中(例如,CD-ROM、硬盤驅動器、唯讀記憶體、快閃驅動器)。在此實
施例中,電腦可讀媒體可為有形地及非暫時性地體現的製造物品。
雖然已參考實例實施例描述所揭露主題的原理,但熟習此項技術者將顯而易見,可在不偏離這些所揭露的概念的精神及範疇的情況下對所揭露主題的原理作出各種改變及修改。因此,應理解,以上實施例並非限制性的,而僅為說明性的。因此,所揭露的概念的範疇應藉由以下申請專利範圍以及其等效物的最廣泛容許解譯來確定,且不應受前述描述約束或限制。因此,應理解,所附申請專利範圍意欲涵蓋如屬於實施例的範疇內的所有此類修改及改變。
100:系統/高級管線/圖形管線
102:輸入屬性提取單元或電路/輸入屬性提取電路
104:著色器單元或電路/頂點著色器
106:前端(FE)級或電路/前端級
108:級/剪輯、剔除以及檢視區操作(CCV)單元或電路/CCV單元
110:級/光柵化引擎、單元或電路/光柵化電路
112:級/早期深度測試單元或電路/深度單元
114:級/像素著色器(PS)單元或電路/PS單元
115:級/紋理單元或電路
116:級/晚期深度測試單元或電路/深度單元
118:級/色彩混合及輸出單元或電路/色彩混合及輸出單元
150:前端管線部分
152:後端/後端管線部分
Claims (20)
- 一種用於最佳化像素著色器屬性管理的設備,包括:圖形處理引擎,包括具有多個依序的電路級的管線,所述管線包括前端輸出邏輯電路,所述前端輸出邏輯電路經組態以將位置資訊分成位置資訊管線部分,且將非位置資訊分成非位置資訊管線部分,以及其中所述位置資訊管線部分經組態以:執行資料的多級剔除,以及在所述資料的所述多級剔除之後使經剔除資料自所述非位置資訊管線部分移除。
- 如請求項1所述的設備,其中所述前端輸出邏輯電路經組態以:判定不需要的屬性資料,所述屬性資料並非後續管線電路級所需要的;以及剔除不需要的所述屬性資料,從而防止不需要的所述屬性資料由所述後續管線電路級接收。
- 如請求項1所述的設備,其中所述管線包括經組態以進行下述操作的剔除電路:至少部分地基於基元特性而剔除基元資料;以及防止不需要的屬性資料由後續管線電路級處理。
- 如請求項1所述的設備,其中所述管線包括經組態以進行下述操作的光柵化電路:至少部分地基於可見度判定而剔除基元資料;以及防止不需要的屬性資料由後續管線電路級處理。
- 如請求項1所述的設備,其中所述管線包括剔除電路以及光柵化電路,其中所述前端輸出邏輯電路、所述剔除電路以及所述光柵化電路串聯置放,且各自執行剔除操作以減少傳遞至下一管線級的資料量,其中至少所述前端輸出邏輯電路、所述剔除電路以及所述光柵化電路形成所述管線的多級剔除部分,其中所述剔除電路至少部分地基於基元特性而剔除基元資料,並防止不需要的屬性資料由後續管線電路級處理,其中所述光柵化電路至少部分地基於可見度判定而剔除基元資料,並防止不需要的屬性資料由所述後續管線電路級處理。
- 如請求項1所述的設備,其中所述管線包括屬性設置電路以及剔除電路,以及其中所述非位置資訊自所述前端輸出邏輯電路路由至所述屬性設置電路,以及其中所述位置資訊自所述前端輸出邏輯電路路由至所述剔除電路。
- 如請求項6所述的設備,其中所述屬性設置電路經組態以延遲基元屬性內插設置直至基元資料已由所述位置資訊管線部分剔除之後為止。
- 如請求項1所述的設備,其中所述管線經組態以藉由在剔除基元資料之前剔除屬性資料而執行所述資料的所述多級剔除。
- 如請求項1所述的設備,其中所述管線包括剔除電路以及架構性地在所述剔除電路之後的至少一個後續處理電路級, 其中所述前端輸出邏輯電路經組態以:自所述剔除電路接收關於剔除哪些資料的指示,自前端輸出緩衝器讀取存留資料,以及將所述存留資料或所述存留資料的部分傳遞至所述至少一個後續處理電路級以供處理。
- 一種用於最佳化像素著色器屬性管理的系統,包括:處理器核心,經組態以處理指令;以及圖形核心,經組態以渲染圖形資料,其中所述圖形核心包括圖形處理管線,所述圖形處理管線包括依序配置成在資料流經所述圖形處理管線時至少部分地處理所述資料的多個電路級,其中所述多個電路級包含:前端輸出邏輯電路,經組態以將未剔除資料提供至一或多個後續電路級,並自所述圖形處理管線中移除經剔除資料;以及所述電路級的位置資訊部分的多級剔除部分,經組態以向所述前端輸出邏輯電路指示哪些資料為所述經剔除資料。
- 如請求項10所述的系統,其中所述前端輸出邏輯電路經組態以:判定不需要的屬性資料,所述屬性資料並非後續管線電路級所需要的;以及剔除不需要的所述屬性資料,從而防止不需要的所述屬性資料由所述後續管線電路級處理。
- 如請求項10所述的系統,其中所述圖形處理管線包括經組態以進行下述操作的剔除電路: 至少部分地基於基元特性而剔除基元資料;以及防止不需要的屬性資料由後續管線電路級處理。
- 如請求項10所述的系統,其中所述圖形處理管線包括經組態以進行下述操作的光柵化電路:至少部分地基於可見度判定而剔除基元資料;以及防止不需要的屬性資料由後續管線電路級處理。
- 如請求項10所述的系統,其中所述多級剔除部分包括剔除電路以及光柵化電路;其中所述前端輸出邏輯電路、所述剔除電路以及所述光柵化電路串聯置放,且每一電路執行剔除操作以減少傳遞至下一管線級的資料量,其中所述剔除電路至少部分地基於基元特性而剔除基元資料,並防止不需要的屬性資料由後續管線電路級處理,其中所述光柵化電路至少部分地基於可見度判定而剔除基元資料,並防止不需要的屬性資料由所述後續管線電路級處理。
- 如請求項10所述的系統,其中所述圖形處理管線包括屬性設置電路以及剔除電路,以及其中非位置資訊自所述前端輸出邏輯電路路由至所述屬性設置電路,以及其中位置資訊自所述前端輸出邏輯電路路由至所述剔除電路。
- 如請求項15所述的系統,其中所述屬性設置電路經組態以延遲基元屬性內插設置直至基元資料已由位置資訊管線部分剔除之後為止。
- 如請求項10所述的系統,其中所述圖形處理管線經組態以藉由在剔除基元資料之前剔除屬性資料而執行資料的多級剔除。
- 如請求項10所述的系統,其中所述圖形處理管線包括剔除電路以及架構性地在所述剔除電路之後的至少一個後續處理電路級,其中所述前端輸出邏輯電路經組態以:自所述剔除電路接收關於剔除哪些資料的指示,自前端輸出緩衝器讀取未剔除資料,以及將所述未剔除資料或所述未剔除資料的部分傳遞至所述至少一個後續處理電路級以供處理。
- 一種用於最佳化像素著色器屬性管理的方法,包括:自一或多個前端輸出緩衝器接收圖形資料;經由涉及圖形管線電路級的位置資訊部分的多級剔除判定可移除哪些圖形資料,其中判定包含將三角形轉換成三角扇形;以及防止後續圖形管線電路級存取經剔除資料。
- 如請求項19所述的方法,其中判定包括:藉由前端輸出邏輯電路判定不需要的屬性資料,所述屬性資料並非後續管線電路級所需要的;藉由剔除電路至少部分地基於基元特性而剔除基元資料;以及藉由光柵化電路至少部分地基於可見度判定而剔除基元資料。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962863851P | 2019-06-19 | 2019-06-19 | |
US62/863,851 | 2019-06-19 | ||
US16/597,840 US11227430B2 (en) | 2019-06-19 | 2019-10-09 | Optimized pixel shader attribute management |
US16/597,840 | 2019-10-09 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202101270A TW202101270A (zh) | 2021-01-01 |
TWI810458B true TWI810458B (zh) | 2023-08-01 |
Family
ID=74038953
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW109117832A TWI810458B (zh) | 2019-06-19 | 2020-05-28 | 用於最佳化像素著色器屬性管理的設備、系統及方法 |
Country Status (2)
Country | Link |
---|---|
KR (1) | KR20200145665A (zh) |
TW (1) | TWI810458B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200807327A (en) * | 2006-07-27 | 2008-02-01 | Via Tech Inc | Texture engine, graphics processing unit and texture processing method thereof |
TW201112162A (en) * | 2002-07-16 | 2011-04-01 | Microsoft Corp | Systems and methods for providing intermediate targets in a graphics system |
US20160086299A1 (en) * | 2014-09-24 | 2016-03-24 | Saurabh Sharma | Position-Only Shading Pipeline |
US20170091989A1 (en) * | 2015-09-25 | 2017-03-30 | Murali Ramadoss | Position Only Shader Context Submission Through a Render Command Streamer |
-
2020
- 2020-05-06 KR KR1020200053705A patent/KR20200145665A/ko active Search and Examination
- 2020-05-28 TW TW109117832A patent/TWI810458B/zh active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201112162A (en) * | 2002-07-16 | 2011-04-01 | Microsoft Corp | Systems and methods for providing intermediate targets in a graphics system |
TW200807327A (en) * | 2006-07-27 | 2008-02-01 | Via Tech Inc | Texture engine, graphics processing unit and texture processing method thereof |
US20160086299A1 (en) * | 2014-09-24 | 2016-03-24 | Saurabh Sharma | Position-Only Shading Pipeline |
US20170091989A1 (en) * | 2015-09-25 | 2017-03-30 | Murali Ramadoss | Position Only Shader Context Submission Through a Render Command Streamer |
Also Published As
Publication number | Publication date |
---|---|
KR20200145665A (ko) | 2020-12-30 |
TW202101270A (zh) | 2021-01-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10210651B2 (en) | Allocation of tiles to processing engines in a graphics processing system | |
US11816782B2 (en) | Rendering of soft shadows | |
US11410385B2 (en) | Generation of a control stream for a tile | |
TWI584223B (zh) | 藉由追蹤物件及/或基元識別符的圖形處理增強之方法及系統,圖形處理單元及非暫時性電腦可讀媒體 | |
US20230351670A1 (en) | Graphics processing method and system for rendering items of geometry based on their size | |
US20210279954A1 (en) | Graphics processing method and system for rendering items of geometry based on their size | |
US11562533B2 (en) | Assembling primitive data into multi-view primitive blocks in a graphics processing system | |
US9305370B2 (en) | Graphical rendering with implicit surfaces | |
RU2656683C1 (ru) | Ускоренное отсечение одной плоскостью многоугольников при графической обработке | |
TWI810458B (zh) | 用於最佳化像素著色器屬性管理的設備、系統及方法 | |
CN109643460B (zh) | 使用推迟图元批量合并和分类的混合渲染器 | |
US11227430B2 (en) | Optimized pixel shader attribute management | |
Ma et al. | Rasterization of geometric primitive in graphics based on FPGA | |
GB2549787A (en) | Generation of a control stream for a tile |