TW201145210A - Compiling for programmable culling unit - Google Patents

Compiling for programmable culling unit Download PDF

Info

Publication number
TW201145210A
TW201145210A TW99140772A TW99140772A TW201145210A TW 201145210 A TW201145210 A TW 201145210A TW 99140772 A TW99140772 A TW 99140772A TW 99140772 A TW99140772 A TW 99140772A TW 201145210 A TW201145210 A TW 201145210A
Authority
TW
Taiwan
Prior art keywords
instructions
interval
code
boundaries
hypothesis
Prior art date
Application number
TW99140772A
Other languages
English (en)
Other versions
TWI512669B (zh
Inventor
Robert M Toth
Carl J Munkberg
Franz P Clarberg
Tomas G Akenine-Moller
Jon N Hasselgren
Original Assignee
Intel 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 Intel Corp filed Critical Intel Corp
Publication of TW201145210A publication Critical patent/TW201145210A/zh
Application granted granted Critical
Publication of TWI512669B publication Critical patent/TWI512669B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/443Optimisation
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Geometry (AREA)
  • Computer Graphics (AREA)
  • Image Generation (AREA)
  • Devices For Executing Special Programs (AREA)
  • Stored Programmes (AREA)

Description

201145210 六、發明說明: H 明戶斤屬务餘々真】 發明領域 本發明係有關數位表示圖形,更特別係有關產生數位 表示圖形之效能的改善。 t 4d^· 發明背景 -在1980和1990年代中,用於電腦和遊戲操縱台的顯 示器配接器以具有圖形加速器的型態問世,而減輕中央處 理單元(CPU)的負載。-開始,顯示器配接器係提供2〇圖 形的加速’但其最後亦包括對經加速扣圖形的支援。現代 的顯示器配接器係使用常被稱為圖形處理單元(Gp切的一 個處理單元。
At 小的後雜性,所以CPU使用其大量的處理 此力來執仃和3D圖形有關的計算。永遠都有新的應用程式 洋遊戲力要更W的圖框速率(每秒所呈現的螢幕影像)、更高 的解析度和^㈣像品#,導致各個雜應該要以 訪能快㈣間來呈現的這樣的需求4言之,增進效能 永遠都是很重要的。 …J·藉由II著致錢高的時鐘速度、管線化、或利用平 ,异來〜進CPU的處理能力,而增進效能。,然而這常 生更多熱能,而導致在對CPU降溫上的更多的電力消 =及更大的風㈣音°此外’在各個CPU的時鐘速度上也 有限制。 Ύ 201145210 I:發明内容3 發明概要 依據本發明之一實施例,係特地提出一種方法,其包含 下列步驟:在運行時間之前判定用於一個可規劃揀選單元 的一個程式碼是否具有可判斷出的數個界限;以及若是如 此,則在編譯時間在該程式碼中針對各個變數而追蹤該等 界限。 依據本發明之一實施例,亦特地提出一種儲存有指令的 電腦可讀媒體,該等指令由一電腦執行時係用於下列步 驟:在編譯時判定用於一個可規劃揀選單元的一個程式碼 是否具有可計算的數個界限;以及若是如此,則在編譯時 在該程式碼中針對各個變數而追蹤該等界限。 依據本發明之一實施例,尚特地提出一種裝置,其包 含:一個可規劃揀選單元:以及耦接至該可規劃揀選單元 的一個編譯器,該編譯器係用於:判定用於該可規劃揀選 單元的程式碼是否具有可計算的數個界限,以及若是如 此,則在編譯時在該程式碼中針對各個變數而追蹤該等界 限。 圖式簡單說明 第1圖為繪示在本發明的一個實施例中,不同實體如何 在一個顯示器配接器中互動的一個方塊圖。 第2圖為示出在第1圖之顯示器配接器中所使用的不同 程式間之關係的一個概略方塊圖。 第3圖繪示一個範例,於此範例中,係可使用區間算術 201145210 來揀選在第1圖之顯示器配接器中的一個瓦片。 第4a和4b圖示出可在第1圖之顯示器配接器中執行的 數個揀選處理程序的流程圖。 第5圖示出體現第1圖之顯示器配接器的一個典型一般 用途電腦的一個概觀架構。 第6a圖為一個顯示器畫面,其繪示出第1圖之顯示器配 接器中之輸入值的一個例外情況。 第6b圖為繪示第6a圖之情況中之輸入值的一個圖。 第7a和7b圖為可用於第1圖之顯示器配接器中之紋理 的例示性透視圖。 第8a〜d圖為可用於第1圖之顯示器配接器中之紋理的 例示性圖。 第9圖為一個實施例的流程圖。 I:實施方式3 較佳實施例之詳細說明 參見第1圖,一個顯示器配接器100可包括一個多角形 設立方塊102,其負責依由示於第5圖中的所連接的一個中 央處理單元(CPU) 570之指示來設立多角形。雖然可使用任 何多角形,但一般係使用三角形。針對各個多角形,一個 瓦片光柵化器104將要被呈現的此多角形劃分成一或多個 瓦片,其中各個瓦片都至少有一部份與此多角形重疊。一 般而言,一個瓦片是一群碎片。在一個實施例中,一個瓦 片是含有多個碎片的一個二維四角形。這些碎片各對應於 一個像素,並含有呈現此像素及測試此像素是否應呈現在 201145210 螢幕上所需的所有資料。一個瓦片的常用的大小為8乘8個 碎片,但任何瓦片大小皆係於本發明之範圍中。 一個階層式深度揀選方塊106執行階層式深度楝選,此 為基於深度緩衡的棟選。於此,可執行一個保守測試來證 明那個瓦片是否被深度緩衝器中的内容覆蓋。易言之,此 測試從觀察者之角度判斷是否有另一個經呈現物件完全覆 蓋此瓦片中的多角形。如果是這種情況的話,可楝選整個 瓦片’也就是單獨挑出以做例如跳過這樣的較少處理。在 一些實施例中,這因此可導致效能增益。此階層式深度棟 選可係在一個可規劃揀選單元108的揀選之前或之後執 行。此單元可為一個固定的功能,在一個實施例中,這就 表示其並不執行可替換程式。 在可規劃揀選單元108中,楝選係依據一個可替換楝選 程式118,也稱作可替換棟選模組,來執行。下文中配合第 4a圖,對此可替換楝選程式118的細節和效力有更詳細的說 明。 在一個碎片光柵化器11〇中,由可規劃楝選單元1〇8所 處理的瓦片被分解成數個碎片,與多角形重疊。這些碎片 各對應於-個像素,並含有呈現此像素及賴此像素是否 j呈現在螢幕上所需的資料。碎片f料可包括光拇位置、 冰度、顏色、紋理座標、模板、alpha (用於混和)等等。就 每-個像素而言’可係存在有多個碎片樣本。 在碎片程式單.凡"2巾,從碎片光柵化^所輸出的碎片 利用-個碎片程式12G而被處理。這個單元的目的是要執行 6 201145210 任務,例如將先前所算出的顏色與紋理組合,以及加上例 如起霧的效果,以及在可能的時候界定並不需要被呈現的 碎片,也就是碎片揀選。 一個紋理單元114係用於紋理查詢,例如使用一維、二 維、三維、四維及立方圖紋理,並將這些提供給可規劃楝 選單元108及碎片程式單元112。 混和/深度/alpha單元116使用從碎片程式單元112所提 供的碎片而在這些碎片被寫入目標緩衝器之前執行深度測 試、alpha測試及混和。 可使用示於第2圖中的一個經組合程式或編譯器程式 222來自動產生一個可替換揀選程式118,以供在可規劃揀 選單元108和一個碎片程式120中使用,以供在碎片程式單 元112中使用。選擇性地,一個程式設計師可寫出個別的棟 選及碎片程式118、120。 舉個例子,考慮一個經組合程式222的一個偽碼片段 (1),最初是寫來用作一個碎片程式: DP3 d, η, I (1) KIL d<0 TEX2D c, tO, rl MUL out.col, d, c 此程式藉由將光線(I)和法線(n)的點積藉由DP3指令運 算成一個結果(d)來執行基本漫射照明。η和I向量依每個碎 片而變。在表面法線並不面向光線,這由d小於0指出,時, KIL指令終止所有碎片。TEX2D指令執行一個二維紋理至c 201145210 的查詢。最後,結果(d)乘上一個漫射材料係數(c)。 KIL指令是揀選整個瓦片的碎片的一個機會。但是為了 這麼作,應該要保守地證明KIL指令的條件對這整個瓦片而 言是被滿足的。在這個範例中,也必須要有可能保守地評 估DP3指令,因為KIL指令係取決於那個指令的結果。此 外,必須要有可能針對一整個瓦片找出輸入(於此實例中, 為法線η和光線I)的保守邊界,因為DP3指令又是取決於這 些*值。 為了實施這個保守評估鍊,可規劃揀選單元係以和碎 片程式單元相同的指令組為基礎。然而,取代於典型上在 處理碎片時係用浮點變數作為一個指令的來源和目的暫存 器,於此係使用區間,且係使用區間算術的原理來實施指 令。舉個簡單的例子,考慮一個標準的ADD指令: ADD c5a5b <=> c = a + b (2) 就對應的可規劃揀選單元區間指令而言,運算元被區 間a、66取代,其中,一個區間,例如a,係定義為: ά = [α,α\={χ | a < X <
(3) 則可規劃揀選單元ADD指令為: ADD c,a? b <^> c3 = a + b (4) 其中區間加法操作係如此實施: <5 + 6 = [α, 〇] + [&, δ] = [α + δ, α + δ] (5) 可以看出,這個區間加法的結果含有所有可能「正常」 加法的結果,或更正式地說,其在ae <5且be 6的情況下保 有a + b e ά + έ。這因此是保守上的正確。以類似方式,在 201145210 碎片程式指令組中的每一個指令的行為都被重新定義。 除了使用區間指令以外,可亦將輸入定義為區間。因 此,必須要可能針對在整個瓦片之碎片上所内插的量來計 算保守邊界。當知,雖然於此係使用區間算術,但亦可使 用任何適合的代表整個瓦片的算術。例如,仿射算術或泰 勒(Taylor)算術可同樣合用於本發明之範圍内。 就上文中之推論,可自動地從經組合程式(1)導出可替 換楝選程式118。所導出之揀選程式為: DP3 ά,η,ϊ (6) KIL d<0 此外,在這裡,碎片程式120係從經組合程式(1)所導出 的,和經組合程式220完全相同。此碎片程式為: DP3 d, η, I (7) KIL d<0 TEX2D c, tO, rl MUL out.col, d, c 對於一整個瓦片的碎片,假設判斷出其法線330的區間 334為0 = ([-7^/2,-1/2],[1/2,々/2]),且其光線向量332的區間 336為/' = ([1/7^,1],[-1/7^,0]),如於第3圖中所繪示的。2座標 係假設為零,以簡化此範例。這些區間表示型態之點積的 結果是2 = /5 ·) = [-(▲ + ☆)/々,-1/、河。因此,可斷定2可最多 為L-1/W。因為這個值絕對小於零,所以於上文中參考第 2圖所說明的揀選程式中,可棟選這整個瓦片,而無須針對 每一個碎片執行碎片程式,如將於下文中參考第4a圖而以 201145210 更進一步細節說明的。在本發明沾 — 货月的—些實施例中,這是效 能增益的一個來源。 第4a圖示出可在第i圖中之顯示器配接器⑽_行的 -個揀選處理程序的流程圖。在此處理程序開始的時候, 已經選出要被呈現的-個多角形。在—個—個瓦片作 處理步驟柳中,-個瓦片被選擇,所選擇的瓦片至少有— 部份和此多角形重複。接著在執行楝選程式步驟松中,棟 選程式被執行。 於此實施例中,當揀選程式請求輸入值的時候,此處 理程序繼續來到提供輸人值給楝選程式步驟咖。這些輸 入值為和以某種方式代表此瓦片中之所有碎片的—個特徵 有關的值。例如’輸人值可為法線、位置鋪、光線向量、 顏色、紋理座標料。於此實施财,所請求的輸入值係 利用區間算術來計算。易言之,這些輸人值僅在他們被需 要的時候才依據-個『拉動』_而被計算,相對於參考 第仆圖所說明的『推動』機制。此楝選程式的結果為目前 所處理的瓦片是否應被楝選。這可被嚴格地判定,而使在 此瓦片的區域中,此瓦片僅在目前的多角形對最末所呈現 的影像沒有任何貢獻時被楝選。或者是可執行損耗性楝 選’而使在此瓦片的區域中,此瓦片在目前的多角形對於 最終所呈現之影像的貢獻落於某個臨界值之下時被棟選。 田楝選私式已結束處理時,此處理程序繼續來到—個 條件性楝選條件為真步驟456。於此步财,餘據楝選程 式之輪出而判斷是否應針對目前所處理的瓦片來執行楝 10 201145210 選。若要執行楝選,則處理程序繼續來到一個執行指令組A 步驟458。否則的話,處理程序便繼續來到一個執行指令組 B步驟460。在一個實施例中,若揀選條件為假,則此瓦片 被分解成數個較小的瓦片,並且處理程序回到選擇瓦片作 處理步驟440。此可針對越來越小的瓦片而連續地重複,實 施一個階層性的、多級的楝選處理程序。 揀選程式可亦輸出除了棟選條件以外的結果。這些結 果可在用於更進一步之處理的圖形管線下被傳送。這樣的 一個實施例的一個例子包含將階層式深度揀選單元106 (第 1圖)和可規劃揀選單元108 (第1圖)的順序反轉。可規劃揀 選單元運算一個瓦片中之深度值的一個邊界或區間,並且 此區間被傳送至階層式深度揀選單元。此階層式深度揀選 單元接著基於由一個程式所運算出的深度值而執行揀選。 在執行指令組A步驟458中,係針對此瓦片的一個子 集,其典型上是數個碎片,而執行一個指令組A。這些碎片 典型上集體覆蓋此瓦片的所有像素,其與所處理的三角形 重疊。 在執行指令組B步驟460中,係針對此瓦片的一個子 集,其典型上是數個碎片,而執行一個指令組B。這典型上 係在瓦片階段之後的對於碎片呈現的一個傳統處理。 指令組A典型上係比指令組B較不嚴苛,導致在揀選條 件被判定為真時針對瓦片所處理之指令的數量的減少,而 導致效能增進。在一個實施例中,指令組A是空的,致使在 處理上的可觀縮減,也就是效能增進。此流程繼續跌代, 11 201145210 直到於步驟462再也沒有更多的瓦片。 第4b圖示出本質上等同於參考第如圖所述之處理程序 的一個處理程序。選擇—個瓦片作處理轉440、執行楝選 程式步驟452、條件性楝選條件為真步驟伙、執行指令組a 步驟458、執行財步驟_及條件性更多瓦片步驟祕 皆等同於第4a圖中的對應步驟。 然而,於此,提供輸入值給楝選程式步驟454b係在執 行揀選程式之前被處理。於此步驟中,所有有關的輸入值 都被計算,於此實施例中係使用區間算術,並被提供,以 使揀選程式能夠取得這些值。這是對輸入值計算實施一個 『拉動』機制。
第5圖示出一個體現第1圖之顯示器配接器100的一個 典型一般用途電腦583的一個概觀架構。此電腦具有能夠執 行軟體程式的一個控制器57〇,例如一個CPL^控制器57〇 連接至個依電性s己憶體571,例如一個動態隨機存取記憶 體(RAM)以及一個顯示器配接器5〇〇,在一些實施例中,其 可為與第1圖中之顯示器配接器100相同者。顯示器配接器 500轉而連接至一個顯示器576,例如一個監視器。控制器 570亦連接至恆久儲存體573,例如一個硬碟或快閃記憶體 以及光學儲存體574 ’例如光學媒體’例如CD、DVD、 HD-DVD或藍光,的讀取器及/或寫入器。一個網路介面581 亦連接至控制器570,以提供對一個網路582,例如一個區 域網路、一個廣域網路(例如網際網路)、一個無線區域網路 或無線都會區域網路’的取用。透過一個週邊介面577, CPU 12 201145210 570可與一個滑鼠578、一個鍵盤579或任何其他週邊設備 580,包括一個搖桿、一個印表機、一個掃描器等等,通訊。 當知,雖然上文中係以一個一般用途電腦作說明來體 現本發明,但本發明亦可同等優適地體現於利用數位圖 形,特別是3D圖形,的任何環境中,例如遊戲操縱台、行 動電話、行動網際網路裝置(MID)、MP3播放器等等。任何 電腦架構皆可被使用。 在一個如上文中所述的指令組的實作中,可係使用區 間算術來計算輸入值。可接著針對一整個瓦片的碎片而執 行一個揀選程式。然而,為了這麼作,也需要運算針對變 動(或内插的)輸入的有界限區間。 一開始,變動屬性的值係在瓦片的所有的四個角落使 用内插法來運算。接著,運算這四個值的有界限區間,其 被稱為大二卜在三角形頂點之變動屬性的有界限區間 也被運算,並稱為心在整個瓦片上的變動屬性之 最終有界限區間可被運算為<5,,= [max〇,„, l), min(a,„.,ajj。也 有其他方法可運算這些區間,例如,藉由考量重疊一個瓦 片的所有碎片。 最後,可處理一個例外情況,其繪示於第6a圖中。於 此,係以一個棋盤紋理686的形式來繪示在一個三角形685 上的透視校正内插法。可以看出,此紋理沿著一條投影線 687鏡射,其為當三角形685無限大時,其水平面所突現之 處的線。此鏡射效果為由在透視校正内插法中所用之劃分 所致的一種後投影的形式。現在,假設想要在與投影線重 13 201145210 疊的一個瓦片688上運算一些變動屬性的有界限區間。 第6b圖示出透視校正内插法函數69〇,以及當瓦片6肋 的四個角落被内插時所需的值691a〜d。這些角落的有界限 區間692很明確地被校正,因為當此函數趨近在投影線的無 限時,這並不含有函數690在此區間中的所有的值。 运個例外情況可藉由在瓦片的有界限區間與投影線重 疊時,將atile設定atri為來處理。於此實施例中,只有實際上 重疊此三角形的瓦片被遍歷,並且係使用透視型校正重心 座標來做這項内插。 當針對-個瓦片的數個角落而運算透視型校正重心座 標時’可簡便地刪除這些有問題的瓦片。透視型校正重心 座標係以-㈣例函數來表*,並且若就這些瓦片角落中 之任何-者而言分母小於零’則此瓦片越過投影線。 N維的紋理查詢係如下執行一般想法係要提供運算在 -個給定區域上的紋理資料之有界限區間的—個快速且有 效的構件。此範例關餘部份將只考量二維紋理,但推廣 是很簡單的。 …〜,π 间式紋理查詢的各個紋理運算 兩個着映射(mipmap)金字i如於第圖中所示各 個基元’例如在-個腑映射中的基元793被運算為在此金 字塔中直接在它下面的這四個對應紋理元素,例如基元 794^,中的在成份上的最小值,如於第7a圖中所示的, 或最大值,如於第7b圖中所千从 „ 斤不的。最終的結果可被視為有 界限區間的—個·映射金字塔。這種類型的㈣運算可輕 14 201145210 易地由驅動器處理,類似於標準Μ ϊ P映射如何被自動產生那 樣。 當執行一個紋理查詢時,我們希望運算在一個座標軸 平行邊界盒(axis-aligned bounding box)上之紋理資料的有 界限區間,其為為紋理座標區間。首先,我們運算一個適 當的MIP映射等級為: l〇g2(max(r;-^, Ty,-tJ) 其中卜(~Λ)是未經標準化整數紋理座標的—個二維區間 (即,其包括紋理之維度)。他們被適當地取為整數,使得針 對係取小於它的最大整數而;;係取大於它的最小 整數。 虽轉換至此MIP映射等級時,t在任何維度中將永遠不 會多於-個紋理元素寬,且在最寬的維度巾會是至少Μ個 紋理元素寬。因此,我們得到紋理維度區間的四個可能的 情況’如於第8a〜d圖中所缚示ι我們總是從紋理元素務 中取樣2x2個紋理元素的-個方格,在用於標準線性内插法 的取用方案巾,其具有在的紋理元素的左下角。此紋 理查詢的結果接綠運算騎際域_絲區間重疊的 此等紋理之顏色的界限。也蚊說,我們屏棄由參考號碼 795第8a〜e圖所指出的遮蔽的紋理元素。因為這個經贈 映射轉換的t會被取整數成為最接近的整數座標,所以可藉 由只對最末位元作比較來非f有效率地實施此重疊測試。曰 此紋理查詢處理程序本質上和—個正常的經「三線性」過 滤紋理查詢^高成本。最大的差異係對於從在兩個不同 15 201145210 MIP映射金子塔中之相同等級,而非兩個相鄰等級,中取樣 的需求’以及我們係將最終結果運算為界限,而非使用線 性内插法。此策略自然地支援不同類型的包裝模式,例如 夾鉗、重複及鏡射重複。可在MIP映射等級運算之後簡便地 將適當的包裝模式應用至此等區間座標,以得到預期結果。 在一個實施例中,只有實際上用於楝選程式的MIP映射 等級可被創造。這樣的最佳化對於發生在螢幕空間,例如, 比如說,無關順序透明度(〇rder independent transpa代加幻, 的演算法而5特別重要。在這種情況中,我們事先知道我 們只需要基礎等級的紋理,以及對應於螢幕上的一個瓦片 的MIP映射等級。最小及最大深度值可例如在階層式深度楝 選單元中被找到。也有可能(但可能性較低)是,最小和最大 顏色已經為了壓縮目的而被運算,否則的話,我們便需要 對其做運算。 最小/最大MIP映射金字塔係使用和二維紋理相同的途 徑,針對立方圖而運算。針對邊緣來講,MIp顏色被運算為 在邊緣兩側的四個紋理元素之最小或最大者,而針對角落 來講,MIP顏 色被耦合成在從那個角落所發出的所有的 .側 上的四個紋理元素之最小或最大者。在邊緣之相對側上的 紋理元素會因此在較高MIP映射等級中共享相同的翱色同 樣地,於一個角落的三個紋理元素也會共享一個共同顏色 可使用此MIP映射金字塔,以對立方體之僅—側 /Tj 來作保守立方圖查詢。首先,運算主軸的以區間為烏礎的 等量。給定一個紋理座標區間f =仏;又),定義主輛丨 〜 ’ ί,·和广 16 201145210 具有相同正負號,並且min(L,ί,.)最大化的那個軸。若^和ί,在 所有軸上都具有相異的正負號,那麼就找不出主軸。然而, 這只有在當原點落於紋理座標區間内時才會發生。在這種 情況中,紋理座標區間會投影到整個立方圖上。這可藉由 選擇最高ΜΙΡ映射等級,並取樣一個任意立方圖面來處理。 一旦找到一個主軸,則可將紋理座標區間投影到立方 圖的對應側。此項投影係藉由分別投影剩下兩個軸的各個 界限來完成。讓我們來考慮一個範例,於此範例中,X為主 轴,而y為我們想要投影界限的那個軸。因此,紋理座標區 間有六個可能的情況(請注意,沒有任何的區間可越過y 軸,因為這樣的話X轴就不會是主軸),以及我們必須要投 影以運算界限的極值點。查看紋理座標區間的正負號,及 透過查表而得到這些極值點便足夠。 這些極值點針對剩下的兩個轴而被投影,以形成一個 二維的經投影座標區間。此區間被用來運算一個ΜIP映射等 級及執行一個二維紋理查詢,和上文中針對二維情況所說 明的方法一模一樣。 為了改善效能,減少在揀選著色器中所做的工作量並 增加所運算之界限的緊密度是很可嚮往的。一般而言,係 使用關於區間指令的元資料來產生經最佳化純量指令。這 些元資料可為區間界限或甚至是關於所需者係界限哪側的 資訊,或是關於要執行什麼操作的較高等級的資訊。例如, 關於一個方格是否要被完成,而非乘法,的資訊可為可被 用來產生經最佳化純量指令的元資料之類型的一個範例。 17 201145210 接著,&些界限可在編譯時間 各個變數及針對各個指=碼中被追縱,以針對 式碼更有料絲可_事。料界紐得讓程 可係以數個相程式_介面標準為基T财"些界限 值個範例包括對於某些類型之輸入的期望 值^二界限可亦係以常數 礎。例如,變數類型可係為正2類f、及資料類型為基 -個資料類型可為一個值, 固無正負唬的整數。 内。這些界限被認為是正確的。和一之間的範圍 則界限可為正和負無限。 〇此4界限並不存在, 這些界限可用作用以在蝙 程式的輸入,以判斷各個變數方式來評估棟選 數學結果來限縮編科間界限。數可應用習知的 即,絕對值錢㈣正的,Μ =料些事實’ 圍内,失鉗操作關可驗的_餘弦:在介於]和1的範 譯時間在區間範圍内被執行。此 此’程式碼可在編 之各個指令之有效值的一個範圍為針對在棟選程式中 所收集的區間可接著在—個低等級被使用, 有效的區間算術評估碼,其在—些實施 生更 間效能。例如,已知在-個區間乘法 ^文善運行時 負:可減少運行時間區間評估之成本,從十個心 〆、兩個指令。因此,此編譯時間分析可減少棟選程= 18 201145210 長度,並改善效能。靜態輸人界限分析提供—個區間中間 表示型態,還有輸入界限。 即使無法判斷出非無限界限,且使用正和負無限的預 設界限,在追縱「無限」界限上可仍有益處。在實務上, -個揀選私式具有-或多個輪出。對於這些輸出中的所有 或一些而έ,在一些情況中,可係判斷較嚴格的界限。例 如,考慮y = Sin⑻’其中,為對此揀選程式的一個輸出。 若沒有使用任何除了介於正和負無限之間的x界限 ,則在程 式碼中追蹤此界限可仍是极有用I例如,sin⑻的輸出永 遠都會受限於[.U]這樣的範圍。此範圍可接著被追縱,以 簡化此程式中的其他操作。 在一些實施例中,可使用在方塊912中的動態輸入界限 假设。他們牵涉到對於基於特定領域知識(d omain specific knowledge)之假設的使用,以增進效能。例如,一個特定領 域知識可包括這樣的事實1…個紋理通常是在零到-的範圍之内。可使動態假設進—步地改進靜態界限。 舉個例子,在編譯時間,一個紋理讀取的結果一般而 言可能會是完全未知的。⑼,做出此值會是在零和一的 範圍之内這樣的假設是报合理的,因為大部分的紋理係以 無正負號的經標準化值而儲存。在__些實施例中,著色器 編譯器可基於輸入格式而自動做出那樣的合理假設,並使 用此資訊來產生較快速的楝選程式。只要輸人實際上落於 所假設的fen内,這錄快的程式碼路㈣會是有效的。 然而,若,例如,一個浮點表面係受限於著色器則 201145210 此零到一的範圍假設可能會被違反。於運行時,著色器執 行機制會知道此錯誤假設’並可請求一個經校正楝選著色 器。若有需要,這可藉由在可獲得經校正版本之前跳過針 對那個特定著色器的揀選而同步完成。可在數個步驟内完 成降格(degradation)。在紋理的情況中,大部分的影像都气 含有非負的值,即便其表示型態,例如浮點數,可表示負 數亦然。違反這個零到一的範圍可係指此資料至少係由究 和無限來限制,這仍然給予在整個未知資料上的效能增進。 在一些實施例中,來自於動態輪入界限假設的輸出再 次藉由此動態輸入界限假設而成為區間中間表示型態加上 輸入界限作為補充。 在方塊914中,此等界限係在編譯時在程式碼中被追 蹤,以運算各個變數的界限。這些界限使得產生更有效率 的程式碼成為可能。此程式碼係在編譯時間被執行,並且 各個指令被分析,以判斷其可能輸入和輸出的範圍。此處 理程序係從靜態動態輸入界限的開端開始,並向前推進。 方塊914之輸出為區間中間表示型態及各個指令的界 限。在一些實施例中,於方塊916中,可針對單側界限而完 成最佳化。在一些情況中,只需要一個結果的上限或下限。 可對指令加上標戴’來以单側產生輪出。此翠側標藏可將 資訊向後推進到可能的程度。 方塊916之輸出為區間中間表示型態、界限、及邊側資 訊,下、上中之一者或下上二者。 接著’在方塊918中,此區間中間表示型態被轉化成經 20 201145210 最佳化純量中間表示型態。此界限資訊及邊側資訊玎被用 來以一個經最佳化序列的純量指令而取代各個區間指令。 因此’取代於率直地以一個一般序列的純量指令取代各個 内部指令,係可使用界限來侷限由這些純量指令所支援的 程度。例如,若已知一個區間乘法的輸入範圍絕對是非負 的,則可藉由已被最佳化成只在非負數字上作業的一個較 短序列的純量指令來取代此指令。 最後,在方塊920中,此純量中間表示型態被用於標準 編譯器最佳化,例如死亡碼消除、向量化、及程式碼產生。 此可執行碼在方塊920之後被輸出,此流程從編譯時間轉變 成運行時間。 於運行時間,可對動態假設重新評價,如於方塊926所 指出的。若此等假設有效’如於928中所判斷的,則可運行 揀選程式,如於方塊930中所指出的。 否則’可考慮多種替代形式。例如,可決定不做任何 揀選。或者是,可以更多的—般假設來請求—個新的棟選 程式。再舉另—種替代形式,可運行具有更多-般假設的 -個預先編譯楝選程式,全如方塊932中所指出的。若存在 有數個縣編譯H财具有^滿足 限制性輸⑽設_—個。 ^ 1施例中’可魏用其他有界限算術,例如仿 較高I/勒4術。在這些情況中,可由適於所選算術的 门、、’ X之表不型態來取代輸入/輸出界限。 在-些實施例中,於第9圖中所描綠的序列可係在軟體 21 201145210 中實施。在這樣的情況中,此序列可係體現於儲存在一個 電腦可讀媒體上的指令。那㈣體可為,例如,—個半導 體、光學、或磁性儲存體。這些指令可由包括有一個控制 器或處理器的-個電腦執行。例如,此㈣器與處理器可 為第5圖中的CPU 57〇或顯示器配接器駕的一部分。儲存指 令的儲存體可為’例如,記憶體571或儲存體573或574。 於本文中所述的圖形處理技術可實施在多種硬體架構 中例如可將圖开》機能整合在一個晶片组内。或者是, 可使用一個分立圖形處理器。再舉另一個實施例,可由— 個-般用途處理n ’包括—個多核心處理器,來實施圖形 功能。本說明書通篇中對「一個實施例」或「一實施例」 之參照係指關聯於此實施例而說明的一個特定的特徵、結 構或特性係包括在本發明所涵蓋的至少一個實作中。因 此’「-個實施例」或「在—實施例中」等語的出現並不必 然係指相同實施例。此外,特定特徵、結構或特性可係以 所例示之特定實施例以外的其他適合的形式來實行且所 有此等形式皆可被涵納在本案所請求之申請專利範圍内。 雖然已針對有限數量的實施例來說明本發明,但熟於 此技者會可識出由中而生的多種修改體與變異體。後附申 請專利範圍意欲將所有此等修改體與變異體作為落於本發 明之真實精神與範疇内者而涵蓋在内。 【圖式簡單說明】 第1圖為繪示在本發明的一個實施例中,不同實體如何 在一個顯示器配接器中互動的一個方塊圖。 22 201145210 第2圖為示出在第【圖之顯示器配接器中所使用的不同 程式間之關係的一個概略方塊圖。 弟3圖繪不一個範例,於此範例中,係可使用區間鼻術 來揀選在第1圖之顯示器配接器中的一個瓦片。 第4a和4b圖示出可在第1圖之顯示器配接器中執行的 數個揀選處理程序的流程圖。 第5圖示出體現第1圖之顯示器配接器的一個典型一般 用途電腦的一個概觀架構。 第6a圖為一個顯示器畫面,其繪示出第1圖之顯示器配 接器中之輸入值的一個例外情況。 第6b圖為繪示第6a圖之情況中之輸入值的一個圖。 第7a和7b圖為可用於第1圖之顯示器配接器中之紋理 的例示性透視圖。 第8a〜d圖為可用於第1圖之顯示器配接器中之紋理的 例示性圖。 第9圖為一個實施例的流程圖。 【主要元件符號說明】 100、500…顯示器配接器 112…碎片程式單元 102···多角形設置方塊 II4…紋理單元 104···瓦片光栅化器 U6···混和/深度/aipha單元 106·.·階層式深度楝選方塊/階 118…可替換楝選程式 層式深度揀選單元 120…碎片程式 108…可規劃揀選單元 222.·.經組合程式或編譯器程 110...碎片光柵化器 式 23 201145210 330...法線 573、574...儲存體 332...光線向量 576...顯示器 334、336...區間 577...週邊介面 440...選擇一個瓦片作處理步 578...滑鼠 驟 579...鍵盤 452...執行揀選程式步驟 580...週邊設備 454a...棟選程式步驟 581...網路介面 454b...提供輸入值給揀選程式 582...網路 步驟 685...三角形 456...條件性揀選條件為真步 686...棋盤紋理 驟 687...投影線 458...執行指令組A步驟 688...瓦片 460...執行指令組B步驟 690...函數 462...條件性更多瓦片步驟 691a 〜691d...值 570...中央處理單元(CPU)/控 793、794a〜794d...基元 制器 795〜796...紋理元素 571...記憶體 910〜932...方塊 24

Claims (1)

  1. 2〇114521〇 七、申請專利範圍·· i 一種方法,其包含下列步驟: 在運行時間之前判定用於一個可規劃揀選單元的 一個程式碼是否具有可判斷出的數個界限;以及 若是如此,則在編譯時間在該程式碼中針對各個變 數而追蹤該等界限。 2·如申請專利範圍第1項之方法,其包括下列步驟: 使用關於區間指令的資訊來產生純量指令。 如申印專利圍第2項之方法,其中使用資料之步驟包 括:使用數個經追蹤區間界限。 J.JL . /+ Jw ______ 如申請專利範圍第旧之方法,其中該等界限若在編譯 時間無法㈣斷出’則做出該等區間界限在編譯時間之 5.如申請專利範圍第1項之方法, 將-或多個界限簡化成單側界限。 ’其包括下列步驟: 6·如申請專利範圍第4項之方法, 其包括下列步驟: 其中若該假設被判定為 在運行時間重新評價該假設。 如申請專利範圍第6項之方法,其 有效,則運行該程式碼。
    如申凊專利範圍第8項之方去 效,則以不使用區間界限 …包括下列步驟: 匕,則做一個新假設並以 ',其中若該新假設並不生 的方式編譯該程式碼。 25 201145210 10. 如申請專利範圍第1項之方法,其中追蹤該等界限之步 驟包括:使用有界限算術來評估指令。 11. 如申請專利範圍第10項之方法,其中使用有界限算術來 評估指令之步驟包括使用下列項目中之一者:區間算 術、仿射算術、或泰勒(Taylor)算術。 12. —種儲存有指令的電腦可讀媒體,該等指令由一電腦執 行時係用於下列步驟: 在編譯時判定用於一個可規劃揀選單元的一個程 式碼是否具有可計算的數個界限;以及 若是如此,則在編譯時在該程式碼中針對各個變數 而追蹤該等界限。 13. 如申請專利範圍第12項之媒體,其更儲存有下列指令: 用以使用關於區間指令的資訊來產生純量指令的 指令。 14. 如申請專利範圍第13項之媒體,其更儲存有下列指令: 用以將數個經追蹤區間界限用作該等資料的指令。 15. 如申請專利範圍第12項之媒體,其更儲存有下列指令: 用以在該等區間界限無法在編譯時被計算時做出 該等區間界限在編譯時間之一個假設的指令。 16. 如申請專利範圍第12項之媒體,其更儲存有下列指令: 用以將一或多個雙側區間界限簡化成單側區間界 限的指令。 17. 如申請專利範圍第15項之媒體,其更儲存有下列指令: 用以在運行時間重新評價該假設的指令。 26 201145210 .如申請專利顧第17項之媒體,其更儲存有下列指令: 用以在該假設被判定為有效時運行該程式 令。 】9·如申請專利範圍第17項之媒體其更儲存有下列指令: 、、用以在該假設被狀以騎效時做—個新假設 並以該新假設編譯該程式碼的指令。 2 0 ·如申請專利範圍第i 9項之媒體,其更儲存有下列指令: 用以在該新假設不為有效時以不使用區間界限的 方式編譯該程式碼的指令。 21·—種裝置,其包含: 一個可規劃棟選單元:以及 耦接至s亥可規劃揀選單元的一個編譯器,該編譯器 係用於: 判定用於該可規劃楝選單元的程式碼是否具有 可計算的數個界限,以及 若疋如此,則在編譯時在該程式碼中針對各個 變數而追蹤該等界限。 22·如申請專利範圍第21項之裝置,其中該裝置為一個顯示 器配接器。 23. 如申請專利範圍第21項之裝置,其中該編譯器係用於: 在該等界限無法被計算時做出該等區間界限在編 澤時間之一個假設。 24. 如申請專利範圍第23項之裝置,其包括一個控制器。 25. 如申請專利範圍第24項之裝置,其中該控制器係用於: 27 201145210 在運行時間重新評價該假設。 如申料·_25奴„,其㈣㈣器係用於: 在該假設被狀為有效時運行該程式碼。 ^如申請專利範圍第25項之裝置,其中該_器係用於: 在該假設被判定為不為有效時做一個新假設並以 該新假設編譯一個程式碼。 28.如申請專利範圍第27項之裝置,其中該編譯器係用於: 在該新假設不為有效時以不使用界限的方式編譯 該程式碼。 29·如申請專利範圍第21項之裝置,其中該編譯器係用於: 使用關於區間指令的資訊來產生純量指令。 30·如申請專利範圍第29項之裝置,其中該編譯器係用於· 使用區間界限來產生純量指令。 28
TW099140772A 2009-12-22 2010-11-25 用於可規劃揀選單元之編譯技術 TWI512669B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US12/644,075 US9038034B2 (en) 2009-12-22 2009-12-22 Compiling for programmable culling unit

Publications (2)

Publication Number Publication Date
TW201145210A true TW201145210A (en) 2011-12-16
TWI512669B TWI512669B (zh) 2015-12-11

Family

ID=43778260

Family Applications (1)

Application Number Title Priority Date Filing Date
TW099140772A TWI512669B (zh) 2009-12-22 2010-11-25 用於可規劃揀選單元之編譯技術

Country Status (7)

Country Link
US (1) US9038034B2 (zh)
EP (1) EP2348407B1 (zh)
JP (1) JP5203445B2 (zh)
KR (1) KR101251117B1 (zh)
CN (1) CN102103512B (zh)
SG (1) SG172542A1 (zh)
TW (1) TWI512669B (zh)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9038034B2 (en) * 2009-12-22 2015-05-19 Intel Corporation Compiling for programmable culling unit
US9147270B1 (en) * 2011-06-24 2015-09-29 Nvidia Corporation Bounding plane-based techniques for improved sample test efficiency in image rendering
WO2013109304A1 (en) * 2012-01-16 2013-07-25 Intel Corporation Generating random sampling distributions using stochastic rasterization
JP5711713B2 (ja) * 2012-10-01 2015-05-07 住友電気工業株式会社 多層熱回復物品
US9390541B2 (en) * 2013-04-09 2016-07-12 Intel Corporation Programmable tile shader
US9582847B2 (en) * 2013-04-22 2017-02-28 Intel Corporation Color buffer compression
US9501864B2 (en) * 2013-12-27 2016-11-22 Intel Corporation Adaptive depth offset compression
GB2525666B (en) 2014-05-02 2020-12-23 Advanced Risc Mach Ltd Graphics processing systems
GB2520822B (en) * 2014-10-10 2016-01-13 Aveva Solutions Ltd Image rendering of laser scan data
US9626733B2 (en) 2014-11-24 2017-04-18 Industrial Technology Research Institute Data-processing apparatus and operation method thereof
KR102472131B1 (ko) * 2015-09-03 2022-11-29 삼성전자주식회사 쉐이더 프로그램을 생성하는 방법 및 장치
US9477451B1 (en) * 2015-11-06 2016-10-25 International Business Machines Corporation Generating dynamic measurement metadata for efficient compilation and optimization on a target device
WO2017164924A1 (en) * 2016-03-21 2017-09-28 Siemens Product Lifecycle Management Software Inc. System for gpu based depth reprojection for accelerating depth buffer generation
US20170371761A1 (en) * 2016-06-24 2017-12-28 Advanced Micro Devices, Inc. Real-time performance tracking using dynamic compilation
US10102662B2 (en) 2016-07-27 2018-10-16 Advanced Micro Devices, Inc. Primitive culling using automatically compiled compute shaders
US10235811B2 (en) 2016-12-29 2019-03-19 Intel Corporation Replicating primitives across multiple viewports
US10592387B2 (en) 2018-01-02 2020-03-17 International Business Machines Corporation Dataflow analysis to reduce the overhead of on stack replacement
US10628910B2 (en) 2018-09-24 2020-04-21 Intel Corporation Vertex shader with primitive replication

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4731606A (en) * 1985-08-02 1988-03-15 International Business Machines Corporation Method for rapid windowing of display information in computer graphics
US5377320A (en) * 1992-09-30 1994-12-27 Sun Microsystems, Inc. Method and apparatus for the rendering of trimmed nurb surfaces
JP3362942B2 (ja) * 1993-12-27 2003-01-07 株式会社東芝 情報処理装置
AUPM704494A0 (en) * 1994-07-25 1994-08-18 Canon Information Systems Research Australia Pty Ltd Efficient methods for the interpretation of a graphical programming language
US6016398A (en) * 1997-04-01 2000-01-18 Intel Corporation Method for using static single assignment to color out artificial register dependencies
US6480205B1 (en) * 1998-07-22 2002-11-12 Nvidia Corporation Method and apparatus for occlusion culling in graphics systems
US7952583B2 (en) 2000-06-19 2011-05-31 Mental Images Gmbh Quasi-monte carlo light transport simulation by efficient ray tracing
US6980935B2 (en) * 2001-07-31 2005-12-27 Schlumberger Technology Corp. Method, apparatus and system for constructing and maintaining scenegraphs for interactive feature-based geoscience geometric modeling
US7159212B2 (en) * 2002-03-08 2007-01-02 Electronic Arts Inc. Systems and methods for implementing shader-driven compilation of rendering assets
US7171343B2 (en) * 2002-07-16 2007-01-30 Sun Microsystems, Inc. Computing interval parameter bounds from fallible measurements using systems of nonlinear equations
US20040103248A1 (en) * 2002-10-08 2004-05-27 Hass David T. Advanced telecommunications processor
AU2003294327B2 (en) * 2002-11-15 2010-04-01 Sunfish Studio, Llc Visible surface determination system and methodology in computer graphics using interval analysis
US7145565B2 (en) * 2003-02-27 2006-12-05 Nvidia Corporation Depth bounds testing
US7221371B2 (en) * 2004-03-30 2007-05-22 Nvidia Corporation Shorter footprints for anisotropic texture filtering
US7733347B2 (en) * 2004-11-05 2010-06-08 Microsoft Corporation Automated construction of shader programs
WO2006115716A2 (en) 2005-04-05 2006-11-02 Sunfish Studio, Llc System and method of visible surface determination in computer graphics using interval analysis
EP1960968A4 (en) 2005-12-01 2016-06-29 Intel Corp INFOGRAPHIC PROCESSOR AND THREE-DIMENSIONAL IMAGE RENDERING METHOD ON DISPLAY SCREEN
US9460552B2 (en) * 2007-01-24 2016-10-04 Intel Corporation Method, display adapter and computer program product for improved graphics performance by using a replaceable culling program
US8495602B2 (en) * 2007-09-28 2013-07-23 Qualcomm Incorporated Shader compile system and method
SE0801742A0 (sv) 2008-07-30 2010-01-31 Intel Corp Förfarande, apparat och datorprogramprodukt för förbättrad grafikprestanda
US9038034B2 (en) * 2009-12-22 2015-05-19 Intel Corporation Compiling for programmable culling unit
US9058697B2 (en) * 2011-04-28 2015-06-16 Intel Corporation Depth of field rasterization by culling regions on a lens from which a convex polygon to be rendered is not visible

Also Published As

Publication number Publication date
TWI512669B (zh) 2015-12-11
US9038034B2 (en) 2015-05-19
JP5203445B2 (ja) 2013-06-05
CN102103512A (zh) 2011-06-22
KR101251117B1 (ko) 2013-04-05
EP2348407B1 (en) 2017-11-29
JP2011134326A (ja) 2011-07-07
US20110148876A1 (en) 2011-06-23
KR20110073364A (ko) 2011-06-29
CN102103512B (zh) 2015-03-11
SG172542A1 (en) 2011-07-28
EP2348407A1 (en) 2011-07-27

Similar Documents

Publication Publication Date Title
TWI512669B (zh) 用於可規劃揀選單元之編譯技術
US10991153B2 (en) Object illumination in hybrid rasterization and ray traced 3-D rendering
CN106251392B (zh) 用于执行交织的方法和设备
CN107492065B (zh) 用于经改进图形流水线中的镶嵌的系统和方法
US10140750B2 (en) Method, display adapter and computer program product for improved graphics performance by using a replaceable culling program
Van Antwerpen Improving SIMD efficiency for parallel Monte Carlo light transport on the GPU
US8564617B2 (en) Accelerated volume rendering
US20100097377A1 (en) Graphics Processing Using Culling on Groups of Vertices
US8654122B2 (en) Method, apparatus, and computer program product for improved graphics performance
KR102266962B1 (ko) 그래픽 파이프라인의 메모리 사용 감소를 위한 컴파일러 지원 기술
KR20240078413A (ko) 병렬 광선 테스트를 갖는 광선 교차 회로
CN111986279A (zh) 有效访问存储器和避免不必要的计算的技术
US20230196669A1 (en) Overlay trees for ray tracing
Hoberock et al. Stream compaction for deferred shading
US20210097643A1 (en) Bindpoint Emulation
KR20180015564A (ko) 타일-기반 렌더링을 수행하는 방법 및 장치
Tlatlik Volume rendering with Marching cubes and async compute
US20190139292A1 (en) Method, Display Adapter and Computer Program Product for Improved Graphics Performance by Using a Replaceable Culling Program
TW202334896A (zh) 使用可壓縮性預測的葉節點壓縮
Lai et al. 3-D graphics processor unit with cost-effective rasterization using valid screen space region
Zagacki et al. Architecture of a 3D Software Stack for Peak Pentium III Processor Performance
KR20220157401A (ko) 부분적으로 상주하는 텍스처에 대한 샘플링
Soss Ray traced rendering using GPGPU devices

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees