TWI281639B - Method for managing state variables for rendering primitives, apparatus for rendering a scene including primitives, and machine readable medium - Google Patents

Method for managing state variables for rendering primitives, apparatus for rendering a scene including primitives, and machine readable medium Download PDF

Info

Publication number
TWI281639B
TWI281639B TW091137284A TW91137284A TWI281639B TW I281639 B TWI281639 B TW I281639B TW 091137284 A TW091137284 A TW 091137284A TW 91137284 A TW91137284 A TW 91137284A TW I281639 B TWI281639 B TW I281639B
Authority
TW
Taiwan
Prior art keywords
state
slot
tracking
memory
state variables
Prior art date
Application number
TW091137284A
Other languages
English (en)
Other versions
TW200303495A (en
Inventor
Peter L Doyle
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 TW200303495A publication Critical patent/TW200303495A/zh
Application granted granted Critical
Publication of TWI281639B publication Critical patent/TWI281639B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/10Constructive solid geometry [CSG] using solid primitives, e.g. cylinders, cubes
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory

Landscapes

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

Description

1281639
技術領域 本發明大致係相關於圖像系統,更特別地係相關於圖像 繪圖系統。 先前技術 電腦圖形系統通常係用以顯示物體的圖像表示於一二 維的視訊顯示螢幕。目前電腦圖形系統能夠提供相當精細 的表現,並且使用於各種應用中。典型電腦圖形系統中, 將要表現在該顯示螢幕上的物體拆成一些圖像基元。基元 係為一圖形顯示的基本組成,可以包含點、線、向量及多 邊形,像疋二角形及四邊形。典型地,一硬體/軟體架構 係實行以繪圖或繪製代表一或更多表示在顯示螢幕上的 物體的視圖的圖像基元。 將被繪圖的三維物體的基元係依據基元資料,利用一主 電腦來定義。例如,當該基元為三角形的時候,該主電腦 足義該基元可以依據其端點的x、¥及z座標,以及每個端 點的紅、綠、及藍色(R、(3及B)彩色數值。額外的基元資 料可以使用於特定的應用。 影像繪圖係為從高程度運用物件描述到用以顯示在某 些顯示裝置上圖形影像的轉換 。例如,影像繪圖的動作會
典型地,所提到可作為一 肩不在一電腦監視器上的影像。 圖像繪圖引擎的硬體裝置可以執 82652-951226.doc
1281639⑺ 行這些圖像處理任務。圖像繪圖引擎一般會將場景繪圖到 一記憶體緩衝區,其隨後會輸出到該圖像輸出裝置,但是 對某些繪圖引擎有可能將其二維輸出直接寫到該輸出裝 置。該圖像繪圖引擎内插該基元資料,以計算代表每個基 元,及每個像素的R、G及B彩色數值的顯示螢幕像素。 一圖像繪圖的系統(或次系統),如同在此所使用,指的 是在應用程式與圖像輸出裝置之間所有的處理階層。一圖 像引擎能夠提供一或更多模式的繪圖,包含區域繪圖。區 域繪圖係藉由獲得最佳化繪圖快取區的利用來試圖增加 整體3 D繪圖的效能,因而降低像素彩色及深度記憶體讀 取/寫入的瓶頸。在區域繪圖中,一螢幕係再分割成一陣 列的區域,及產生用以保持所有的要求以繪圖每個次影像 的基元及狀態設定指令的每個區域的指令槽。每當確定一 基元係相交(或可能相交)一區域時,該基元指令會放在該 區域的槽中。某些基元會相交超過一個區域以上,在該例 中該基元指令係複製於該對應槽中。該程序會持續進行到 將該整個場景排序到該等槽内。在建立由一基元所相交的 每個區域的槽的第一通過之後,會執行一第二區域接著區 域的繪圖通過。特別地,所有區域的槽會被繪圖以產生該 最後的影像。 為了實行一像是區域繪圖的鋪碑繪圖架構,在每個影像 空間區域(即槽)之内的該正確的圖像繪圖狀態變數的維 持係很重要的,因為這會要求其次以在該槽化期間該基元 所遇到的在那時候所存在的圖像狀態,繪圖(在該繪圖相 位期間)每個槽的基元。 82652-951226.doc
1281639 (3) 一種常見將基元與其適當的圖像狀態相關連的方法係 為獨立地保持一份所有所遭遇到的圖像狀態的複本,然後 將每個基元與某些辨識該稍後將用以繪圖該基元的特定 狀態的標籤(即索引)相關連。然而,該保持一獨立狀態表 格的複雜性及載入完整狀態組的成本(要求的記憶體覆蓋 區、等待時間及頻寬),可能是在每個基元之間,係無法 使用於低成本且有頻寬限制(例如整合性)的圖像系統中。 因此有必要提出一種花費較少但更有效率的用以區域 繪圖的圖像狀態管理的方法、裝置及系統。 發明内容 本發明提供一節省成本的機制以利用硬體狀態槽化邏 輯,與產生圖像影像的鋪磚式區域繪圖方法一起使用來追 縱及管理圖像狀態。根據本發明的一實施例,只有該等動 態狀態變數的目前數值係保留在硬體中。在一實施例中, 動態狀態變數包含但是並不限於可能被視為係在基元之 間變化的變數。在典型的場景期間保持定數或是幾乎不變 的狀態變數一般係排除不算。該組的動態狀態變數係再分 成次群組。每個狀態次群組係與一單一槽陣列的追蹤位元 有關。每當在該槽化相位期間遇到一狀態改變時,該對應 於該相關的狀態群組的追蹤位元會設定所有槽。在將一基 元放到一槽中之前,該相關於該槽的追蹤位元會被檢查, 及該對應於設定追蹤位元的目前狀態會在該基元之前插 入到該槽中。該槽的追蹤位元則會被清除。 如同在下面的詳細討論,本發明能夠最佳化區域繪圖支 援,因為本發明可以不需要追蹤在該驅動器軟體中的狀態 82652-951226.doc
1281639 (4) 變化,因而增加效能及降低驅動器複雜性。該槽位狀態管 理的成本係利用只支援動態狀態變數的在晶片上的儲 存,同時提供一用以影響任何狀態變數的改變及降低該在 晶片上的單一槽儲存至追蹤位元,典型地每槽4個。在一 典型實施例中,該在晶片上單一槽儲存係降低到只有4個 追蹤位元。此外,降低對狀態變化頻寬及覆蓋區的要求係 利用(a)在一次群組内,崩潰背對背狀態變化,(b)刪除非 要求的紋理混合階段及紋理映射狀態資料的更新,及(c) 提供狀態次群組變化的最佳化(及低等待時間)指令。再 者,可以降低管理非直接儲存狀態陣列及/或快取區的成 本及複雜性。 在該詳細描述中,許多特定細節會在此提出以便徹底地 了解本發明。然而,熟悉該項技藝者應了解的是本發明可 以在沒有這些特定的細節下實行。在其他例子,為人熟知 的方法、程序、組件及電路會詳細地描述以防混淆本發明。 接著的詳細描述的某些部分係以法則及電腦内的資料 位元及二元信號操作的符號代表的形式表示。這些法則的 描述及代表係為該熟悉該資料處理技藝者所使用的方 法,以將其工作的要義傳達給其他熟悉該項技藝者。在此 處一法則大致上係認為是導向所要求的結果的有條理順 序的步騾。該等步驟包含物理數量的運作。通常但並非必 要,這些數量採取能夠被儲存、轉換、組合、比較及其他 可供運用的電氣或磁場信號的形式。將所提及的這些信號 作為位元、數值、元件、符號、字元、術語、數字或類似 的東西,已經證明有時候係方便的,主要是為了一般的使 82652-951226.doc
1281639 (S) 用。然而,應了解的是所有這些及類似的術語係與該合適 的物理數量相關,且只是施加於這些數量的方便標示。除 非如該下面討論明顯特別地陳述,應了解的是在整個使用 像是“處理”或“計算”或“估算”或“決定”等類似的術語的 規格及討論中,係指電腦或計算系統或其他類似的電子計 算裝置的動作及程序,其能夠運用及轉換代表在該計算系 統的暫存器及/或記憶體内作為物理(電子)數量的資料成 其他代表在該計算系統的記憶體、暫存器或其它該資訊儲 存器、傳輸或顯示裝置内的物理數量的資料。 本發明的實施例可以以硬體或軟體、或兩者的結合來實 行之。然而,本發明的實施例可以實行以作為執行於可程 式系統上的電腦程式,該系統至少包含有一處理器、一資 料儲存系統(包含依電性及非依電性記憶體及/或儲存元 件)、至少一輸入裝置,及至少一輸出裝置。程式碼可以 施加於輸入資料,以執行在此所要求的功能,而產生輸出 資訊。該輸出資訊可以以已知的方法施加於一或更多的輸 出裝置。為了本應用的目的,一處理系統包含任何具有一 處理器的系統,像是例如一數位信號處理器(DSP)、一微 控制器、一特定應用積體電路(ASIC)、或一微處理器。 該等程式可以以高度程度程序或物件導向程式語言來 實行,以便與一處理系統相溝通。假如有需要的話,該等 程式也可以以組合語言或機器語言來實行。事實上,本發 明並不限制範圍於任何特定程式語言。在任何例子中,該 語言可以係為編譯或直譯的語言。 該等程式可以儲存於一儲存媒體或裝置(例如硬碟、軟 82652-951226.doc
1281639 碟、唯1買1己憶體、光碟機、快閃記憶體裝置、數位多功能 光碟(DVD)、或其他儲存裝置),可以讓一通用或特定目的 程式化處理系統所讀取,用以當該儲存媒體或裝置係為該 處理系統項取時組態及操作該處理系統,以執行在此所描 述的程序。本發明的實施例也可以認為係實行以作為一機 器可讀取的儲存媒體,其係組態以和一處理系統一起使 用’如此組態的該儲存媒體會造成該處理系統以一特定及 事先決定的方式操作,以執行在此所描述的功能。 實施方式 一個該類型的處理系統的範例係表示於圖1中。取樣系 統1 0 0可用以執行根據本發明的方法的程序,像是在此所 描述的實施例。取樣系統100係代表基於該等英特爾(Intel) 公司的微處理器的處理系統,雖然也可以使用其他微處理 器(包含具有其他微處理的個人電腦(PCs)、工程用工作 站、機頂盒(set-top box)或是類似的東西)。在一實施例中, 取樣系統100可以執行微軟公司的WINDOWS.TM作業系統 的版本,雖然例如其他作業系統及圖形使用者介面也可以 使用。 圖1係為本發明的一實施例的系統1 〇 〇的方塊圖。該電腦 系統1 00包含中央處理器1 02、圖像及記憶體控制器1 〇4, 其包含圖像裝置106、記憶體108及顯示裝置114。處理器 102處理資料信號,可以係為一複雜指令集電腦(CISC)微 處理器、一簡化指令集計算(RISC)微處理器、一超長指令 字(VLIW)微處理器,一實行指令集的組合的程序,或其他 處理器裝置,例如像是一數位信號處理器。處理器1 02係 82652-951226.doc -10-
1281639 ⑺ 耦合到共同匯流排1 1 2,其傳輸資料信號在處理器1 〇2與該 系統1 00中的其他組件之間。圖1的目的只是為了說明。本 發明也可以使用於包含一離散圖像裝置的組態。 處理器102發出信號於共同匯流排1 12上,用以與記憶體 108或圖像及記憶體控制器104之間通訊,以運用在此所描 述的資料。處理器1 〇 2發出該等信號以回應從記憶體1 0 8 所獲得軟體指令。記憶體1 〇 8可以係為動態隨機存取記憶 體(DRAM)裝置、靜態隨機存取記憶體(SRAM)裝置、或其 他記憶體裝置。記憶體1 08可以儲存可以由該處理器1 02、 圖像裝置1 06或某些其他裝置所執行的指令及/或資料信 號所代表的資料。該指令及/或資料係包含用以執行本發 明任何及/或所有的的技術的程式碼。記憶體1 〇 8也包含軟 體及/或資料。一選擇性快取記憶體1 1 〇可用於以本機存取 方式加速圖像裝置10 6之記憶體存取。在某些實施例中, 圖像裝置1 06能夠從處理器102下載用以繪圖一影像所要 求之許多記憶體密集的任務。圖像裝置1 06處理資料信 號,且係為一複雜指令集電腦(CISC)微處理器、一簡化指 令集計算(RISC)微處理器、一超長指令字(VLIW)微處理 器,一實行指令集的組合的程序,或其他處理器裝置,例 如像是一數位信號處理器。圖像裝置1 06可以耦合到共同 匯流排1 1 2,其在圖像裝置1 0 6與該系統1 0 0中其他組件之 間傳輸資料信號,其包含繪圖快取區1 1 0及顯示裝置1 1 4。 這在下面會詳細討論,繪圖快取區1 1 0會處理用以區域繪 圖的中間的讀取及寫入。圖像裝置1 〇 6包含繪圖硬體,除 了別的事情以外’其會將特定屬性(例如彩色)寫到顯示 82652-951226.doc
1281639 (S) 1 1 4的特定像素,然後繪製複雜的基元於顯示裝置1 1 4上。 圖像及記憶體控制器1 04與顯示裝置1 1 4互相通訊,用以顯 示已繪圖的影像或其他由一圖像控制器1 04所處理的部 分。顯示裝置1 1 4係包含電腦監視器、電視機、平面直角 顯示器或其他合適的顯示裝置。 記憶體1 08儲存一主機作業系統,其包含一或更多的繪 圖程式以建立用以顯示的圖像基元的影像。系統1 0 0包含 圖像裝置1 06,像是圖形加速器,其使用客製化的硬體邏 輯裝置或一協力處理器(co-processor),以改良主機緣圖程 式其他方法所處理的圖像基元中至少某些部分的繪圖效 能。該主機作業系統程式及其主機圖像應用程式介面(API) 藉由驅動程式,控制該圖像裝置1 06。 參考圖2及3,說明實行於一區域繪圖系統1 2 0上的各種 圖像物件的實施例160,例如幾何基元(即三角形、線 條)1 62。在區域繪圖中,一螢幕係再分割成一陣列的區域 1 64,一般係螢幕空間的矩形,雖然也可以使用其他幾何 變數。每個區域1 6 4係相關於一槽。每個槽1 2 8包含一連串 的命令緩衝區1 34,儲存在非連續的實體記憶體頁(page) 之内。因此該等槽128係較佳地實行以作為一連串的獨立 實體頁。 當一基元1 62相交一區域1 64的時候,該對應的基元指令 會放置在與該相交的區域有關的槽1 2 8中。每個區域指令 槽1 2 8則係用以保持基元指令及要求用以繪圖每個次影像 的狀態設定指令,而利用每個基元1 62的螢幕空間範圍與 該陣列的區域1 64相比較來產生。因此,當接收到該等基 82652-951226.doc -12- 1281639
兀1 62,本發明會決定每個基元相交於哪個區域丨64,然後 複製該基元指令到一與這些區域164的每個區域有關的槽 1 2 8中。指派基元(及其屬性)i 42給區域^ 的過程係稱之 為槽化(binning)。‘‘槽,,128係指為每個區域所使用的抽象 、、爰衝區,此處一槽128—般係實現以作為一連串的指令批 次緩衝區134。槽化執行所需要的計算以決定甚麼基元^62 在於甚麼區域1 64,且能夠利用專用的硬體及/或軟體實行 來執行《。在一典型的實行中,針對每個被一基元162所 相交的區域1 6 4, —驅動器1 2 2寫出一組基元指令,以讓該 圖像槽化引擎1 2 6解析,而該等命令會寫入到與所相交的 區域1 64相關的緩衝區1 3 4内。 些基元162將會相交於超過一個以上的區域164,在該 例中’該基元指令係複製在對應於該相交的區域1 64的槽 1 2 8中。例如’在圖3中所繪示的閃電係相交9個區域丨6 4。 該程序會持續進行,直到該整個場景係排序到槽内1 28。 一旦排序完所有該基元1 62以及完成該等命令架構,則 會做出一第二通過以一次一區域i 6 4來繪圖該場景。在建 立每個由一基元162所相交的區域164的槽的第一通過之 後’接著便執行一第二區域接著區域的繪圖通過。特別 地’所有區域1 6 4的槽1 2 8係以每個場景每次繪圖一區域 1 6 4的方式繪圖,以產生最後的影像。該等區域1 6 4所用以 繪圖的順序通常並非意義重大。在繪圖下個區域164之 後,所有與接觸到一特定區域164内的像素的基元ι62有關 的槽128便會繪圖。一單一基元162係相交許多區域164, 因此會要求多重複製。結果,相交多重區域164的基元162 82652-951226.doc •13-
1281639 (10) 係會多次地繪圖(即每個區域1 6 4相交一次)。 繪圖效能由於該等基元1 6 2係分解成對準該繪圖快取區 1 10區域164而改良。因為該圖像裝置106每次只作用在該 螢幕的一小區域上(即一區域1 6 4 ),它能夠保持該整個區 域1 6 4的訊框緩衝區内容在繪圖快取區1 1 0中。該區域1 6 4 的尺寸通常係為一調整成與該繪圖快取區1 1 0的大小及組 織一致的常數。藉由該機構,該繪圖快取區1 1 0提供最佳 化優點,重新使用快取的資料可以利用一區域1 64的空間 上相干性(coherence)來最大化。透過使用區域繪圖的模 式,只有最少的彩色記憶體寫入需要執行,以每次一區域 1 64的方式產生該最後的影像,而彩色記憶體讀取,及深 度記憶體讀取與寫入能夠最小化或是完全地避免。該繪圖 快取區1 1 0的使用則因此顯著地降低該記憶體訊務,與在 繼續到下個基元之前,完全地繪製每個基元的普通的繪圖 器相比更能夠改良效能。 參考圖2,在一典型的實施例中,一圖像基元及狀態設 定指令流,稱之為一場景輸入清單1 24,係初始地施加於 與圖像槽化引擎126有關的圖像槽化引擎環狀緩衝區 125。該場景輸入清單124係為一單一、時間排序的場景描 述(如該應用程式介面所接收)。圖像槽化引擎126係典型 地實行以作為一硬體槽化引擎(HWB) 126。熟悉該項技藝 者應了解的是也可以使用一軟體或軟體加上硬體槽化器 (binner)。該圖像槽化引擎I26解析場景輸入清單124,然 後決定每個基元1 6 2相叉哪個區域1 6 4。 如同上面所纪載,该等區域1 64係與槽i 2 8有關。圖像槽 82652-951226.doc -14-
Ι281639(Π) 化引擎126將每個基元162的螢幕空間範圍與該區域164的 陣列相比較,然後將該相關基元命令複製到對應的槽1 2 8 内。如圖5中所示以及下文中詳細的描述,槽1 2 8係由連串 的命令緩衝區134所構成,其一般係儲存在非連續的實體 記憶體頁之内。一槽清單係為一緩衝區1 3 4的清單,其構 成每個槽1 3 2。頁面初始地係配置給該槽記憶體池(BMP) 140。該槽指示器清單(BPL) 130係以該等頁面的頁數初始 化,然後儲存寫入指示點到每個槽清單1 3 2内。 該圖像槽化引擎1 26也會利用解析與該場景輸入清單 1 24有關所包含的狀態設定指令來維持該目前的圖像林 態。在將一基元命令放在任何已知的槽1 2 8之前,該圖像 槽化引擎126典型地會在該槽128的基元命令之前加上任 何所要求的狀態設定指令。 在該場景輸入清單1 24已經全部解析完之後,該等相關 的槽(即槽〇、槽1…、槽n-1)係準備好讓該圖像繪圖引擎136 用來繪圖該場景。這會在下面詳細討論,指令係包含在該 場景輸入清單1 24的末端,以使得該圖像槽化引擎1 26能夠 讓在暫停場景記數器1 48中的暫存器加1,然後初始化該槽 化場景的繪圖。例如,圖像槽化引擎1 2 6可以經由路徑 1 5 6,將一繪圖指令傳送到與圖像繪圖引擎1 3 6有關的圖像 繪圖引擎環狀緩衝區1 5 7。 圖4說明目前動態狀態次群組172及單一槽追蹤位元174 的實施例170的方塊圖。將動態狀態再分成次群組172可以 對於追蹤及影響對該動態狀態變數的改變提供一定程度 的粒度。在一典型的實施例中,該組的動態狀態變數係會 82652-951226.doc -15-
1281639 (12) 再分成4個次群組172。熟悉該項技藝者應了解4個次群組 1 72對於在此所討論及表示的組態係有利的,然而,本發 明可以利用以任何方式所配置的任何數目的次群組1 72來 實行。 與每個槽128 (例如槽〇、槽1、槽2…槽η)有關的是複數 個追縱位元1 7 4,其中每個槽位元係相關於一特定動態狀 態次群組1 7 2。當一特定槽1 2 8的追蹤位元1 7 4係“設定” 時’其係為一指示,指示一些在該次群組丨7 2内的狀態變 數(及對於該特等槽丨2 8,例如槽n)從一基元1 6 2上次輸出 到該槽1 2 8時已經改變。反之、一「清除」追蹤位元1 7 4 係指示該特定槽128的相關動態狀態次群組172從一基元 1 6 2上以輸出到該槽1 2 8以來未曾改變。在一典型實行中, 一單一槽4位元的‘‘追蹤位元,,向量174係用以追蹤對該4個 狀態群組1 7 2的改變。該“紋理映射,,、“紋理混合,,、“基本 狀怨及‘‘緩ί交狀怨”的次群組每個典型地包含5 1 2或1024 個槽。若是512個槽,這總計共有2Κ位元(每槽4位元向量 *512個槽)。若是1〇24個槽,這總計共有4κ位元(每槽4位 元向量*1024個槽)。 先“設定,,,以利用一整套 。特別地,在將一基元162 初始地,所有追縱位元1 7 4會 的動態狀態來初始化每個槽1 2 8 放在一槽128中之前,與該槽128有關的該等追蹤位元174 會被檢查,而該對應於設定追蹤位元174的目前狀態會在 該基元162之前被***到該槽128中。然後該槽128的追蹤 該等狀態位元174 該等位元174的任 位元174會被清除。在一典型實施例中, 中有許多位元並不會經常改變。然而, 何隨著時間變化的位元必 的 項被辨識及發佈,或是將它們 82652-951226.doc -16 -
1281639 (13) 較大群組發佈到該槽1 2 8,使得對於該三角形的精確狀態 能夠在光柵化(rasterization)期間保持。 特別地,在圖4中所表示的該等狀態群組172包含: (1) “基礎狀態,,次群組1 76 -與該基礎狀態追蹤位元 陣列有關的該狀態變數包含但不限於頂點緩衝區、頂點格 式、設定、紋理素像(texel stream)及像素管道狀態變數。 該等狀態變數典型地係排列成一固定序列的字元。在一特 定實施例中,任何對於一基礎狀態變數的改變會要求所有 的字元被發出到該要求的槽1 2 8,雖然熟悉該項技藝者了 解也可以使用其他組態。在其他實施例中,實行所有槽1 2 8 或一較小次組合的“開放”槽1 2 8的更多粒度追蹤。 (2) “紋理映射”次群組1 7 8 -與該紋理映射狀態追蹤 位元陣列有關的狀態變數包含但不限於大部分紋理映射 參數、立體映射面啟動及紋理過濾參數。狀態變數係藉由 該圖像繪圖引擎126輸出以作為一指令的部分。當一特殊 槽1 2 8的該紋理映射狀態追蹤位元被發現到係設定時,該 圖像槽化引擎1 26將只有輸出與紋理映射相關的字元,其 目前係為該目前背景設定所要求的。該“目前使用,,的映射 係以該圖像槽化引擎1 2 6,利用檢查該啟動紋理混合階段 來決定,判斷哪個紋理素像(texel stream)係被要求當作輸 入,然後接著檢查哪個紋理映射係與這些要求紋理素像 (texel stream)有關。 (3 )‘‘紋理混合”次群組1 8 〇 -與該紋理混合狀態追蹤 位元陣列有關的狀態變數包含但不限於用以控制紋理映 射混合階段的狀態變數。在一典型的實行中,該等狀態變 82652-951226.doc -17-
麗639⑼ 數包含整體的控制及紋理混合彩色、alpha、控制階段參 數,用以控制1到4個紋理映射混合階段單元。這些狀態變 數係由該圖像槽化引擎1 26輸出以作為一指令的部分。當 一特定槽1 2 8的該紋理混合狀態追蹤位元係發現已設定, 則該圖像槽化引擎126將會只輸出這些由該“啟動紋理混 合階段的數目”所推衍的狀態變數的目前設定所要求的字 元0 (4) “緩慢狀態”次群組1 82 - 與該緩慢狀態追蹤位元 陣列有關的狀態變數係為一 “緩慢狀態指示器”。該緩慢狀 態指示器間接地控制不包含在其他狀態次群組像是該基 礎、紋理混合及紋理映射狀態次群組1 7 6、1 7 8及1 8 0的任 何狀態指示器。在一典型的實施例中,低程度的狀態改變 及/或很少變化的指令係放置在該緩慢狀態緩衝區1 66,及 該等指示器係只有經由一指令1 67傳送到這些緩慢狀態緩 衝區1 6 6。 “緩慢狀態”群組包含該其餘非管道(及一些低頻管道) 的狀態變數。對”緩慢狀態”狀態變數的改變並沒有直接傳 送到該圖像槽化引擎1 26。確切的說,如圖2所顯示,包含 著這些變數的初始+差值狀態改變的緩慢狀態緩衝區1 66 係建立使得進入到這些緩慢狀態緩衝區1 66之一的一單一 指示器係充分足夠以定義所有緩慢狀態變數的目前狀 態。該方式只有該緩慢狀態指示器需要被傳送到該圖像槽 化引擎1 26。對該緩慢狀態指示器的改變將會如同所要求 的被放置在槽1 2 8中,及在繪圖期間將會初始化該緩慢狀 態緩衝區1 66的要求讀取成為更新的緩慢狀態變數。該圖 82652-951226.doc -18 - (15) 1281639 像繪圖引擎136會執行在該緩慢狀態“指示器,,的先前值及 新值之間的緩衝指令,雖然只要該新值係落在該將被繪圖 、面的先前值及末端之間。除此之外,該圖像繪圖引擎 1 3 6將會執行從該新的緩慢狀態指示器所制定的頁面頂端 直到但是不包含該新的緩慢狀態指示器所制定的Dw〇rd。 、Q此將會設定所有緩慢狀態變數成為它們的初始值,然 後將所差值狀態改變施加直到但是不包含該新的緩慢狀 態指示器所制定的Dw〇rd。 特別地’該圖像基元及狀態設定指令流,在此稱之為一 场⑦輸入清單i 24,係初始地施加於與圖像槽化引擎1 % 有關的圖像繪圖引擎環狀緩衝區125。該圖像槽化引擎126 曰解析場景輸入清單i 24,然後決定每個基元1 62相交哪 (幾)個區域1 6 4。 孩圖像槽化引擎1 26係利用解析與該場景輸入清單1 24 相關所包含的狀態設定指令來保持該目前圖像狀態。在將 一基το命令放在任何給定的槽128之前,該圖像槽化引擎 126在該槽128的基元命令中加入該狀態設定指令167。 假如對於槽0的緩慢狀態追蹤位元1 8 3指示有一改變,該 緩狀態“指示器’’係會輸出到該槽丨28。該緩慢狀態追蹤 位兀183然後會被清除。假如該緩慢狀態追蹤位元I。並沒 有指示有一改變’則該緩慢狀態指示器就不會輸出到槽〇。 緩k狀態緩衝區1 66儲存該緩慢狀態變數的初始及差值 狀悲的變化。一單一指示器到這些缓慢狀態緩衝區1 66之 一係充分足夠以定義所有該“緩慢,,狀態變數的目前狀 °該緩慢狀態緩衝區1 6 6係放置在狀態記憶體1 〇 8或一專 82652-951226.doc -19-
1281639⑽ 用記憶體内。在一典型實施例中,低程度狀態改變及或非 經常變化的指令係放置在該緩慢狀態緩衝區1 66,而槽化 器指示器係經由一指令1 67只有傳送到這些緩慢狀態緩衝 區内。一旦所有的基元及包含緩慢狀態指示器的狀態指令 係被槽化的時候,一第二通過係用以一次一區域1 6 4地繪 圖該場景區域。該等槽128係以每個場景一次一區域164 地繪圖以產生該最後的影像。在繪圖期間,該圖像繪圖引 擎1 3 6基於該槽化緩慢狀態指示器來初始該緩慢狀態緩衝 區1 66所要求的讀取,以更新緩慢狀態參數。該圖像繪圖 引擎1 3 6將會執行該緩衝指令於該等緩慢狀態”指示器”的 先前值及新值之間。 圖5係為一將與基元162有關的基元指令放置到一槽128 中之前(步驟192-208)及為了檢查差值狀態改變及更新狀 態及單一槽的追蹤位元174 (步驟212-222),輸出任何要求 的狀態變化的實施例1 90的流程圖。該最佳化會將不需要 的狀態複製降到最小。 特別地,在將一基元指令放在一特定槽1 2 8中之前,該 圖像槽化引擎126會確定該特定槽128的狀態目前至少係 為在該繪圖相位期間該基元1 62能夠被正確地繪圖的時 候。這意指目前沒有使用的狀態不需要在輸出該基元指令 到該槽1 2 8内之前被輸出。例如,抑制紋理混合狀態設定 及未使用的紋理映射設定就不需要輸出到該槽1 28。 假如遇到一基元162 (步驟192),本發明可以決定該基元 162相交哪些區域164 (步驟194)。對於每個與該相交的區 域164有關的槽128 (步驟196),每個次群組追蹤位元174 82652-951226.doc -20-
1281639 (,) 係會被檢查(步驟1 9 8)。假如一特定的次群組的該追縱位 元174係被設定(步驟199),該特定次群組172的目前值係 被輸出到該槽128 (步驟200)。當一相關於該追蹤位元174 的狀態次群組1 72變成“已使用”的時候,一追蹤位元1 74 被認為“已設定”。 例如,該基礎狀態次群組1 7 6的次群組追蹤位元1 7 7初始 地係為了槽0而檢查。該特定槽1 2 8的次群組追蹤位元1 7 4 接著會被清除(步驟202)。否則假如一特定次群組的追縱 位元沒有設定,則該特定次群組1 7 2的目前數值並不會被 輸出到該槽1 2 8 (步驟2 0 1)。 該槽1 2 8的下個次群組追蹤位元1 7 4接著會被檢查,而會 針對在該槽128中的每個位元174重複步驟198、200及202 (步驟2 0 4 )。例如,對於槽〇,該紋理映射次群組(1 7 8 )的 追蹤位元1 7 9接下來會被檢查。 在所有與該次群組1 72相關的追蹤位元1 74已經針對該 特定槽1 2 8檢查之後(步驟2 0 6 ),該等基元指令會輸出到該 槽128。對於與該基元162所相交的該區域164有關的下個 槽128,該次群組172的追蹤位元174接著會被檢查(步騾 208) 〇 例如,參考圖4,假如一與槽0相關的基礎狀態追蹤位元 1 7 7指示有一改變,則該基礎狀態次群組1 7 6的目前數值會 輸出到槽0。接著該基礎狀態追蹤位元177會被清除。假如 該基礎狀態追蹤位元1 77沒有指示有一改變,則沒有數值 會輸出到槽0。 該下個次群組1 7 2的追縱位元1 7 4接著會被檢查。例如, 82652-951226.doc -21 · 1281639 (18)
假如該槽0的紋理映射狀態追蹤位元1 79指示有一改變,則 該紋理映射狀態1 7 8的目前數值會被輸出。該紋理映射狀 態追蹤位元1 7 9接著會被清除。假如該紋理映射狀態追蹤 位元1 7 9沒有指示有一改變,則沒有數值會輸出到槽0。 相似地,假如該槽0的紋理混合狀態追縱位元1 8 1指示有 一改變,則該紋理混合狀態1 8 0的目前數值會被輸出。該 紋理映射狀態追蹤位元1 8 1接著會被清除。假如該紋理映 射狀態追賧位元1 7 9沒有指示有一改變,則沒有數值會輸 出到槽〇。 假如該槽0的緩慢狀態追蹤位元1 8 3指示有一改變,則該 緩慢狀態指示器會輸出到槽0。該緩慢狀態追縱位元1 8 3 接著會被清除。假如該緩慢狀態追蹤位元1 8 3沒有指示有 一改變,則該緩慢狀態指示器就不會輸出到槽〇。 因此該追縱位元1 7 4可以消除使用到失效資源的可能 性。例如,假如(a)對一目前未使用的紋理映射做出一改 變,(b)繪製一基元162 (在沒有輸出該未使用狀態的情形 下清除該個別的紋理映射追蹤位元179),及(〇做出一狀 態變化,使得該紋理映射現在係使用“如同原來的一樣” (即該映射本身沒有變化)。在沒有任何特殊的處理下,該 失效紋理映射會被錯誤地使用。在本發明中,當一紋理映 射變成“已使用”的時候(對該紋理映射狀態的狀態改變的 結果)’該紋理映射追蹤位元1 7 9係設定,因此消除使用一 失效資源的可能性。 狀態設定圖像指令的最佳化版本係用以獨立地更新該 動態狀態變數次群組1 7 2的每一個。藉由包含這些最佳化 82652-951226.doc -22- 1281639 (19) 才曰7在S等彳曰12 8之内,該讀取間接狀態資料的複雜性及 等#寺門。大地降低,因而在降低成本的同時,也增加 效此1特別也圖5說明檢查差值狀態改變,及更新狀態 及早一槽追蹤位元174 (步驟212-222)。該圖像槽化引擎120 係藉由以單—槽128及按次群組172為基礎來保持及追 縱狀態的改變’防止所有的狀態改變的非必要廣播給所有 才曰1 2 8 抬1 2 8的狀態就在該基元指令被放置在該槽1 2 8 中之说有刮地更新。發生在正被槽化的基元指令之間的該 相同狀態次群組172之内的多重改變係縮減成一輸出到該 槽1 2 8的次群組的改變。 步驟212-222係實行用以使用該儲存的目前動態狀態及 該單一槽追蹤位元1 7 4,以在該場景抓取相位期間有效率 地管理狀態變化。藉由追蹤依據一單一槽1 2 8及按狀熊群 組172的狀態變化,該圖像槽化引擎126也將會只更新這此 從上次一基元放在該槽128中的時候,針對一特定的相交 槽128已經改變的狀態次群組172 ° 初始地,假如遭遇到一狀邊憂化(步驟2 1 2)’則會決定 該對應的動態狀態次群組172 (步驟2 14)。該特定狀態變數 的先前數值接著會被決定(步驟216)° 假如該狀態的新值不同於該狀態的目前值(步騾218), 該槽128的對應的次群組追蹤位70 I74會被設定(步騾 220)。具有該狀態的新值的目前狀態則會被更新(步驟 222) 〇 緩慢狀態指示 假如一狀態變化修正一 “缓慢狀態指示器,,,每個槽(i) 82652-951226.doc -23-
麗639㈣ 的該緩慢狀態追蹤位元(i)會被設定。該狀態變化係施加 於該受到影響的次群組的每一個的目前狀態。 基礎狀態 例如,假如一狀態變化修正一“基礎狀態”,每個槽(i) 的基礎狀態追縱位元(i)會被設定。 紋理映射 假如一狀態變化造成所要求的任何的紋理映射(0…3) 變成被設定,則每個槽(i)的紋理映射狀態追蹤位元(i)會 被設定。假如一狀態變化修正該紋理映射(0…3),每個槽 (i)的紋理映射狀態追蹤位元(i)會被設定。 紋理混合 假如一狀態變化修正一要求的“彩色係數”,每個槽(i) 的紋理混合狀態追蹤位元(i)會被設定。假如一狀態變化 增加該啟動紋理混合階段的次數,每個槽(i)的紋理混合 狀態追蹤位元(i)會被設定。 圖6係為一說明用以特別地偵測,如果有的話,哪個與 一特定紋理映射或紋理混合階段有關的狀態需要輸出到 該槽128的最佳化的實施例230的流程圖。特別地,當該等 與紋理映射或紋理混合狀態有關的次群組追蹤位元1 74係 被發現已設定的時候,與一特定紋理映射或紋理混合階段 有關的狀態資訊係只有輸出到該槽1 2 8。只有與該使用的 紋理映射或紋理混合階段有關的資訊會輸出到該槽1 2 8。 藉由確認只有該新要求狀態或映射輸出到相交槽,防止使 用到失效的紋理混合或紋理映射狀態。當(a)對與一目前 使用的映射/階段有關的狀態做出一變化的時候,或是(b) 82652-951226.doc -24-
腿639㈤ 當經由對一些其他狀態變數的改變使得一先前未使用的 映射/階段變成“已使用,,的時候’設定該等次群組追蹤位 元1 7 4。關於該後者’例如由於一相關的狀態改變(例如一 基礎狀態改變),一紋理混合或紋理映射會變成‘‘已使用”。 對於該基元1 6 2所相交的每個槽1 2 8 (步驟2 3 2)’與該槽 1 2 8有關的該紋理映射及/或混合次群組追縱位元1 7 4會被 檢查(步驟2 3 4)。假如該追蹤位元1 7 4係設定(步驟2 3 6), 該等映射/階段會被檢查(步驟2 3 8 -2 4 4 )。假如在一紋理映 射/階段中有一變化(步驟240),該紋理映射/階段會輸出到 該槽128 (步騾242)。該下個紋理映射/階段接著會被檢查 (步驟244)。例如,假如該紋理混合狀態追蹤位元(i)係被 設定(步驟2 3 6 ),則該已經改變的特定紋理混合階段會輸 出到該槽1 2 8。特別地,假如該紋理混合階段0改變,該紋 理混合階段1係被輸出。假如該紋理混合階段1改變,該紋 理混合階段2會被輸出。假如該紋理混合階段2已經達到其 最後階段,則該紋理混合階段3會被輸出等等。該紋理混 合狀態追蹤位元然後會被清除(步驟246)。 假如該紋理映射狀態追蹤位元⑴係被設定(步騾2 3 2), 然後該已經改變的特定紋理映射會被輸出到該槽1 28。特 別地,假如該紋理映射[0 ]係改變,該紋理映射〇會被輸 出。假如該紋理映射[1 ]係改變,該紋理映射1會被輸出。 假如该紋理映射[2 ]係改變’該紋理映射2會被輸出。假如 該紋理映射[3]係改變,該紋理映射3會被輸出等等。該紋 理映射狀態追蹤位元接著會被清除(步驟2 4 6 )。 假如一追縱位元174沒有指示一改變,該基元ι62會被繪 82652-951226.doc -25-
1281639 ㈤ 製,且清除該個自紋理混合階段或紋理映射/階段追蹤位 元而沒有將該非要求的狀態輸出到該槽1 2 8。 現在根據本專利條例的要求已經描述本發明,熟悉該項 技藝者應了解如何對本發明做出改變及調整,以符合他們 特定的要求或狀況。該等改變及調整要在不達背如下面的 申請專利範圍中所提出的本發明的範圍及精神下進行。 圖式簡單說明 圖1說明一電腦系統的實施例的方塊圖,包含一用於區 域繪圖的深度窝入抑制的圖像裝置的實施例。 圖2說明一圖像裝置的實施例的方塊圖,包含一用以處 理一含有差值(delta)狀態的場景輸入清單的圖像槽化引 擎、圖像繪圖引擎及槽。 圖3說明一區域繪圖器螢幕視界的實施例的描述,包含 區域及幾何基元。 圖4說明一動態狀態次群組及單一槽追縱位元的實施例 的方塊圖。 圖5說明一用以輸出在將一基元放置在一槽中之前,所 要求狀態的任何變化的方法,以及說明一用以在該區域繪 圖的場景抓取(capture)相位期間,使用該儲存的目前動態 狀態及該單一槽追蹤位元向量來有效管理狀態變化的方 法的實施例的流程圖。 圖6說明一用以最佳化偵測所要求的紋理映射及紋理混 合階段的實施例的流程圖。 圖式代表符號說明 100 電腦系統 82652-951226.doc -26-
1281639 ㈤ 102 中 央 處 理 器 104 圖 像 及 記 憶 體 控 制 器 106 圖 像 裝 置 108 記 憶 體 110 繪 圖 快 取 區 112 共 同 匯 流 排 114 顯 示 裝 置 120 一 區 域 繪 圖 系 統 122 驅 動 器 24(124) 場 景 輸 入 清 單 125 圖 像 槽 化 引 擎 環 狀 緩 衝區 126 圖 像 槽 化 引 擎 128 槽 130 槽 指 示 器 清 單 132 a 前 槽 指 示 器 134 一 連 串 指 令 批 次 緩 衝 區 136 圖 像 繪 圖 引 擎 138 場 景 繪 圖 清 單 158 編 號 S之回收頁面 140 槽 記 憶 體 池 142 槽 指 示 器 144 BMP環 狀 緩 衝 區 146 可 用 白 由 頁 面 148 未 決 場 景 計 數 器 156 路 徑 82652-951226.doc -27 麗639 (24) 157 圖 像 繪 圖 引 擎 環 狀 緩 衝區 160 實 施 例 162 幾 何 基 元 164 區 域 174 單 一 槽 追 蹤 位 元 176 基 礎 狀 態 次 群 組 178 紋 理 狀 態 次 群 組 180 紋 理 混 合 次 群 組 184 緩 慢 狀 態 指 示 器 次 群 組
82652-951226.doc 28-

Claims (1)

  1. 拾“、:电請專利薦圍
    1· 一種用以管理繪圖基元的狀態變數之方法,包含: 定義複數個用以儲存指令及與該等基元有關的目前 狀態資訊的記憶體區域; 定義與該等基元有關的狀態變數; 將狀態變數排序到複數個次群組; 將該複數個記憶體區域的每一個與複數個追蹤位元 相關連,其中每個追縱位元係與一次群組及該複數個 $己憶體區域之一有關; 因該等基元指令係事先地輸出到該記憶體區域,設 定該追蹤位元以回應在一狀態變數的變化;及 將與該次群組有關的目前狀態資訊輸出到該複數個 記憶體區域之一,以回應被設定的該追蹤位元。 2.如申請專利範圍第1項之方法,尚包含: 在該目前狀態資訊已經輸出到該複數個記憶體區域 之一之後,清除該追縱位元。 3·如申請專利範圍第1頊之方法,其中將狀態變數排序到 複數個次群組,尚包含: 排序與基礎狀態資訊有關的狀態變數。 4·如申請專利範圍第1項之方法,其中將狀態變數排序到 複數個次群組,尚包含: 排序與紋理映射函數有關的狀態變數。 5·如申請專利範圍弟1項之方法,其中將狀態變數排序到 複數個次群組,尚包含: 82652-951226.doc 1281639 排序與紋理混合函數有關的狀態變數。 6. 如申請專利範圍第1項之方法,其中將狀態變數排序到 複數個次群組,尚包含: 排序與緩慢狀態函數有關的狀態變數。 7. 如申請專利範圍第1項之方法,其中因該等基元指令係 事先地輸出到該記憶體區域,設定該追蹤位元以回應 在一狀態變數的變化,尚包含: 決定一狀態變化是否已經發生; 決定哪個次群組係與該狀態變化有關; 決定該狀態變數的一新值及先前值;及 假如該新值及先前值係不同,則設定該對應的次群 組追蹤位元。 8. 如申請專利範圍第1項之方法,尚包含: 定義複數個用以儲存狀態資訊的額外記憶體區域; 定義一針對該複數個額外記憶體區域的參考;及 將選擇的狀態群組資訊儲存到該複數個額外的記憶 體區域。 9. 如申請專利範圍第8項之方法,其中將與該次群組有關 的目前狀態資訊輸出到該複數個記憶體區域之一,以 回應被設定的該次群組,尚包含: 當該追縱位元係設定時’將與該次群組有關的參考 輸出到該複數個記憶體區域之一;及 基於該參考,擷取出儲存在繪圖期間,該複數個額 外的記憶體區域中的參考資訊。 10. 如申請專利範圍第9項之方法,其中將選擇的狀態群組 82652-951226.doc 1281639 資訊儲存到該額外的記憶體區域,尚包含: 將與緩慢狀態函數有關的狀態變數儲存到該複數個 額外的記憶體區域。 11·如申請專利範圍第1 0項之方法,其中定義一用於該額 外記憶體區域的參考,尚包含: 將一指示器定義至該額外記憶體區域,緩慢狀態資 訊係儲存於此處。 12. —種用以繪圖一包含基元的場景的裝置,包含: 複數個與區域有關的槽化記憶體區域,該等區域係 被基元分割; 一追蹤記憶體區域,用以儲存從基元指令在先前輸 出到該等記憶體區域後有被影響的狀態變數的指示 备, 一槽化引擎,負貴回應該追蹤指示器,用以槽化狀 態變數的目前狀態資訊;及 一繪圖引擎,用以繪圖儲存在該等記憶體區域中的 目前資訊。 13·如申請專利範圍第1 2項之裝置,其中該目前資訊包含 從基元指令先前輸出到該等記憶體區域後,已經改變 的狀態變數。 14. 如申請專利範圍第1 2項之裝置,其中該目前資訊包含 一參考。 15. 如申請專利範圍第1 3項之裝置,其中該等狀態變數係 與至少一狀態群組有關。 16·如申請專利範圍第1 5項之裝置,其中該至少一狀態群 82652-951226.doc
    1281639 組包含基礎狀態函數。 17. 如申請專利範圍第1 5項之裝置,其中該至少一狀態群 組包含紋理映射函數。 18. 如申請專利範圍第1 5項之裝置,其中該至少一狀態群 組包含紋理混合函數。 19. 如申請專利範圍第1 5項之裝置,其中該至少一狀態群 組包含緩慢狀態函數。 20. 如申請專利範圍第1 2項之裝置,其中該追蹤資訊包含 複數個追蹤位元,其中每個追蹤位元係與一槽化記憶 體區域及一次群組有關。 21. 如申請專利範圍第1 2項之裝置,其中一追蹤記憶體區 域,其用以儲存從基元指令在先前輸出到該等記憶體 區域後有被影響的狀態變數的指示器,尚包含: 一追蹤記憶體區域,其用以儲存從基元指令在先前 輸出到該等記憶體區域後有被影響的狀態變數的指示 器。 22.如申請專利範圍第1 2項之裝置,其中一追蹤記憶體區 域,其用以儲存從基元指令在先前輸出到該等記憶體 區域後有被影響的狀態變數的指示器,尚包含: 一追蹤記憶體區域,其用以儲存從基元指令在先前 輸出到該等記憶體區域後有被使用的狀態變數的指示 器0 23. 如申請專利範圍第1 4項之裝置,尚包含: 複數個額外的記憶體區域。 24. 如申請專利範圍第23項之裝置,其中該複數個額外的 82652-951226.doc
    1281639 記憶體區域儲存緩慢狀態變數。 25. 如申請專利範圍第24項之裝置,其中該參考包含一指 示器,用以指示該額外的記憶體區域。 26. 如申請專利範圍第2 5項之裝置,其中該槽化引擎係回 應該追蹤指示器,槽化在該複數個槽化記憶體區域之 一中的參考。 27. 如申請專利範圍第26項之裝置,其中該繪圖引擎使用 該參考以從該複數個額外的記憶體區域中之至少一個 擷取出緩慢狀態資訊。 28. —種機器可讀式媒體,其具有在其中儲存複數個可由 一處理器所執行的機器可讀式指令,以管理用以繪圖 基元的狀態,該等機器可讀式指令包含: 用以定義複數個用以儲存與該等基元有關的指令及 目前狀態資訊的記憶體區域之指令; 用以定義與該等基元有關的狀態變數之指令; 用以將狀態變數排序成複數個次群組之指令; 用以將該複數個記憶體區域的每一個與複數個追蹤 位元相關連之指令,其中每個追縱位元係與一次群組 及該複數個記憶體區域之一有關; 用以從該等基元指令在先前輸出到該記憶體區域, 回應在一狀態變數中的變化,以設定該追蹤位元之指 令;及 用以回應正被設定的該追縱位元,將與該次群組有 關的目前狀態資訊輸出到該複數個記憶體區域之一之 指令。 82652-951226.doc
    1281639 29·如申請專利範圍第2 8項之機器可讀式媒體,尚包含: 用以在該目前狀態資訊已經輸出到該複數個記憶體 區域之一之後,清除該追蹤位元之指令。 30·如申請專利範圍第2 8項之機器可讀式媒體,其中用以 將狀態變數排序到複數個次群組之指令,尚包含: 用以排序與基礎狀態資訊有關的狀態變數之指令。 31. 如申請專利範圍第2 8項之機器可讀式媒體,其中用以 將狀態變數排序到複數個次群組之指令,尚包含: 用以排序與紋理映射函數有關的狀態變數之指令。 32. 如申請專利範圍第28項之機器可讀式媒體,其中用以 將狀態變數排序到複數個次群組之指令,尚包含: 用以排序與紋理混合函數有關的狀態變數之指令。 33·如申請專利範圍第2 8項之機器可讀式媒體,其中用以 將狀態變數排序到複數個次群組之指令,尚包含: 用以排序與緩慢狀態函數有關的狀態變數之指令。 34. 如申請專利範圍第2 8項之機器可讀式媒體,其中用以 從該等基元指令在先前輸出到該等記憶體區域,回應 在一狀態變數中的改變,以設定該追蹤位元之指令, 尚包含: 用以決定一狀態變化是否已經發生之指令; 用以決定哪個次群組係與該狀態變化有關之指令; 用以決定該狀態變數的一新值及先前值之指令;及 用以假如該新值與該先前值不同,則設定該對應的 次群組追蹤位元之指令。 35. 如申請專利範圍第28項之機器可讀式媒體,尚包含: 82652-951226.doc 1281639 用以定義複數個用以儲存狀態資訊的額外記憶體區 域之指令; 用以定義一供該等複數個額外的記憶體區域的參考 之指令;及 將選擇狀態群組資訊儲存到該等複數個額外的記憶 體區域之指令。 36.如申請專利範圍第3 5項之機器可讀式媒體,其中用以 回應正在設定的次群組,將與該次群組有關的目前狀 態資訊輸出到該等複數個記憶體區域之一之指令,尚 包含: 用以當該追蹤位元係設定的時候,將與該次群組有 關的參考輸出到該等複數個記憶體區域之一之指令;及 基於該參考,用以擷取在繪圖期間儲存在該等複數 個額外的記憶體區域之一中的參考資訊之指令。 37·如申請專利範圍第3 6項之機器可讀式媒體,其中用以 將選擇狀態群組資訊儲存到該額外的記憶體區域内之 指令,尚包含: 用以將與緩慢狀態函數有關的狀態變數儲存到該複 數個額外的記憶體區域内之指令。 38.如申請專利範圍第3 7項之機器可讀式媒體,其中用以 定義一該額外的記憶體區域的參考之指令,尚包含: 用以定義一指示器,指示該緩慢狀態資訊所儲存的 額外記憶體區域之指令。 82652-951226.doc 1281639 第091137284號專利申請案 中文圖式替換頁(95年12月) 120 ?1嶙鄴A SS ^ ·! 125- +、丨 雜^霧 > >净米 126 130. 1 1 fro s- 144, 156- 148 通2 $ρ 146 V #an 140· '136 158 鵷 _ m ^5»; 7^> 鵜丨 鱗丨 冰: T^hN m 鎵一 zop;PR.TCS:· 126〜淼0 134-
    TIMi 鵷#fH
    鵜 • 雜 • 镰 τ^> 15¾ 1PV …孽一 舍丨 客: | _ • 命; -157 跸 Λ Μ 端 端 ?: 1—i 4 跸: 4 擗丨 鲜丨 ! m- 茹 — »—» 〇 〇! 1281639 第091137284號專利申請案 中文圖式替換頁(95年12月) %年(2月%日修(楚)正替換頁
    160
    r 174
    1281639 第091137284號專利申請案 中文圖式替換頁(95年12月)
    圖6 1281639 险、(一)、.本案指皮代表圖為:第_2__圖 爱議;:讀龜 .ο·,·.,;-;::Λ -v:0-^'*·>:Κί^·;·:·:·^:·:ν::;·:·:-:·':·.';·<;>-:.^'·ν;^^ (二)、本代表圖之元件代表符號簡單說明: 120 一 區 域 繪 圖 系 統 122 驅 動 器 24(124) 場 景 輸 入 清 單 125 圖 像 槽 化 引 擎 環 狀 緩 衝 區 126 圖 像 槽 化 引 擎 128 槽 130 槽 指 示 器 清 單 132 目 前 槽 指 示 器 134 一 連 串 指 令 批 次 緩 衝 區 136 圖 像 !會 圖 引 擎 138 場 景 繪 圖 清 單 158 編 號 S之回收頁面 140 槽 記 憶 體 池 142 槽 指 示 器 144 BMP環 狀 緩 衝 區 146 可 用 白 由 頁 面 148 未 決 場 景 計 數 器 156 路 徑 157 圖 像 繪 圖 引 擎 環 狀 緩 衝 區
    柒、若有4匕學式時_,讀_^最能餐明特a的牝學式 82652-951226.doc
TW091137284A 2001-12-31 2002-12-25 Method for managing state variables for rendering primitives, apparatus for rendering a scene including primitives, and machine readable medium TWI281639B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/039,007 US6738069B2 (en) 2001-12-31 2001-12-31 Efficient graphics state management for zone rendering

Publications (2)

Publication Number Publication Date
TW200303495A TW200303495A (en) 2003-09-01
TWI281639B true TWI281639B (en) 2007-05-21

Family

ID=21903146

Family Applications (1)

Application Number Title Priority Date Filing Date
TW091137284A TWI281639B (en) 2001-12-31 2002-12-25 Method for managing state variables for rendering primitives, apparatus for rendering a scene including primitives, and machine readable medium

Country Status (8)

Country Link
US (2) US6738069B2 (zh)
EP (1) EP1461774A1 (zh)
JP (1) JP4076502B2 (zh)
KR (1) KR100635437B1 (zh)
CN (1) CN1287330C (zh)
AU (1) AU2002367349A1 (zh)
TW (1) TWI281639B (zh)
WO (1) WO2003058557A1 (zh)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7173627B2 (en) * 2001-06-29 2007-02-06 Intel Corporation Apparatus, method and system with a graphics-rendering engine having a graphics context manager
US6738069B2 (en) * 2001-12-31 2004-05-18 Intel Corporation Efficient graphics state management for zone rendering
US7385608B1 (en) * 2003-12-31 2008-06-10 3Dlabs Inc. Ltd. State tracking methodology
GB0425204D0 (en) * 2004-11-15 2004-12-15 Falanx Microsystems As Processing of 3-dimensional graphics
US8284204B2 (en) * 2006-06-30 2012-10-09 Nokia Corporation Apparatus, method and a computer program product for providing a unified graphics pipeline for stereoscopic rendering
KR100762811B1 (ko) * 2006-07-20 2007-10-02 삼성전자주식회사 하프 플레인 에지 함수를 이용한 타일 비닝 방법 및 시스템
US20080055327A1 (en) * 2006-09-06 2008-03-06 Barinder Singh Rai Highly Efficient Display FIFO
US7880747B1 (en) * 2006-12-13 2011-02-01 Nvidia Corporation Blend optimizations that are conformant to floating-point rules
GB2461900B (en) * 2008-07-16 2012-11-07 Advanced Risc Mach Ltd Monitoring graphics processing
GB0823254D0 (en) * 2008-12-19 2009-01-28 Imagination Tech Ltd Multi level display control list in tile based 3D computer graphics system
US8786619B2 (en) * 2011-02-25 2014-07-22 Adobe Systems Incorporated Parallelized definition and display of content in a scripting environment
KR101136737B1 (ko) 2011-10-07 2012-04-19 (주)넥셀 그래픽 처리방법 및 그 장치
KR101953133B1 (ko) * 2012-02-27 2019-05-22 삼성전자주식회사 렌더링 장치 및 그 방법
US10169906B2 (en) * 2013-03-29 2019-01-01 Advanced Micro Devices, Inc. Hybrid render with deferred primitive batch binning
US10957094B2 (en) 2013-03-29 2021-03-23 Advanced Micro Devices, Inc. Hybrid render with preferred primitive batch binning and sorting
US9659393B2 (en) * 2013-10-07 2017-05-23 Intel Corporation Selective rasterization
US9710881B2 (en) 2014-04-05 2017-07-18 Sony Interactive Entertainment America Llc Varying effective resolution by screen location by altering rasterization parameters
US10068311B2 (en) 2014-04-05 2018-09-04 Sony Interacive Entertainment LLC Varying effective resolution by screen location by changing active color sample count within multiple render targets
US9865074B2 (en) 2014-04-05 2018-01-09 Sony Interactive Entertainment America Llc Method for efficient construction of high resolution display buffers
US9710957B2 (en) 2014-04-05 2017-07-18 Sony Interactive Entertainment America Llc Graphics processing enhancement by tracking object and/or primitive identifiers
US9652882B2 (en) 2014-04-05 2017-05-16 Sony Interactive Entertainment America Llc Gradient adjustment for texture mapping for multiple render targets with resolution that varies by screen location
US9836816B2 (en) 2014-04-05 2017-12-05 Sony Interactive Entertainment America Llc Varying effective resolution by screen location in graphics processing by approximating projection of vertices onto curved viewport
US10783696B2 (en) 2014-04-05 2020-09-22 Sony Interactive Entertainment LLC Gradient adjustment for texture mapping to non-orthonormal grid
US9495790B2 (en) 2014-04-05 2016-11-15 Sony Interactive Entertainment America Llc Gradient adjustment for texture mapping to non-orthonormal grid
US11302054B2 (en) 2014-04-05 2022-04-12 Sony Interactive Entertainment Europe Limited Varying effective resolution by screen location by changing active color sample count within multiple render targets
EP3129958B1 (en) 2014-04-05 2021-06-02 Sony Interactive Entertainment LLC Method for efficient re-rendering objects to vary viewports and under varying rendering and rasterization parameters
US9940686B2 (en) 2014-05-14 2018-04-10 Intel Corporation Exploiting frame to frame coherency in a sort-middle architecture
GB2526598B (en) * 2014-05-29 2018-11-28 Imagination Tech Ltd Allocation of primitives to primitive blocks
KR102482874B1 (ko) 2015-09-11 2022-12-29 삼성전자 주식회사 렌더링 장치 및 방법
KR102644276B1 (ko) 2016-10-10 2024-03-06 삼성전자주식회사 그래픽 처리 장치 및 방법

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6469704B1 (en) * 1999-01-19 2002-10-22 Hewlett-Packard Company System and method for combined execution of graphics primitive data sets
US6344852B1 (en) * 1999-03-17 2002-02-05 Nvidia Corporation Optimized system and method for binning of graphics data
US6384833B1 (en) * 1999-08-10 2002-05-07 International Business Machines Corporation Method and parallelizing geometric processing in a graphics rendering pipeline
US6819321B1 (en) 2000-03-31 2004-11-16 Intel Corporation Method and apparatus for processing 2D operations in a tiled graphics architecture
KR100550240B1 (ko) 2000-03-31 2006-02-08 인텔 코오퍼레이션 타일형 그래픽스 아키텍쳐
US6741243B2 (en) 2000-05-01 2004-05-25 Broadcom Corporation Method and system for reducing overflows in a computer graphics system
US6557083B1 (en) * 2000-06-30 2003-04-29 Intel Corporation Memory system for multiple data types
US6567084B1 (en) * 2000-07-27 2003-05-20 Ati International Srl Lighting effect computation circuit and method therefore
US6738069B2 (en) * 2001-12-31 2004-05-18 Intel Corporation Efficient graphics state management for zone rendering

Also Published As

Publication number Publication date
TW200303495A (en) 2003-09-01
KR20040072694A (ko) 2004-08-18
EP1461774A1 (en) 2004-09-29
AU2002367349A1 (en) 2003-07-24
JP4076502B2 (ja) 2008-04-16
CN1610926A (zh) 2005-04-27
WO2003058557A1 (en) 2003-07-17
US20030122833A1 (en) 2003-07-03
US6738069B2 (en) 2004-05-18
JP2005514711A (ja) 2005-05-19
CN1287330C (zh) 2006-11-29
US20040160450A1 (en) 2004-08-19
KR100635437B1 (ko) 2006-10-19

Similar Documents

Publication Publication Date Title
TWI281639B (en) Method for managing state variables for rendering primitives, apparatus for rendering a scene including primitives, and machine readable medium
US10621775B2 (en) Untransformed display lists in a tile based rendering system
JP5053857B2 (ja) 3次元グラフィックス処理装置および方法
EP1461773B1 (en) Automatic memory management for zone rendering
US8659589B2 (en) Leveraging graphics processors to optimize rendering 2-D objects
US10380712B2 (en) Graphics processing
CN108701367B (zh) 单遍次包围体阶层光栅化
US10432914B2 (en) Graphics processing systems and graphics processors
US7791601B2 (en) Efficient object storage for zone rendering
US8907979B2 (en) Fast rendering of knockout groups using a depth buffer of a graphics processing unit
US6762765B2 (en) Bandwidth reduction for zone rendering via split vertex buffers
TW201701233A (zh) 一種電腦系統、繪圖處理單元及其繪圖處理方法
US10269168B2 (en) Graphics processing systems
CN104050619A (zh) 具有共享边缘的模板然后覆盖路径渲染
US20030123089A1 (en) Graphics state bandwidth reduction for zone rendering
US20230401667A1 (en) Graphics processing systems
CN118012316A (zh) 用于地图交互的方法和装置

Legal Events

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