TW201435795A - 可變解析度圖形顯示之一致性頂點鎖點 - Google Patents

可變解析度圖形顯示之一致性頂點鎖點 Download PDF

Info

Publication number
TW201435795A
TW201435795A TW102141296A TW102141296A TW201435795A TW 201435795 A TW201435795 A TW 201435795A TW 102141296 A TW102141296 A TW 102141296A TW 102141296 A TW102141296 A TW 102141296A TW 201435795 A TW201435795 A TW 201435795A
Authority
TW
Taiwan
Prior art keywords
pixel
dimensions
vertex
lock
viewing aperture
Prior art date
Application number
TW102141296A
Other languages
English (en)
Inventor
Eric Brian Lum
Henry Packard Moreton
Kyle Perry Roden
Walter Robert Steiner
Ziyad Sami Hakura
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 TW201435795A publication Critical patent/TW201435795A/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/14Transformations for image registration, e.g. adjusting or mapping for alignment of images
    • G06T3/153Transformations for image registration, e.g. adjusting or mapping for alignment of images using elastic snapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/20Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2219/00Indexing scheme for manipulating 3D models or images for computer graphics
    • G06T2219/20Indexing scheme for editing of 3D models
    • G06T2219/2004Aligning objects, relative positioning of parts

Landscapes

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

Abstract

一種系統、方法與電腦程式產品係供以調整頂點位置。接收一或多個觀察孔維度,並根據該一或多個觀察孔維度決定一鎖點間隔。根據該鎖點間隔將該等頂點位置調整為一格柵。頂點調整的精準度隨著該觀察孔的至少一個維度減少而增加。頂點調整的精準度隨該觀察孔的至少一個維度增加而減少。

Description

可變解析度圖形顯示之一致性頂點鎖點
本發明是關於三維(3D)圖形處理,且更特定地,是關於對座標的頂點鎖點(snapping)。
圖形處理管線係將輸入的圖形數據(其一般與三維物體相關聯)轉換為與一二維表面關聯之畫素數據。在傳統實施方式中,該圖形處理管線的一世界空間部分係負責在數據被轉為畫素數據之前處理輸入的圖形數據,該輸入的圖形數據一般是由三角形與相關頂點之集合所組成。圖形處理管線的一螢幕空間部分係負責處理經轉換之畫素數據,並產生最終畫素值以供顯示。
圖形處理管線中的其中一個階段是光柵化階段,其一般涉及了將管線的世界空間部分所處理之圖形數據轉換為螢幕空間中的畫素數據。光柵化係包含產生邊緣方程式(其描述管線的世界空間部分中所處理之三角形的邊緣)、決定這些三角形之涵蓋資訊、以及計算該等三角形所涵蓋之畫素與片段的屬性值。光柵化中所涉及的這些計算一般為固定點計算,其正常係以一固定的非整數(分數)畫素精準度來執行。因此,固定點光柵化計算的結果可被想成「被鎖點(snapped)」至一格柵,其中該格柵的方塊係對應於非整數畫素大小的方塊。
在許多實施方式中,一圖形處理管線係以不同的解析度來光柵化同一個三維物體。舉例而言,一三角形係先在一低解析度下進行光柵化,以產生有關該三角形的某些決定,例如該三角形是涵蓋一表面的哪些一般部分。接著在一較高解析度下光柵化該三角形,以產生影像資料以供顯示。然而,在較低解析度下進行的光柵化一般提供的結果是「鎖點」至比在較高解析度下進行光柵化較粗糙之格柵。因此,較低解析度之光柵化 產生的涵蓋結果不能適當對準於較高解析度之光柵化的涵蓋結果。舉例而言,若框架緩衝區記憶體是被分配給以低解析度光柵化結果為基礎之稀疏顯現,則因為較低解析度光柵化的結果被鎖點至一較粗糙格柵,記憶體將會被過度分配、或分配不足。更具體而言,記憶體將被分配給不需要分配的區塊、或記憶體會無法被分配給需要分配的區塊。
因此,對於解決在不同解析度下進行光柵化圖形數據的問題、及/或與習知技術相關的其他問題係需求的。
一種系統、方法與電腦程式產品係供以調整頂點位置。接收一或多個觀察孔維度,並根據該一或多個觀察孔維度決定一鎖點間隔。根據該鎖點間隔將該等頂點位置調整為一格柵。
100‧‧‧格柵
105‧‧‧基元
110‧‧‧鎖點基元
115‧‧‧鎖點基元
120‧‧‧格柵
200‧‧‧方法
205‧‧‧步驟
210‧‧‧步驟
215‧‧‧步驟
300‧‧‧觀察孔
350‧‧‧觀察孔
400‧‧‧圖形處理管線
406‧‧‧頂點處理單元
408‧‧‧曲面細分與幾何處理單元
412‧‧‧觀察孔調整、淘汰與剪輯單元
414‧‧‧基元設定單元
416‧‧‧光柵化器
422‧‧‧片段處理單元
424‧‧‧光柵操作單元
430‧‧‧方法
435‧‧‧步驟
440‧‧‧步驟
445‧‧‧步驟
450‧‧‧步驟
455‧‧‧步驟
460‧‧‧步驟
465‧‧‧步驟
500‧‧‧並行處理單元
502‧‧‧系統匯流排
504‧‧‧記憶體
505‧‧‧輸入/輸出單元
510‧‧‧主機介面單元
515‧‧‧格柵管理單元
520‧‧‧工作分配單元
550‧‧‧串流多處理器
560‧‧‧交叉開關
565‧‧‧二階快取
580(U)‧‧‧記憶體介面
605‧‧‧指令快取
610‧‧‧排程器單元
615‧‧‧派送單元
620‧‧‧暫存器檔案
650(L)‧‧‧核心
651(M)‧‧‧雙重精準度單元
652(N)‧‧‧特殊功能單元
653(P)‧‧‧負載/儲存單元
670‧‧‧共享記憶體/L1快取
680‧‧‧互連網路
690(J)‧‧‧紋理單元
690(0)‧‧‧紋理單元
690(1)‧‧‧紋理單元
700‧‧‧系統
701‧‧‧中央處理器
702‧‧‧匯流排
704‧‧‧主記憶體
706‧‧‧圖形處理器
708‧‧‧顯示器
710‧‧‧次要儲存器
712‧‧‧輸入裝置
第一A圖與第一B圖說明了將基元(primitive)頂點位置鎖點至一格柵的一種習知技術;第二圖係一流程圖,其根據一具體實施例說明一種用於根據一鎖點間隔來調整頂點位置的方法;第三A圖與第三B圖係根據一具體實施例說明基於解析度之鎖點間隔而調整之基元頂點位置;第四A圖說明根據一具體實施例之一圖形處理管線;第四B圖說明根據一具體實施例之用於根據一鎖點間隔來調整頂點位置的方法之另一流程圖;第五圖說明根據一具體實施例之並行處理單元(PPU);第六圖係根據一具體實施例說明第五圖的串流多處理器;以及第七圖說明一種例示系統,在該例示系統中係實施各種先前具體實施例的各個架構及/或功能。
傳統上,係以兩個不同解析度對一物體應用一觀察孔轉換、針對這兩個解析度計算對應的邊緣方程式、以及以兩個不同解析度光柵化 該物體,藉以對該物體進行兩種不同解析度之光柵化。一第一觀察孔轉換係以第一解析度產生該物體的頂點之二維螢幕空間座標,而一第二觀察孔轉換係以第二解析度產生該物體的頂點之二維螢幕空間座標。
然而,傳統方式的一個缺點是,由於固定的非整數畫素大小係隨不同的解析度而不同,因此在不同的解析度下應用觀察孔轉換會導致該物體的頂點被「鎖點」至不同格柵。這種「鎖點」至不同的解析度代表在第一解析度下的一物體與在第二解析度下的相同物體之頂點係不同地重新定位,導致該物體的形狀會隨解析度改變而改變。
由於非整數畫素鎖點的數量係與畫素大小相關,因此投射至一高解析度顯示表面的頂點比起投射至一低解析度顯示表面的頂點而言係較不會鎖點(相對於表面大小)。舉例而言,當頂點在寬度或高度上被鎖點至一畫素的1/16、以及一10x10畫素顯示表面時,頂點則被鎖點為總顯示表面寬度及/或高度的(1/16)/(10)=1/160(亦即,在總顯示表面的每一個維度中,格柵間隔係有效地為1/160)。另一方面,對於80x80之較高解析度的顯示表面而言,當頂點被鎖點為一畫素的1/16時,頂點即被鎖點為總顯示表面寬度及/或高度的(1/16)/(80)=1/1280(亦即,格柵間隔係有效地為總顯示表面維度的1/640)。
第一A圖說明將基元頂點位置鎖點至一格柵100的習知技術。包括三個頂點之一基元105係鎖點至相對應2x2畫素顯示表面之該格柵100。在格柵100中的每一個胞元(cell)係對應至一畫素的1/4、且其大小為1/2畫素的平方。基元105的三個頂點係在一畫素的1/2下鎖點至格柵胞元,以產生一鎖點基元110。基元的形狀係隨著鎖點的結果而改變。
第一B圖說明將基元頂點位置鎖點至一格柵120的習知技術。基元105係鎖點至與一較高解析度之4x4畫素顯示表面對應的格柵120。在格柵120中的每一個胞元係對應至一畫素的1/4,且其大小係1/2畫素的平方。基元105的三個頂點係鎖點至同一1/2畫素精準度以產生一鎖點基元115。基元的形狀係因鎖點的結果而改變,且相較於鎖點基元115,鎖點基元110的形狀是不同的,因此,基元105的代表形狀係隨顯示表面解析度改變而改變。
這種相同基元的代表形狀因不同顯示表面解析度而產生的不一致性係在較低解析度下產生了光柵化結果,這些結果在座標位置上係與較高解析度下的光柵化結果不一致。因此,若是根據低解析度鎖點基元110的光柵化結果來分配高解析度鎖點基元115的光柵化之繪圖緩衝記憶體(frame buffer memory),繪圖緩衝記憶體會被不正確地分配,因為低解析度鎖點基元110之光柵化結果並不一定會與高解析度鎖點基元115的光柵化結果對準。
就某些演算法種類而言,需要在不同解析度等級下有一致的光柵化結果,在光柵化係用於分級或分配(決定螢幕的哪些部件包含幾何形狀)時特別為如此。舉例而言,一景象之基元係呈現至一低解析度表面,其中每一個畫素都代表一組較高解析度影像之畫素。保守的光柵化語義是要求「如果一畫素的任何部分(邊界)與基元交錯,則涵蓋該畫素」。在光柵化期間,若該粗糙畫素所表示的任何微細畫素是被一基元所涵蓋時,則保守的粗糙畫素總是表示為被涵蓋。因為傳統的頂點鎖點是針對不同的顯示表面解析度使用相同的鎖點精準度,因此傳統的頂點鎖點並不需要符合傳統的光柵化語義。
第二圖說明根據一具體實施例之用於調整頂點位置的方法200之流程圖。在步驟205,接收觀察孔維度。該等觀察孔維度係對應於一顯示表面的畫素維度。在一具體實施例中,畫素維度係對應於用以顯示該顯示表面之一顯示器螢幕的解析度。在步驟210,根據該等觀察孔維度而決定一鎖點間隔。在步驟215,調整一頂點位置為對準於與該鎖點間隔對應的一格柵。在一具體實施例中,鎖點精準度係根據觀察孔維度而變化,以維持不同觀察孔解析度之一致性。
現將提出關於各種選擇性架構與特徵之更多說明資訊,前述骨架係可實施、或不實施,端視於使用者的需要。應強烈注意,下述資訊係僅為說明之用而提出,且不應被解釋為任何方式之限制。可視情況而在排除或不排除所述其他特徵下併入任何下述特徵。
藉由改變鎖點量使「世界空間」中的頂點移動量呈均勻,即可為不同的觀察孔解析度產生一致的光柵化。每當顯示表面的解析度減半 時使鎖點間隔減半係可產生一致的光柵化結果。觀察孔為一顯示表面的二維區域,其中一景象之一觀看體積係投射至該顯示表面上。觀察孔的維度係以畫素提供,因此當觀察孔的高度及/寬度減少,顯示表面的解析度也會減少(假設畫素大小是固定的)。相反地,當觀察孔的高度及/或寬度增加,顯示表面的解析度也會增加。
第三A圖係根據一具體實施例說明基於一觀察孔300之解析度相關之鎖點間隔而調整的基元頂點位置。該16x16畫素觀察孔300係使用一1/256畫素鎖點間隔(亦即,格柵胞元的寬度和高度是畫素寬度與高度的第1/256),以調整該等頂點位置為次畫素格柵。因此,頂點鎖點精準度為一畫素的第1/256。注意,次畫素格柵胞元具有比第三A圖所示畫素格柵更為精細的解析度。第三B圖係根據一具體實施例說明基於一觀察孔350之解析度相關之鎖點間隔而調整的基元頂點位置。該4x4畫素觀察孔350係使用一1/1024畫素鎖點間隔(亦即,格柵胞元的寬度和高度為畫素寬度與高度的第1/1024),以調整該等頂點位置為次畫素格柵。注意,次畫素格柵胞元具有比第三B圖所示畫素格柵更為精細的解析度。當觀察孔的維度減少1/4,鎖點間隔也減少了(1/256 x 1/4)=1/1024,增加頂點鎖點的精準度以產生一致的光柵化結果。因此,可針對不同的畫素解析度來維持基元的形狀,如第三A圖與第三B圖所示。
格柵350係以鎖點基元頂點,以及藉由光柵化以決定一基元涵蓋顯示表面的哪些區域(亦即分級)而執行分級。在執行保守的光柵化時,若一畫素中的任何邊界與該基元交錯,則該畫素即視為被該基元涵蓋。在執行習用的光柵化時,當該基元涵蓋該畫素中的一取樣位置(例如畫素中心),則該畫素即視為被涵蓋。在分級完成之後,經分級之基元的頂點係鎖點至格柵300並加以光柵化。
解析度不變邊緣常態化
為了針對具有限精確度(亦即固定點算術)的一光柵化器的硬體實施產生具有一更精細鎖點間隔之精確解法,光柵化器需要具有足夠的精準度以代表該等鎖點間隔。舉例而言,光柵化器應可支援小於一畫素之第1/256的鎖點間隔。透過用於光柵化之邊緣方程式的常態化,即可實現 較小鎖點間隔所需要之增加的精準度,而不增加光柵化器的固定點精準度。
藉由評估邊緣方程式以決定在一畫素內的一取樣位置是在一基元的邊緣內或外(其中一三角形具有由三個頂點所定義的三個邊緣),一光柵化器係可決定涵蓋率。一組邊緣方程式係表示為:E0=e0_start+delta_x*edge_slope_x1_mns_x0+delta_y*edge_slope_y0_mns_y1
E1=e1_start+delta_x*edge_slope_x1_mns_x2+delta_y*edge_slope_y1_mns_y2
E2=e2_start+delta_x*edge_slope_x2_mns_x0+delta_y*edge_slope_y2_mns_y0
起始值(例如e0_start、e1_start、與e2_start)為在某些固定的錨定位置處之邊緣方程式的位置,delta_x和delta_y是離該固定的錨定位置之距離,且邊緣斜率(例如edge_slope_x1_mns_x0、edge_slope_y0_mns_y1等)係根據頂點對(亦即邊緣的長度)之間的距離而計算。當邊緣值E0、E1或E2大於或等於零(如某些取樣位置)時,該取樣係在各別邊緣內。當一取樣是在一基元的所有三個邊緣內時,該取樣係在該基元內。
在一具體實施例中,邊緣斜率係常態化以最大化大基元(其係至少部分位於觀察孔的外部)之精準度。光柵化器接收一頂點差對(例如edge_slope_x1_mns_x0與edge_slope_y0_mns_y1),且該指數差異係用以產生距離之一固定點表示,以使斜率比例的精準度最大化。固定點表示也為不同的觀察孔解析度(亦即,不同的階級光柵化等級)提供一致的光柵化結果。當使用具有較大頂點位置精準度之較低解析度觀察孔來呈現時,每一邊緣差的尾數(例如edge_slope_x1_mns_x0和edge_slopey0_mns_y1)不會改變,但邊緣差的指數係隨觀察孔大小減少而調整。舉例而言,當觀察孔的解析度降低兩個冪次時,指數即減少一。由於指數之間的差異是固定的,因此在觀察孔的解析度增加(亦即,變得更精細)或減少(亦即,變得較粗糙)時,常態化之邊緣方程式是固定的。因此整個邊緣方程式例如:E0=e0_start+delta_x*edge_slope_x1_mns_x0+delta_y*edge_slope_y0_mns_y1
係具有可在觀察孔解析度變化時保持不變的固定點斜率值,且在觀察孔解析度增加時e0_start值會降低(亦即,向右偏移)。一邊緣是在一取樣內或外的最終決定是根據E值是大於或等於零來計算。因此,由e0_start偏移至右方而截取的位元並不影響涵蓋率的決定,而在觀察孔大小減少且鎖點間隔也減少(亦即,頂點鎖點精準度增加)時係可產生一致的光柵化結果。
第四A圖說明了根據一具體實施例之一概念性圖形處理管線400。可使用一可程式化處理單元、或使用一或多種功能的專用處理單元來實施該圖形處理管線400。一頂點處理單元406係一可程式化執行單元,其係配置以執行頂點著色器程式、照明與轉換由頂點著色器程式所指定的頂點數據。舉例而言,頂點處理單元406係可編程以使頂點數據從一以物體為基礎之座標表示(物體空間)轉換至一替代基礎座標系統,例如世界空間或常態化元件座標(NDC)空間。
曲面細分與幾何處理單元408係一可程式化執行單元,其係配置以執行曲線細分著色器程式。該曲面細分與幾何處理單元408係處理由頂點處理單元406所產生的頂點,且係配置以產生被稱之為補片之圖形基元及各種補片屬性。在某些具體實施例中,該曲面細分與幾何處理單元408也執行拓樸組態、指標化頂點(包括與補片相關聯之頂點)、以及計算與該等頂點相應的紋理座標。該曲面細分與幾何處理單元408也配置以執行幾何著色器程式,藉以轉換圖形基元。頂點係經分組以建構圖形基元以供處理,其中圖形基元包括三角形、線段、點等。舉例而言,該曲線細分與幾何處理單元408係經編程以將圖形基元次分割為一或多個新的圖形基元並計算參數,例如平面方程式係數,其係用以光柵化新的圖形基元。在某些具體實施例中,該曲面細分與幾何處理單元408亦於幾何串流中增加或刪除元素。該曲面細分與幾何處理單元408係將指定新的圖形基元之該等參數與頂點輸出至一觀察孔調整、淘汰與剪輯單元412。
該觀察孔調整、淘汰與剪輯單元412係接收與一物體有關的幾何數據並對幾何數據執行一觀察孔轉換,以於二維螢幕空間中產生該物體頂點之座標。在該觀察孔調整、淘汰與剪輯單元412內的一觀察孔處理 單元係配置以執行觀察孔轉換,根據觀察孔解析度而改變鎖點間隔。針對該觀察孔轉換指定大致對應於一二維格柵或空間的一特定解析度(例如畫素中的寬度與高度)。在二維空間中之物體頂點的座標具有與此一解析度對應的數值。因此,對於320x320畫素之解析度而言,一物體之頂點的水平座標係可介於0至320之間,而垂直座標可介於0至240之間。對於其他的解析度而言,座標可具有不同的範圍。
對於觀察孔轉換之計算一般包括一些四捨五入(rounding)。亦即,由觀察孔轉換所產生的座標具有某一四捨五入量,表示用於產生螢幕空間頂點之計算的結果係經四捨五入為一特定精準度。該觀察孔轉換也將物體頂點之座標「鎖點」至一指定的次畫素格柵。換言之,已經施用觀察孔轉換之物體的頂點之螢幕空間位置係對準於一格柵,其中該格柵的胞元(或「次畫素」)具有與一畫素之指定分數相等的大小(舉例而言,在該格柵中的所有胞元係具有等於一畫素的第1/4或第1/64之大小)。鎖點間隔控制了頂點相對於觀察孔解析度而被鎖點之精準度。鎖點間隔是格柵中胞元的維度(高度或寬度),且係被指定為一畫素的分數。「鎖點」會使一物體的座標對準於次畫素格柵。觀察孔轉換的結果包括鎖點與捨入的作用,且一般是包括各物體的每一個頂點之螢幕空間座標,其對準於次畫素格柵。
觀察孔調整、淘汰與剪輯單元412係配置以根據該觀察孔解析度而決定一鎖點間隔。當觀察孔解析度改變時,該鎖定間隔係可增加或減少以調整鎖點精準度。更具體而言,當觀察孔大小(畫素)增加,鎖點精準度即減少(亦即,被指定為鎖點間隔之畫素的分數增加)。同樣地,當觀察孔大小(畫素)減少,鎖點精準度即增加(亦即,被指定為鎖點間隔之畫素的分數減少)。鎖點間隔係藉由一應用程式而提供至觀察孔調整、淘汰與剪輯單元412,或是觀察孔調整、淘汰與剪輯單元412係配置以計算每一觀察點之鎖點間隔。在一具體實施例中,係可定義一個以上的觀察孔,且指定(或計算)每一個觀察孔中的鎖點間隔。當支援階級光柵化時,即可定義對應於光柵化階級不同等級的兩個或以上的觀察孔。觀察孔調整、淘汰與剪輯單元412係執行剪輯、淘汰、以及觀察孔調整,並輸出經處理之圖 形基元至一基元設定單元414。
基元設定單元414係針對各基元的每一邊緣計算邊緣方程式係數(例如邊緣起始值、delta_x、delta_y等),其中一邊緣是由一基元的調整(亦即鎖點)頂點中的其中兩個所定義。如先前所解釋,該等邊緣方程式一般是具有E(x,y)=Ax+By+C的形式,其中A、B與C為設置單元所計算之係數,x與y為欲由邊緣方程式所評估之一畫素或取樣的座標,而E(x,y)代表一組x-y座標之邊緣方程式的評估結果。即使在該x、y頂點位置因鎖點而改變時,當邊緣斜率經常態化時,係數A與B(對應於delta_x與delta_y)在不同的解析度間也是一致的,如先前所說明。C是邊緣起始值,且在解析度降低兩個冪次時將向右偏移。基本上,當解析度減半,x、y與C係減半,而A與B係維持相同。E(x,y)係減半,但E(x,y)的符號(正/零或負)不受影響。因此,在兩個不同解析度之間係可維持基元的形狀。
光柵化器416自基元設定單元414接收一物體的頂點之螢幕空間座標與邊緣方程式係數。光柵化器416從設定單元取得基元與邊緣方程式,並評估基元設定單元414所提供的邊緣方程式,以決定該物體之取樣或畫素的涵蓋率。光柵化器416掃描轉化新的圖形基元,並輸出片段與涵蓋率數據至片段處理單元422。此外,該光柵化器416係配置以執行z淘汰與其他的以z為基礎之最佳化。在一具體實施例中,光柵化器416係實施為計算粗略的涵蓋率資訊之一粗略光柵化器、以及在一次畫素粒度下計算涵蓋率資訊之一精細光柵化器。
片段處理單元422係一可程式化執行單元,其係配置以執行片段著色器程式、轉換自光柵化器416所接收之片段,如片段著色器程式所指定者。舉例而言,片段處理單元422係經編程以執行例如個別校正、紋理映射、著色、混摻等之操作,以產生輸出至光柵操作單元424的著色片段。片段係於畫素、取樣或其他粒度下加以著色,端視於所編程的取樣率而定。
光柵操作單元424係一處理單元,其係執行光柵操作,例如模板刻印、z測試、混摻等,並且輸出畫素數據作為經處理之圖形數據,以儲存於圖形記憶體中。經處理之圖形數據係儲存於記憶體中,以供顯示、 或供進一步處理。在本發明的某些具體實施例中,光柵操作單元424係配置以壓縮寫入記憶體中的z或色彩數據,並解壓縮自記憶體讀取的z或色彩數據。
第四B圖說明根據一具體實施例,用於調整頂點位置之方法430的另一流程圖。在一具體實施例中,方法430中所示步驟係由一應用程式所執行,例如由一圖形處理器所執行之一頂點著色器。在另一具體實施例中,方法430中所示步驟係由在一圖形處理器內的一處理單元所執行,例如觀察孔調整、淘汰與剪輯單元412。在步驟435,一應用程式或一處理單元係接收觀察孔維度。在步驟440,該應用程式或處理單元係決定觀察孔維度是否已減少而使得鎖點精準度應該要改變;如果是,在步驟445中,鎖點間隔精準度即增加。否則,在步驟450中,該應用程式或處理單元係決定觀察孔維度是否已增加而使得鎖點精準度也得改變;如果是,在步驟455中,鎖點間隔精準度即降低。否則,鎖點間隔係未改變。
在步驟460中,基元頂點位置係根據觀察孔相關之鎖點間隔而被調整至一次畫素格柵,以產生經鎖點之頂點位置。在步驟465中,由經鎖點之頂點位置所定義的基元係被光柵化。
第五圖說明根據一具體實施例之並行處理單元(PPU)500。在本文中雖提供一並行處理器作為PPU 500的一個示例,但應強烈注意此一處理器係僅作為說明之用而提出,且任何處理器都可被用以作為該處理器之補充及/或替代。在一具體實施例中,該PPU 500係配置以於兩個或更多個串流多處理器(SMs)550中同時執行一複數個執行緒(threads)。一執行緒(例如執行的一執行緒)係於一特定SM 550內執行之一組指令中的一個實例。每一個SM 550,如下文中將結合第六圖而更詳細說明者,係包括、但不限於一或多個處理核心、一或多個負載/儲存單元(LSUs)、一階(L1)快取、共享記憶體等。
在一具體實施例中,該PPU 500包括一輸入/輸出(I/O)單元505,其係配置以於系統匯流排502上自一中央處理單元(CPU,未示)傳送及接收通訊(亦即,指令、數據等)。該I/O單元505係實施一周邊組件互連快速(PCIe)介面,以於一PCIe匯流排上進行通訊。在替代性具 體實施例中,該I/O單元505係實施其他類型的習知匯流排介面。
PPU 500也包括一主機介面單元510,其解碼該等指令並將該等指令傳送至格柵管理單元515或如該等指令所指定之PPU 500的其他單元(例如,記憶體介面580)。在格柵管理單元515的上下文中,一格柵係一處理工作量。該主機介面單元510係配置以於PPU 500的各種邏輯單元之間發送傳輸。
在一具體實施例中,編碼為一指令串流之一程式係由CPU寫入至一緩衝區中。該緩衝區是在一記憶體中的一區域,例如記憶體504或系統記憶體,其可由CPU與PPU 500兩者加以存取(亦即,讀取/寫入)。CPU將指令串寫入至緩衝區,並接著傳送對該指令串的起始之一指標至該PPU 500。主機介面單元510提供了具有對一或多個串流之指標的格柵管理單元(GMU)515。GMU 515選擇一或多個串流,且係配置以將所選擇之串流組織為待處理格柵庫。待處理格柵庫包括還沒有被選擇供執行的新的格柵、以及已部分執行及已中止之格柵。
耦接於GMU 515和SMs 550之間的一工作分配單元520係管理一現用格柵庫,其選擇及派送供SMs 550執行之現用格柵。在一待處理格柵為可勝任以執行(亦即,不具有未解決數據相關性)時,GMU 515將待處理格柵傳送至該現用格柵庫。當一現用格柵的執行被一相關性封鎖時,該現用格柵即被傳送至待處理庫。當一格柵的執行完成,工作分配單元520即自該現用格柵庫移除該格柵。除了自主機介面單元510與工作分配單元520接收格柵之外,GMU 510也接收SMs 550在一格柵的執行期間動態產生的格柵。這些動態產生之格柵係加入待處理格柵庫中的其他待處理格柵。
在一具體實施例中,CPU執行一驅動程式核心,其係實施一應用程式編程介面(API),使得一或多個應用程式可於CPU上執行,以對PPU 500上執行之操作進行排程。一應用程式包括指令(亦即,API呼叫),其使該驅動程式核心可產生一或多個格柵以供執行。在一具體實施例中,PPU 500係實施一SIMD(Single-Instruction Multiple-Data,單指令多數據)架構,其中在一格柵中的每一個執行緒方塊(亦即經軸)係藉由該執 行緒方塊中的不同執行緒而同時執行於一不同數據集合上。驅動程式核心定義了含有k個相關執行緒的執行緒方塊,使得在相同執行緒方塊中的執行緒可透過共享記憶體來交換數據。在一具體實施例中,一執行緒方塊包含32個相關執行緒,且一格柵為由執行相同串流的一或多個執行緒方塊之一陣列,且不同的執行緒方塊係可透過全域記憶體而交換數據。
在一具體實施例中,PPU 500包含X個SMs 550(X)。舉例而言,PPU 100包括15個分別的SMs 550。每一個SM 550都是多緒的,且係配置以同時執行來自一特定執行緒方塊之一複數個執行緒(例如32個執行緒)。SMs 550中的每一個都經由一交叉開關560(或其他類型的互連網路)而連接至一二階(L2)快取565。
L2快取565係連接至一或多個記憶體介面580。記憶體介面580係實施16、32、64、128位元之數據匯流排等,以進行高速數據傳送。在一具體實施例中,PPU 500包含U個記憶體介面580(U),其中每一個記憶體介面580(U)係連接至一對應的記憶體裝置504(U)。舉例而言,PPU 500係連接至高達6個記憶體裝置504,例如圖形雙數據速率版本5之同步動態隨機存取記憶體(GDDR5 SDRAM)。
在一具體實施例中,PPU 500實施一多階記憶體階級。記憶體504係位於耦接至PPU 500的SDRAM中之晶片外。來自記憶體504之數據係被擷取且儲存於L2快取565,其係位於晶片上且於各個SMs 500之間共享。在一具體實施例中,每一個SMs 550也實施一L1快取。L1快取為一私用記憶體,其係一特定SM 550所專用。每一個L1快取係耦接至共享之L2快取565。來自L2快取565的數據係被擷取及儲存於每一個L1快取中以於SMs 550的功能單元中進行處理。
在一具體實施例中,PPU 500包含一圖形處理單元(GPU)。PPU 500係配置以接收指定著色器程式之指令以處理圖形數據。圖形數據係定義為一組基元,例如點、線、三角形、四邊形、三角形帶等。一般而言,一基元係包括指定了基元之數個頂點(例如在一模型空間座標系統中)以及與基元的每一個頂點相關連之屬性的數據。PPU 500可配置以處理圖形基元,以產生一框架緩衝區(亦即,顯示器的每一個畫素之畫素數據)。該驅 動程式核心係實施一圖形處理管線,例如由OpenGL API所定義之圖形處理管線。
一應用程式係將一景象之模型數據(亦即,頂點與屬性之一集合)寫入至記憶體中。該模型數據係定義了在一顯示器上為可見的每一個物體。該應用程式接著對驅動程式核心進行一API呼叫,其係請求呈現與顯示該模型數據。該驅動程式核心讀取該模型數據並對緩衝區寫入指令以執行一或多個操作以處理該模型數據。該等指令係編碼不同的著色器程式,包括一頂點著色器、輪廓著色器、幾何著色器、畫素著色器等中的一或多者。
GMU 515係組態一或多個SMs 550以執行第四A圖中所示之處理單元中的一或多個的功能,例如一頂點處理單元、一曲面細分處理單元、一幾何處理單元、以及一片段處理單元。觀察孔調整、淘汰與剪輯處理單元、粗略光柵化器、精細光柵化器、以及光柵操作單元的功能亦可由一GMU 515內的其他處理引擎來執行。
舉例而言,GMU 515係組態一或多個SMs 550,以執行一頂點著色器程式,其係處理由該模型數據所定義的數個頂點。在一具體實施例中,GMU 515係組態不同的SMs 550以同時執行不同的著色器程式。舉例而言,SMs 550之一第一子集合係經組態以執行一頂點著色器程式,而SMs 550之一第二子集合係經組態以執行一畫素著色器程式。SMs 550之第一子集合係處理頂點數據,以產生經處理之頂點數據,並將經處理之頂點數據寫入至L2快取565及/或記憶體504中。在經處理之頂點數據被光柵化(亦即,從三維數據轉換為螢幕空間中的二維數據)以產生片段數據之後,SMs 550之第二子集合係執行一畫素著色器,以產生經處理之片段數據,其接著係與其他經處理之片段數據混摻,並被寫入至記憶體504中的框架緩衝區。該頂點著色器程式與畫素著色器程式係同時執行,以一管線化形式處理來自相同景象之不同數據,直到該景象之所有模型數據都已經顯像至該框架緩衝區為止。然後,框架緩衝區的內容係傳送至一顯示控制器以供顯示於一顯示裝置。
PPU 500係包括於桌上型電腦、膝上型電腦、平板電腦、智 慧型手機(例如一無線手持裝置)、個人數位助理(PDA)、數位相機、手持式電子裝置等中。在一具體實施例中,PPU 500係體現於一單一半導體基板上。在另一具體實施例中,該PPU 500係與一或多個其他邏輯單元一起包括於一晶片上系統(SoC)中,所述邏輯單元例如為精簡指令集電腦(RISC)CPU、一記憶體管理單元(MMU)、一數位對類比轉換器(DAC)等。
在一具體實施例中,該PPU 500係包含於一圖形卡上,該圖形卡包含一或多個記憶體裝置504,例如GDDR5 SDRAM。圖形卡係配置以與一桌上型電腦的母板上的一PCIe插槽介面連接,該母板上包含,例如一北橋晶片組與一南橋晶片組。在另外一個具體實施例中,該PPU 500係一整合圖形處理單元(iGPU),其係包含於母板的晶片組(亦即北橋)中。
第六圖說明了根據一具體實施例之第五圖的串流多處理器550。如第六圖所示,SM 550包括一指令快取605、一或多個排程器單元610、一暫存器檔案620、一或多個處理核心650、一或多個雙重精準度單元(DPUs)651、一或多個特殊功能單元(SFUs)652、一或多個負載/儲存單元(LSUs)653、一互連網路680、一共享記憶體/L1快取670、以及一或多個紋理單元690。
如上所述,工作分配單元520係派送現用格柵以於該PPU 500的一或多個SMs 550上執行。排程器單元610係自工作分配單元520接收格柵,並管理每一個現用格柵的一或多個執行緒方塊之指令排程。排程器單元610係排程執行緒以於並行執行緒群組中執行,其中每一個群組係稱之為一經軸(warp)。在一或多個具體實施例中,每一個經軸包括32個執行緒。排程器單元610係管理一複數個不同的執行緒方塊、對經軸分派執行緒方塊以供執行、以及接著在每一次時脈週期中排程來自各個功能性單元(亦即,核心650、DPUs 651、SFUs 652、以及LSUs 653)上的該複數個不同經軸之指令。
在一具體實施例中,每一個排程器單元610都包括一或多個指令派送單元615。每一個派送單元615係配置以傳送指令至一或多個功能性單元。在第六圖所示之具體實施例中,排程器單元610係包括兩個派送 單元615,其使來自相同經軸的兩個不同指令可在各時脈週期中被派送。在替代具體實施例中,每一排程器單元610係包括一單一派送單元615或額外的派送單元615。
每一SM 650包括一暫存器檔案620,其為SM 650的功能性單元提供一組暫存器。在一具體實施例中,該暫存器檔案620係於各功能性單元之間被分割,使得每一個功能性單元被分派以該暫存器檔案620中的一專用部分。在另一具體實施例中,該暫存器檔案620係於該SM 550所執行的不同經軸之間被分割。該暫存器檔案620係提供了運算元之暫時儲存,其連接至功能性單元的數據路徑。
每一SM 550包含L個處理核心650。在一具體實施例中,SM 550包括大量(例如192個)的處理核心650。每一核心650係完全管線化、單一精準度處理單元,其包括一浮動點算術邏輯單元與一整數算術邏輯單元。在一具體實施例中,該浮動點算術邏輯單元係實施浮動點算術之IEEE 754-2008標準。各SM 550也包含M個DPUs 651(其實施雙重精準度浮動點算術)、N個SFUs 652(其執行特殊功能,例如複製矩形、畫素混摻操作等)、以及P個LSUs 653(其於共享記憶體/L1快閃670和暫存器檔案620之間實施負載與儲存操作)。在一具體實施例中,SM 550包括64個DPUs 651、32個SFUs 652、以及32個LSUs 653。
每一SM 550都包括一互連網路680,其將各功能性單元連接至該暫存器檔案620與共享記憶體/L1快取670。在一具體實施例中,互連網路680係一交叉開關,其可配置以將任何功能性單元連接至暫存器檔案620中的任何暫存器、或在共享記憶體/L1快取670中的記憶體位置。
在一具體實施例中,SM 550係實施於一GPU內。在此一具體實施例中,SM 550係包括J個紋理單元690。紋理單元690係配置以從記憶體504負載紋理映射(亦即,紋理影像元件之一2D陣列),並取樣該紋理映射以產生取樣之紋理值而供使用於著色器程式中。紋理單元690係實施紋理操作,例如使用MIP映射(亦即,具有不同細緻等級的紋理映射)之抗鋸齒化操作。在一具體實施例中,SM 550包括16個紋理單元690。
上述PPU 500係配置以比傳統CPUs更快速許多地執行高度 並行計算。並行計算在圖形處理、數據壓縮、生物辨識、串流處理演算法等上都具有優勢。
第七圖說明一例示系統700,在其中係可實施各種前述具體實施例的各種架構及/或功能。如圖所示,提供一系統700,該系統700包括至少一中央處理器701,其係連接至一通訊匯流排702。該通訊匯流排702係利用任何適當協定而實施,例如PCI(Peripheral Component Interconnect,周邊元件互連架構)、PCI-Express(快速PCI)、AGP(Accelerated Graphics Port,加速圖形連接埠)、HyperTransport(超傳輸)、或是任何其他匯流排或點對點通訊協定。系統700也包括一主記憶體704。控制邏輯(軟體)與資料係儲存於該主記憶體704中,其可具有隨機存取記憶體(RAM)的形式。
系統700也包括輸入裝置712、一圖形處理器706、以及一顯示器708,亦即傳統的CRT(陰極射線管)、LCD(液晶顯示器)、LED(發光二極體)、電漿顯示器等。從輸入裝置712(例如,鍵盤、滑鼠、觸控板、揚聲器等)接收使用者輸入。在一具體實施例中,圖形處理器706係包括一複數個著色器模組、光柵化模組等。每一個前述模組都是位於一單一的半導體平台上以形成一圖形處理單元(GPU)。
在本說明書中,一單一半導體平台係指一單獨的以單一半導體為基礎之積體電路或晶片。應注意用語「單一半導體平台」也指具有增加之連接性的多晶片模組,其係模擬晶片上運作,且比使用傳統中央處理單元(CPU)與匯流排實施方式者產生實質上的改善。當然,根據使用者的需要,各種模組也可被個別地配置、或配置於半導體平台的各種組合中。
系統700也包括一次要儲存器710。該次要儲存器10包括:例如硬碟機及/或可移除之儲存驅動裝置(如軟碟機、磁帶機、光碟機、數位多功能光碟(DVD)機、記錄裝置、通用串列匯流排(USB)快閃記憶體)。該可移除之儲存驅動裝置係以習知方式對一可移除之儲存單元進行讀取及/或寫入。
電腦程式(或電腦控制邏輯演算法)係儲存於主記憶體704及/或次要儲存器710中。這些電腦程式在被執行時,係使該系統700可執 行各種功能。記憶體704、儲存器710、及/或任何其他儲存器皆為電腦可讀取媒體的可行實例。
在一具體實施例中,各種先前圖式中的架構及/或功能係可實施於中央處理器701、圖形處理器706、可具有中央處理器701與圖形處理器506兩者的至少一部分功能之積體電路(未示)、晶片組(亦即,一組積體電路,其係設計以作為用於執行相關功能等之一單元而運作及販售)、及/或該標的之任何其他積體電路的上下文中。
另外,各種前述圖式的架構及/或功能係可實施於一通用電腦系統、一電路板系統、專用於娛樂目的之一遊戲機系統、一應用專用系統、及/或任何其他所需系統的上下文中。舉例而言,該系統700可具有桌上型電腦、膝上型電腦、伺服器、工作站、遊戲機、內嵌系統、及/或任何其他邏輯類型的形式。另外,該系統700可具有各種其他裝置的形式,包括,但不限於個人數位助理(PDA)裝置、行動電話裝置、電視等。
此外,雖未繪示,但該系統700係為通訊目的而耦接至一網路,例如,一電信網路、局部區域網路(LAN)、無線網路、廣域網路(WAN)(如網際網路)、點對點網路、有線網路等。
雖然上文已說明了各種具體實施例,但應理解它們係僅為示例說明而提出,而非作為限制。因此,一較佳具體實施例的幅度與範疇不應受上述任何例示具體實施例之限制,而應僅依據如附申請專利範圍及其等效例而定義。

