TWI602151B - 三維圖形管道中之可程式化圖元設定方法以及使用該方法的裝置 - Google Patents
三維圖形管道中之可程式化圖元設定方法以及使用該方法的裝置 Download PDFInfo
- Publication number
- TWI602151B TWI602151B TW104134626A TW104134626A TWI602151B TW I602151 B TWI602151 B TW I602151B TW 104134626 A TW104134626 A TW 104134626A TW 104134626 A TW104134626 A TW 104134626A TW I602151 B TWI602151 B TW I602151B
- Authority
- TW
- Taiwan
- Prior art keywords
- primitive
- shader
- shader thread
- information
- setting
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Image Generation (AREA)
- Image Processing (AREA)
Description
本發明關連於一種三維圖形技術,特別是一種三維圖形管道中之可程式化圖元設定方法以及使用該方法的裝置。
於三維圖形管道中,圖元(primitives)需要設定它們的拓樸(topology)以及屬性函數(attribute functions),例如三角形、線段以及點。接著,根據拓樸函數將圖元光柵(raster)至片元(tiles),最後使用畫素著色器(pixel shader)根據屬性函數計算最終的色彩。一般而言,圖元設定階段使用固定函數模組的硬體實施。然而,傳統固定函數模組需耗費大量的閘數成本(gate-count cost)來實現圖元設定工作。甚至,當晶片下線(tape-out)之後,不容易修正新發現的錯誤,而且,一旦晶片準備好,工程師也不能更新固定函數模組中的功能。因此,本發明提出一種三維圖形管道中之可程式化圖元設定方法以及使用該方法的裝置,用以克服以上所述的缺點。
本發明的實施例提出一種三維圖形管道中之可程
式化圖元設定方法。從緩存器讀取多個第一圖元的資訊,以及將全部或一部分第一圖元的資訊打包至設定著色器執行緒,使得設定著色器執行緒執行時將第一圖元的資訊輸出至流處理器進行建構圖元拓樸的並行計算。將需要裁切之第二圖元的資訊打包至可視範圍裁切著色器執行緒,使得可視範圍裁切著色器執行緒執行時將第二圖元的資訊輸出至流處理器進行圖元裁切。從緩存器讀取多個第三圖元的資訊,以及將全部或一部分第三圖元的資訊打包至屬性著色器執行緒,使得屬性著色器執行緒執行時將第三圖元的資訊輸出至流處理器進行圖元屬性的並行計算。
本發明的實施例另提出一種三維圖形管道中之可
程式化圖元設定裝置,包含緩存器、流處理器、設定著色器執行緒建構元、可視範圍裁切著色器執行緒建構元以及屬性著色器執行緒建構元。設定著色器執行緒建構元從緩存器讀取多個第一圖元的資訊,將全部或一部分第一圖元的資訊打包至設定著色器執行緒,使得設定著色器執行緒執行時將第一圖元的資訊輸出至流處理器進行建構圖元拓樸的並行計算。可視範圍裁切著色器執行緒建構元將需要裁切之第二圖元的資訊打包至可視範圍裁切著色器執行緒,使得可視範圍裁切著色器執行緒執行時將第二圖元的資訊輸出至流處理器進行裁切。屬性著色器執行緒建構元從緩存器讀取多個第三圖元的資訊,將全部或一部分第三圖元的資訊打包至屬性著色器執行緒,使得屬性著色器執行緒執行時將第三圖元的資訊輸出至流處理器進行圖元屬性的並行計算。
110‧‧‧圖元緩存器
120‧‧‧流處理器
130‧‧‧共享記憶體
140‧‧‧設定著色器執行緒建構元
150‧‧‧可視範圍裁切著色器執行緒建構元
160‧‧‧屬性著色器執行緒建構元
170‧‧‧可視範圍圖元緩存器
180‧‧‧屬性緩存器
210‧‧‧輸入組裝階段
220‧‧‧前置階段
230‧‧‧設定著色器及可視範圍裁切著色器
240‧‧‧屬性著色器
250‧‧‧緩存器
260‧‧‧片元產生階段
270‧‧‧後製階段
310‧‧‧寄存器
S311~S373‧‧‧方法步驟
S411~S473‧‧‧方法步驟
S511~S515‧‧‧方法步驟
S611~S655‧‧‧方法步驟
S711~S735‧‧‧方法步驟
S811~S873‧‧‧方法步驟
第1圖係依據本發明實施例的三維圖形處理裝置的硬體架構圖。
第2圖係依據本發明實施例的三維圖形管道中之圖元設定示意圖。
第3圖係依據本發明實施例的三維圖形管道中之可程式化圖元設定方法流程圖。
第4圖係依據本發明實施例的產生設定著色器執行緒的方法流程圖。
第5圖係依據本發明實施例的三維圖形管道中之可程式化圖元設定方法流程圖。
第6圖係依據本發明實施例的產生可視範圍裁切著色器執行緒的方法流程圖。
第7圖係依據本發明實施例的三維圖形管道中之可程式化圖元設定方法流程圖。
第8圖係依據本發明實施例的產生屬性著色器執行緒的方法流程圖。
以下說明係為完成發明的較佳實現方式,其目的在於描述本發明的基本精神,但並不用以限定本發明。實際的發明內容必須參考之後的權利要求範圍。
必須了解的是,使用於本說明書中的”包含”、”包括”等詞,係用以表示存在特定的技術特徵、數值、方法步驟、
作業處理、元件以及/或組件,但並不排除可加上更多的技術特徵、數值、方法步驟、作業處理、元件、組件,或以上的任意組合。
於權利要求中使用如”第一”、"第二"、"第三"等詞
係用來修飾權利要求中的元件,並非用來表示之間具有優先權順序,先行關係,或者是一個元件先於另一個元件,或者是執行方法步驟時的時間先後順序,僅用來區別具有相同名字的元件。
第1圖係依據本發明實施例的三維圖形處理裝置
的硬體架構圖。設定著色器執行緒建構元(SSTC,Setup Shader Thread Constructor)140用以從圖元緩存器(primitive buffer)110或可視範圍圖元緩存器(Guard-Band-clipping primitive buffer)170讀取多個圖元的資訊,將圖元資訊打包至設定著色器執行緒(SST,Setup Shader Thread),使得設定著色器執行緒執行時將圖元資訊輸出至流處理器120進行提供建構圖元拓樸(primitive topology)的並行計算。設定著色器執行緒建構元140為每一個圖元向共享記憶體130請求配置空間,使得流處理器120可將計算結果輸出至共享記憶體130。當設定著色器執行緒執行時發現任一圖元需要進行可視範圍裁切時,可視範圍裁切著色器執行緒建構元(GBTC,Guard-Band-clipping shader Thread Constructor)150將需要裁切的圖元打包至可視範圍裁切著色器執行緒(GBS Thread),使得可視範圍裁切著色器執行緒執行時將圖元資訊輸出至流處理器120進行裁切,並且把裁切結果儲存至可視範圍圖元緩存器170。屬性著色器執行緒建
構元(ASTC,Attribute Shader Thread Constructor)160用以從圖元緩存器110或可視範圍圖元緩存器170讀取多個圖元的資訊,將圖元資訊打包至屬性著色器執行緒(AST,Attribute Shader Thread),使得屬性著色器執行緒執行時將圖元資訊輸出至流處理器120進行圖元屬性的並行計算。屬性著色器執行緒建構元160為每一個圖元向共享記憶體130請求配置空間,使得流處理器120可將計算結果輸出至共享記憶體130。屬性著色器執行緒另可將計算結果儲存至屬性緩存器(Attribute Buffer)180。
第2圖係依據本發明實施例的三維圖形管道中之
圖元設定示意圖。輸入組裝階段(IA-Input Assembler Stage)210可從緩存器中讀取資料並將資料組合成將被管道中其他階段使用的圖元(primitives)。詳細來說,輸入組裝階段210可將頂點組合成不同的圖元類型,例如,點、線以及/或三角形。前置階段(FS,Front Stage)220可包含習知的頂點著色器(VS,Vertex Shader)、外殼著色器(HS,Hull Shader)、區域著色器(DS,Domain Shader)、幾何著色器(GS,Geometry Shader)、或以上的任意組合。於圖元設定階段中,本實施例提出執行於平行流處理器120的著色器:設定著色器(SS,Setup Shader)及可視範圍裁切著色器(GBS,Guard-Band clipping Shader)230;以及屬性著色器(AS,Attribute Shader)240,用以取代固定函數模組的硬體。流處理器120可為單指令多資料(SIMD,Single Instruction Multiple Data)處理單元。設定著色器230提供建構圖元拓樸的功能。可視範圍裁切著色器230用以進行圖元的裁
切。屬性著色器240提供處理圖元屬性的功能。於圖元設定階段中,使用著色器實施可節省閘數成本,並且當晶片下線(tape-out)之後,可修正新發現的錯誤以及更新著色器中的功能。驅動程式可檢查從前置階段220產生的圖元類型,並且通知編譯器產生適當的著色器程式碼,用以處理點、線以及/或三角形。此外,著色器還可利用並行計算能力來一次處理多個圖元,使得圖元設定的效能可隨著串流處理單元的數目增加而提升。可於一個硬體執行緒中處理的圖元數目,視串流處理單元的能力而定,例如一次可計算16、32或64筆資料。設定著色器(SS,Setup Shader)及可視範圍裁切著色器(GBS,Guard-Band clipping Shader)230的運算結果輸出至片元產生階段(TG-Tile Generation Stage)260。屬性著色器240的運算結果輸出至後置階段(BS,Back Stage)270,後置階段270可包含習知的畫素著色器(PS,Pixel Shader)。
第3圖係依據本發明實施例的三維圖形管道中之
可程式化圖元設定方法流程圖。前置階段220的結果可輸出並儲存至圖元緩存器110。編譯器為處理圖元緩存器110中指定數目的相同類型圖元,例如16、32或64個三角形,通知設定著色器執行緒建構元140,用以產生設定著色器執行緒(步驟S311)。
設定著色器執行緒建構元140可使用特定電路實施,較固定函數模組花費較少的閘數成本。設定著色器執行緒建構元140或可使用韌體或軟體實施,以及當流處理器120載入並執行所需的程式碼時產生設定著色器執行緒。設定著色器執行緒於執行時,實現圖元拓樸功能,包含如下所述的步驟。為每一個圖元,
設定著色器執行緒判斷是否需要進行瑣碎拒絕(trivial rejection)(步驟S313)。圖元可以從圖元緩存器110或可視範圍圖元緩存器170取得。於步驟S313,詳細來說,流處理器120中的單指令多資料處理單元載入多個相同類型圖元,而每一單指令多資料處理單元判斷載入之圖元是否整個超出顯示畫面。針對每一個圖元,若是,則代表此圖元不需要繪製並更新瑣碎拒絕掩碼(trivial rejection mask)中的相應位元(步驟S315);否則,進行此圖元的視埠轉換(viewport transform)(步驟S319)。瑣碎拒絕掩碼可實施於寄存器(register)310中。於步驟S315,舉例來說,瑣碎拒絕掩碼可包含指定數目的位元,並初始設定為邏輯”0”。當第0個圖元需要進行瑣碎拒絕時,則將瑣碎拒絕掩碼中的第0個位元設定為邏輯”1”。於步驟S319,視埠轉換係依據必要資訊(例如,三維空間座標等)將此圖元轉換至顯示畫面的二維座標。為餘下的圖元,設定著色器執行緒更判斷是否需進行可視範圍裁切(GBC,Guard-Band Clipping)(步驟S331)。於步驟S331,詳細來說,流處理器120中的單指令多資料處理單元載入需要處理的圖元,而每一單指令多資料處理單元判斷載入之圖元是否需要進行可視範圍裁切。針對任一個圖元,若是,則代表所有圖元都需要讓可視範圍裁切著色器230作進一步處理,因而結束設定著色器執行緒(步驟S333)。為餘下的每一圖元,設定著色器執行緒進行特徵計算(DET,DETerminant calculation)(步驟S335)。舉例來說,步驟S335可計算三角形面積、圖元位於顯示畫面的正面或反面等特徵。為餘下的每一圖元,設定著色器執行緒判斷是否需剔除(cull)(步
驟S337)。於步驟S337,詳細來說,流處理器120中的單指令多資料處理單元載入需要處理的圖元,而每一單指令多資料處理單元判斷載入之圖元是否位於顯示畫面的反面。若是,則代表此圖元不需要繪製並更新瑣碎拒絕掩碼中的相應位元(步驟S315);否則,產生屬性著色器240所需的參數(attributes)(步驟S339)。舉例來說,當第10個圖元需要剔除時,則將瑣碎拒絕掩碼中的第10個位元設定為邏輯”1”。為餘下的每一圖元,設定著色器執行緒執行拓樸函數(TF,Topology funciton)並輸出至片元產生階段260(步驟S351)。
設定著色器執行緒更週期性從寄存器310讀取瑣
碎拒絕掩碼中的值(步驟S371),判斷是否所有圖元都被拒絕(步驟S373),若是,則結束設定著色器執行緒(步驟S353)。於步驟S371及步驟S373,舉例來說,設定著色器執行緒判斷瑣碎拒絕掩碼中的所有位元是否皆為邏輯”1”,若是則代表所有圖元都被拒絕而不需要描繪。
參考第3圖中的步驟S311。第4圖係依據本發明實
施例的產生設定著色器執行緒的方法流程圖。設定著色器執行緒建構元140週期性地執行一個迴圈,用以從圖元緩存器110或可視範圍圖元緩存器170取得一個圖元的資訊(步驟S411),並判斷是否為完整的圖元(步驟S413)。若是則請求共享記憶體130配置空間(步驟S415);否則忽略此圖元資訊(步驟S417)。共享記憶體130中的記憶體控制器接收到請求後(步驟S415),判斷是否有足夠空間(步驟S471)。若是則回覆成功訊息,其中包含配置空間的位址(步驟S473);否則回覆失敗訊息(步驟S475)。
當設定著色器執行緒建構元140從記憶體控制器接收到訊息後,判斷是否空間配置成功(步驟S431)。當空間配置成功(步驟S431中”是”的路徑)則將此圖元資訊打包至設定著色器執行緒(步驟S433),否則(步驟S431中”否”的路徑)判斷是否請求逾時(步驟S435)。當請求逾時(步驟S435中”是”的路徑)則執行設定著色器執行緒,否則(步驟S435中”否”的路徑)繼續請求共享記憶體130配置空間(步驟S415)。接著,當不存在更多的圖元資訊(步驟S451中”是”的路徑)或取得的圖元資訊已經達到特定數目時(步驟S453中”是”的路徑),則結束設定著色器執行緒建構元140(步驟S455)以及執行設定著色器執行緒。當存在更多的圖元資訊(步驟S451中”否”的路徑)以及取得的圖元資訊尚未達到特定數目時(步驟S453中”否”的路徑),從圖元緩存器110取得下一個圖元的資訊(步驟S411)。設定著色器執行緒執行時,可將特定數目的圖元資訊輸出至流處理器120進行並行計算,並且將相應於每個圖元資訊的運算結果儲存至配置的共享記憶體130。
第5圖係依據本發明實施例的三維圖形管道中之可程式化圖元設定方法流程圖。接續第3圖,結束設定著色器執行緒後(步驟S333),編譯器通知可視範圍裁切著色器執行緒建構元150,用以產生可視範圍裁切著色器執行緒(步驟S511)。可視範圍裁切著色器執行緒建構元150可使用特定電路實施,較固定函數模組花費較少的閘數成本。設定著色器執行緒建構元150或可使用軟體實施,以及當流處理器120載入並執行所需的程式碼時產生設定著色器執行緒。可視範圍裁切著色器執行
緒於執行時,實現圖元裁切功能,包含如下所述的步驟。為每一個需要裁切的圖元,分割成一或多個落入顯示畫面的圖元,例如將一個三角形分割成落入顯示畫面的多個小三角形,並儲存至可視範圍圖元緩存器170(步驟S513)。接著,結束可視範圍裁切著色器執行緒(步驟S515)。
參考第5圖中的步驟S511。第6圖係依據本發明實
施例的產生可視範圍裁切著色器執行緒的方法流程圖。可視範圍裁切著色器執行緒建構元150週期性地執行一個迴圈,用以從圖元緩存器110取得一個圖元的資訊(步驟S611),讀取瑣碎拒絕掩碼的內容(步驟S613),並根據瑣碎拒絕掩碼中相應的位元值判斷此圖元是否需要進行瑣碎拒絕(步驟S631)。若是,則根據圖元資訊判斷此圖元是否需要進行可視範圍裁切(步驟S633);否則,產生可視範圍裁切執行緒(步驟S651),以及執行可視範圍裁切執行緒(步驟S653)。當可視範圍裁切執行緒執行時,將此圖元分割成一或多個落入顯示畫面的小圖元,並且儲存至可視範圍圖元緩存器170。當以上二個判斷中之任一者為否時(步驟S631中”否”的路徑或步驟S633中”否”的路徑),判斷取得的圖元資訊是否已經達到特定數目(步驟S655)。若是,則從圖元緩存器110取得下一個圖元的資訊(步驟S611)。
第7圖係依據本發明實施例的三維圖形管道中之
可程式化圖元設定方法流程圖。接續第3圖,產生參數後(步驟S339),編譯器通知屬性著色器執行緒建構元(ASTC,Attribute Shader Thread Constructor)150,用以產生屬性著色器執行緒(Attribute Shader Thread)(步驟S711),並且將變數”attr”設為
0(步驟S713)。接著,反覆執行一個迴圈(步驟S731至S735),直到變數”attr”大於或等於屬性總數(步驟S731中”是”的路徑)。於每一回合中,為一個屬性(例如,顏色、座標等)執行相應的屬性函數並將執行結果儲存於屬性緩存器180(步驟S733),以及將變數”attr”加一,即“attr=attr+1”(步驟S735)。
參考第7圖中的步驟S711。第8圖係依據本發明實
施例的產生屬性著色器執行緒的方法流程圖。屬性著色器執行緒建構元160週期性地執行一個迴圈,用以從圖元緩存器110或可視範圍圖元緩存器170取得一個圖元的資訊(步驟S811),並判斷是否需要進行瑣碎拒絕(步驟S813)。若是則請求共享記憶體130配置空間(步驟S815);否則取得下一個圖元的資訊(步驟S811)。共享記憶體130中的記憶體控制器接收到請求後(步驟S815),判斷是否有足夠空間(步驟S871)。若是則回覆成功訊息,其中包含配置空間的位址(步驟S873);否則回覆失敗訊息(步驟S875)。當屬性著色器執行緒建構元160從記憶體控制器接收到訊息後,判斷是否空間配置成功(步驟S831)。當空間配置成功(步驟S831中”是”的路徑)則將此圖元資訊打包至屬性著色器執行緒(步驟S833),否則(步驟S831中”否”的路徑)判斷是否請求逾時(步驟S835)。當請求逾時(步驟S835中”是”的路徑)則執行屬性著色器執行緒,否則(步驟S835中”否”的路徑)繼續請求共享記憶體130配置空間(步驟S815)。接著,當不存在更多的圖元資訊(步驟S851中”是”的路徑)或取得的圖元資訊已經達到特定數目時(步驟S853中”是”的路徑),則結束屬性著色器執行緒建構元160(步驟S855)以及執行屬性著色器執行緒。當存
在更多的圖元資訊(步驟S851中”否”的路徑)以及取得的圖元資訊尚未達到特定數目時(步驟S853中”否”的路徑),從圖元緩存器110取得下一個圖元的資訊(步驟S811)。屬性著色器執行緒執行時,可將特定數目的圖元資訊輸出至流處理器120進行並行計算,並且將相應於每個圖元資訊的運算結果儲存至配置的共享記憶體130。
雖然第1圖中包含了以上描述的元件,但不排除在
不違反發明的精神下,使用更多其他的附加元件,已達成更佳的技術效果。此外,雖然第3至8圖的處理步驟採用特定的順序來執行,但是在不違法發明精神的情況下,熟習此技藝人士可以在達到相同效果的前提下,修改這些步驟間的順序,所以,本發明並不侷限於僅使用如上所述的順序。
雖然本發明使用以上實施例進行說明,但需要注
意的是,這些描述並非用以限縮本發明。相反地,此發明涵蓋了熟習此技藝人士顯而易見的修改與相似設置。所以,申請權利要求範圍須以最寬廣的方式解釋來包含所有顯而易見的修改與相似設置。
110‧‧‧圖元緩存器
120‧‧‧流處理器
130‧‧‧共享記憶體
140‧‧‧設定著色器執行緒建構元
150‧‧‧可視範圍裁切著色器執行緒建構元
160‧‧‧屬性著色器執行緒建構元
170‧‧‧可視範圍圖元緩存器
180‧‧‧屬性緩存器
260‧‧‧片元產生階段
Claims (10)
- 一種三維圖形管道中之可程式化圖元設定方法,包含:從一緩存器讀取多個第一圖元的資訊;將全部或一部分上述第一圖元的資訊打包至一設定著色器執行緒,使得上述設定著色器執行緒執行時將上述第一圖元的資訊輸出至一流處理器進行建構圖元拓樸的並行計算;將需要裁切之第二圖元的資訊打包至一可視範圍裁切著色器執行緒,使得上述可視範圍裁切著色器執行緒執行時將上述第二圖元的資訊輸出至上述流處理器進行裁切;從上述緩存器讀取多個第三圖元的資訊;以及將全部或一部分上述第三圖元的資訊打包至一屬性著色器執行緒,使得上述屬性著色器執行緒執行時將上述第三圖元的資訊輸出至上述流處理器進行圖元屬性的並行計算,更包含:當上述設定著色器執行緒執行時,取得上述第一圖元的資訊;判斷每一上述第一圖元是否整個超出一顯示畫面或判斷上述第一圖元是否為位於上述顯示畫面的反面,若是,則更新一瑣碎拒絕掩碼中的一相應位元,用以指示上述第一圖元不需要繪製;週期性讀取上述瑣碎拒絕掩碼中的值;以及若上述瑣碎拒絕掩碼中的值指出所有上述第一圖元不需要繪製時,結束上述設定著色器執行緒。
- 如申請專利範圍第1項所述的三維圖形管道中之可程式化圖元設定方法,其中,上述流處理器為一單指令多資料處理單元。
- 如申請專利範圍第1項所述的三維圖形管道中之可程式化圖元設定方法,更包含:為每一上述第一圖元以及每一上述第三圖元向一共享記憶體請求配置空間,使得上述流處理器將計算結果輸出至上述共享記憶體。
- 如申請專利範圍第3項所述的三維圖形管道中之可程式化圖元設定方法,其中上述請求配置空間步驟使用一設定著色器執行緒建構元或一屬性著色器執行緒建構元執行。
- 如申請專利範圍第4項所述的三維圖形管道中之可程式化圖元設定方法,包含:當上述共享記憶體請求失敗且逾時,結束上述設定著色器執行緒建構元或上述屬性著色器執行緒建構元。
- 如申請專利範圍第1項所述的三維圖形管道中之可程式化圖元設定方法,包含:判斷每一上述第一圖元是否需進行可視範圍裁切;若上述第一圖元中之一者需進行可視範圍裁切時,則設定著色器執行緒結束;若上述第一圖元整個不超出上述顯示畫面及位於上述顯示畫面的正面以及不需進行可視範圍裁切時,產生一屬性著色器所需的一參數以及執行一拓樸函數。
- 如申請專利範圍第6項所述的三維圖形管道中之可程式化 圖元設定方法,更包含:當可視範圍裁切著色器執行緒執行時,將上述第二圖元裁切成一或多個落入上述顯示畫面的圖元。
- 如申請專利範圍第7項所述的三維圖形管道中之可程式化圖元設定方法,更包含:當上述屬性著色器執行緒執行時,為每一上述第三圖元執行一或多個屬性函數。
- 如申請專利範圍第1項所述的三維圖形管道中之可程式化圖元設定方法,更包含:將圖元屬性的運算結果輸出至一畫素著色器。
- 一種三維圖形管道中之可程式化圖元設定裝置,包含:一緩存器;一流處理器;一設定著色器執行緒建構元,從上述緩存器讀取多個第一圖元的資訊,將全部或一部分上述第一圖元的資訊打包至一設定著色器執行緒,使得上述設定著色器執行緒執行時將上述第一圖元的資訊輸出至上述流處理器進行建構圖元拓樸的並行計算;一可視範圍裁切著色器執行緒建構元,將需要裁切之第二圖元的資訊打包至一可視範圍裁切著色器執行緒,使得上述可視範圍裁切著色器執行緒執行時將上述第二圖元的資訊輸出至上述流處理器進行裁切;以及一屬性著色器執行緒建構元,從上述緩存器讀取多個第三圖元的資訊,將全部或一部分上述第三圖元的資訊打包至 一屬性著色器執行緒,使得上述屬性著色器執行緒執行時將上述第三圖元的資訊輸出至上述流處理器進行圖元屬性的並行計算,其中,當上述設定著色器執行緒執行時,取得上述第一圖元的資訊;判斷每一上述第一圖元是否整個超出一顯示畫面或判斷上述第一圖元是否為位於上述顯示畫面的反面,若是,則更新一瑣碎拒絕掩碼中的一相應位元,用以指示上述第一圖元不需要繪製;週期性讀取上述瑣碎拒絕掩碼中的值;以及若上述瑣碎拒絕掩碼中的值指出所有上述第一圖元不需要繪製時,結束上述設定著色器執行緒。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510511346.2A CN105118089B (zh) | 2015-08-19 | 2015-08-19 | 三维图形管道中的可程序化像素设定方法及使用其的装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201709151A TW201709151A (zh) | 2017-03-01 |
TWI602151B true TWI602151B (zh) | 2017-10-11 |
Family
ID=54477845
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW104134626A TWI602151B (zh) | 2015-08-19 | 2015-10-22 | 三維圖形管道中之可程式化圖元設定方法以及使用該方法的裝置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9892541B2 (zh) |
EP (1) | EP3133556A3 (zh) |
CN (1) | CN105118089B (zh) |
TW (1) | TWI602151B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6052129A (en) * | 1997-10-01 | 2000-04-18 | International Business Machines Corporation | Method and apparatus for deferred clipping of polygons |
US20080074430A1 (en) * | 2006-09-27 | 2008-03-27 | Guofang Jiao | Graphics processing unit with unified vertex cache and shader register file |
TW201216200A (en) * | 2010-10-15 | 2012-04-16 | Via Tech Inc | Multi-shader system and processing method thereof |
TWI474280B (zh) * | 2010-04-21 | 2015-02-21 | Via Tech Inc | 增進繪圖處理單元之總處理量的方法與系統 |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2000011603A2 (en) * | 1998-08-20 | 2000-03-02 | Apple Computer, Inc. | Graphics processor with pipeline state storage and retrieval |
US7257814B1 (en) * | 1998-12-16 | 2007-08-14 | Mips Technologies, Inc. | Method and apparatus for implementing atomicity of memory operations in dynamic multi-streaming processors |
US6359630B1 (en) * | 1999-06-14 | 2002-03-19 | Sun Microsystems, Inc. | Graphics system using clip bits to decide acceptance, rejection, clipping |
US6919908B2 (en) * | 2003-08-06 | 2005-07-19 | Ati Technologies, Inc. | Method and apparatus for graphics processing in a handheld device |
US8643659B1 (en) * | 2003-12-31 | 2014-02-04 | 3Dlabs Inc., Ltd. | Shader with global and instruction caches |
US7385607B2 (en) * | 2004-04-12 | 2008-06-10 | Nvidia Corporation | Scalable shader architecture |
US20070091088A1 (en) * | 2005-10-14 | 2007-04-26 | Via Technologies, Inc. | System and method for managing the computation of graphics shading operations |
US7880745B2 (en) * | 2006-06-20 | 2011-02-01 | Via Technologies, Inc. | Systems and methods for border color handling in a graphics processing unit |
US7940261B2 (en) * | 2007-01-10 | 2011-05-10 | Qualcomm Incorporated | Automatic load balancing of a 3D graphics pipeline |
CN101325063B (zh) * | 2007-06-12 | 2011-02-16 | 建兴电子科技股份有限公司 | 全息储存系统中寻找定位点位置的方法 |
US8174534B2 (en) * | 2007-12-06 | 2012-05-08 | Via Technologies, Inc. | Shader processing systems and methods |
US8963930B2 (en) * | 2007-12-12 | 2015-02-24 | Via Technologies, Inc. | Triangle setup and attribute setup integration with programmable execution unit |
US8599202B1 (en) * | 2008-09-29 | 2013-12-03 | Nvidia Corporation | Computing tessellation coordinates using dedicated hardware |
US20110043518A1 (en) * | 2009-08-21 | 2011-02-24 | Nicolas Galoppo Von Borries | Techniques to store and retrieve image data |
US8760460B1 (en) * | 2009-10-15 | 2014-06-24 | Nvidia Corporation | Hardware-managed virtual buffers using a shared memory for load distribution |
US9442780B2 (en) * | 2011-07-19 | 2016-09-13 | Qualcomm Incorporated | Synchronization of shader operation |
US8872838B2 (en) * | 2011-09-09 | 2014-10-28 | Microsoft Corporation | Primitive composition |
US9495721B2 (en) * | 2012-12-21 | 2016-11-15 | Nvidia Corporation | Efficient super-sampling with per-pixel shader threads |
GB2511817A (en) * | 2013-03-14 | 2014-09-17 | Imagination Tech Ltd | Rendering in computer graphics systems |
GB2520076B (en) * | 2013-11-11 | 2020-07-29 | Advanced Risc Mach Ltd | Rasterisation in graphics processing systems |
US9672298B2 (en) * | 2014-05-01 | 2017-06-06 | Oracle International Corporation | Precise excecution of versioned store instructions |
-
2015
- 2015-08-19 CN CN201510511346.2A patent/CN105118089B/zh active Active
- 2015-10-22 US US14/919,799 patent/US9892541B2/en active Active
- 2015-10-22 TW TW104134626A patent/TWI602151B/zh active
- 2015-10-29 EP EP15192150.9A patent/EP3133556A3/en active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6052129A (en) * | 1997-10-01 | 2000-04-18 | International Business Machines Corporation | Method and apparatus for deferred clipping of polygons |
US20080074430A1 (en) * | 2006-09-27 | 2008-03-27 | Guofang Jiao | Graphics processing unit with unified vertex cache and shader register file |
TWI474280B (zh) * | 2010-04-21 | 2015-02-21 | Via Tech Inc | 增進繪圖處理單元之總處理量的方法與系統 |
TW201216200A (en) * | 2010-10-15 | 2012-04-16 | Via Tech Inc | Multi-shader system and processing method thereof |
Also Published As
Publication number | Publication date |
---|---|
TW201709151A (zh) | 2017-03-01 |
EP3133556A2 (en) | 2017-02-22 |
CN105118089B (zh) | 2018-03-20 |
US20170053429A1 (en) | 2017-02-23 |
CN105118089A (zh) | 2015-12-02 |
EP3133556A3 (en) | 2018-01-17 |
US9892541B2 (en) | 2018-02-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7421585B2 (ja) | 光線バンドルの光線に対する差分データを決定する方法及びグラフィックス処理ユニット | |
TWI515716B (zh) | 具備緩衝區限制處理的世界空間與螢幕空間管線間之圖元重新排序 | |
JP6309620B2 (ja) | 頂点シェーダのフロント・エンドとしてコンピュート・シェーダを使用すること | |
CN105321199B (zh) | 图形处理流水线及其操作方法与介质 | |
TWI645371B (zh) | 在上游著色器內設定下游著色狀態 | |
CN105006010B (zh) | 执行路径渲染的方法和设备 | |
US9286647B2 (en) | Pixel shader bypass for low power graphics rendering | |
TW201439970A (zh) | 儲存共用頂點之技術 | |
TWI611373B (zh) | 路徑著色的最佳化三角形拓撲 | |
US9922442B2 (en) | Graphics processing unit and method for performing tessellation operations | |
JP2019537164A (ja) | Zカリング後の重複フラグメントの除去又は識別 | |
KR102443697B1 (ko) | 경로 스트로크를 수행하는 방법 및 장치 | |
GB2540983A (en) | Graphics processing | |
CN114730452A (zh) | 减少带宽曲面细分因子 | |
KR20200067222A (ko) | 그래픽스 파이프라인에서의 인덱스들의 압축 및 압축 해제 | |
GB2531427A (en) | Graphics processing systems | |
JP2006318404A (ja) | 図形描画装置 | |
JP7121019B2 (ja) | アウトオブオーダのピクセルシェーダのエクスポート | |
US10748236B2 (en) | Discarding of threads processed by a warp processing unit | |
JP2018169875A (ja) | 交差判定プログラム、交差判定方法及び交差判定装置 | |
TWI602151B (zh) | 三維圖形管道中之可程式化圖元設定方法以及使用該方法的裝置 | |
US11715262B2 (en) | Optimizing primitive shaders | |
CN102982503B (zh) | 绘图处理单元 | |
JP6265462B2 (ja) | プログラム、及び情報処理装置 | |
GB2545457A (en) | Graphics processing systems |