TWI363312B - Shader, computer system, graphics processing integrated circuit, graphics processing unit and computer readable medium associated with shader and method of operating shader - Google Patents
Shader, computer system, graphics processing integrated circuit, graphics processing unit and computer readable medium associated with shader and method of operating shader Download PDFInfo
- Publication number
- TWI363312B TWI363312B TW094111547A TW94111547A TWI363312B TW I363312 B TWI363312 B TW I363312B TW 094111547 A TW094111547 A TW 094111547A TW 94111547 A TW94111547 A TW 94111547A TW I363312 B TWI363312 B TW I363312B
- Authority
- TW
- Taiwan
- Prior art keywords
- shader
- pixel data
- pipeline
- pipelines
- rasterized
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
- Image Processing (AREA)
- Advance Control (AREA)
Description
1363312 100年12月2日修正替換本 玖、發明說明: 【發明所屬之技術領域】 本發明關於電腦系統,更特定而言係關於電腦遮影。 【先前技術】 圖形處理爲現今局效能運算之重要特徵。在圖形處理 中,使用數學程序來描繪或繪製圖形基元(例如一三角形或 一長方形)在一顯示器上來產生所想要的視覺影像。即時圖 形處理係基於筒速處理圖形基兀來產生視覺上平順的移動 影像。 早期的圖形系統係限制在顯不包含了具有平滑表面之 圖形基元的影像物件。也就是說,在圖形基元中並未建構 了視覺材質、凸塊、刮痕、或其它表面特徵。爲了加強影 像品質,而引進了實體世界屬性之材質映射。槪言之,材 質映射爲映射一影像到一圖形基元表面上來產生一複雜影 像的外觀,而不需要描繪一物體的實際三維細節相關的高 運算成本。 圖形處理基本上係使用應用程式介面(API)來執行,其 可提供一種標準軟體介面來在多種平台、作業系統及硬體 上來運行。API的範例包括開放圖形庫(OpenGL®)及 D3DTM。槪言之,這些開放應用程式包括可由相關硬體來 執行的一組預定及標準化的指令。舉例而言,在支援 OpenGL®標準的電腦系統中,作業系統及應用軟體程式可 以根據該標準來進行呼叫’而不需要知道關於系統硬體之 7 1363312 100年12月2日修正替換本 任何規格。應用軟體開發者可以使用API來設計他們的應 用程式之視覺效果,而不需要考慮到他們的指令是如何執 行的。 API在當其由專屬硬體所支援時會特別有效。實際 上,圖形影像的高速處理通常是使用於半導體基板上所製 造的特殊圖形處理單元(GPU)來執行。有用的是,GPU可 被設計用來快速及準確地處理指令,而對於其它系統資源 只有少數影響》 第1圖所示爲包含有一圖形處理單元102之圖形系統 1〇〇之簡化的方塊圖。如所知,該圖形處理單元102具有 一主控介面/前端104。該主控介面/前端104由正在執行一 儲存在記億體105中的應用程式之一中央處理單元103來 接收一原始圖形資料。該主控介面/前端140會緩衝化輸入 資訊,並提供該資訊給一幾何引擎1 06。該幾何引擎可透 過一訊框緩衝介面116來存取到一訊框緩衝記憶體120。 該幾何引擎106會產生、縮放、旋轉及投影儲存在該訊框 緩衝記憶體1 20中的「模型」座標中圖形基元的三維頂點 成爲二維的訊框緩衝座標。基本上,對於三維物體係使用 三角形做爲圖形基元,而通常對於二維物體使用長方形(例 如文字顯示)。 來自幾何引擎106之圖形基元的頂點之二維訊框緩衝 座標可應用到一光柵器108。該光柵器108可辨識在該等 圖形基元中所有像素的位置。此基本上係沿著定義了該等 8 1363312 100年12月2日修正替換本 圖形基元之直線之間延伸的光柵(水平)線來進行。光栅器 1 08之輸出即稱之爲光柵化的像素資料。 該光柵化的像素資料即應用到處理輸入資料(編碼 '位 置、材質、條件、常數等)的一遮影器110,其使用一遮影 器程式(指令序列)來產生輸出資料。當遮影器以關於圖形 處理的方式來說明時,槪言之遮影器即可用於許多其它功 能。遮影器可以視爲能夠同時處理大量資料的處理能力之 集合,例如藉由資料的平行處理。 遮影器110包括一材質引擎112,其可修正該光柵化 的像素資料來具有所要的材質與光學特徵。該材質引擎 112可以存取到儲存在訊框緩衝記億體〗20中的資料,其 可使用以非常高速處理大量資料之硬體管線來實施。然後 遮影的像素資料即傳送到一光栅作業處理器114(在第1圖 中的光柵作業處理器(Raster op)),其可依需要對於遮影的 像素資料執行額外的處理。其結果爲像素資料由該訊框緩 衝介面1 1 6儲存在訊框緩衝記憶體1 2 0。該訊框像素資料 可以用於多種處理,例如可顯示在一顯示器122上。 可程式化的遮影器可提供可達到之視覺效果當中的彈 性’並可降低使得一圖形功能發展出來及該功能成爲一圖 形API之一部份的標準化之間的時間。可程式的遮影器可 具有一標準API模型,其中實施了標準的圖形API指令, 並具有可程式化新的圖形特徵的一非標準模式。 當遮影器已被證明非常有用時,對於遮影器效能的需 求已經超過了既有遮影器之能力。當改良的既有遮影器可 9 1363312 100年12月2日修正替換本 以處理其中的一些需求時’這些改善將很難實現。再者, 可以預期有未來的需求會超過了藉由改善既有之遮影器架 構及實施所能達到的能力。因此’一種新的遮影器架構將 會非常有用。甚至可以進行軟體程式化圖形特徵的一種新 式、高效能可程式化的遮影器架構可具有更多的好處。同 時亦較佳地是一種新式、高效能可程式化遮影器架構,其 可依需要來擴充,以滿足遮影器效能需求,其亦可擴充來 達到先進的圖形功能。 此外,因爲GPU爲大型、複雜的半導體裝置,其係以 高速運作,並會產生大量的熱能,而因爲一遮影器可代表 了 GPU —大部份,遮影器不足之處造成了排拒GPU晶片 當中很大的比例。一種遮影器架構具有致能及除能一遮影 器的功能性部份之能力,而仍然可提供遮影器處理功能 者,將會非常有用。 【發明內容】 本發明的原理係提供新式、有用及非顯性可擴充遮影 器架構。這種遮影器架構可以依照需要向上或向下擴充來 滿足效能需求,並可提供具有降低或增進效能之系統。 本發明之原理的一些具體實施例可做成高效能可程式 遮影器的型式’其中包括多個遮影器管線,其中每一個皆 可被程式化來對於光柵化的像素資料執行資料處理作業。 有用地是’該遮影器管線皆相同,它們可被獨立地程式化, 10 1363312 100年12月2曰修正替換本 個別的遮影器管線可被除能,而即使除能了 一或多個遮影 器管線,仍可執行遮影器處理作業。 在本發明的具體實施例中,一遮影器分散器可分散光 柵化的像素資料到多個遮影器管線中,對於一種平衡的方 式很有用,使得遮影器管線的工作負荷皆類似。但是’如 果要有效的話,一或多個遮影器管線可在功能上被除能’ 藉此避免造成一非功能性的晶片而成爲遮影器管線中的一 個缺陷。一遮影器收集器可以收集及組織化遮影器管線之 輸出,所以它們即具有適當的順序,而造成具有形狀的像 素資料。一遮影器指令處理器可以依需要來程式化個別的 遮影器管線,藉以執行其處理工作。本發明的一些具體實 施例包括一個以上的遮影器指令處理器。 每個遮影器管線包括一閘維持者來與遮影器分散器與 遮影器指令處理器互動,使得傳送通過遮影器管線之像素 資料可受到控制,並依需要來處理。 【實施方式】 本發明的原理係提供一種新式、可擴充、及可程式化 的遮影器架構。根據那些原理之遮影器架構包括多個遮影 器管線,其可被程式化來對於光柵化的像素資料執行處理 作業,以產生具形狀的像素資料。一或多個遮影器管線可 以在功能上被除能,而仍然可以維持該遮影器的功能性。 此即可降低對於晶片的排斥,並允許藉由簡易地調整在一 給定晶片中可用之管線數目來實施成較低或較高效能的晶 1363312 100年12月2日修正替換本 片。這種遮影器架構包括一遮影器分散器,其可應用到光 柵化的像素資料,雖然是處理過的光柵化像素資料,而分 散到多個遮影器管線,其好處在於可以平衡它們的工作負 荷。一遮影器收集器可收集與組織化該遮影器管線輸出成 爲適當的順序來產生具有形狀的像素資料。一遮影器指令 處理器(排程器)程式化該個別遮影器管線來執行它們所要 做的工作。一些具體實施例可以利用多個遮影器指令處理 器’例如對於每個遮影器管線具有一個遮影器指令處理器。 每個遮影器管線可被程式化來執行一組特殊的程式命 令來實施多種處理作業(一程式)。那些命令可以包括分支 指令、材質處理、及使用浮點、定點及/或整數値之數學運 算。每個遮影器管線包括一遮影器閘道控制器來與遮影器 分散器與遮影器指令處理器互動,使得傳送通過遮影器管 線之資料可依需要來處理。 爲了更佳瞭解此新式的遮影器架構,較有幫助地是更 爲詳細地瞭解其功能。請回頭參考第1圖,輸入到一遮影 器者爲在該圖形系統中所使用之圖形基元的頂點之二維顯 示座標値。再者,該材質站台112可此存取在該訊框緩衝 器120中的資料。基本上(但非絕對)那些圖形基元皆爲三 角形。舉例而言,第2A圖所示爲定義了一圖形基元三角 形202之頂點的座標(〇,〇), (1,〇),及(1,1)。如果使用長方 形,在該圖形基元中將包括額外的座標(0,1)。但是,除了 像是文字的二維物體,皆較常使用三角形。 1363312 100年12月2日修正替換本 —旦已經知道三角形202之頂點201,在該圖形基元 內的像素即被決定,因爲它們爲位在形成圖形基元之直線 210之間的像素。通常這些像素係沿著光柵掃描線來組織 化。舉例而言,第2B圖所示爲在由掃描線299所對準之 三角形2 02之內的複數個像素298。 第3圖爲具有根據本發明之原理的架構之一遮影器 300的高階方塊圖。該遮影器300代表了第1圖中總稱遮 影器110之一新式、有用且不明顯的具體實施例。遮影器 300的目的是要將光柵化的像素資料(具有每個段落之原 始Χ,γ,及每個頂點屬性之平面等式,例如顏色、深度、 材質及座標等)’由該光柵器108成爲要傳送到該訊框緩衝 器之每個像素的適當顏色及深度値。爲達此目的,遮影器 3 00執行大量的運算來解出關於圖形API功能及關於應用 程式命令之數學公式,以產生所想要的色彩及深度數値, 來形成具有形狀的像素資料。在以光柵器運算處理器進行 額外處理之後,該遮影的像素資料即轉換成訊框像素資 料,其係由訊框緩衝介面1 1 6儲存在訊框記憶體1 20中(請 參見第1圖)。 遮影器300之明顯的特徵爲其多個遮影器管線3 〇2。 每個遮影器管線302可透過儲存在訊框緩衝記憶體12〇巾 的程式資訊來進行個別的程式化,以對於光柵化的像素資 料來執行數學及其它處理作業以產生遮影的像素資料。遮 影器300係顯示成具有四個遮影器管線3 02,槪言之,其 可具有1到N個遮影器管線302,其中N爲整數。此可擴 13 1363312 - ' j 100年12月2日修正替換本 充性可用於簡單地加入/縮減遮影器管線來控制遮影器處 理能力。再者,這種可擴充性可使得遮影器管線3 02具有 冗餘性,藉此使其能夠功能性地除能有缺陷的遮影器管線 3〇2’而仍能維持遮影器300之整體運作。因爲遮影器管線 302較佳地是皆相同,只是相當簡單的工作就可以依需要 製造額外的遮影器管線3 02,因爲可使用相同的工作及半 導體製程。 遮影器300亦包括一遮影器分散器304。遮影器分散 器3 04之一個功能爲由該光柵器108分散資訊(光柵化的像 素資料)到不同的遮影器管線302,所以它們可以處理光柵 化的像素資料。較佳地是,此分散之執行方式爲提供了遮 影器管線3〇2之間平衡的工作負荷。也就是說,每個遮影 器管線3〇2執行類似的處理量,但不會對其中的某一個特 別處理。另一個遮影器分散器304之功能爲處理來自光柵 器108之資料,使得遮影器管線3 02僅接收它們所需要的 資料。 來自光柵器但不會被遮影器管線302所使用到的一部 份控制資料(稱之爲狀態資料),其被遮影器分散器304應 用到一先進先出緩衝記憶體306。除了狀態資料之外,先 進先出緩衝記憶體306亦接收X-Y座標及像素覆蓋資料, 其亦不會通過遮影器管線302。 因爲遮影器管線302獨立地處理光栅化的像素資料, 遮影器管線3 02之輸出必須被組織化,其方式爲所得到的 處理過像素資料即適當地匹配於訊框緩衝器中的像素(藉 14 100年12月2日修正替換本 由光柵器掃描線)。因此遮影器300包括一遮影器收集器 308’其可接收遮影器管線3 02之輸出,及先進先出緩衝記 億體306之輸出,也其組織化了遮影器運算的結果來產生 光柵器運算處理器11 4(ROP)之遮影的像素資料。 遮影器收集器308之輸出係透過訊框緩衝介面116應 用到該訊框緩衝記億體120,並藉此到達顯示器122。因爲 遮影器管線3 02皆可自該訊框緩衝記憶體要求資料(透過 材質請求),遮影器300亦可包括一 L2快取記憶體310來 輔助該處理。 遮影器3 00具有一根據本發明原理之遮影器架構。該 架構可提供多個且個別可程式化的遮影器管線、可分散資 料到遮影器管線之遮影器分散器、可收集遮影器管線之運 算結果之遮影器收集器,且其可組織化該遮影器管線結果 來形成ROP 114所使用的遮影的像素資料,其可進一步處 理該遮影的像素資料來形成訊框緩衝資料。當清楚了整體 架構性方案時,爲了輔助瞭解本發明的好處及應用,可對 於遮影器300進行更爲詳細的解釋。爲此目的,第4圖所 示爲遮影器300之部份400的更爲詳細的方塊圖。其必須 瞭解到該部份400僅顯示出一個遮影器管線3 02及一個排 程器,多個遮影器管線302及多個排程器整個皆依據本發 明之原理。 請參考第4圖,遮影器分散器3 04接收來自光柵器108 之資訊,然後分散光柵器串流資料及長方形光柵器串流資 訊到遮影器管線302內的遮影器閘道控制器404(在後續更 1363312 < j 100年12月2曰修正替換本 爲詳細說明)。來自光柵器108之資訊係爲兩個主要格式, 三角形平面公式資訊、其顯示成平面公式設定,及形式上 爲光柵串流資訊之三角形光柵化的像素資料。此外,因爲 遮影器300亦處理了二維的資訊,其爲參考到長方形幾何 基元之輸入,遮影器分散器304亦接收到長方形光柵化的 像素資料。 參照第3圖’遮影器分散器304之主要功能係要分散 該三角形平面公式資訊及該光柵串流資訊到個別的遮影器 管線3 02’其方式較佳地是可以平衡可用的遮影器管線3〇2 之間的遮影器管線工作負荷。也就是說,在處理上不會針 對特定的遮影器管線302,且每個具有相同的功能。這樣 基本上會造成不同的遮影器管線3 〇2可執行相同的工作。 如前所述,遮影器管線302不需要的資訊,但其爲其它目 的所需要,即由遮影器分散器304傳送到先進先出緩衝記 憶體306(請參考第3圖)。 實際上分散資料到遮影器管線3 02係在兩個階段來執 行:分段化及分散化。此至少部份是因爲每個遮影器管線 3 02 —次可以僅對有限數目的像素來執行運算。該數目通 常遠少於必須被處理來完成圖形作業之像素數目。因此, 進入的資料即被分成爲使用「段落結束」標記的部份。該 段落結束標記及其它資源限制強迫了進入的資料被切割成 稱爲「段落」之群組。 分段化爲將進入的光柵串流資訊切割成段落的步驟。 實際上有多個理由進行分段化。一個是其可以完成多個遮 16 1363312 - 1 100年12月2日修正替換本 影器管線3 02之間的負荷平衡,另一個則爲單—遮影器管 線302可以完成的工作負荷量。後者係依據在該遮影器管 線3 02內的管線處理器309可以處理的像素數目(請參考第 4圖)。該數目係由一稱之爲鎖死之條件來限制,其在後續 加以說明。可由單一遮影器管線3 02處理的像素數目亦受 限於一遮影器註冊檔案42 O(RAM)的記億體儲存能力。 除了可由管線處理器309處理的最大像素數目及一遮 影器註冊檔案之記憶體儲存能力(RAM) 420之外,有其它 實例可以限制一段落的大小。遮影器閘道控制器404具有 一有限的RAM大小。實際上,該RAM限制了可爲一段落 一部份的三角形(屬性及像素)數目。該數目係根據在該遮 影器閘道控制器4〇4 RAM中每個三角形所佔用的字元數 目而定,其動態地根據像是每個三角形所處理的材質座標 數目(及其個別的尺寸)。所處理之像素的實際數目係根據 遮影器管線之組織,及遮影器管線處理器309之可利用的 遲滞。 另一個要分段的理由爲一遮影器管線302不能重新循 環狀態集束,該資料即爲控制了遮影器管線302之作業。 因爲一狀態集束不能爲所處理資料的一部份,即需要段落 邊界及其段落。 關於分段化的問題爲資料如何組織化。在一具體實施 例中,遮影器300係對像素「四個一組」(quads)來運作, 也就是說2x2像素區塊即具有一起處理之組件。然後,即 形成四個一組的段落。但是,使用四個一組並非本發明原 1363312 100年I2月2日修正替換本 理之需要。一些具體實施例完全不會處理特定的像素群 組’但其它的可以使用在一群組中其它數目的像素,例如 三個像素群組,稱之爲「三個一組」(triads)。槪言之,— 像素群組可由1到M,其中Μ爲一整數。 分散化爲選擇遮影器管線302中的一個之作業,然後 輸送給遮影器管線302 —完整的段落,然後輸送下一個段 落到下一個遮影器管線302,依此類推。在遮影器300中(請 參見第3圖),該段落分散順序爲可運作的遮影器管線3〇2 之間的一簡單的循環指定。舉例而言,如果有四個遮影器 管線302,但僅有三個可運作,然後該分散順序係在三個 可運作的遮影器管線3〇2之間。第一個段落將會由遮影器 管線〇開始,然後下一個段落到遮影器管線1,然後下一 個再到遮影器管線2,然後再回到遮影器管線0,依此類推。 如前所述,該遮影器分散器304可以進行配置(可在運 作期間或在製造期間)來除能所選出的遮影器管線3 02。此 可使得有缺陷之遮影器管線3 02之功能可由其它遮影器管 線3 〇2來執行,並使得一製造商可以提供降低或增進效能 的裝置。因此,一有缺陷的遮影器管線302並不必要造成 排除整個半導體晶片。其可使用決定那些遮影器管線具有 功能之任何方法。舉例而言,在製造時的晶片測試、測試 程式、對於晶片或其結果之視覺檢視皆可用來辨識具有功 能的遮影器管線302。 現在請參考第3圖,除能所選擇的遮影器管線302係 關於致能遮影器管線。因爲單一三角形可以非常大,處理 18 1363312 - * · 100年12月2日修正替換本 即會橫跨多個段落。但是因爲一個遮影器管線3 02僅可在 —給定時間處理一個段落,一個大三角形必須由多個遮影 器管線3 02來處理。爲了輔助此作業,該遮影器分散器3 04 廣播三角形資訊到並未執行處理一段落之所有遮影器管線 3 02。每個接收中的遮影器管線3 02嘗試來使用該程式資訊 配置其自己,並預備來接收進入的光栅化像素資料。然後, 要處理該段落之遮影器管線302即接收該光柵化的像素資 料,並開始處理它。光柵化的像素資料係被分散到單一的 遮影器管線302。 爲了輔助實施分散化,並關閉未使用的遮影器管線 3 02,該遮影器3 00可使用一管路致能遮罩,其會通知遮影 器3 00那些遮影器管線302可以操作。這些遮罩信號可以 透過一匯流排408應用到遮影器分散器3 04。可操作的遮 影器管線3 02可使其遮罩位元設定爲1,未操作的遮影器 管線3 02則使它們的遮罩設定爲0。該遮罩信號可由跳接 開關、軟體命令、硬體接線或其它機制來應用。 配置所有未處理一段落之所有的遮影器管線具有一清 楚的好處,即如果三角形散落到另一個段落上時,該段落 即可被傳送到一已經配置的遮影器管線302。然後,藉由 驗證該三角形在一遮影器管線302上,在該段落中該三角 形的光柵資料即可被處理。此處理不僅可避免必須對於散 落到新的段落之大三角形之新的程式化資料,但其亦可使 得額外的遮影器管線302要被驗證,而不需要一複雜的機 制,而由該遮影器分散器304重新傳送段落。可用的遮影 19 1363312 -- • · 100年12月2日修正替換本 器管線302簡單地接收任何的進入段落,並等待驗證。如 果該三角形資訊並未被一遮影器管線所使用,該三角形資 訊即由該遮影器閘道控制器覆寫過去。 關於該遮影器分散器304輸出串流的一些註解將很有 用。一遮影器分散器3〇4僅傳送具有至少一個非零的像素 之三角形資訊。此機制即稱之爲無效三角形丟棄(Null Triangle Discard)。此可藉由空出一遮影器管線302之資料 而保證不會浪費處理能量的方式來改進處理作業。 在一些具體實施例中,一遮影器分散器3 04具有關於 遮影器管線3 02之程式化的功能。在那些具體實施例中, 程式化指令可由遮影器分散器304傳送到遮影器管線 302。在那些具體實施例當中,僅有一些會傳送初始的N 個(如8個)程式化指令。在這種具體實施例中,或是在其 中遮影器分散器並未傳送程式資訊到該遮影器管線302之 具體實施例中,一排程器424 (見第4圖)應用程式指令 到該遮影器管線3 02。然後該排程器424必須協調來自該 遮影器分散器304之光柵化像素資料的應用到該遮影器管 線 3 02 〇 請參考第1圖及第3圖,較佳地是該程式指令之複本 即儲存在該訊框緩衝記憶體120。該遮影器管線302之程 式化即使用分段程式來執行:小的指令可實施完整的圖形 程式之子集合。使用分段程式係因爲一遮影器管線302具 有有限的資源,其代表通常一完整的圖形程式對於直接應 用到一遮影器管線3 02會過大。因此,即形成分段程式, 20 1363312 100年12月2日修正替換本 並應用到一遮影器管線302 »舉例而言,可以得到N個(如 8個)程式指令’並轉換到一相對應的分段程式,並用於程 式化一遮影器管線3 02。在一段落由N個(如8個)指令處 理之後,實施下N個(如8個)指令之另一個分段程式即會 形成,並應用到該遮影器管線302。 如前所述,在本發明一些具體實施例中,初始的N個 指令即透過該遮影器分散器304應用。此可用一些不同的 方式來執行。舉例而言,該等初始N個指令可以傳送到該 排程器424(可直接或透過另一個機制)。然後該排程器424 即由初始的N個指令形成初始的分段程式。然後該初始分 段程式可以直接傳送到遮影器管線302。後續的分段程式 及/或該初始分段程式即可由直接或透過一些其它機制來 存取到該訊框緩衝記憶體1 20本身之遮影器處理器424所 形成。其必須注意到,當一給定的遮影器管線302僅可由 一個分段程式所程式化,不同的遮影器管線302可利用不 同的分段程式來程式化。此外,管線迴路及分支化係依需 要被執行來實施所想要的分段程式,並依順序執行分段程 式。 在所示的具體實施例中,分支化指令即附加到最後的 遮影作業結束之後。當發生一分支作業時,經由一遮影器 管線之清空的作業發生在提供了新的程式指令時。下一個 作業即在遮影器運算尾端處重新開始。此即會讀取該遮影 ts註冊檔案420之內容。當一分支作業需要兩次作業時, 1363312 __ 100年12月2日修正替換本 分支化作業即具有優點。舉例而言,大的分支區塊通常不 需要遮影器重新編譯β 現在請參考第4圖’當已知了可程式化遮影器管線 時’該遮影器300包括—創新的遮影器閘道控制器404。 該遮影器閘道控制器4〇4接收段落、三角形公式資訊、及 來自遮影器分散器304之程式資料。三角形串流資訊傳送 到所有的遮影器管線3〇2。該遮影器分散器3〇4驗證正在 處理的一三角形。 在已經處理了遮影的像素資料之後,該遮影器收集器 308可收集來自多個遮影器管線302之遮影的像素資料, 並結合了來自先進先出緩衝記億體306之X, Υ及覆蓋資料 來形成一組織化的遮影器像素資料封包。所得到的資料即 傳送到一執行了額外處理之光栅作業處理器丨1 4 ;參考到 該圖形處理單元1〇2。在光柵作業處理器處理之後,最後 的訊框像素資料即輸出到該訊框緩衝介面1丨6。 在說明如上所述之多種具體實施例時,必須瞭解到它 們之呈現僅爲示例而非限制。前述所參考到特定的數目, 例如使用到四個一組’其僅係用於解釋及例示的目的。因 此,一較佳具體實施例的精神與範圍並不是受限於任何以 上所述的範例性具體實施例,而只根據以下申請專利範圍 及其同等者所限定。 【圖式簡單說明】 22 1363312 100年12月2曰修正替換本 藉由以下本發明之較佳具體實施例的詳細說明,並參 考所附圖面,將可更爲瞭解前述以及其它的目的、方面及 好處’其中: 第1圖所示爲一先前技術圖形系統; 第2A圖所示爲一三角形幾何基元: 第2B圖所示爲具有沿著每條掃描線皆對準之像素的 一三角形幾何基元; 第3圖爲根據本發明之原理,具有多個遮影器管線之 遮影器架構的高階方塊圖;及 第4圖爲一方塊圖,說明在第3圖中所示之遮影器架 構的選出之架構特徵,但其僅顯示了多個遮影器管線中的 一個。 【主要元件符號說明】 100 圖形系統 102 圖形處理單元 103 中央處理器 1 04 主控介面/前端 105 記憶體 106 幾何引擎 108 光柵器 110 遮影器 112 材質 114 光柵作業處理器 23 1363312
116 訊 框 緩 衝 器 介 面 (FBI) 120 訊框記 憶 體 122 顯 示 器 200 未 定 義 20 1 頂 點 202 圖 形 基 元 二 角 形 2 10 直 線 298 像 素 299 掃 描 線 300 遮 影 器 302 遮 影 器 管 線 304 遮 影 器 分 散 器 306 緩 衝 記 憶 體 308 遮 影 器 收 集 器 309 管 線 處 理 站 3 10 L2 :快取記憶體 400 部 份 404 遮 影 器 閘 道 控 制 器 408 匯 流 排 420 遮 影 器 註 冊 檔 案 424 排程 器 424 遮 影 器 閘 道 控 制 器 100年12月2日修正替換本 24
Claims (1)
1363312 - ‘ 100年12月2曰修正替換本 拾、申請專利範圍: 1. 一種遮影器,其包含: 複數遮影器管線,該複數遮影器管線的每一個係 用於處理光柵化的像素資料的段落; 複數遮影器排程器,其與該些複數遮影器管線相 連接,並用於選取一圖形程式的複數部份以製造複數 個分段程式,該些分段程式每一個包括有限數目程式 指示,其控制光柵化的像素資料的段落的處理,其中, 該有限數目是根據該些複數遮影器管線的資源; 一遮影器分散器,其用於分段像素資料的光柵串 流爲有限大小的光柵化的像素資料的複數段落和選擇 性地分散光柵化的像素資料的該些段落到該複數遮影 器管線;及 一遮影器收集器,其用於收集該等遮影器管線之 結果來形成適合顯示的遮影的像素資料。 2. 如申請專利範圍第1項所述之遮影器,其中該些分段程 式包括一分支命令,其可使得至少一遮影器管線來執行一 分支作業。 3 .如申請專利範圍第1項所述之遮影器,更包括一光栅 器,其用於傳送該像素資料的光柵串流到該遮影器分散器。 4.如申請專利範圍第4項所述之遮影器,更包括在每一個 該些遮影器管線內的一記憶體儲存能力的一遮影器註冊檔 案,其中由該遮影器分散器所製造的該光柵化的像素資料 的複數段落的有限大小是根據可儲'存於該遮影器註冊檔案 25 1363312 - ‘ · 100年12月2日修正替換本 的該記憶體儲存能力中的光柵化的像素資料的數量。 5 .如申請專利範圍第1項所述之遮影器,其中該等遮影器 管線之至少一者處理該光柵化的像素資料的複數段落,以 加入材質資訊。 6. 如申請專利範圍第1項所述之遮影器,其中該等遮影器 管線之至少一者對於該光柵化的像素資料的複數段落執行 數學運算。 7. 如申請專利範圍第1項所述之遮影器,其中不同遮影器 管線被不同分段程式程式化。 8. 如申請專利範圍第1項所述之遮影器,其中在該些分段 程式中的程式指示的該有限數目爲8。 9如申請專利範圍第1項所述之遮影器,其中該遮影器分 散器基於所接收到的組態資訊,來在功能上除能該等遮影 器管線之至少一者。 1 〇申請專利範圍第9所述之遮影器,其中該遮影器分散器 藉由不分散該光柵化的像素資料的複數段落到該至少一遮 影器管線,來在功能上除能該等遮影器管線之至少一者。 1 1申請專利範圍第9所述之遮影器,其中該組態資訊識別 該至少一遮影器管線。 12.種電腦系統,包括: 一中央處理單元,其用於執行一應用程式,來使 該中央處理單元產生資料;及 一處理單元,其用於轉換該資料成爲適合顯示的 訊框緩衝像素資料,該處理單元包括一遮影器,其具 26 100年12月2曰修正替換本 有: 複數遮影器管線,每一遮影器管線用於處理 光栅化的像素資料的複數段落以製造遮影的像素 資料; 複數遮影器排程器,其與該些複數遮影器管 線相連接,並用於選取一圖形程式的複數部份以 製造複數個分段程式,該些分段程式每一個包括 有限數目程式指示,其控制光柵化的像素資料的 段落的處理,其中,該有限數目是根據該些複數 遮影器管線的資源; 一遮影器分散器,其用於分段像素資料的光 柵串流爲有限大小的光柵化的像素資料的複數段 落和選擇性地分散光柵化的像素資料的該些段落 到該複數遮影器管線;及 一遮影器收集器,其用於收集來自該些複數 遮影器管線的遮影像素資料以製造該訊框緩衝像 素資料。 1 3申請專利範圍第1 2所述之電腦系統,其中該電腦系統 包括一用於儲存該訊框緩衝像素資料之訊框緩衝記憶體。 1 4申請專利範圍第1 2所述之電腦系統,更包括一用於顯 示該訊框緩衝像素資料的顯示器。 1 5 ·如申請專利範圍第1 2所述之電腦系統,其中該些分段 程式包括一分支命令’其可使得至少一遮影器管線來執行 一分支作業。 1363312 _ * · 100年12月2日修正替換本 16. 如申請專利範圍第12所述之電腦系統,其中該處理單 元更包括一光柵器,其用於傳送該像素資料的光柵串流到 該遮影器分散器。 17. 如申請專利範圍第16項所述之電腦系統,更包括在 每一個該些遮影器管線內的一記憶體儲存能力的一遮影器 註冊檔案’其中由該遮影器分散器所製造的該光柵化的像 素資料的複數段落的有限大小是根據可儲存於該遮影器註 冊檔案的該記憶體儲存能力中的光柵化的像素資料的數 量。 18. 如申請專利範圍第12所述之電腦系統,其中該等遮影 器管線之至少一者選擇性地處理該光柵化的像素資料的複 數段落來加入材質資訊。 1 9.如申請專利範圍第1 2所述之電腦系統,其中至少—遮 影器管線選擇性地對於該光柵化的像素資料的複數段落執 行數學運算。 2〇.如申請專利範圍第1 2項所述之電腦系統統,其中該遮 影器分散器基於所接收的組態資訊在功能上除能該等遮影 器管線之至少一者。 2 1.如申請專利範圍第20項所述之電腦系統,其中該遮 影器分散器藉由不分散該光柵化的像素資料的複數段落到 該至少一遮影器管線,來在功能上除能該等遮影器管線之 至少一者。 22.如申請專利範圍第20項所述之電腦系統,其中該組態 資訊識別該至少一遮影器管線。 28 1363312 - ’ · 100年12月2日修正替換本 23. 如申請專利範圍第12項所述之電腦系統,其中不同遮 影器管線被不同分段程式程式化。 24. 如申請專利範圍第12項所述之電腦系統,其中在該些 分段程式中的程式指示的該有限數目爲8。 25. —種圖形處理積體電路,其包含: 一用於接收原始圖形資料的前端; 一用於組織化該原始圖形資料成爲幾何基元之幾 何引擎; 一用於轉換該等幾何基元成爲光柵化的像素資料 之光柵器;及 一用於處理該光柵化的像素資料之遮影器,該遮 影器包括: 複數遮影器管線,每一遮影器管線用於處理 該光柵化的像素資料的複數段落以製造遮影的像 素資料: 複數遮影器排程器,其與該些複數遮影器管 線相連接,並用於選取一圖形程式的複數部份以 製造複數個分段程式,該些分段程式每一個包括 有限數目程式指示,其控制光柵化的像素資料的 段落的處理,其中,該有限數目是根據該些複數 遮影器管線的資源; 一遮影器分散器,其用於接收該光柵化的像 素資料和分段光柵化的像素資料爲有限大小的光 柵化的像素資料的複數段落,並用於選擇性地分 29 1363312 100年12月2日修正替換本 散該光柵化的像素資料的複數段落到該複數遮影 器管線:及 一遮影器收集器,其用由該複數遮影器管線 的輸出收集遮影的像素資料,其中該遮影的像素 資料適合顯示。 2 6.如申請專利範圍第25項所述之圖形處理積體電路,更 包括在每一個該些遮影器管線內的一記億體儲存能力的一 遮影器註冊檔案,其中該光柵化的像素資料的複數段落的 有限大小是根據可儲存於該遮影器註冊檔案的該記憶體儲 存能力中的光柵化的像素資料的數量。 2 7.如申請專利範圍第25項所述之圖形處理積體電路,其 中該遮影器分散器在功能上致能至少一遮影器管線。 2 8.如申請專利範圍第27項所述之圖形處理積體電路,其 中該遮影器分散器藉由不分散該光柵化的像素資料的複數 段落到該至少一遮影器管線,來在功能上除能至少一遮影 器管線。 2 9.如申請專利範圍第27項所述之圖形處理積體電路,其 中該遮影器分散器接收用以識別至少一遮影器管線之命令 信號。 3 0.如申請專利範圍第25項所述之圖形處理積體電路,其 中至少一遮影器管線選擇性地處理該光柵化的像素資料的 複數段落來加入材質資訊。 3 1 ·如申請專利範圍第25項所述之圖形處理積體電路,其 中至少一遮影器管線對於該光柵化的像素資料的複數段落 30 1363312 擊 * 100年12月2日修正替換本 執行數學運算。 3 2.申請專利範圍第25項所述之圖形處理積體電路,其中 該些遮影器管線之至少一者執行一分支運算。 33. 申請專利範圍第32項所述之圖形處理積體電路,其中 該些遮影器管線之至少一者,藉將該分支運算加入一目前 正在執行程式分段的結尾,並當一清空作業於該些遮影器 管線至少其中之一中執行時,讀取一由該分支運算指定的 新程式分段,以執行該分支運算。 34. —種操作一遮影器之方法,包含下列步驟: 自一光柵器接收光柵化的像素資料,其中該光柵 化的像素資料包括關於幾何基元的資訊,及關於在該 等幾何基元內的像素之資訊; 分段化該接收到的光柵化像素資料成爲預定長度 的段落; 加入一段落結束標記到每一段落; 選擇性地分散該等段落到複數遮影器管線;及 選取一圖形程式的複數部份以製造複數個分段程 式,該些分段程式每一個包括有限數目程式指示,其 控制光柵化的像素資料的段落的處理; 其中,該有限數目是根據該些複數遮影器管線的 資源, 其中每一遮影器管線處理該等段落中的一者以製 造適合顯示的遮影的像素資料, 其中一第一遮影器管線接收該等段落之一第一段 31 1363312 100年12月2日修正替換本 落,一第二遮影器管線接收該等段落之—第二段落; 及,如果有的話,額外的遮影器管線連續地接收該等 段落中的一者,直到N個遮影器管線已經接收到該等 段落之N個段落; 其中在所有要接收段落之遮影器管線已經接收到 段落之後,將該等段落之下一段落應用到該第一遮影 器管線。 3 5.如申請專利範圍第34項所述之操作一遮影器的方法, 其中並非所有的遮影器管線接收該等段落中的一者。 3 6.如申請專利範圍第35項所述之操作一遮影器的方法, 其中一遮影器管線在功能上被除能。 3 7.如申請專利範圍第34項所述之方法,更包括藉由收集 及組織來自該等遮影器管線之處理結果,來形成遮影的像 素資料。 38.—種操作一遮影器之方法,包含下列步驟: 選取一圖形程式的複數部份以製造包括第一組程 式指示的第一個分段程式和第二組程式指示的第二個 分段程式,其中該該第一個分段程式和該第二個分段 程式各包含有限數目程式指示,其控制部份光柵化像 素資料的處理,該有限數目是根據一第一遮影器管線 和一第二遮影器管線的資源; 利用該第一組指令以程式化該第一遮影管線來執 行作業; 接收該光柵化的像素資料; 32 1363312 100年12月2日修正替換本 選擇性地分散一第一部份的該光柵化像素資料到 該第一遮影管線; 利用該第二組指令程式化該第二遮影管線來執行 作業; 選擇性地分散該光柵化像素資料之一第二部份到 該第二遮影管線;及 收集與組織至少該第一遮影管線的輸出來形成適 合顯不的遮影的像素資料。 39.如申請專利範圍第38項所述之操作一遮影器的方法, 其中該第一及第二組指令並不相同。 4 0 ·如申請專利範圍第3 8項所述之操作一遮影器的方法, 其中上述選擇性分散該光栅化的像素資料之步驟包括分段 該光柵化的像素資料爲該第一部份和該第二部份來防止鎖 死之步驟。 41. 一種儲存有一圖形處理程式的電腦可讀取媒體,其可控 制一圖形系統以進行下列: 接收光柵化的像素資料,其中該光柵化的像素資 料包括關於幾何基元的資訊,及關於在該等幾何基元 內的像素之資訊: 分段化該接收到的光柵化像素資料成爲預定長度 的段落; 加入一段落結束標記到每一該段落; 選擇性地分散該等段落到複數遮影器管線;及 選取一圖形程式的複數部份以製造複數個分段程 33 1363312 __ 100年π月2曰修正替換本 式,該些分段程式每一個包括有限數目程式指示,其 控制光柵化像素資料的段落的處理; 其中’該有限數目是根據該些複數遮影器管線的 資源, 其中每一該遮影器管線處理至少一段落以製造適 合顯示的遮影的像素資料, 其中一第一遮影器管線接收一第一段落,一第二 遮影器管線接收一第二段落;及,如果有的話,額外 的遮影器管線連續地接收段落,直到Ν個遮影器管線 已經接收到Ν個額外的段落: 其中在所有要接收段落之遮影器管線已經接收到 段落之後,將下一段落應用到該第一遮影器管線。 42.如申請專利範圍第41項所述之電腦可讀取媒體,其中 該遮影器管線之至少一者不接收一段落。 4 3.如申請專利範圍第42項所述之電腦可讀取媒體,其中 不接收段落之該遮影器管線之任何一者在功能上被除能。 44.如申請專利範圍第41項所述之電腦可讀取媒體,其中 包括組織化該遮影器管線之結果。 4 5.—種儲存有一圖形處理程式的電腦可讀取媒體,其可控 制一圖形系統進行以下的步驟: 選取一圖形程式的複數部份以製造包括第一組程 式指示的第一個分段程式和第二組程式指示的第二個 分段程式,其中該該第一個分段程式和該第二個分段 程式各包含有限數目程式指示’其控制部份光柵化像 34 1363312 -- v ' 100年12月2日修正替換本 素資料的處理,該有限數目是根據一第一遮影器管線 和一第二遮影器管線的資源; 利用該第一組指令程式化該第一遮影器管線來執 行作業; 接收該光柵化的像素資料; 選擇性地分散一第一部份的該光柵化像素資料到 該第一遮影管線; 利用該第二組指令程式化該第二遮影管線來執行 作業; 選擇性地分散該光柵化像素資料之一第二部份到 該第二遮影管線;及 收集與組織至少該第一遮影管線的輸出,來形成 適合顯示的遮影的像素資料。 4 6 ·如申請專利範圍第4 5項所述之電腦可讀取媒體,其中 該第一及第二組指令並不相同。 47. 如申請專利範圍第45項所述之電腦可讀取媒體,其中 選擇性分散該光柵化的像素資料包括分段化該光栅化的像 素資料爲該第一部份和該第二部份來防止鎖死。 48. —種操作一遮影器之方法,該方法包含下列步驟: 自一光柵器接收光柵化的像素資料,其中該光柵 化的像素資料包括關於幾何基元的資訊,及在該等幾 何基元內的像素之像素資訊: 分段化該接收到的光柵化像素資料成爲預定長度 的段落; 35 1363312 - ) > 100年12月2日修正替換本 選擇性地分散該等段落到複數遮影器管線;及 選取一圖形程式的複數部份以製造複數個分段程 式,該些分段程式每一個包括有限數目程式指示,其 控制光柵化像素資料的段落的處理; 其中,該有限數目是根據該些遮影器管線的資源, 傳送一驗證欄位到一遮影器管線,其會通知一特 定遮影器管線其要處理一分散的段落; 使用該特定的遮影器管線處理該分散的段落。 4 9.如申請專利範圍第48項所述之操作一遮影器之方法, 更包括將該分散的段落由該些複數遮影器管線中所有的遮 影器管線清出該分散的段落,除了該特定的遮影器管線之 外。 5 0.—種圖形處理單元,其包含: 一用於接收原始圖形資料的前端; 一用於組織化該原始圖形資料成爲幾何基元之幾 何引擎; 一用於轉換該等幾何元件成爲光柵化的像素資料 -*7 Λΐ£. Ml SB · Z尤ffltf潘, 一用於處理該光柵化的像素資料之遮影器,該遮 影器包括複數遮影器管線,每一遮影器管線用於處理 該光柵化的像素資料的複數段落以製造遮影的像素資 料;複數遮影器排程器,其與該些複數遮影器管線相 連接,並用於選取一圖形程式的複數部份以製造複數 個分段程式,該些分段程式每一個包括有限數目程式 36 1363312 100年12月2日修正替換本 指示,其控制光柵化的像素資料的段落的處理,其中, 該有限數目是根據該些複數遮影器管線的資源; •-用於分散該光柵化的像素資料的該些段落到該些複 數遮影器管線之遮影器分散器,該遮影器更包括一遮 影器收集器,其用於自該複數遮影器管線輸出來形成 遮影的像素資料;及 一光柵運算處理器,用於處理該處理的像素資料 成爲適合顯示的訊框緩衝資料。 5 1 .如申請專利範圍第50項所述之圖形處理單元,其中不 同遮影器管線被不同分段程式程式化。 5 2.如申請專利範圍第50項所述之圖形處理單元,其中在 該些分段程式中的程式指示的該有限數目爲8。 53.如申請專利範圍第50項所述之圖形處理單元,其中該 些遮影器管線,藉將一分支運算加入一目前正在執行程式 分段的結尾,並當一清空作業於該些遮影器管線中執行 胃,讀取一由該分支運算指定的新程式分段,以執行該分 支蓮算。 37
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US56161704P | 2004-04-12 | 2004-04-12 | |
US10/938,042 US7385607B2 (en) | 2004-04-12 | 2004-09-10 | Scalable shader architecture |
Publications (2)
Publication Number | Publication Date |
---|---|
TW200539059A TW200539059A (en) | 2005-12-01 |
TWI363312B true TWI363312B (en) | 2012-05-01 |
Family
ID=34965907
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW094111547A TWI363312B (en) | 2004-04-12 | 2005-04-12 | Shader, computer system, graphics processing integrated circuit, graphics processing unit and computer readable medium associated with shader and method of operating shader |
Country Status (6)
Country | Link |
---|---|
US (2) | US7385607B2 (zh) |
EP (1) | EP1738330B1 (zh) |
JP (1) | JP4489806B2 (zh) |
CN (1) | CN1957376B (zh) |
TW (1) | TWI363312B (zh) |
WO (1) | WO2005101322A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9338036B2 (en) | 2012-01-30 | 2016-05-10 | Nvidia Corporation | Data-driven charge-pump transmitter for differential signaling |
TWI563387B (en) * | 2013-03-15 | 2016-12-21 | Nvidia Corp | A system and a method for generating an output signal |
Families Citing this family (64)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7218291B2 (en) * | 2004-09-13 | 2007-05-15 | Nvidia Corporation | Increased scalability in the fragment shading pipeline |
US8189002B1 (en) * | 2004-10-29 | 2012-05-29 | PME IP Australia Pty, Ltd. | Method and apparatus for visualizing three-dimensional and higher-dimensional image data sets |
US7542042B1 (en) * | 2004-11-10 | 2009-06-02 | Nvidia Corporation | Subpicture overlay using fragment shader |
US7623132B1 (en) * | 2004-12-20 | 2009-11-24 | Nvidia Corporation | Programmable shader having register forwarding for reduced register-file bandwidth consumption |
US7830390B2 (en) * | 2005-07-19 | 2010-11-09 | Graphics Properties Holdings, Inc. | Color computation of pixels using a plurality of vertex or fragment shader programs |
CN1928918B (zh) * | 2005-10-14 | 2012-10-10 | 威盛电子股份有限公司 | 图形处理装置及于图形处理装置中执行着色操作的方法 |
US8111260B2 (en) | 2006-06-28 | 2012-02-07 | Microsoft Corporation | Fast reconfiguration of graphics pipeline state |
US7692660B2 (en) * | 2006-06-28 | 2010-04-06 | Microsoft Corporation | Guided performance optimization for graphics pipeline state management |
US8954947B2 (en) * | 2006-06-29 | 2015-02-10 | Microsoft Corporation | Fast variable validation for state management of a graphics pipeline |
US8243069B1 (en) * | 2006-11-03 | 2012-08-14 | Nvidia Corporation | Late Z testing for multiple render targets |
US8547395B1 (en) | 2006-12-20 | 2013-10-01 | Nvidia Corporation | Writing coverage information to a framebuffer in a computer graphics system |
KR101349171B1 (ko) * | 2007-01-17 | 2014-01-09 | 삼성전자주식회사 | 3차원 그래픽 가속기 및 그것의 픽셀 분배 방법 |
FR2917199B1 (fr) * | 2007-06-05 | 2011-08-19 | Thales Sa | Generateur de code source pour une carte graphique |
US8004522B1 (en) * | 2007-08-07 | 2011-08-23 | Nvidia Corporation | Using coverage information in computer graphics |
US8325203B1 (en) | 2007-08-15 | 2012-12-04 | Nvidia Corporation | Optimal caching for virtual coverage antialiasing |
US8392529B2 (en) | 2007-08-27 | 2013-03-05 | Pme Ip Australia Pty Ltd | Fast file server methods and systems |
US8325184B2 (en) * | 2007-09-14 | 2012-12-04 | Qualcomm Incorporated | Fragment shader bypass in a graphics processing unit, and apparatus and method thereof |
US8319781B2 (en) | 2007-11-23 | 2012-11-27 | Pme Ip Australia Pty Ltd | Multi-user multi-GPU render server apparatus and methods |
US10311541B2 (en) | 2007-11-23 | 2019-06-04 | PME IP Pty Ltd | Multi-user multi-GPU render server apparatus and methods |
US9904969B1 (en) | 2007-11-23 | 2018-02-27 | PME IP Pty Ltd | Multi-user multi-GPU render server apparatus and methods |
US9019287B2 (en) | 2007-11-23 | 2015-04-28 | Pme Ip Australia Pty Ltd | Client-server visualization system with hybrid data processing |
WO2009067680A1 (en) | 2007-11-23 | 2009-05-28 | Mercury Computer Systems, Inc. | Automatic image segmentation methods and apparartus |
WO2009113811A2 (en) * | 2008-03-11 | 2009-09-17 | Core Logic Inc. | Processing 3d graphics supporting fixed pipeline |
US8502832B2 (en) * | 2008-05-30 | 2013-08-06 | Advanced Micro Devices, Inc. | Floating point texture filtering using unsigned linear interpolators and block normalizations |
EP2297723A4 (en) * | 2008-05-30 | 2015-08-19 | Advanced Micro Devices Inc | EVOLVING AND UNIFIED CALCULATION SYSTEM |
CN102047317B (zh) * | 2008-05-30 | 2015-09-16 | 先进微装置公司 | 冗余方法以及着色器列修复的装置 |
US8195882B2 (en) | 2008-05-30 | 2012-06-05 | Advanced Micro Devices, Inc. | Shader complex with distributed level one cache system and centralized level two cache |
US8456478B2 (en) * | 2008-10-30 | 2013-06-04 | Microchip Technology Incorporated | Microcontroller with integrated graphical processing unit |
US9013498B1 (en) * | 2008-12-19 | 2015-04-21 | Nvidia Corporation | Determining a working set of texture maps |
US8056080B2 (en) * | 2009-08-31 | 2011-11-08 | International Business Machines Corporation | Multi-core/thread work-group computation scheduler |
US20110134120A1 (en) * | 2009-12-07 | 2011-06-09 | Smart Technologies Ulc | Method and computing device for capturing screen images and for identifying screen image changes using a gpu |
US8587594B2 (en) * | 2010-05-21 | 2013-11-19 | International Business Machines Corporation | Allocating resources based on a performance statistic |
US8629867B2 (en) | 2010-06-04 | 2014-01-14 | International Business Machines Corporation | Performing vector multiplication |
US8692825B2 (en) | 2010-06-24 | 2014-04-08 | International Business Machines Corporation | Parallelized streaming accelerated data structure generation |
US9378560B2 (en) | 2011-06-17 | 2016-06-28 | Advanced Micro Devices, Inc. | Real time on-chip texture decompression using shader processors |
US9595074B2 (en) | 2011-09-16 | 2017-03-14 | Imagination Technologies Limited | Multistage collector for outputs in multiprocessor systems |
US20130222411A1 (en) * | 2012-02-28 | 2013-08-29 | Brijesh Tripathi | Extended range color space |
US10559123B2 (en) | 2012-04-04 | 2020-02-11 | Qualcomm Incorporated | Patched shading in graphics processing |
US9105125B2 (en) * | 2012-12-05 | 2015-08-11 | Advanced Micro Devices, Inc. | Load balancing for optimal tessellation performance |
US8976190B1 (en) | 2013-03-15 | 2015-03-10 | Pme Ip Australia Pty Ltd | Method and system for rule based display of sets of images |
US11244495B2 (en) | 2013-03-15 | 2022-02-08 | PME IP Pty Ltd | Method and system for rule based display of sets of images using image content derived parameters |
US11183292B2 (en) | 2013-03-15 | 2021-11-23 | PME IP Pty Ltd | Method and system for rule-based anonymized display and data export |
US9509802B1 (en) | 2013-03-15 | 2016-11-29 | PME IP Pty Ltd | Method and system FPOR transferring data to improve responsiveness when sending large data sets |
US10540803B2 (en) | 2013-03-15 | 2020-01-21 | PME IP Pty Ltd | Method and system for rule-based display of sets of images |
US10070839B2 (en) | 2013-03-15 | 2018-09-11 | PME IP Pty Ltd | Apparatus and system for rule based visualization of digital breast tomosynthesis and other volumetric images |
CN103400338A (zh) * | 2013-07-25 | 2013-11-20 | 天津大学 | 嵌入式gpu中面积有效、功能复用的裁剪方法及模块 |
CN105446704B (zh) * | 2014-06-10 | 2018-10-19 | 北京畅游天下网络技术有限公司 | 一种着色器的解析方法和装置 |
US9536342B2 (en) * | 2014-08-15 | 2017-01-03 | Intel Corporation | Automatic partitioning techniques for multi-phase pixel shading |
US9984478B2 (en) | 2015-07-28 | 2018-05-29 | PME IP Pty Ltd | Apparatus and method for visualizing digital breast tomosynthesis and other volumetric images |
US11599672B2 (en) | 2015-07-31 | 2023-03-07 | PME IP Pty Ltd | Method and apparatus for anonymized display and data export |
CN105118089B (zh) * | 2015-08-19 | 2018-03-20 | 上海兆芯集成电路有限公司 | 三维图形管道中的可程序化像素设定方法及使用其的装置 |
US10460513B2 (en) * | 2016-09-22 | 2019-10-29 | Advanced Micro Devices, Inc. | Combined world-space pipeline shader stages |
CN106648551A (zh) * | 2016-12-12 | 2017-05-10 | 中国航空工业集团公司西安航空计算技术研究所 | 一种混合图形处理器指令处理系统 |
CN106844044B (zh) * | 2016-12-30 | 2020-07-24 | 东方晶源微电子科技(北京)有限公司 | 一种数据处理方法和装置 |
US10290141B2 (en) | 2017-04-17 | 2019-05-14 | Intel Corporation | Cloud based distributed single game calculation of shared computational work for multiple cloud gaming client devices |
US10909679B2 (en) | 2017-09-24 | 2021-02-02 | PME IP Pty Ltd | Method and system for rule based display of sets of images using image content derived parameters |
DE102019101720A1 (de) * | 2018-01-26 | 2019-08-01 | Nvidia Corporation | Techniken zur Darstellung und Verarbeitung von Geometrie innerhalb einer erweiterten Grafikverarbeitungspipeline |
CN111831273B (zh) * | 2019-04-30 | 2022-10-28 | 厦门雅基软件有限公司 | 基于着色器的数据处理方法、装置及电子设备 |
US11210821B2 (en) * | 2019-11-27 | 2021-12-28 | Arm Limited | Graphics processing systems |
US11210847B2 (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 |
US11170555B2 (en) | 2019-11-27 | 2021-11-09 | Arm Limited | Graphics processing systems |
US20220414967A1 (en) * | 2021-06-24 | 2022-12-29 | Intel Corporation | Out-of-order pixel shading and rasterization |
US11935175B2 (en) * | 2022-04-07 | 2024-03-19 | Huawei Technologies Co., Ltd. | Apparatus, method, and computer-readable medium for image processing using variable-precision shading |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4901064A (en) * | 1987-11-04 | 1990-02-13 | Schlumberger Technologies, Inc. | Normal vector shading for 3-D graphics display system |
CN1093970C (zh) * | 1993-06-03 | 2002-11-06 | 郭玉霞 | 图形分层产生的方法及装置 |
JP3097955B2 (ja) * | 1994-12-01 | 2000-10-10 | 富士通株式会社 | 情報処理装置及び情報処理方法 |
US5764228A (en) * | 1995-03-24 | 1998-06-09 | 3Dlabs Inc., Ltd. | Graphics pre-processing and rendering system |
JP3038139B2 (ja) * | 1995-08-30 | 2000-05-08 | 株式会社クボタ | グラフィックプロセッサ |
JP3090605B2 (ja) * | 1995-12-26 | 2000-09-25 | インターナショナル・ビジネス・マシーンズ・コーポレ−ション | マルチプロセッサ装置 |
US5821950A (en) * | 1996-04-18 | 1998-10-13 | Hewlett-Packard Company | Computer graphics system utilizing parallel processing for enhanced performance |
KR100261077B1 (ko) * | 1996-04-25 | 2000-07-01 | 윤종용 | 볼륨 렌더링 장치 및 이에 적합한 방법 |
US6351681B1 (en) | 1997-05-09 | 2002-02-26 | Ati International Srl | Method and apparatus for a multi-chip module that is testable and reconfigurable based on testing results |
JP2001014478A (ja) * | 1999-06-28 | 2001-01-19 | Nec Eng Ltd | グラフィックス並列処理装置 |
JP3860034B2 (ja) | 2000-03-23 | 2006-12-20 | 株式会社ソニー・コンピュータエンタテインメント | 画像処理装置及び画像処理方法 |
US6791559B2 (en) * | 2001-02-28 | 2004-09-14 | 3Dlabs Inc., Ltd | Parameter circular buffers |
US6925520B2 (en) * | 2001-05-31 | 2005-08-02 | Sun Microsystems, Inc. | Self-optimizing crossbar switch |
US7187383B2 (en) * | 2002-03-01 | 2007-03-06 | 3D Labs Inc., Ltd | Yield enhancement of complex chips |
US7015909B1 (en) * | 2002-03-19 | 2006-03-21 | Aechelon Technology, Inc. | Efficient use of user-defined shaders to implement graphics operations |
US7176914B2 (en) * | 2002-05-16 | 2007-02-13 | Hewlett-Packard Development Company, L.P. | System and method for directing the flow of data and instructions into at least one functional unit |
JP4158413B2 (ja) * | 2002-05-22 | 2008-10-01 | ソニー株式会社 | 画像処理装置 |
US6952214B2 (en) * | 2002-07-12 | 2005-10-04 | Sun Microsystems, Inc. | Method for context switching a graphics accelerator comprising multiple rendering pipelines |
US6825843B2 (en) * | 2002-07-18 | 2004-11-30 | Nvidia Corporation | Method and apparatus for loop and branch instructions in a programmable graphics pipeline |
US7109987B2 (en) * | 2004-03-02 | 2006-09-19 | Ati Technologies Inc. | Method and apparatus for dual pass adaptive tessellation |
-
2004
- 2004-09-10 US US10/938,042 patent/US7385607B2/en active Active
-
2005
- 2005-04-08 WO PCT/US2005/012107 patent/WO2005101322A1/en active Application Filing
- 2005-04-08 EP EP05735714A patent/EP1738330B1/en active Active
- 2005-04-08 CN CN2005800164443A patent/CN1957376B/zh not_active Expired - Fee Related
- 2005-04-08 JP JP2007508417A patent/JP4489806B2/ja active Active
- 2005-04-12 TW TW094111547A patent/TWI363312B/zh active
-
2007
- 2007-12-14 US US11/957,358 patent/US7852340B2/en active Active
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9338036B2 (en) | 2012-01-30 | 2016-05-10 | Nvidia Corporation | Data-driven charge-pump transmitter for differential signaling |
TWI563387B (en) * | 2013-03-15 | 2016-12-21 | Nvidia Corp | A system and a method for generating an output signal |
Also Published As
Publication number | Publication date |
---|---|
US20080094405A1 (en) | 2008-04-24 |
CN1957376A (zh) | 2007-05-02 |
US7385607B2 (en) | 2008-06-10 |
US20050225554A1 (en) | 2005-10-13 |
TW200539059A (en) | 2005-12-01 |
EP1738330B1 (en) | 2012-05-30 |
CN1957376B (zh) | 2010-08-18 |
JP4489806B2 (ja) | 2010-06-23 |
WO2005101322A1 (en) | 2005-10-27 |
US7852340B2 (en) | 2010-12-14 |
JP2007533029A (ja) | 2007-11-15 |
EP1738330A1 (en) | 2007-01-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI363312B (en) | Shader, computer system, graphics processing integrated circuit, graphics processing unit and computer readable medium associated with shader and method of operating shader | |
US11907691B2 (en) | Method and system of command buffer between a CPU and GPU | |
US8194083B2 (en) | Color computation of pixels using a plurality of vertex or fragment shader programs | |
US7663621B1 (en) | Cylindrical wrapping using shader hardware | |
US7889205B1 (en) | Frame buffer based transparency group computation on a GPU without context switching | |
JP4113776B2 (ja) | グラフィクス処理をおこなう集積回路及び方法 | |
US8300050B2 (en) | Temporary low resolution rendering of 3D objects | |
US20130127858A1 (en) | Interception of Graphics API Calls for Optimization of Rendering | |
KR20200040883A (ko) | 구성가능한 변환 파라미터들을 갖는 다중 공간 렌더링 | |
JP2011044143A (ja) | 画像データの記憶・検索技法 | |
TW201126450A (en) | Texture sampling | |
US10319068B2 (en) | Texture not backed by real mapping | |
US9269179B2 (en) | System, method, and computer program product for generating primitive specific attributes | |
CN107003964A (zh) | 处理未对准块传送操作 | |
DE102017109472A1 (de) | Stereo-mehrfach-projektion implementiert unter verwendung einer graphikverarbeitungs-pipeline | |
US8907979B2 (en) | Fast rendering of knockout groups using a depth buffer of a graphics processing unit | |
US20080122840A1 (en) | Temporary Non-Tiled Rendering of 3D Objects | |
US20150015574A1 (en) | System, method, and computer program product for optimizing a three-dimensional texture workflow | |
US7109999B1 (en) | Method and system for implementing programmable texture lookups from texture coordinate sets | |
US10062140B2 (en) | Graphics processing systems | |
CN115311120A (zh) | 图形处理系统 | |
US8264491B1 (en) | System, method, and computer program product for controlling a shader to gather statistics | |
GB2600108A (en) | Graphics processing systems |