Claims (20)

  1. 一種調整頂點位置的方法,包含:接收一觀察孔的一或多個維度;根據該一或多個維度決定一鎖點(snapping)間隔;及調整一圖形基元(primitive)的該等頂點位置為對準於與該鎖定間隔相應的一次畫素格柵。
  2. 如該申請專利第1項所述之方法,其中該鎖點間隔係隨該觀察孔的該一或多個維度中的至少一個維度減少而減少。
  3. 如該申請專利第1項所述之方法,其中該鎖點間隔係隨該觀察孔的該一或多個維度中的至少一個維度增加而增加。
  4. 如該申請專利第1項所述之方法,其中該鎖點間隔小於一畫素的第1/256。
  5. 如該申請專利第1項所述之方法,其中該觀察孔的該一或多個維度係指定於畫素中。
  6. 如該申請專利第1項所述之方法,其中該等頂點位置之調整的一精準度係隨該觀察孔的該一或多個維度中的至少一個維度減少而增加。
  7. 如該申請專利第1項所述之方法,其中該等頂點位置之調整的一精準度係隨該觀察孔的該一或多個維度中的至少一個維度增加而減少。
  8. 如該申請專利第1項所述之方法,進一步包含光柵化該圖形基元。
  9. 如該申請專利第8項所述之方法,其中該光柵化包含:若該圖形基元與一畫素的任何邊界交錯,則決定該圖形基元涵蓋該畫素。
  10. 如該申請專利第1項所述之方法,進一步包含:計算由所調整之該等頂點位置中的兩個頂點位置定義的該圖形基元的每一邊緣之邊緣方程式。
  11. 如該申請專利第10項所述之方法,其中該等邊緣方程式的計算包含計算常態化之邊緣斜率值。
  12. 一種非暫態之電腦可讀取儲存媒體儲存指令,其在該等指令在由一處理器執行時係使該處理器可調整頂點位置,包含:接收一觀察孔的一或多個維度; 根據該一或多個維度決定一鎖點間隔;及調整一圖形基元的該等頂點位置為對準於與該鎖定間隔相應的一次畫素格柵。
  13. 如該申請專利第12項所述之非暫態之電腦可讀取儲存媒體,其中該鎖點間隔係隨該觀察孔的該一或多個維度中的至少一個維度減少而減少。
  14. 如該申請專利第12項所述之非暫態之電腦可讀取媒體,其中該鎖點間隔係隨該觀察孔的該一或多個維度中的至少一個維度增加而增加。
  15. 如該申請專利第12項所述之非暫態之電腦可讀取媒體,其中該鎖點間隔小於一畫素的第1/256。
  16. 一種系統,包含:一觀察孔處理單元,其係配置以接收一觀察孔的一或多個維度;根據該一或多個維度決定一鎖點間隔;及調整一圖形基元的頂點位置為對準於與該鎖點間隔相應的一次畫素格柵。
  17. 如該申請專利第16項之系統,進一步包含一光柵化器,其係配置以於該圖形基元與一畫素的任何邊界交錯時決定該圖形基元涵蓋該畫素。
  18. 如該申請專利第16項之系統,進一步包含一設定單元,其係耦接至該觀察孔處理單元,且配置以計算由所調整之該等頂點位置中的兩個頂點位置定義的該圖形基元的每一邊緣之邊緣方程式。
  19. 如該申請專利第18項之系統,其中該設定單元係進一步配置以計算常態化邊緣斜率值。
  20. 如該申請專利第16項之系統,其中該鎖點間隔係隨該觀察孔的該一或多個維度中的至少一維度減少而減少。
