TWI378398B - Optimizing a configurable graphics rendering pipeline using early z-mode - Google Patents

Optimizing a configurable graphics rendering pipeline using early z-mode Download PDF

Info

Publication number
TWI378398B
TWI378398B TW096115609A TW96115609A TWI378398B TW I378398 B TWI378398 B TW I378398B TW 096115609 A TW096115609 A TW 096115609A TW 96115609 A TW96115609 A TW 96115609A TW I378398 B TWI378398 B TW I378398B
Authority
TW
Taiwan
Prior art keywords
mode
engine
early
late
pipeline
Prior art date
Application number
TW096115609A
Other languages
English (en)
Other versions
TW200821985A (en
Inventor
Mark J French
Emmett M Kilgariff
Steven E Molnar
Walter R Steiner
Douglas A Voorhies
Adam Clark Weitkemper
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 TW200821985A publication Critical patent/TW200821985A/zh
Application granted granted Critical
Publication of TWI378398B publication Critical patent/TWI378398B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures

Landscapes

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

Description

1378398 九、發明說明: 【發明所屬之技術領域】 本發明實施例大體上係關於電腦繪圖, 且更確切言之係 關於使用早期z模式最佳化繪圖渲染管線。 【先前技術】
繪圖渲染引擎通常由組織在資料流型式管線中之一組 門處理引擎組成。在任何資料提取引擎之後,設置引擎= 常處於繪圖渲染引擎頂部。設置引擎對例如三通 巧取之成何 圖元操作,並將經變換或簡化之幾何圖元表示發出至光栅 引擎。光柵引擎判定與每一幾何圖元關聯之像素覆芸範 圍,從而產生具有關聯之深度值(2值)之未著色像素^元6 的連續流。著色器引擎對來自光柵引擎之未著色像素之連 續流進行操作’從而產生經著色像素流。"計算給定像 f 著色n引擎亦視情況產生或修改像素之 z值。2光柵操作(ZR0P)引擎衫是否應藉由稱為Z測試之 操作來保留或丢棄新像素β z測試將新像素之深度及模板 資料與在該新像素之位置處之當前深度緩衝器中的先前儲 存之深度及模板資料進行比較。若像素通過了2測試,則 ZROP引擎視情況將新像素之深度及模板資料寫入至當前 /木度緩衝益。Z解析引擎將2測試之結果與和相關像素相關 聯之潛時緩衝資料合併β z解析引擎將已通過z測試之像素 傳輸至顏色光柵操作(CR〇p)引擎,並丟棄未通過2測試之 像素。顏色光柵操作(CR〇p)引擎更新新像素之顏色資料, 並將其寫入至當前顏色緩衝器。 120543.doc 繪圖渲染管線中處理 ^ ^ 之精確次序通常經設計以適應 &染過程中連續資科依賴 在對由三角形覆蓋之像㈣ 早減少。舉例而言,應 $素集合進行像素操作之前,將三角 =::栖:為像素圖元。另外,像素之Z值應在與深度 =中之先前計算出的2值進行比較之前計算出。通常 之後進行2測試,從而給予著色器引擎在2測試之前 、,‘。束任何深度或模板計算的機會。 :眾:周知’著色器引擎係繪圖渲染管線之耗費最大的 耗最多邏輯資源及最多功率。此外,著色器引 行之複雜著色算法促使著色器引擎變為键 =中最主要之效能航頸。光拇引擎中之早 知將㈣色器引擎内觸發與圖元有關之工作之前 :皮閉塞的該等圖元來實現某一程度之效能增益。然而,早 剔除僅為微不足道W棄機制且並非較精確之Z測試之 替代。即使當❹早期Z剔除時,2賴步驟也 ^引擎處理之像素中之一半或更多像素。更重要的ί 者色益引擎在著色操作期間通常甚至不修改被丟棄像 許多像素的Ζ值,從而使該等像素多餘地通過著色器引 擎°因此’標準架構的結果為,作為繪圖;宣染管線中單一 耗費最大資源之著色器引擎以實質上低效水平操作。 如上文所說明’此項技術中需要—種用於改良繪圖 管線中著色器引擎效率之技術。 1 一,、 【發明内容】 本發明一個實施例陳述一種用於處理繪圖圖元 、°」配置
120543.doc 繪圖這染管線。該繪圖演染管線包含 置以判;f*庙卢这*f。7 f亏丨擎’其,經酉己 w早2模式還是晚期z模式中進行處理. 引擎,其經配置以自μ ,光栅 轉換為m 接收幾何圖元並將幾何圖元 轉換為一或多個像素圖元;著器 像素圖元相關聯之_或多 配置以對與 作(_星… 執打著色操作;z光柵操 配置以對樣本之每-者執行⑽試; 之之測心要广配置以針對每—樣本、基於與樣本關聯 之ζκ結果來判定應 作(PROM - # ㈣樣本,及預光柵操 ,,、經配置以修改著色器引擎與ZR0P單开 之間的資料流路徑,以支持早 早兀 當繪圖沒染管線經配置用早、’及晚期2模式兩者。 卞g深丄配置以用於早期2模式時盥 ^聯之樣本首先由伽P單元及⑽析引擎處理且接= =引擎處理’且當繪嶋管線經配置以用於二 模式時,樣本首先由著色器引擎處理且接著由zr〇1 及Z解析引擎處理。 早7^ 所揭不之繪圖;;宣染管線的一個優點在於’在適當情兄 下’可在將樣本傳輸至著色器引擎之前實施冗測試1此 相對於先前技術架構而增加繪圖道染管線之處理日 【實施方式】 2發明藉由減小著色器引擎上之工作負荷(大多數纷圖 &杂管線之眾所周知之效能瓶頸)來改良繪圖渲染管線的 總效率。藉由動態地重新配置繪圖這染管線以允許在某些 清屯下之早期z測試’允許在著色之前丢棄閉塞的像素, 為著色器引擎解除了傳統繪圖渲染管線中常見之多餘工 120543.doc 1378398 作。
圖1係根據本發明一個實施例通過繪圖渲染管線1 〇〇之資 料流之概念圖。如圖所示,設置引擎11〇自在處理器(未圖 不)上執行之驅動程式接收幾何圖元。設置引擎11〇對傳入 之圖元進行操作,並發出經變換及處理之適於向光柵引擎 n5呈現之幾何圖元。設置引擎110亦對傳入之含有"狀態 束(state bundle)"之命令進行操作。狀態束含有對(不限於) 在繪圖渲染管線100之各個處理單元中將如何處理後續圖 像圖元進行定義的資料。來自狀態束之資料可保留在彼等 處理單元中以便稍後參考。設置引擎n〇跟蹤繪圖渲染管 線】00中之渲染狀態並協調其中某些變化。渲染狀態包含 (不限於^與繪圖;宣染管線1〇〇内各點處之演染過程相關聯之 不同變篁、模式及設定。某些渲染狀態變量、模式或設定 在對給定圖元起始渲染過程之前建立,而某些渲染狀 圖元前進通過繪圖渲染管線1〇〇時被動態更新。如下2更 詳細描述’滞後計數係設置引擎⑴内管理之沒染狀態的 一個要素。滯後計數保持在滯後計數器iu中。 、光栅引擎115計算幾何圖元之覆蓋範圍並發出像素圖元 以用於進—步處理。另彳,光柵引擎115亦針對每-像素 計算相關聯之Z值》 ’、 Z光拇操作單元(ZR〇P)12轉當前像素圖元之Z值與相應 象素4置之先則儲存的2值進行比較。來自ZR〇p⑶之結 杲判定保持還是吾棄各個像夸 _
1家常圖兀。更具體而言,ZROI 引擎120將每一當前傻音夕7杜办a 象素之Z值與先前儲存在深度緩衝器 120543.doc (未圖丁)中之相應像素位置的z值進行比較。同樣,該過 程稱為” Z測試"。若♦ # #主 田别像素通過了 ζ測試,則ZROP 120視 需要將像素之2:值寫入$、s a ^ 至通吊駐存在框缓衝器160中之深度 ㈣M H素未通過,則駐存在預光拇操作 (〇P)130單兀中之2解析引擎(未圖示)將該像素丟棄,且 ZR〇P 12G不會將任何Z值資訊寫人至深度緩衝器。熟習此 項技術者瞭解,除了判定像素可見度之z值以外,亦可視 需要與Z值結合而使用模板值來最終判定特定像素通過還 疋未通過Z測試。因此’本文對z值之任何參考在適當時均 可適用於模板值。 著色器引擎14G對像素圖元進行操作以計算(不限於)像 素之顏色及Z值,如著色器引擎14G之程式設計所判定。如 ZROP 120中之Z測試結果所判定,顏色光柵操作單元 (CR〇P)150將每一通過的像素之顏色值寫入至框緩衝器 160。 PROP 130單元管理像素圖元在ZR〇p 12〇、cR〇p 15〇及 著色器引擎140之間的流動,從而根據每一像素圖元之當 前渲染狀態對操作次序進行排序。如本文所述,pR〇p 13〇 在兩種模式(”晚期"Z模式及"早期,,z模式)中之一種模式中 操作。以穿過PROP 13〇之實線展示晚期2模式之資料流路 徑132。在晚期Z模式中,著色器引擎14〇首先對像素圖元 進行操作以計算(不限於)相關像素之顏色及2值。著色器 引擎140將結果引導至ZR0P 12〇以用於z測試。如上所 述’ ZROP 12G針對通過2測試之所有像素而更新深度緩衝 120543.doc -10- 1378398 器中之z值,並將此資訊沿路傳遞至pR〇p i3〇内之z解析 引擎’該Z解析引擎隨後丢棄未通過2測試的所有像素並 將通過的像素傳輸至CR〇p 15〇以用於任何剩餘之顏色及 框緩衝器更新。 如先前所述’在許多情況下,著色器引擎14〇不改變z 值。因此,在早期Z模式中,在著色之前進行2測試,藉此 為著色器5丨擎M0解除了與處理⑴2值未被著色操作改變及 ⑻經由Z測試一定會丢棄之像素相關聯的多餘工作。以穿 過PROP 130之虛線展示早期2模式之資料流路徑ΐ3ι。此 處,來自光柵引擎115之像素圓元在被路由至著色器引擎 140之前被路由至ZR0P 120以用於Z測試且路由至PR〇p !3〇内之Z解析引擎。同樣,藉由使用㈣試之結果,解析 引擎丟棄未通過Z測試的所有像素,並將通過的像素傳輸 至著色器引擎14〇以用於著色操作。由於著色器引擎14〇僅 處理通過Z測試之像素,因此在早期z模式中處理之像素的 數目可能實質上少於在晚期z模式中處理之像素的數目。 在者色之後,著色丨擎丨㈣經著色之像㈣輸至⑽p 15 0° 無論搶圖這染管線刚處於早期2模式還是處於晚期辦 式,通常均需要對所有像素進行2測試。如所描述,在早 期2模式的情況下,為著色器引擎⑷解除了與由於Z測言式 之像素_聯之計算量’從而獲得改良之系統效 式的情況下,著色姆色所有像素 不考慮母一像素之最終處置。晚期z模式係一般情況,
120543.doc 且適應於繪圖㈣管線1叫可用之所有沒染狀態;而早 期Z模式限於某些經常遇_沒染狀態,1當待沒染合格 圖元時視機會實施早期2;模式。 圖2係根據本發明一個實施例通過圖13〇之資料 流之概念圖。以實線展示晚期2模式之資料流路徑⑴。在 晚期Z模式中,PROP 13〇將來自光栅引擎115之像素資料經 由多工器 路由來自著色器引擎140之返回資料。將多工器22〇之輸出 路由至ZROP 12G以用於z測試,且路由至潛時缓衝器212 以調節ZROP 120可能展現之可變潛時。⑽析引擎214將 由ZROP 120執行之z測試的結果與傳遞通過潛時緩衝器 212之來自著色器引擎14()的資料合併,以傳輸或丢棄每— 經著色之像素。接著多工器222選擇通過2測試之經著色之 像素並將該等像素傳輸至CR〇p 15〇,以便在寫入至框緩 衝器1 60之前進行最終顏色處理。 與圖1相同,以虛線展示早期z模式之資料流路徑ΐ3ι。 在早期Z模式中’ PR〇P 13〇經配置以將來自光撕引擎ιΐ5之 資料直接傳遞至多工器220。由多工器22〇傳輸之資料被路 由至ZR0P 12〇並路由至第二潛時緩衝器2丨2以調節zR〇p 120可能展現之可變潛時。同樣,z測試在ZR〇p i2〇内發 生。z解析引擎214將由ZR0P 120執行之2測試的結果與第 一潛時緩衝器212中的資料合併,以將通過z測試之像素傳 輸至著色益引擎140以進行著色。接著將經著色之像素經 由第三多工器222自著色器引擎14〇路由至CR〇p 15〇,以 120543.doc 13/8398 就緩衝器⑽之前進行最終顏色處理。 對於繪圖渲染管線1〇〇 式均係較佳之較。 在所有情況下早期2模 问效月b之操作模式。設置引 :染管線-是否可在早㈣式中操作騎圖二: ⑽是否應在晚期2模式中操作。—般而言^ ^ j 關聯之z值將不會被著色器引擎⑽改變, 則使用早期Z模式。如先前 染操作。然而,如下文陳过…“中支持所有澄 下文陳述,當遇到某些特殊㈣模式時 可實施早期z模式》 叮 。。存在-種盧染狀態通常排除早期2模式操作。只要著色 器程式在内部計算或修改2值,就建立該這染狀態,立根 據在於在以下偽代財當DepthRepIaeeShad—㈣時的 情況。在其他可能的沒染狀態集合内,存在兩種允許早期 模式之體制,將第一種定義為"Ear〗yZN〇K⑴",其中著色 器及後著色器顏色操作不影響月斷覆蓋。將允許早期战 式之第二種體制定義為” EarlyZNoUpdate",其中禁用了 z 值寫入’使得僵管可針對覆蓋範圍可由著色器修改之像素 或樣本執行z測試,但可在繪圖渲染管線1〇〇中著色之前移 動z測试。如下文更詳細描述,在向早期2模式之切換發生 之前’滯後計數器111應當達到特定計數。以下偽代碼概 述了在啟用早期Z模式之前應滿足的條件:
EarlyZGlobalOK=
DepthReplaceShader==false;//著色器不計算或修
改Z
120543.doc 13 1378398
EarlyZNoKillOK=//著色器不影響片斷覆蓋範圍 AlphaTestEnable==false && AlphaToCovgEnable==false && ShaderPixelKillEnable==false &&
Tex ture Colo rKeyEnable==false; EarlyZNoUpdateOK=//Z結果未被儲存 (DepthTestEnable==false ||
Depth Writ eEnable==false)&& (StencilTestEnable==false || (StencilMask==OxO) && AllowEarlyZNoUpdate==true;;
EarlyZEnable=//滿足沒染狀態標準以切換至早期Z模式 EarlyZGlobalOK && (EarlyZNoKillOK || EarlyZNoUpdateOK) && (EarlyZHysteresisFSM.AIIowEarlyZ==true);
因此,若以上偽代碼在EarlyZEnable變量中產生真條 件,則設置引擎110可指示PROP 130—旦繪圖渲染管線100 已完成在晚期Z模式中處於進行中的工作,就切換繪圖渲 染管線100以在早期Z模式中操作。如先前所述,當著色器 引擎 140 不修改或計算 Z值(DepthReplaceShader==false)、 繪圖渲染管線100處於兩種特殊渲染模式中之一種 (EarlyZNoKillOK==true 或 EarlyZNoUpdateOK==true)且滯 後計數器111處於允許向早期Z模式轉變之狀態中 (EarlyZHysteresisFSM.AIIowEarlyZ==true)時,EarlyZEnable f: ό 120543.doc 14 1378398 為真。下文陳述以上列出之渲染狀態變量中每一者 — 義。熟習此項技術者容易辨識及理解該蓉& 定 所。茨寺,旦染狀態變量 其各自之函數。
DepthReplaceShader :著色器引擎計算戈 常對頂點Z值進行插值相反);
AlphaTestEnable :將片斷α值與參考值推 ’阻延仃比較,若不 滿足指定條件就刪除該片斷;
Alph^ToCovgEnable :將片斷(1轉換為樣本覆蓋掩碼該 樣本覆蓋掩碼與由光柵引擎計算出的覆蓋掩碼求和;
ShaderPixelKillEnable : TextureColorKeyEnable 除片斷;
DepthTestEnable :啟用深度測試(z緩衝);
DepthWriteEnable :將通過深度測試之深度值寫入至記 憶體;
修改Z值(與通 片斷著色器可刪除片斷; 紋理值盜來者> & 乂古,L ^ 且,、爹哼之色鍵比較可刪
StencilTestEnable :啟用模板測試;及 一 StencilMask:才旨示可將哪些模板位元寫入至記憶體之位 7L掩碼。 AU〇wEarlyZNoUpdate :允許EariyZN〇Update模式。不 同於EadyZNoKUl模式,此模式可能不會始終具有效能優 勢’因為可針對將由著色器刪除之片斷執行Z測試。 當自晚期Z模式切換至早期2模式或自早期z模式切換至 晚期Z模式時,存在兩個可能的問題。第―,若在繪圖澄 木s線1 GG巾仍然存在圖元資料,則切換模式可能導致像 I20543.doc 15- 素資料丢失或不準確或處理效率降低 渲染管線1〇〇中仍妒 "+ δ,在繪圖 期· 存在晚㈣莫式圖元的情況下切換至早
Si能I,測試,此可能接著導致像素資料: 因為z測試可能並非基於最終的2值。另一方 圖澄染管線_中仍然存在早射模式圖元的情況 早模式可能導致處理之低效率,因為原本在 處理。為了Γ將被吾棄之像素可能最終被著色器引擎1⑽ 處理A 了克服當繪圖沒染管線⑽ :與切換模式相關聯之問題,在切換模式: = 眾所一 ’…技術上可行 == 技τ 二::::圖沒染管線1。。中處於進行中的工作在切換 ❿相某個預定完成度H當執行沖洗 作負荷之後通常引人稱為,,氣泡,,之管線益 料氣料低了總效能,i)為可能的計算循 =際上空閒…,切換模式的第二個問題為,若= ,繁地執行沖洗,則與沖洗綠圖渔染管線⑽相關聯之效 月❿失可能降低總效能。為了解決該第二個問題,使用速 率限制滞後機制來控制繪圖;宣染管線1GG被允許進行模 切換之速率。 、工 滯後計數器111跟縱向設置引擎110呈現之圖元的數目, 且“欢測到該等圖元之閾值數目8寺,設置引擎i 10可起始 自晚期Z模式至早期z模式之切換。更具體而言因為晚期 冰式通常適應於綠圖;宣染管線i⑼中所允許之所有沒染狀 120543.doc 16 1378398 態,所以將晚期z模式視為預設操作模式。當在晚期z模式 中操作且EarlyZEnable變為真時,設置引擎11〇視機會起始 繪圖渲染管線1〇〇向早期2模式之模式切換,其中經歷了執 行沖洗且假定設置引擎110已遇到了圖元之間值數目。因 此,在啟用向早期Z模式之切換之前,繪圖沒染管線刚保 持在晚期Z模式巾料最小數目之圖元之持續時間,從而 減小了模式切換的速率。
在一個實施例中,用傳輸至設置引擎11〇且可由滯後計 數Is 111使用之狀態束中陳述之計數值來程式化滯後計數 器111。只要設置引擎110起始向晚期2模式之模式變化(或 當繪圖澄染管線100初始地經配置以用於晚期z模式時), 就將滯㈣數器m維持之㈣計數為該計數值。—
旦將π後值設;t為該計數值,在每次圖元被接收至設置弓I 擎110中時,例如藉由減量或增量操作來推進滯後計數。
此過程持續進行,直至滯後計數達到.觸發值(例如,零)為 止。達到觸發值之料計數指示預定閾值數目·元已被 呈現至設置引擎110,其將使繪圖澄染管線100保持在晚期 Z模式以處理該最小閾值數目…。此時,設置引擎⑽ 可在繪圖>宣染管線⑽中起始向早期z模式之模式變 如此操作適當)。 、 在替代實施例中,當在早期Z模式與晚期雖式之間 切換時’藉由僅選擇性地排出改變繪圖沒染管線⑽ 處理位置之彼等管線元件’可部分減輕與切換z模式相關 聯之扣失。在此實施例中,稱為”2模式符記”之狀綠束人 120543.doc •17· 丄 令由設置弓 產生且用於將繪圖渲染管線100之配置自 早』Z核式改變為晚期Z模式’反之亦然。設置引擎110經 由繪圖㈣管線1GQ傳輸味式符記,使得z模式符記被傳 遞通過官線中之每_處理元件。當管線經重新 繪圖渲染普砼1ΛΛ丄 ^ 、線100中之處理位置之每一處理元件均包括當 遇杈式符記時實施局部選擇性沖洗所必需的功能性。 田^早期Ζ模式中操作時,若新的渔染狀態與早期ζ模式
則。又置引擎11 〇藉由首先執行沖洗且隨後指示 R〇p I30修改資料流路徑(如上所述)來使繪圖渲染管線 100轉變回晚湘7指斗· . 合一 免』ζ模式。在此情形下,設置引擎i丨〇通常不 曰又到閾值數目之圖S已被呈現至設置引擎110的限制。
除了 U上特性之外,滯後計數器111可經配置以在若干 絡3模式中操作’該等若干不同模式包括(但不限於)迫使 染管線1嶋終在晚期z模式中操作或始終允許繪圖 線100在不考慮滯後計數值的情況下切換模式的模 式另外,滯後計數器1 U可響應於某些重設條件,從而 將/Τ|Γ後计數设定為(例.如)上文之計數值。 圖3係根據本發明一個實施例用於切換圖i之繪圖渲染管 =100中之操作模式之方法步驟的流程圖。儘管結合圖1、 2、4A及4B描述該等方法步驟’但熟習此項技術者將瞭 乂任何次序執行該等方法步驟之任何系統均在本發明 範嘴内。 切換細作模式之方法開始於步驟31〇,在步驟3ι〇中設置 引擎110接從將進行操作之圖元。在步驟312中,設置引擎
120543.doc -18- U〇判疋當讀作模式為早期z模式還是晚期z模式。若, 前操作模式為晚期z模式,則該方法進行至步驟311,在: 驟3U中更新滯後計*。如上所述,當進 = 當繪圊渲染管線100初始地妳 ’吴工時或 地.,·工配置以用於晚期Z模式時將滯 ::計數設定為傳輸至設置引擎u。之狀態束中陳 晚期Z模式操作期間,在每次設置引擎⑽接收到新 圖兀時,例如藉由增量或減量操作來推進滞後計數。在更 新滞後計數器⑴之後,該方法進行至步驟⑽, 320中設置5丨擎⑽衫是否應進行模式變化,如由巧狀 態變量EaHyZEnable為真所指示。若£吻❿仙為假, 則不應進打模式變化,且該方法進行至步驟34〇,在步驟 340中设置引擎11〇等待圖元流中的下一圖元。然而,若
EarlyZEnable為冑,則應進行模式變化,且該方法進行至 步驟321。在步驟321中’設置引擎U0起始沖洗操作以沖 洗綠圖這染管線100,從而允許完成處於進行中的工作。 該方法接著進行至步驟322,在步驟奶中設置引擎HO指 不PROP m重新配置繪圖演染管線⑽之資料流以用於^ 期Z模式操作,如圖2所說明。_旦步驟322完成,繪圖洛 染管線100就經配置以用於早期z模式,且該方法進行至步 驟340,在步驟340中設置引擎等待圖元流中的下一圖元了 该方法接著返回至步驟310。 返回參看步驟3 12,若當前操作模式為早期z模式,則該 方法進行至步驟330,其中設置引擎11〇基於待處理之下二 圖元來判定是否應進行模式變化。若應在早期2模式令處
J20543.doc 1378398
理下一圖元,如由EarlyZEnable為真所指示,則不需要進 仃杈式變化,且該方法進行至步驟340。另—方面,若應 在晚期z模式巾處理下—圖元,則f要進行模式變化,且 該方法迨行至步驟33卜在步驟331中,設置引擎ιι〇起始 沖洗操作以沖洗繪圖演染管線剛,從而允許完成處於進 行中的工作。該方法接著進行至步驟332,其中設置引擎 11〇指示PR〇P13〇重新配置繪圖沒染管線⑽之資料流以用 於晚期z模式操作’如圖2所說明。一旦步驟332完成,繪 圖渲染管線100就經配置以用於晚期z模式,且該方法進^ 至步驟340,在步驟34〇中設置引擎11〇等待圖元流中的下 圖元。該方法接著返回至步驟31〇。
圖4a說明根據本發明一個實施例,當在晚期2模式中操 作時圖1之繪圖渲染管線1〇〇之邏輯配置。設置引擎no對 傳入之圖元進行操作並發出經變換及處王里之適合於向光拇 ^擎U5呈現的幾何圖元。光栅引擎115計算幾何圖元之覆 蓋範圍並將像素圖元發出至著色器引擎14〇。 計算每一像素之z值。著色器引擎140計算(不限於)=;; 色值及(視需要)Z值,從而將顏色資料432與2資料之間 的結果分裂以用於進-步處理。ZR0P 120實施2測試並: 結果傳遞至z解析引擎214,2解析引擎214丢棄未通過2測 試之任何像素並將通過2測試之像素傳輪至cR〇p 15〇〇 CROP 150將由z解析引擎214傳輸之像素之顏色值保存至 框緩衝器16 0。 在早期Z模式中操作
圖4b說明根據本發明一個實施例 I20543.doc -20- 1378398
4圖1之繪圖渲染管線1 〇〇之邏輯配置。如同晚期Z模式, 設置引擎110對傳入之圖元進行操作並發出經變換及處理 之適合於向光栅引擎115呈現的幾何圖元。然而不同於晚 期Z模式,光柵引擎115計算幾何圖元之覆蓋範圍並將像素 圖元直接發出至ZROP 120以用於2測試。ZR0p 12〇將結果 傳遞至Z解析引擎214,2解析引擎214僅將通過乙測試之像 素傳輸至著色器引擎140。此時由z解析引擎214丟棄之像 素不需要額外處理。著色器引擎140計算像素顏色值,且 CROP 1 50將像素顏色值保存至框緩衝器丨6〇。 圖4a及4b描繪之流動由對通過繪圖渲染管線1〇〇之資料 流進行配置之PROP 130產生(如圖所述)。pR〇p 13〇原 本對繪圖渲染管線1〇〇在早期Z模式及晚期z模式中之操作 為透明的,且因此在圖4a及4b中未圖示。
在替代實施例中,每一幾何圖元可包含狀態位元〇2模 式旗標"),其指示將在早期Z模式還是晚期z模式中處理該 圖元。根攄上文陳述之用於計算幾何圖元及任何相關聯像 素之EadyZEnable狀態的規則來判定此2模式旗標。根據每 一幾何圖元之相應之Z模式旗標來路由及處理每一幾何圖 元。適當時,繪圖渲染管線100中之每—處理元件包含用 於早期Z模式及晚期Z模式兩者之獨立狀態記憶體。藉由提 供處理元件中線式之每n立狀態’需要晚期z模式 處理之圖元可能與需要早期Z模式處理之圖元交錯,而不 需要沖洗繪圖渲染管線100的任何部分。 圖5係經配置以實施本發明之一或多個態樣之計算裝置 21 · 120543.doc 1378398 之概念圖。計算裝置500包含(但不限於)處理器51〇、系統 記憶體515、繪圖處理單元(Gpu)520及連接至GPu 52〇之 局部6己憶體525。GPU 520包含至少一個用於處理資料之演 染引擎52 1。渲染引擎52 1包含至少一個用於處理資料之繪 圖 >豆染管線1 00,如上所述。熟習此項技術者將瞭解,具 有經配置以貫施本文揭示之教示之一或多個處理單元之任
何系統均在本發明範疇内。因此,計算裝置5〇〇之架構決 不限制本發明之範嘴。 儘官以上内容針對本發明之實施例,但在不脫離本發明 基本範疇的情況下可設計出本發明之其他及另外的實施 例。舉例而言,儘管以上描述内容關注於像素z測試,但 本發明之教示恰當地適用於對任何形式之樣本(像素、片 段、子像素或任何其他形式之顏色值表示)進行z測試。因 此’本發明之範疇由以下申請專利範圍確定。 【圖式簡單說明】
因此,為了具體理解本發明之上述特徵,可參照實施例 對上文簡要概述之本發明進行更特定描述,附圖中說明了 其中一些實施例。然而,應注意,附圖僅說明本發明之典 型實施例,且因此不應認為限定本發明之範疇,因為本發 明可認同其他同等有效之實施例。 圖1係根據本發明一個實施例之通過繪圖渲染管線之資 料流之概念圖; 圖2係根據本發明一個實施例之通過圖丨之之資料 流之概念圖; 】20543 .doc •22- 管=係,發明-個實施例之用於切㈣之繪嶋 -中之操作模式之方法步驟的流程圖, 心說明根據本發明—個實施例’當在晚期Z模式下操 作時圖1之繪圖渲染管線之邏輯配置; Μ 圖4b說明根據本發明—個實施例,當在早期2模式下操 作時圖1之繪圖渲染管線之邏輯配置;且 圖5係經配置以實施本發明之一或多個態樣之計算裝置 之概念圖。 【主要元件符號說明】 100 繪圖渲染管線 110 設置引擎 111 滯後計數器 115 光柵引擎 120 Z光柵操作單元(ZR〇p) 130 預光栅操作(PR〇p) 131 資料流路徑 132 資料流路經 140 著色器弓丨擎 150 顏色光柵操作單元(CROP) 160 框緩衝器 212 潛時緩衝器 214 Z解析引擎 220 、 221 、 222 多工器 500 計算裝置 J20543.doc • 23 - 1378398 510 處理器 515 糸統記憶體 520 繪圖處理單元(GPU) 521 渲染引擎 525 局部記憶體 120543.doc -24-

Claims (1)

  1. 十、申請專利範圍: I 一種用於處理繪圖圖元之可配置繪圖渲染管線,該繪圖 渲染管線包括: 一設置引擎,其經配置以判定應在早期2模式還是晚 期z模式中進行處理; 一光柵引擎,其經配置以自該設置引擎接收一幾何圖 元並將該幾何圖元轉換為一或多個像素圖元; -著色器引擎’其經配置以對與一像素圖元關聯之一 或多個樣本執行著色操作; ——Z光柵操作(ZROP)單元,其經配置以對該等樣本之 每一者執行Z測試; -Z解析引擎’其經配置以針對每一樣本、基於盥該 樣=關聯之Z測試結果來判定應保留還是丢棄該樣本及 引操作(PROP)單元,其經配置以修改該著色器 元之間的一資料流職以支持早期Z模 式及晚期Z模式兩者, :::該繪圖沒染管線經配置以用於早期2模式時, 與該像素圖元關聯 解析引堅# 1之^樣本首先由該ZROP單元及該2 解析引擎處理且接著由琴英 、—u 該者色器引擎處理,且當該繪H1 /亘染管線缔阶w m 、f圖 裏‘配置以用於晚期z模式 該著声哭Η丨敬* 成寻樣本首先由 。丨擎處理且接著由該2汉 處理。 早凡及該Ζ解析引擎 2.如清求項1之繪圖涫毕瞢綠,甘Α 估計-鱼㈣中該設置引擎經配置以 ^該邊何圖元相關聯之涫毕 ~木狀態,以判定應進行 120543.doc 3. 4. 5. 6. 8. 9. 味式向晚期Z模式還是自晚期2模式向早期罐 ,項2之繪圖渲染管線,其中該設置引擎包含M 後計备哭水 且7丨手巴3 —滯 時該滯後:該繪圖渲染管線經配置以用於晚期Z模式 —觸發㈣器週期性地推進,且其Η滯後計數等於 早期z模式。,允許該設置引擎將該繪圖渲染管線切換為在:圖沒染管線,其中該設置引擎經配置以 d ζ模式切換為晚期ζ模 早期Z模式之前執行—沖洗操作/ 料切換為 如請求項2之繪圖渲毕 在判定應進行一自早期模二u引擎經配置以 式向早期z模★ 晚期Z模式或自晚期2模 到該Z模式符記時, z棋式符§己,且其中當遇 管線並促ml 付記被傳輸通過該繪圖濱染 …戈夕個資料流路經控制單元切換模式。染管線,其中該2模式符 夕個貧料流路徑控告 ^ 洗操作。 ㈣早7"在切換模式之前起始-局部淨 如:=1之纟…宣染管線’其中該等樣本係像素。 二二Γ键染管線,其中該設置引擎經配置以 才曰不該?11〇?單元修改該著 的該資料流路徑,以自早模〃該則w元之間 晚期Z模式切換為早期2模式挺式切換為晚期z模式或自 -種經配置以處理繪圖圖元之電腦系統,該電腦系統包 120543.doc 括: '記憶體;及 —處理單 _ 置繪圖心線::含一可配置繪圖沒染管線’該可配 设置引整 孕’其經配置以判定應在早期Z模式#县 晚期z模式中進行處理; 式退疋 :柵引擎’其經配置以自該設置引擎接收—幾何 70 4將該幾何圖元轉換為一或多個像素圖元; 一者色器引整,甘3; TO 配置以對與一像素圖元相關聯 之二或多個樣本執行著色操作; 之Γ'柵操作(ZR°p)單元,其經配置以對該等樣本 之母一者執行z測試; 2解析引擎,其經配置以針對每—樣本、基於與 I:本Γ關聯之z測試結果來判定應保留還是丟棄該 一預光柵操作(PR〇P)單元,其經配置 器引擎與™P單元之間的一資料流 二 Z模式及晚期z模式兩者, 叉丹早期 :田該繪圖渲染管線經配置以用於早期Z模式 時,與該像素圖元相關聯之料樣本首先由該ZROw π及綱析引擎處理且接著由該著色器引擎處理, 且當i亥、纟會圖沒染管線组 ,厶配置以用於晚期z模式時,兮 等樣本首先由該著色5|弓丨够 〇X 巴益引擎處理且接著由該ZROP單元 及該Z解析引擎處理。 L 120543.doc 丄 10·如凊求項9之電腦系統,直中該設 -與該幾何圓元相關聯之沒染狀態,以判計 早期Z模式向晚期战式還是自晚期z ^ ^ 改變。 丁 Μ乙棋式之 ".Π求St電腦系統’其中該設置引擎包含-滞後計 默益’當該繪圖沒毕瞢绐έ τ< 罢 '、g線厶配置以用於晚期z模式 滯後計數器週期性地推進,且其中當滯後計數等= 發值時’允許該設置引擎將該繪圖渲染管線切換為早期 Z模式》 τ π 12.如請求項Η)之電腦系統,其中該設置引擎經配置以在自 早期Ζ模式切換為晚·模式或自晚期ζ模式切換為早齡 模式之前執行一沖洗操作。 120543.doc
TW096115609A 2006-05-08 2007-05-02 Optimizing a configurable graphics rendering pipeline using early z-mode TWI378398B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US11/430,635 US8933933B2 (en) 2006-05-08 2006-05-08 Optimizing a graphics rendering pipeline using early Z-mode

Publications (2)

Publication Number Publication Date
TW200821985A TW200821985A (en) 2008-05-16
TWI378398B true TWI378398B (en) 2012-12-01

Family

ID=38660786

Family Applications (1)

Application Number Title Priority Date Filing Date
TW096115609A TWI378398B (en) 2006-05-08 2007-05-02 Optimizing a configurable graphics rendering pipeline using early z-mode

Country Status (5)

Country Link
US (1) US8933933B2 (zh)
JP (1) JP4513108B2 (zh)
KR (1) KR100899488B1 (zh)
CN (1) CN100565577C (zh)
TW (1) TWI378398B (zh)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8766995B2 (en) 2006-04-26 2014-07-01 Qualcomm Incorporated Graphics system with configurable caches
US8933933B2 (en) * 2006-05-08 2015-01-13 Nvidia Corporation Optimizing a graphics rendering pipeline using early Z-mode
US8207975B1 (en) * 2006-05-08 2012-06-26 Nvidia Corporation Graphics rendering pipeline that supports early-Z and late-Z virtual machines
US20070268289A1 (en) * 2006-05-16 2007-11-22 Chun Yu Graphics system with dynamic reposition of depth engine
US8884972B2 (en) 2006-05-25 2014-11-11 Qualcomm Incorporated Graphics processor with arithmetic and elementary function units
US8869147B2 (en) 2006-05-31 2014-10-21 Qualcomm Incorporated Multi-threaded processor with deferred thread output control
US8644643B2 (en) 2006-06-14 2014-02-04 Qualcomm Incorporated Convolution filtering in a graphics processor
US8766996B2 (en) 2006-06-21 2014-07-01 Qualcomm Incorporated Unified virtual addressed register file
US20080284780A1 (en) * 2007-05-15 2008-11-20 R-Ming Hsu Method for enabling alpha-to-coverage transformation
JP5536760B2 (ja) * 2008-05-30 2014-07-02 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド シェーダ列のための冗長方法及び装置
US9093040B2 (en) 2008-05-30 2015-07-28 Advanced Micro Devices, Inc. Redundancy method and apparatus for shader column repair
GB2475375B (en) * 2008-06-04 2011-12-14 Advanced Risc Mach Ltd Graphics processing systems
US9367487B1 (en) * 2009-06-10 2016-06-14 Nvidia Corporation Mitigating main crossbar load using dedicated connections for certain traffic types
AU2009202377A1 (en) * 2009-06-15 2011-01-06 Canon Kabushiki Kaisha Combining overlapping objects
US9142057B2 (en) * 2009-09-03 2015-09-22 Advanced Micro Devices, Inc. Processing unit with a plurality of shader engines
KR101719485B1 (ko) * 2010-09-20 2017-03-27 삼성전자주식회사 그래픽 처리 유닛에서의 사전 픽셀 제거를 위한 장치 및 방법
US9019292B2 (en) * 2011-09-12 2015-04-28 Microsoft Technology Licensing Llc Reordering graph execution for processing optimization
US9953455B2 (en) * 2013-03-13 2018-04-24 Nvidia Corporation Handling post-Z coverage data in raster operations
US10008029B2 (en) 2013-05-31 2018-06-26 Nvidia Corporation Updating depth related graphics data
KR20150042095A (ko) 2013-10-10 2015-04-20 삼성전자주식회사 드로우 커맨드들의 처리 순서를 재조정하여 프레임을 렌더링하는 장치 및 방법
US9697580B2 (en) * 2014-11-10 2017-07-04 Qualcomm Incorporated Dynamic pipeline for graphics processing
US10002404B2 (en) * 2015-04-15 2018-06-19 Mediatek Singapore Pte. Ltd. Optimizing shading process for mixed order-sensitive and order-insensitive shader operations
KR102472131B1 (ko) * 2015-09-03 2022-11-29 삼성전자주식회사 쉐이더 프로그램을 생성하는 방법 및 장치
US9824458B2 (en) * 2015-09-23 2017-11-21 Qualcomm Incorporated Dynamically switching between late depth testing and conservative depth testing
GB2543866B (en) * 2016-03-07 2017-11-01 Imagination Tech Ltd Task assembly for SIMD processing
US20180082464A1 (en) * 2016-09-16 2018-03-22 Tomas G. Akenine-Moller Apparatus and method for an efficient 3d graphics pipeline
US10540808B2 (en) * 2016-09-16 2020-01-21 Intel Corporation Hierarchical Z-culling (HiZ) optimization for texture-dependent discard operations
US10943389B2 (en) * 2016-12-09 2021-03-09 Advanced Micro Devices, Inc. Removing or identifying overlapping fragments after z-culling
US10706612B2 (en) * 2017-04-01 2020-07-07 Intel Corporation Tile-based immediate mode rendering with early hierarchical-z
US11170555B2 (en) 2019-11-27 2021-11-09 Arm Limited Graphics processing systems
US11210821B2 (en) * 2019-11-27 2021-12-28 Arm Limited Graphics processing systems
US11216993B2 (en) 2019-11-27 2022-01-04 Arm Limited Graphics processing systems
US11210847B2 (en) 2019-11-27 2021-12-28 Arm Limited Graphics processing systems
CN116703689B (zh) * 2022-09-06 2024-03-29 荣耀终端有限公司 一种着色器程序的生成方法、装置和电子设备
GB2624430A (en) * 2022-11-17 2024-05-22 Advanced Risc Mach Ltd Graphics processors

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5798770A (en) * 1995-03-24 1998-08-25 3Dlabs Inc. Ltd. Graphics rendering system with reconfigurable pipeline sequence
JPH0950533A (ja) 1995-08-08 1997-02-18 Kubota Corp グラフィックス表示装置
US7068272B1 (en) * 2000-05-31 2006-06-27 Nvidia Corporation System, method and article of manufacture for Z-value and stencil culling prior to rendering in a computer graphics processing pipeline
US6222550B1 (en) * 1998-12-17 2001-04-24 Neomagic Corp. Multiple triangle pixel-pipelines with span-range pixel interlock for processing separate non-overlapping triangles for superscalar 3D graphics engine
US7034828B1 (en) * 2000-08-23 2006-04-25 Nintendo Co., Ltd. Recirculating shade tree blender for a graphics system
US6636214B1 (en) 2000-08-23 2003-10-21 Nintendo Co., Ltd. Method and apparatus for dynamically reconfiguring the order of hidden surface processing based on rendering mode
US6999076B2 (en) * 2001-10-29 2006-02-14 Ati Technologies, Inc. System, method, and apparatus for early culling
JP3761085B2 (ja) * 2001-11-27 2006-03-29 株式会社ソニー・コンピュータエンタテインメント 画像処理装置及びその構成部品、レンダリング処理方法
US6828978B2 (en) * 2002-02-28 2004-12-07 David B. Buehler Bucket-sorting graphical rendering apparatus and method
US6930684B2 (en) * 2002-09-27 2005-08-16 Broadizon, Inc. Method and apparatus for accelerating occlusion culling in a graphics computer
US7633506B1 (en) * 2002-11-27 2009-12-15 Ati Technologies Ulc Parallel pipeline graphics system
US7268779B2 (en) * 2002-12-24 2007-09-11 Intel Corporation Z-buffering techniques for graphics rendering
KR100510131B1 (ko) * 2003-01-29 2005-08-26 삼성전자주식회사 픽셀 캐쉬 및 이를 이용한 3차원 그래픽 가속 장치 및 방법
US7978194B2 (en) 2004-03-02 2011-07-12 Ati Technologies Ulc Method and apparatus for hierarchical Z buffering and stenciling
US20050195198A1 (en) * 2004-03-03 2005-09-08 Anderson Michael H. Graphics pipeline and method having early depth detection
US7724263B2 (en) * 2004-05-14 2010-05-25 Nvidia Corporation System and method for a universal data write unit in a 3-D graphics pipeline including generic cache memories
JP4684749B2 (ja) * 2005-06-03 2011-05-18 三菱電機株式会社 グラフィック装置
US8860721B2 (en) * 2006-03-28 2014-10-14 Ati Technologies Ulc Method and apparatus for processing pixel depth information
US8933933B2 (en) * 2006-05-08 2015-01-13 Nvidia Corporation Optimizing a graphics rendering pipeline using early Z-mode
US8207975B1 (en) * 2006-05-08 2012-06-26 Nvidia Corporation Graphics rendering pipeline that supports early-Z and late-Z virtual machines
US20070268289A1 (en) * 2006-05-16 2007-11-22 Chun Yu Graphics system with dynamic reposition of depth engine

Also Published As

Publication number Publication date
US20070257905A1 (en) 2007-11-08
CN100565577C (zh) 2009-12-02
US8933933B2 (en) 2015-01-13
CN101101667A (zh) 2008-01-09
JP2007328774A (ja) 2007-12-20
TW200821985A (en) 2008-05-16
KR20070108823A (ko) 2007-11-13
JP4513108B2 (ja) 2010-07-28
KR100899488B1 (ko) 2009-05-27

Similar Documents

Publication Publication Date Title
TWI378398B (en) Optimizing a configurable graphics rendering pipeline using early z-mode
US11682163B2 (en) Using tiling depth information in hidden surface removal in a graphics processing system
US9153070B2 (en) Hidden surface removal in graphics processing systems
US10311016B2 (en) Hidden surface removal in graphics processing systems
US10008029B2 (en) Updating depth related graphics data
US9792122B2 (en) Heuristics for improving performance in a tile based architecture
JP5538750B2 (ja) グラフィックス処理システム
JP7038548B2 (ja) グラフィックス処理システム
KR102057163B1 (ko) 그래픽 처리 시스템에서 히든 표면의 제거
CN104157004B (zh) 一种融合gpu与cpu计算辐射度光照的方法
GB2534567A (en) Processing primitives which have unresolved fragments in a graphics processing system
US20070291030A1 (en) System and method for performing depth testing at top and bottom of graphics pipeline
US9454844B2 (en) Early depth testing in graphics processing
KR20200071657A (ko) 타일 기반 그래픽 렌더링 파이프라인에서 픽셀 셰이더 작업을 줄이는 효과적인 리던던트 커버리지 버림 메커니즘
GB2539958A (en) Data processing systems
US20200258294A1 (en) Multi-rate shading using replayed screen space tiles
JP4499291B2 (ja) 3次元コンピュータ生成画像のシェーディング及びテクスチャリング
US20120299943A1 (en) Graphics Processing Systems
US11430080B2 (en) Methods and apparatus for speculative execution of fragments in a graphics pipeline
Houston et al. A hardware F-buffer implementation
CN110413914A (zh) 基于WebGL的渲染方法、装置、设备及存储介质
US20240169465A1 (en) Graphics processing systems
US11132835B1 (en) Suspending and resuming operations in graphics processing systems