TW102141296A 2013-03-14 2013-11-13 可變解析度圖形顯示之一致性頂點鎖點 TW201435795A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US13/830,987 US9478066B2 (en) 2013-03-14 2013-03-14 Consistent vertex snapping for variable resolution rendering

Publications (1)

Publication Number Publication Date
TW201435795A true TW201435795A (zh) 2014-09-16

Family

ID=51418671

Family Applications (1)

Application Number Title Priority Date Filing Date
TW102141296A TW201435795A (zh) 2013-03-14 2013-11-13 可變解析度圖形顯示之一致性頂點鎖點

Country Status (4)

Country Link
US (2) US9478066B2 (zh)
CN (1) CN104050704A (zh)
DE (1) DE102013114373A1 (zh)
TW (1) TW201435795A (zh)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103765481B (zh) * 2011-08-05 2016-06-29 想象技术有限公司 用于3-d场景加速结构创建和更新的系统和方法
US9633469B2 (en) 2013-03-15 2017-04-25 Nvidia Corporation Conservative rasterization of primitives using an error term
KR102275712B1 (ko) * 2014-10-31 2021-07-09 삼성전자주식회사 렌더링 방법, 렌더링 장치 및 전자 장치
US10535114B2 (en) * 2015-08-18 2020-01-14 Nvidia Corporation Controlling multi-pass rendering sequences in a cache tiling architecture
WO2017127363A1 (en) 2016-01-18 2017-07-27 Advanced Micro Devices, Inc. Performing anti-aliasing operations in a computing system
US10062139B2 (en) 2016-07-25 2018-08-28 Qualcomm Incorporated Vertex shaders for binning based graphics processing
US10535121B2 (en) * 2016-10-31 2020-01-14 Adobe Inc. Creation and rasterization of shapes using geometry, style settings, or location
US10546365B2 (en) * 2017-03-27 2020-01-28 Advanced Micro Devices, Inc. Single pass flexible screen/scale rasterization
GB2561557B (en) * 2017-04-13 2020-08-12 Advanced Risc Mach Ltd Graphics processing method and apparatus in which modified edge positions are used in rasterisation
US10726514B2 (en) * 2017-04-28 2020-07-28 Intel Corporation Compute optimizations for low precision machine learning operations
US10872473B2 (en) 2017-05-09 2020-12-22 Microsoft Technology Licensing, Llc Edge welding of geometries having differing resolutions
US10755383B2 (en) * 2017-09-29 2020-08-25 Apple Inc. Multi-space rendering with configurable transformation parameters
US20220180467A1 (en) 2019-03-15 2022-06-09 Intel Corporation Systems and methods for updating memory side caches in a multi-gpu configuration
BR112021016106A2 (pt) 2019-03-15 2021-11-09 Intel Corp Processador gráfico de propósito geral, método e sistema de processamento de dados
US11934342B2 (en) 2019-03-15 2024-03-19 Intel Corporation Assistance for hardware prefetch in cache access
US11076151B2 (en) 2019-09-30 2021-07-27 Ati Technologies Ulc Hierarchical histogram calculation with application to palette table derivation
US11861761B2 (en) 2019-11-15 2024-01-02 Intel Corporation Graphics processing unit processing and caching improvements
US11663746B2 (en) 2019-11-15 2023-05-30 Intel Corporation Systolic arithmetic on sparse data
US11915337B2 (en) 2020-03-13 2024-02-27 Advanced Micro Devices, Inc. Single pass downsampler
US11138786B1 (en) * 2020-05-19 2021-10-05 Arm Limited Vertex attribute representation in graphics processing systems for executing a graphics processing pipeline
US11423520B2 (en) * 2020-10-30 2022-08-23 Facebook Technologies, Llc. Distortion-corrected rasterization

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6219070B1 (en) * 1998-09-30 2001-04-17 Webtv Networks, Inc. System and method for adjusting pixel parameters by subpixel positioning
US7006110B2 (en) * 2003-04-15 2006-02-28 Nokia Corporation Determining a coverage mask for a pixel
US7015920B2 (en) * 2003-04-30 2006-03-21 International Business Machines Corporation Method and system for providing useable images on a high resolution display when a 2D graphics window is utilized with a 3D graphics window
US8390645B1 (en) * 2005-12-19 2013-03-05 Nvidia Corporation Method and system for rendering connecting antialiased line segments
US8928676B2 (en) * 2006-06-23 2015-01-06 Nvidia Corporation Method for parallel fine rasterization in a raster stage of a graphics pipeline
US8203564B2 (en) * 2007-02-16 2012-06-19 Qualcomm Incorporated Efficient 2-D and 3-D graphics processing
US8115783B2 (en) 2008-01-31 2012-02-14 Arm Norway As Methods of and apparatus for processing computer graphics
US8411107B2 (en) 2009-08-18 2013-04-02 Autodesk, Inc. Adaptive snapping
US8760453B2 (en) * 2010-09-01 2014-06-24 Microsoft Corporation Adaptive grid generation for improved caching and image classification
US9947084B2 (en) 2013-03-08 2018-04-17 Nvidia Corporation Multiresolution consistent rasterization
US9633469B2 (en) 2013-03-15 2017-04-25 Nvidia Corporation Conservative rasterization of primitives using an error term

Also Published As

Publication number Publication date
US20140267232A1 (en) 2014-09-18
US9747661B2 (en) 2017-08-29
US20170046812A1 (en) 2017-02-16
CN104050704A (zh) 2014-09-17
US9478066B2 (en) 2016-10-25
DE102013114373A1 (de) 2014-09-18

Similar Documents

Publication Publication Date Title
US9747661B2 (en) Consistent vertex snapping for variable resolution rendering
US9633469B2 (en) Conservative rasterization of primitives using an error term
US10229529B2 (en) System, method and computer program product for implementing anti-aliasing operations using a programmable sample pattern table
US9355483B2 (en) Variable fragment shading with surface recasting
US9082180B2 (en) System, method, and computer program product for implementing a spatially varying unsharp mask noise reduction filter
US9547931B2 (en) System, method, and computer program product for pre-filtered anti-aliasing with deferred shading
CN107392988B (zh) 利用投影几何失真用于以可变采样率渲染的系统、方法和计算机程序产品
US9245363B2 (en) System, method, and computer program product implementing an algorithm for performing thin voxelization of a three-dimensional model
US9111393B2 (en) System, method, and computer program product for sampling a hierarchical depth map
US9230363B2 (en) System, method, and computer program product for using compression with programmable sample locations
US20150178961A1 (en) System, method, and computer program product for angular subdivision of quadratic bezier curves
US9659399B2 (en) System, method, and computer program product for passing attribute structures between shader stages in a graphics pipeline
US9230362B2 (en) System, method, and computer program product for using compression with programmable sample locations
TWI552113B (zh) 舖磚延遲著色的系統、方法,及電腦程式產品
US9905037B2 (en) System, method, and computer program product for rejecting small primitives
US20140267276A1 (en) System, method, and computer program product for generating primitive specific attributes
US9721187B2 (en) System, method, and computer program product for a stereoscopic image lasso
US9305388B2 (en) Bit-count texture format
US20150084952A1 (en) System, method, and computer program product for rendering a screen-aligned rectangle primitive
US20140267426A1 (en) System, method, and computer program product for automatically extending a lasso region in two-dimensional image editors
US9471310B2 (en) Method, computer program product, and system for a multi-input bitwise logical operation