TW202324290A - 常數資料儲存裝置 - Google Patents
常數資料儲存裝置 Download PDFInfo
- Publication number
- TW202324290A TW202324290A TW111119650A TW111119650A TW202324290A TW 202324290 A TW202324290 A TW 202324290A TW 111119650 A TW111119650 A TW 111119650A TW 111119650 A TW111119650 A TW 111119650A TW 202324290 A TW202324290 A TW 202324290A
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- value
- constant value
- immediate
- immediate value
- Prior art date
Links
- 238000013500 data storage Methods 0.000 title description 6
- 238000012545 processing Methods 0.000 claims abstract description 177
- 238000000034 method Methods 0.000 claims abstract description 136
- 230000008569 process Effects 0.000 claims abstract description 32
- 230000015654 memory Effects 0.000 claims description 92
- 238000009877 rendering Methods 0.000 claims description 55
- 239000000872 buffer Substances 0.000 description 39
- 230000006870 function Effects 0.000 description 21
- 238000004891 communication Methods 0.000 description 18
- 239000000463 material Substances 0.000 description 18
- 238000010586 diagram Methods 0.000 description 10
- 230000008901 benefit Effects 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 239000000835 fiber Substances 0.000 description 6
- 239000012634 fragment Substances 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 230000009286 beneficial effect Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 4
- 238000004590 computer program Methods 0.000 description 4
- 238000012546 transfer Methods 0.000 description 3
- 230000000007 visual effect Effects 0.000 description 3
- 102100038126 Tenascin Human genes 0.000 description 2
- 108010008125 Tenascin Proteins 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 1
- 239000007795 chemical reaction product Substances 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
Abstract
本案涉及用於圖形處理的方法和設備,包括例如GPU的裝置。該裝置可以產生包括複數個條目的表以儲存與常數值或立即值中的至少一個相關聯的資料。一旦產生該表,該裝置還可以處理包括常數值或立即值中的至少一個的第一資料。該裝置還可以在所產生的表中儲存第一資料的常數值或立即值中的至少一個。一旦將常數值或立即值中的至少一個儲存在表中,該裝置也可以發送包括第一資料的常數值或立即值中的所儲存的至少一個的表。
Description
本案大體係關於處理系統,並且更具體地係關於用於圖形處理的一或多個技術。
計算設備經常執行圖形及/或顯示處理(例如,利用圖形處理單元(GPU)、中央處理單元(CPU)、顯示處理器等)來渲染和顯示視覺內容。此類計算設備可以包括例如電腦工作站、諸如智慧手機之類的行動電話、嵌入式系統、個人電腦、平板電腦和視訊遊戲控制台。GPU被配置為執行包括一或多個處理階段的圖形處理管線,這些處理階段一起操作以執行圖形處理命令並輸出訊框。中央處理單元(CPU)可以藉由向GPU發出一或多個圖形處理命令來控制GPU的操作。現代CPU通常能夠併發執行多個應用,每一個應用在執行期間可能需要利用GPU。顯示處理器被配置為將從CPU接收的數位資訊轉換為類比值,並且可以向顯示面板發出命令以顯示視覺內容。在顯示器上提供用於視覺呈現的內容的設備可以使用GPU及/或顯示處理器。
設備的GPU可以被配置為在圖形處理管線中執行處理。此外,顯示處理器或顯示處理單元(DPU)可以被配置為執行顯示處理的程序。然而,隨著無線通訊和更小的手持設備的出現,對改進圖形或顯示處理的需求不斷增加。
下面介紹一或多個態樣的簡化概述,以便提供本發明一些態樣的基本理解。本發明內容不是所有預期態樣的廣泛概述,並且既不旨在標識所有態樣的關鍵或重要元素,也不旨在界定任何或所有態樣的範圍。其唯一目的是以簡化的形式呈現一或多個態樣的一些概念,作為稍後呈現的更詳細描述的序言。
在本案的一態樣中,提供了一種方法、電腦可讀取媒體和裝置。該裝置可以是圖形處理單元(CPU)或任何可以進行圖形處理的裝置。該裝置可以產生包括常數值或立即值中的至少一個的第一資料。該裝置還可以產生包括複數個條目的表以儲存與常數值或立即值中的至少一個相關聯的資料。另外,一旦產生該表,該裝置可以處理包括常數值或立即值中的至少一個的第一資料。該裝置也可以在所產生的表中儲存第一資料的常數值或立即值中的至少一個。一旦將常數值或立即值中的至少一個儲存在表中,該裝置也可以發送包括第一資料的常數值或立即值中的所儲存的至少一個的表。此外,一旦發送該表,該裝置可以跳過處理第二資料的常數值或立即值中的至少一個,其中第二資料與常數值或立即值中的至少一個相關聯。該裝置也可以處理第二資料的一部分,其中第二資料的該部分不包括常數值或立即值中的至少一個。一旦發送該表,該裝置也可以讀取第二資料的一部分。一旦讀取第二資料的該部分,該裝置還可以移除包括常數值或立即值中的所儲存的至少一個的表。
在附圖和以下描述中闡述本案的一或多個示例的細節。根據說明書、附圖和申請專利範圍,本案的其他特徵、目的和優點將是顯而易見的。
圖形處理的各態樣可以在圖形處理單元(GPU)處利用許多不同的著色應用程式。這些著色應用程式可以利用與一或多個常數分量或值相關聯的一或多個著色器。例如,在遊戲應用程式中,存在可以包括用於渲染目標(RT)表面的一或多個常數分量的許多著色器。在一些情況下,當顏色分量是常數值或立即值時,編譯器可以使用附加指令(例如,移動指令)及/或額外的通用暫存器(GPR)空間來儲存資料(例如,RT資料)。這可能會導致冗餘的GPR讀取/寫入步驟,並且串流處理器(SP)可能因此被迫將輸出發出到渲染後端(RB)。因此,這些附加的移動指令及/或額外的GPR空間可能導致浪費和冗餘的GPR讀取/寫入步驟。本案的各態樣可以減少基於常數值或立即值發送的指令/資料的量。此外,本案的各態樣可以減少用於儲存與常數值或立即值相關聯的資料的GPR空間量。本案的各態樣也可以減少與常數值或立即值相關聯的GPR讀取/寫入步驟的量。例如,本案的各態樣可以基於GPR讀取/寫入步驟來減少從SP向RB發送的資料的量。
系統、裝置、電腦程式產品和方法的各個態樣在下文中參考附圖更全面地描述。然而,本案可以以許多不同的形式體現,並且不應被解釋為限於貫穿本案所呈現的任何特定結構或功能。相反,提供這些態樣以使得本案將是詳盡的和完整的,並將本案的範圍充分傳達給熟習此項技術者。基於本文的教導,熟習此項技術者應當理解,本案的範圍旨在覆蓋本案的系統、裝置、電腦程式產品和方法的任何態樣,無論是獨立於本案的任何其他態樣還是與本案的任何其他態樣組合地實施。例如,可以使用本文所闡述的任何數量的態樣來實施一種裝置或實踐一種方法。另外,本案的範圍旨在覆蓋此類裝置或方法,該裝置或方法使用除了本文闡述的本案的各個態樣之外或之外的其他結構、功能、或結構和功能來實踐。本案的任何態樣可以由請求項的一或多個元素來體現。
儘管本文描述了各個態樣,但是這些態樣的許多變化和排列落入本案的範圍內。儘管提到了本案的各態樣的一些潛在益處和優點,但是本案的範圍不旨在限於特定的益處、用途或目標。相反,本案的各態樣旨在廣泛地適用於不同的無線技術、系統配置、網路和傳輸協定,其中一些在附圖和下述實施方式中藉由示例的方式被示出。詳細描述和附圖僅是對本案的說明而非限制,本案的範圍由所附請求項及其均等物限定。
現在將參考各種裝置和方法來呈現幾個態樣。這些裝置和方法在以下詳細描述中進行描述,並在附圖中藉由各種區塊、元件、電路、處理、演算法等(統稱為「元素」)進行說明。可以使用電子硬體、電腦軟體或其任意組合來實施這些元素。將這些元件實施為硬體或者是軟體取決於特定的應用和強加在整個系統上的設計約束。
作為示例,元素、或元素的任何部分、或元素的任何組合都可以被實施為包括一或多個處理器的「處理系統」(其也可以被稱為處理單元)。處理器的示例包括微處理器、微控制器、圖形處理單元(GPU)、通用GPU(GPGPU)、中央處理器(CPU)、應用處理器、數位訊號處理器(DSP)、精簡指令集計算(RISC)處理器、片上系統(SOC)、基頻處理器、專用積體電路(ASIC)、現場可程式設計閘陣列(FPGA)、可程式設計邏輯裝置(PLD)、狀態機、閘控邏輯、個別硬體電路、以及被配置為實施本案中描述的各種功能的其他合適的硬體。處理系統中的一或多個處理器可以執行軟體。無論是被稱為軟體、韌體、仲介軟體、微代碼、硬體描述語言還是其他形式,軟體能被廣義地解釋為意指指令、指令集、代碼、程式碼片段、程式碼、程式、副程式、軟體元件、應用、軟體應用、套裝軟體、常式、子常式、物件、可執行檔、執行執行緒、程序、函數等等。術語應用可以指的是軟體。如本文所述,一或多個技術可以指被配置為執行一或多個功能的應用,即軟體。在此類示例中,應用可以被儲存在記憶體上,例如處理器的片上記憶體、系統記憶體或任何其他記憶體。本文描述的硬體(諸如處理器)可以被配置為執行應用。例如,應用可以被描述為包括代碼,當由硬體執行時,該代碼使硬體執行本文描述的一或多個技術。作為示例,硬體可以從記憶體存取碼並且執行從記憶體存取的代碼以執行本文描述的一或多個技術。在一些示例中,在本案中標識組件。在此類示例中,元件可以是硬體、軟體或其組合。元件可以是單獨的元件或單個元件的子元件。
因此,在本文描述的一或多個示例中,可以以硬體、軟體、或其任何組合來實施所描述的功能。如果在軟體中實施,則該等功能可以作為一或多個指令或代碼儲存在電腦可讀取媒體上或在電腦可讀取媒體上編碼。電腦可讀取媒體包括電腦儲存媒體。儲存媒體可以是電腦可以存取的任何可用媒體。作為示例而非限制,這種電腦可讀取儲存媒體可以包括隨機存取記憶體(RAM)、唯讀記憶體(ROM)、電子可抹除可程式設計ROM(EEPROM)、光碟儲存裝置、磁片儲存裝置、其他磁性儲存裝置、前述類型的電腦可讀取媒體的組合、或可用於以電腦可以存取的指令或資料結構形式儲存電腦可執行代碼的任何其他媒體。
一般而言,本案描述了用於以下作用的技術:在單個設備或多個設備中具有圖形處理管線、改進圖形內容的渲染、及/或減少處理單元(即,被配置為執行本文描述的一或多個技術的任何處理單元,諸如GPU)的負載。例如,本案描述了用於在利用圖形處理的任何設備中進行圖形處理的技術。貫穿本案描述了其他示例益處。
如本文所用,術語「內容」的實例可指「圖形內容」、「圖像」,反之亦然。無論這些術語是用作形容詞、名詞還是其他詞性,都是如此。在一些示例中,如本文所使用的,術語「圖形內容」可以指由圖形處理管線的一或多個處理產生的內容。在一些示例中,如本文所使用的,術語「圖形內容」可以指由被配置為執行圖形處理的處理單元產生的內容。在一些示例中,如本文所使用的,術語「圖形內容」可以指由圖形處理單元產生的內容。
在一些示例中,如本文所使用的,術語「顯示內容」可以指由被配置為執行顯示處理的處理單元所產生的內容。在一些示例中,如本文所使用的,術語「顯示內容」可以指由顯示處理單元產生的內容。可以處理圖形內容以成為顯示內容。例如,圖形處理單元可以將諸如訊框的圖形內容輸出到緩衝器(其可以被稱為訊框緩衝器)。顯示處理單元可從緩衝器讀取圖形內容,諸如一或多個訊框,並對其執行一或多個顯示處理技術以產生顯示內容。例如,顯示處理單元可以被配置為對一或多個渲染層執行合成以產生訊框。作為另一示例,顯示處理單元可以被配置為將兩個或更多個層合成、混合或以其他方式組合在一起成單個訊框。顯示處理單元可以被配置為對訊框執行縮放,例如放大或縮小。在一些示例中,訊框可以指層。在其他示例中,訊框可以指已經混合在一起以形成訊框的兩個或更多個層,即,該訊框包括兩個或更多個層,並且可以隨後混合包括兩個或更多個層的訊框。
圖1是示出被配置為實施本案的一或多個技術的示例內容產生系統100的方塊圖。該內容產生系統100包括設備104。該設備104可以包括用於執行本文描述的各種功能的一或多個元件或電路。在一些示例中,該設備104的一或多個元件可以是SOC的元件。該設備104可以包括被配置為執行本案的一或多個技術的一或多個元件。在所示的示例中,該設備104可以包括處理單元120、內容編碼器/解碼器122和系統記憶體124。在一些態樣中,該設備104可以包括多個可選元件,例如,通訊介面126、收發器132、接收器128、發送器130、顯示處理器127以及一或多個顯示器131。對顯示器131的代表可以指一或多個顯示器131。例如,顯示器131可以包括單個顯示器或多個顯示器。顯示器131可以包括第一顯示器和第二顯示器。第一顯示器可以是左眼顯示器並且第二顯示器可以是右眼顯示器。在一些示例中,第一和第二顯示器可以接收用於在其上呈現的不同訊框。在其他示例中,第一和第二顯示器可以接收用於在其上呈現的相同訊框。在另外的示例中,圖形處理的結果可以不顯示在設備上,例如,第一和第二顯示器可以不接收用於在其上呈現的任何訊框。相反,可以將訊框或圖形處理結果傳送到另一個設備。在某些態樣中,這可以稱為分屏渲染(split-rendering)。
該處理單元120可以包括內部記憶體121。處理單元120可以被配置為執行圖形處理,諸如在圖形處理管線107中。內容編碼器/解碼器122可以包括內部記憶體123。在一些示例中,該設備104可以包括顯示處理器,諸如顯示處理器127,以在由一或多個顯示器131呈現之前,對由處理單元120產生的一或多個訊框執行一或多個顯示處理技術。顯示處理器127可以被配置為執行顯示處理。例如,顯示處理器127可以被配置為對處理單元120產生的一或多個訊框執行一或多個顯示處理技術。一或多個顯示器131可以被配置為顯示或以其他方式呈現由顯示處理器127處理的訊框。在一些示例中,一或多個顯示器131可以包括以下各項中的一或多個:液晶顯示器(LCD)、電漿顯示器、有機發光二極體(OLED)顯示器、投影顯示裝置、增強現實顯示裝置、虛擬實境顯示裝置、頭戴式顯示器或任何其他類型的顯示裝置。
在處理單元120和內容編碼器/解碼器122外部的記憶體,諸如系統記憶體124,可以被處理單元120和內容編碼器/解碼器122存取。例如,處理單元120和內容編碼器/解碼器122可以被配置為從外部記憶體讀取及/或寫入外部記憶體,諸如系統記憶體124。處理單元120和內容編碼器/解碼器122可以藉由匯流排通訊耦接到系統記憶體124。在一些示例中,處理單元120和內容編碼器/解碼器122可以藉由匯流排或不同的連接彼此通訊耦接。
內容編碼器/解碼器122可以被配置為從任何源(諸如系統記憶體124及/或通訊介面126)接收圖形內容。系統記憶體124可以被配置為儲存接收到的經編碼或經解碼的圖形內容。內容編碼器/解碼器122可以被配置為例如從系統記憶體124及/或通訊介面126以經編碼的像素資料的形式接收經編碼或經解碼的圖形內容。內容編碼器/解碼器122可以被配置為對任何圖形內容進行編碼或解碼。
內部記憶體121或系統記憶體124可以包括一或多個揮發性或非揮發性記憶體或儲存裝置。在一些示例中,內部記憶體121或系統記憶體124可以包括RAM、SRAM、DRAM、可抹除可程式設計ROM(EPROM)、電子可抹除可程式設計ROM(EEPROM)、快閃記憶體、磁性資料媒體或光學儲存媒體,或任何其他類型的記憶體。
根據一些示例,內部記憶體121或系統記憶體124可以是非暫時性儲存媒體。術語「非暫時性」可以指示儲存媒體沒有體現在載波或傳播信號中。然而,術語「非暫時性」不應被解釋為意味著內部記憶體121或系統記憶體124是不可移動的或其內容是靜態的。作為一個示例,系統記憶體124可以從設備104移除並且移動到另一設備。作為另一個示例,系統記憶體124可以不從設備104移除。
處理單元120可以是中央處理單元(CPU)、圖形處理單元(GPU)、通用GPU(GPGPU)、或可以被配置為執行圖形處理的任何其他處理單元。在一些示例中,處理單元120可以整合到設備104的主機板中。在一些示例中,處理單元120可以存在於安裝在設備104的主機板中的埠內的圖形卡上,或者可以以其他方式併入被配置為與設備104交互動操作的周邊設備內。處理單元120可以包括一或多個處理器,諸如一或多個微處理器、GPU、專用積體電路(ASIC)、現場可程式設計閘陣列(FPGA)、算數邏輯單元(ALU)、數位訊號處理器(DSP)、個別邏輯件、軟體、硬體、韌體、其他等效的整合或個別邏輯電路或其任何組合。如果這些技術部分地以軟體實現,則處理單元120可以將用於軟體的指令儲存在合適的、非暫時性電腦可讀取儲存媒體中,例如內部記憶體121,並且可以使用一或多個處理器來執行硬體的指令以執行本案的技術。前述的任何一個,包括硬體、軟體、硬體和軟體的組合等,都可以被認為是一或多個處理器。
內容編碼器/解碼器122可以是被配置為執行內容解碼的任何處理單元。在一些示例中,內容編碼器/解碼器122可以整合到設備104的主機板中。內容編碼器/解碼器122可以包括一或多個處理器,諸如一或多個微處理器、專用積體電路(ASIC)、現場可程式設計閘陣列(FPGA)、算數邏輯單元(ALU)、數位訊號處理器(DSP)、視訊處理器、個別邏輯件、軟體、硬體、韌體、其他等效的整合或個別邏輯電路,或其任何組合。如果這些技術部分地以軟體實現,則內容編碼器/解碼器122可以將用於軟體的指令儲存在合適的、非暫時性電腦可讀取儲存媒體中,例如內部記憶體123,並且可以使用一或多個處理器來執行硬體的指令以執行本案的技術。前述的任何一個,包括硬體、軟體、硬體和軟體的組合等,都可以被認為是一或多個處理器。
在一些態樣中,內容產生系統100可以包括可選的通訊介面126。通訊介面126可以包括接收器128和發送器130。接收器128可以被配置為執行本文關於設備104描述的任何接收功能。附加地,接收器128可以被配置為從另一個設備接收資訊,例如眼睛或頭部位置資訊、渲染命令或位置資訊。發送器130可以被配置為執行本文關於設備104描述的任何發送功能。例如,發送器130可以被配置為向另一個設備發送資訊,該資訊可以包括對內容的請求。接收器128和發送器130可以組合成收發器132。在此類示例中,收發器132可以被配置為執行本文關於設備104描述的任何接收功能及/或發送功能。
再次參考圖1,在某些態樣中,處理單元120可以包括決定元件198,其被配置為產生包括常數值或立即值中的至少一個的第一資料。該決定元件198還可以被配置為產生包括複數個條目的表以儲存與常數值或立即值中的至少一個相關聯的資料。該決定元件198也可以被配置為,一旦產生該表,處理包括常數值或立即值中的至少一個的第一資料。該決定元件198也可以被配置為在所產生的表中儲存第一資料的常數值或立即值中的至少一個。該決定元件198也可以被配置為,一旦將常數值或立即值中的至少一個儲存在表中,發送包括第一資料的常數值或立即值中的所儲存的至少一個的表。該決定元件198也可以被配置為,一旦發送該表,跳過處理第二資料的常數值或立即值中的至少一個,其中第二資料與常數值或立即值中的至少一個相關聯。該決定元件198也可以被配置為處理第二資料的部分,其中第二資料的該部分不包括常數值或立即值中的至少一個。該決定元件198也可以被配置為,一旦發送該表,讀取第二資料的一部分。該決定元件198也可以被配置為,一旦讀取第二資料的該部分,移除包括常數值或立即值中的所儲存的至少一個的表。儘管以下描述可以聚焦在圖形處理上,但是本文描述的概念可以適用於其他類似的處理技術。
如本文所述,諸如設備104之類的設備可以指被配置為執行本文所述的一或多個技術的任何設備、裝置或系統。例如,設備可以是伺服器、基地台、使用者設備、使用者客戶端設備、站、存取點、電腦(例如個人電腦、桌上型電腦、膝上型電腦、平板電腦、電腦工作站或大型電腦)、大型電腦、終端產品、裝置、電話、智慧型電話、伺服器、視訊遊戲平臺或控制台、手持設備(例如可攜式視訊遊戲裝置或個人數位助理(PDA))、可穿戴計算設備(例如智慧手錶)、增強現實設備或虛擬實境設備、非可穿戴設備、顯示器或顯示裝置、電視、電視機上盒、中間網路設備、數位媒體播放機、視訊串流設備、內容串流設備、車載電腦、任何行動設備、配置為產生圖形內容的任何設備、或配置為執行本文所述的一或多個技術的任何設備。此處的處理可以被描述為由特定元件(例如,GPU)執行,但是,在另外的實施例中,可以使用與揭露的實施例一致的其他元件(例如,CPU)來執行。
GPU可以在GPU管線中處理多種類型的資料或資料封包。例如,在一些態樣中,GPU可以處理兩種類型的資料或資料封包,例如,上下文暫存器封包和繪製調用資料。上下文暫存器封包可以是一組全域狀態資訊,例如關於全域暫存器、著色程式或常數資料的資訊,這些資訊可以規定如何處理圖形上下文。例如,上下文暫存器封包可以包括關於顏色格式的資訊。在上下文暫存器封包的某些態樣中,可以存在指示哪個工作負載屬於上下文暫存器的位元。此外,可以存在多個函數或程式同時及/或並行運行。例如,函數或程式可以描述某種操作,例如顏色模式或顏色格式。因此,上下文暫存器可以定義GPU的多個狀態。
上下文狀態可以用於決定單獨處理單元如何運行,例如頂點提取器(VFD)、頂點著色器(VS)、著色器處理器或幾何處理器,及/或處理單元的運行模式。為此,GPU可以使用上下文暫存器和程式設計資料。在一些態樣中,GPU可以基於模式或狀態的上下文暫存器定義在管線中產生工作負載,例如,頂點或像素工作負載。某些處理單元(例如VFD)可以使用這些狀態來決定某些功能,例如如何組裝頂點。由於這些模式或狀態可能會發生變化,因此GPU可能需要改變對應的上下文。附加地,對應於模式或狀態的工作負載可以遵循不斷變化的模式或狀態。
圖2圖示根據本案的一或多個技術的示例GPU 200。如圖2所示,GPU 200包括命令處理器(CP)210、繪圖調用封包212、VFD 220、VS 222、頂點快取記憶體(VPC)224、三角形設置引擎(TSE)226、光柵器(RAS)228、Z處理引擎(ZPE)230、像素內插器(PI)232、片段著色器(FS)234、渲染後端(RB)236、2級(L2)快取記憶體(UCHE)238、和系統記憶體240。儘管圖2顯示GPU 200包括處理單元220-238,但GPU 200可以包括多個附加處理單元。附加地,處理單元220-238僅僅是示例,並且根據本案的GPU可以使用處理單元的任何組合或順序。GPU 200還包括命令緩衝器250、上下文暫存器封包260和上下文狀態261。
如圖2所示,GPU可以利用CP(例如CP 210)或硬體加速器來將命令緩衝器解析成上下文暫存器封包(例如上下文暫存器封包260)及/或繪製調用資料封包(例如繪製調用封包212)。CP 210然後可以藉由分離的路徑向GPU中的處理單元或區塊發出上下文暫存器封包260或繪製調用資料封包212。此外,命令緩衝器250可以交替上下文暫存器和繪製調用的不同狀態。例如,命令緩衝器可以以下列方式構造:上下文N的上下文暫存器、上下文N的(多個)繪製調用、上下文N+1的上下文暫存器、和上下文N+1的(多個)繪製調用。
GPU可以以多種不同的方式渲染圖像。在某些情況下,GPU可以使用渲染及/或平鋪渲染來渲染圖像。在平鋪渲染GPU中,可以將圖像劃分或分離成不同的段或圖塊(tile)。劃分圖像後,可以分別渲染每個段或圖塊。平鋪渲染GPU可以將電腦圖形圖像劃分為網格格式,使得網格的每個部分(即,圖塊)被分別渲染。在一些態樣中,在分箱(binning)路徑期間,圖像被劃分為不同的箱(bin)或圖塊。在一些態樣中,在分箱路徑期間,可以構建可見性串流,其中可以標識可見像素(primitive)及/或繪製調用。與平鋪渲染相比,直接渲染不會將訊框劃分為更小的箱或圖塊。相反,在直接渲染中,整個訊框是單次渲染的。附加地,某些類型的GPU可以允許平鋪渲染和直接渲染兩者。
在一些態樣中,GPU可以將繪圖或渲染處理應用於不同的箱或圖塊。例如,GPU可以渲染到一個箱,並且執行箱中的像素或圖元的所有繪製。在渲染到箱的程序期間,渲染目標可以位於GMEM中。在一些情況下,在渲染到一個箱之後,渲染目標的內容可以移動到系統記憶體中,並且可以釋放GMEM用於渲染下一個箱。附加地,GPU可以渲染到另一個箱,並且對該箱中的像素或圖元執行繪製。因此,在一些態樣中,可能存在少量的箱,例如,四個箱,其覆蓋一個表面中的所有繪製。此外,GPU可以循環遍歷一個箱中的所有繪製,但執行可見的繪製調用的繪製,即,包括可見幾何的繪製調用。在一些態樣中,可以例如,在分箱路徑中產生可見性串流,以決定圖像或場景中每個像素的可見性資訊。例如,這個可見性串流可以標識某個像素是否可見。在一些態樣中,該資訊可以用於移除不可見的像素,例如,在渲染路徑中。此外,可以在渲染路徑中渲染至少一些被標識為可見的像素。
在平鋪渲染的一些態樣中,可以存在多個處理階段或路徑。例如,渲染可以在兩個路徑中執行的,例如可見性或箱可見性路徑以及渲染或箱渲染路徑。在可見性路徑期間,GPU可以輸入渲染工作負載,記錄像素或三角形的位置,然後決定哪些像素或三角形落入哪個箱或區域。在可見性路徑的一些態樣中,GPU還可以標識或標記可見性串流中每個像素或三角形的可見性。在渲染路徑期間,GPU可以輸入可見性串流,並且一次處理一個箱或區域。在一些態樣中,可以分析可見性串流以決定哪些像素或圖元的頂點是可見的或不可見的。因此,可以處理可見的像素或像素的頂點。這樣做,GPU可以減少處理或渲染不可見的像素或三角形的不必要的工作負載。
在一些態樣中,在可見性路徑期間,可以處理某些類型的像素幾何形狀,例如僅位置的幾何形狀。附加地,取決於像素或三角形的位置或定位,像素可以分類到不同的箱或區域中。在一些情況下,可以藉由決定這些像素或三角形的可見性資訊,來將像素或三角形分類到不同的箱中。例如,GPU可以決定或寫入每個箱或區域之每一者像素的可見性資訊,例如,將其寫入系統記憶體中。該可見性資訊可以用於決定或產生可見性串流。在渲染路徑中,每個箱中的像素可以單獨渲染。在這些情況下,可見性串流是可以從記憶體中提取的,用於刪除對該箱不可見的像素。
GPU或GPU架構的一些態樣可以提供許多不同的渲染選項,例如軟體渲染和硬體渲染。在軟體渲染中,驅動器或CPU可以藉由對每個視圖處理一次來再現整個訊框幾何形狀。附加地,一些不同的狀態可取決於視圖而改變。因此,在軟體渲染中,軟體可以藉由改變一些狀態來再現整個工作負載,這些狀態可用於為圖像之每一者視點進行渲染。在某些態樣中,由於GPU可能針對圖像之每一者視點多次提交相同的工作負載,所以可能存在增加的管理負擔量。在硬體渲染中,硬體或GPU可能負責再現或處理圖像中每個視點的幾何形狀。因此,硬體可以為圖像之每一者視點管理像素或三角形的再現或處理。
圖3圖示圖像或表面300,包括被分成多個箱的多個像素。如圖3所示,圖像或表面300包括區域302,其包括像素321、322、323和324。像素321、322、323和324被劃分或放置到不同的箱中,例如箱310、311、312、313、314和315。圖3圖示使用用於像素321-324的多個視點的平鋪渲染的示例。例如,像素321-324在第一視點350和第二視點351中。因此,GPU處理或渲染包括區域302的圖像或表面300可以利用多視點或多視圖渲染。
如本文所指示的,GPU或圖形處理器單元可以使用平鋪渲染架構來降低功耗或節省記憶體頻寬。如前述,這種渲染方法可以將場景劃分為多個箱,並且包括一個可見性路徑,用於標識在每個箱中可見的三角形。因此,在平鋪渲染中,全屏可以劃分為多個箱或圖塊。然後可以多次渲染場景,例如,每個箱一次或多次。
在圖形渲染態樣中,一些圖形應用程式可以一次或多次渲染到單個目標,即渲染目標。例如,在圖形渲染中,可以多次更新系統記憶體上的訊框緩衝器。訊框緩衝器可以是記憶體或隨機存取記憶體(RAM)的一部分,例如,包含位元映像或儲存空間,以幫助儲存GPU的顯示資料。訊框緩衝器也可以是包含完整資料訊框的記憶體緩衝器。附加地,訊框緩衝器可以是邏輯緩衝器。在一些態樣中,更新訊框緩衝器可以在箱或圖塊渲染中執行,其中如前述,表面被劃分為多個箱或圖塊,然後可以單獨渲染每個箱或圖塊。而且,在平鋪渲染中,訊框緩衝器可以劃分為多個箱或圖塊。
圖4示出GPU 400的示例。更具體地說,圖4圖示GPU 400中的串流處理器(SP)系統。如圖4所示,GPU 400包括高級定序器(HLSQ)402、VPC 404、紋理處理器(TP)406、UCHE 408、RB 410和VPC 412。GPU 400還包括SP 420、主引擎422、定序器424、本機記憶體426、波排程器和上下文暫存器428、紋理(TEX)或負載控制器430、指令快取記憶體432、執行單元(EU)434、通用暫存器(GPR)436、輸出分發器438、常數RAM 440和紋理分發器442。波排程器和上下文暫存器428可以包括一或多個波時槽。
如圖4所示,SP 420可以包括傳統的功能單元或區塊,例如,EU 434或定序器424。EU 434可以執行或處理GPU的一些期望功能。定序器424可以分配資源和本機記憶體。此外,定序器424可以分配波時槽和任何相關聯的GPR 436空間。例如,當HLSQ 402向SP 420發佈像素圖塊工作負載時,定序器424可以分配波時槽或GPR 436空間。在一些態樣中,波排程器428可以執行像素著色器或向EU 434發佈指令。EU 434也可以包括算數邏輯單元(ALU)及/或基本功能單元(EFU)。此外,TEX或負載控制器430可以被認為是一個執行單元。
此外,TEX或負載控制器430可以對應於一或多個單元。例如,TEX 430可以執行紋理提取,及/或負載控制器430可以執行記憶體提取。在一些態樣中,指令快取記憶體432可以儲存要執行的程式。此外,常數RAM 440可以儲存恆定或均勻形成可能需要的常數。如圖4進一步所示,SP 420可以與外部區塊,例如HLSQ 402、VPC 404、TP 406、UCHE 408、RB 410和VPC 412介面連接。這些塊402-412可以利用使用者提供的輸入,並且/或者SP可以向這些區塊或記憶體存取來輸出結果。
如圖4所示,GPU 400之每一者單元或區塊都可以向其他區塊發出資料或資訊。例如,HLSQ 402可以向主引擎422發出命令。此外,HLSQ 402可以向定序器424發出頂點執行緒、頂點屬性、像素執行緒及/或像素屬性。VPC 404可以向本機記憶體426發出某些係數。TP 406可以向TEX 430發出紋理資料。TP 406也可以例如,經由紋理分發器442接收來自TEX 430的紋理請求,並繞過來自本機記憶體426的請求。此外,TP 406可以向UCHE 408發出請求並從UCHE 408接收紋理元素(紋素)。UCHE 408也可以向TEX 430發出記憶體(memory)並從TEX 430接收記憶體,以及向RB 410發出記憶體並從RB 410接收記憶體。此外,RB 410可以例如經由輸出分發器438從GPR 436接收顏色形式的輸出。VPC 412也可以例如經由輸出分發器438從GPR 436接收頂點形式的輸出。GPR 436也可以向EU 434發出臨時資料並從EU 434接收臨時資料。此外,EU 434可以向波排程器428發出位址或謂語(predicate)資訊,以及從常數RAM 440接收常數資料。TEX或負載控制器430也可以向/從GPR 436發出/接收負載或儲存資料,以及向本機記憶體426發出儲存資料並從本機記憶體426接收負載資料。此外,TEX或負載控制器430可以向常數RAM 440發出全域資料並將資訊更新到指令快取記憶體432。TEX或負載控制器430也可以從定序器424接收屬性資料並從波排程器428接收同步資訊。附加地,波排程器428可以從指令快取記憶體432接收解碼資訊並且從定序器424接收執行緒資料。
圖5示出示例GPU 500。如圖5所示,GPU 500與圖4中的GPU 400相似,但GPU 500包括幾個不同的組件。更具體地說,圖5圖示GPU 500中的串流處理器(SP)系統。如圖5所示,GPU 500包括HLSQ 502、TP 506、UCHE 508、RB 510和VPC 512。GPU 500也包括SP 520、主引擎522、定序器524、本地緩衝器526、波排程器528、紋理(TEX)530、指令快取記憶體532、ALU 534、GPR 536、分派器538和記憶體(MEM)負載儲存裝置(LDST)540。
如圖5所示,GPU 500之每一者單元或區塊都可以向其他區塊發出資料或資訊。例如,HLSQ 502可以向主引擎522發出命令。此外,HLSQ 502可以向定序器524發出頂點執行緒、頂點屬性、像素執行緒、像素屬性、及/或計算命令。TP 506可以從TEX 530接收紋理請求,並將向TEX 530發出紋理元素(紋素)。此外,TP 506可以向UCHE 508發出記憶體讀取請求並從UCHE 508接收記憶體資料。UCHE 508也可以從MEM LDST 540接收記憶體讀取或寫入請求並向MEM LDST 540發回記憶體資料,以及從RB 510接收記憶體讀取或寫入請求並向RB 510發回記憶體資料。此外,RB 510可以例如經由分派器538從GPR 536接收顏色形式的輸出。VPC 512也可以例如經由分派器538從GPR 536接收頂點形式的輸出。GPR 536可以發出位址資料或從MEM LDST 540接收寫回資料。GPR 536也可以向ALU 534發出臨時資料並從ALU 534接收臨時資料。此外,ALU 534可以向波排程器528發出位址或謂語資訊,以及從波排程器528接收指令。本地緩衝器526可以向ALU 534發出常數資料。TEX 530也可以從GPR 536接收紋理屬性或向GPR 536發出紋理資料,以及從本地緩衝器526接收常數資料。此外,TEX 530可以從波排程器528接收紋理請求,以及從本地緩衝器526接收常數資料。MEM LDST 540可以向/從本地緩衝器526發出/接收常數資料。定序器524可以向波排程器528發出波資料,以及向GPR 536發出資料。主引擎522可以向指令快取記憶體532發出程式資料,以及向本地緩衝器526發出常數資料,並從MEM LDST 540接收指令。指令快取記憶體532可以向波排程器528發出指令或解碼資訊。波排程器528可以向本地緩衝器526發出讀取請求,以及向MEM LDST 540發出記憶體請求。
如圖5所示,高級定序器(HLSQ)502可以為串流處理器(SP)520準備一或多個上下文狀態。例如,HLSQ 502可以為不同類型的資料準備上下文狀態,例如,全域暫存器資料、著色器常數資料、緩衝區描述符、指令等。附加地,HLSQ 502可以將上下文狀態嵌入到去往SP 520的命令串流中。主引擎522可以解析來自HLSQ 502的命令串流並設置SP全域狀態。此外,主引擎522可以填充或添加到指令快取記憶體532及/或本地緩衝器526或常數緩衝器。
在一些態樣中,在HLSQ 502內部,可能存在稱為狀態處理器的內部功能單元。狀態處理器可以是可以執行特殊著色器程式(例如,前序信號著色器)的單光纖標量處理器。前序信號著色器可以由GPU編譯器產生,以便從不同的緩衝器物件載入常數資料。此外,前序信號著色器可以將緩衝器物件綁定到單個常數緩衝器,諸如後處理常數緩衝器。此外,HLSQ 502可以執行前序信號著色器,並因此跳過使用主著色器。在一些情況下,主著色器可以執行不同的著色任務,諸如正常的頂點著色及/或片段著色程式。
附加地,如圖5所示,如果HLSQ 502決定跳過前序信號執行,則SP 520可以不限於執行前序信號。例如,SP 520也可以處理習知的圖形工作負載,諸如頂點著色及/或片段著色。在一些態樣中,SP 520可以利用其執行單元和儲存裝置來處理計算任務作為通用GPU(GPGPU)。在SP 520內部,可能存在多個並行指令執行單元,諸如ALU、EFU、分支單元、TEX、通用記憶體讀取和寫入(亦稱為LDST)等。SP 520也可以包括片上儲存記憶體,諸如通用暫存器(GPR)536,其可以儲存每個光纖的私有資料。此外,SP 520可以包括本地緩衝器526,其儲存每著色器或每核心常數資料、每波統一資料(亦稱為uGPR)和每計算工作組(WG)本機記憶體(LM)。
此外,如圖5所示,分派器538可以從GPR 536提取資料。分派器538也可以執行格式轉換,並且然後將最終顏色分發給多個渲染目標(RT)。每個RT可以具有一或多個分量,諸如紅色(r)綠色(G)藍色(B)阿爾法(A)(RGBA)資料,或者只是RGBA資料的阿爾法分量。此外,每個RT大體可以儲存在向量GPR中,即R3.0可以儲存紅色資料,R3.1可以儲存綠色資料,R3.2可以儲存藍色資料等。另外,SP上下文暫存器中的驅動程式可以用於定義儲存RT資料的GPR識別符(ID)。
GPU處的許多不同的著色應用程式可以利用與一或多個常數分量或值相關聯的一或多個著色器。例如,在遊戲應用程式中,存在許多可能包括用於渲染目標(RT)表面的一或多個常數分量的著色器。在一些情況下,當顏色分量是常數值或立即值時,編譯器可能使用附加指令(例如,移動指令)及/或額外的GPR空間來儲存資料(例如,RT資料)。這可能會導致冗餘的GPR讀取/寫入步驟,並且SP因此被迫向RB發出輸出。因此,這些附加的移動指令及/或額外的GPR空間可能導致浪費和冗餘的GPR讀取/寫入步驟。
基於以上所述,減少基於常數值或立即值發送的指令/資料的量可以是有益的。而且,減少用於儲存與常數值或立即值相關聯的資料的GPR空間量可以是有益的。即,減少與常數值或立即值相關聯的GPR讀取/寫入步驟的量可以是有益的。例如,基於GPR讀取/寫入步驟減少從SP向RB發送的資料的量可以是有益的。
本案的各態樣可以減少基於常數值或立即值發送的指令/資料的量。此外,本案的各態樣可以減少用於儲存與常數值或立即值相關聯的資料的GPR空間量。本案的各態樣也可以減少與常數值或立即值相關聯的GPR讀取/寫入步驟的量。例如,本案的各態樣可以基於GPR讀取/寫入步驟減少從SP向RB發送的資料的量。
附加地,本案的各態樣可以利用前序信號著色器並將冗餘移動指令轉換為別名指令。例如,本案的各態樣可以利用前序信號著色器並將冗餘移動指令轉換為別名指令,而不使用在每個光纖基礎上執行的主著色器中的移動指令。因此,本案的各態樣可以將指令從移動指令轉換或重命名為別名指令。本案的各態樣也可以將別名RT輸出暫存器轉換為常數資料。此外,如前述,本案的各態樣可以利用前序信號來減少執行量,例如,每個著色器程式執行一次。為了這樣做,本案的各態樣可以構建別名表以從一個GPU區塊向另一個GPU區塊發送,例如從SP向RB發送。
在一些情況下,從SP向RB發出的渲染目標(RT)資料(例如輸出顏色)可以是常數,例如,常數值或立即值。例如,RGBA資料的阿爾法分量可以設置為常數值或立即值,例如0或1,因為在GPR中定義了輸出。此外,可以對阿爾法分量的值進行向量化,因此可以從另一個值(例如R0、R1、R2)決定結果。這樣,常數值或立即值可以被移動到另一個值,例如,R3,其對應於附加的移動指令。此外,要渲染的每個像素可以包括相似的阿爾法值,因此所有阿爾法值的傳輸可能是冗餘的。例如,可以向要處理的下游區塊發送阿爾法值中的每一個,如果每個阿爾法值相同,這可能是冗餘的。
本案的各態樣可以消除將向要處理的下游區塊發送每個常數值的需要。例如,本案的各態樣可以減少冗餘資料傳輸的量,例如,常數值/立即值。也就是說,本案的各態樣可以構建別名表,例如,從SP向RB發送,該別名表可以儲存每個要渲染的像素的常數值/立即值。在別名表中,每個像素的常數值/立即值可以由表中對應於單個值(例如R3)的單個條目來表示。然後可以向用於處理的下游區塊(例如RB)發送該別名表。藉由利用別名表來儲存所有像素的所有常數值/立即值,GPR可以不需要儲存每個像素的常數值/立即值。因此,本案的各態樣可以利用別名表中的單個條目來儲存對應於所有像素的常數值/立即值的一個值,而不是將所有像素的每個常數值/立即值都儲存在GPR中。即,本案的各態樣可以減少常數值/立即值的儲存和資料傳輸的量。因此,本案的各態樣可以減輕GPU中不必要的資料/指令的傳輸和儲存空間。因此,本案的各態樣可以增加GPU的處理速度或能力,以及減少GPU中的資料儲存的量。
在一些態樣中,別名表可以在任何像素被渲染之前產生和發送,例如從SP向RB發送。在RB從SP接收到別名表之後,RB可以決定RGBA資料的一或多個分量對應於常數值/立即值。當SP稍後發出每個像素的渲染目標(RT)資料(例如,顏色資料)時,RB可能能夠在處理期間跳過資料的常數分量(例如,RGBA資料的阿爾法分量),因為RB已經可以具有來自先前發送的別名表的常數值。即,別名表可以允許RB在減少的時間量內處理渲染目標資料(例如,顏色資料)。這還可以允許本案的各態樣減少對GPR的資料讀取/寫入的量。
上述別名表可以應用於GPU中常數資料傳輸的任何應用,例如顏色資料。例如,本案的各態樣可以輸出某種格式的常數資料,例如RGBA資料,並且先前發送的別名表可以包括常數資料的對應值。該常數資料可以在GPU管線中的區塊之間被向量化及/或發送,例如,從SP向RB發送。此外,本案的各態樣可以執行對應指令以便將常數值移動到別名表或RT別名表。因此本案的各態樣可以產生別名表以便儲存對應指令的常數值/立即值。
如前述,當在GPU管線中處理或執行資料時,例如著色指令,與資料相關聯的常數值/立即值可以儲存在GPU內以供以後使用。在先前方法中,這些常數值/立即值儲存在GPR中,這就不一定利用寶貴的GPR空間。本案的各態樣可以產生RT別名表以便儲存這些常數值/立即值。藉由這樣做,本案的各態樣可能不需要利用GPR空間來儲存常數值/立即值,從而節省寶貴的GPR空間。此外,由於RT別名表可以從SP向RB發送,RB可以在進一步處理期間利用儲存在別名表中的常數值/立即值。由於常數值/立即值可以由表中的單個條目表示,RB可以在處理擷取常數值/立即值的期間節省時間。因此,本案的各態樣可以減少儲存常數值/立即值所需的GPR空間量,以及減少與常數值/立即值相關聯的資料的處理時間。
如前述,本案的各態樣可以將某些指令從移動指令轉換或重命名為別名指令。藉由使用別名指令而不是移動指令,本案的各態樣可以改變與指令相關聯的代碼或偽代碼,其中代碼可以由編譯器產生。例如,本案的各態樣可以利用以下編譯器產生的代碼:
shps //前序信號 開始
…
alias RT3.x, C9.x //第4個RT x分量
alias RT0.xyzw, 0.0 //第1個RT xyzw分量
alias RT1.xyzw, 0.0 //第2個RT xyzw分量
alias RT2.xyzw, 0.0 //第3個RT xyzw分量
alias RT4.xyzw, 0.0 //第5個RT xyzw分量
alias RT5.xyzw, 0.0 //第6個RT xyzw分量
alias RT6.xyzw, 0.0 //第7個RT xyzw分量
alias RT7.xyzw, 0.0 //第7個RT xyzw分量
shps //前序信號 結束
如上面的示例代碼所示,可以從指令中刪除每個與RT相關的移動指令。此外,也可以減少或消除用於儲存這些立即/常數RT分量的GPR空間量。因此,本案的各態樣可以減少用於處理常數值或立即值的資料/指令的儲存空間量。
在本案的一些態樣中,SP可以建立新表,例如RT別名表,以儲存常數值或立即值。例如,當分派器從GPR提取資料時,它可以首先查看RT別名表以決定是否存在常數值或立即值。如果存在常數值或立即值,分派器可以跳過GPR讀取。藉由這樣做,分派器可以不花費週期來提取常數或立即RT分量。因此,這個程序可以提高GPU的效能,以及減少不必要的處理步驟的量。此外,當SP將RT資料分派到RB時,上述表(例如RT別名表)可以實現另一功率或效能增強。例如,SP可以在每次繪製調用時將別名表傳遞給RB,而不是將常數/立即分量傳遞給每個像素或光纖的RB。藉由這樣做,SP可以跳過每像素/光纖常數轉換。因此,本案的各態樣可以減少不必要地傳送的資料的量,這也可以提高GPU的速度和效能。
圖6是GPU中的串流處理器(SP)610、表620(例如,RT別名表)、和渲染後端(RB)630的圖600。如圖6所示,SP 610可以產生包括複數個條目的表620以儲存與常數值或立即值中的至少一個相關聯的資料。該SP 610可以處理包括常數值或立即值中的至少一個的第一資料。該SP 610也可以在表620中儲存第一資料的常數值或立即值中的至少一個。SP 610也可以發送包括第一資料的常數值或立即值中的所儲存的至少一個的表620。此外,GPU(例如,SP 610或RB 630)可以跳過處理第二資料的常數值或立即值中的至少一個,其中第二資料與常數值或立即值中的至少一個相關聯。GPU(例如,SP 610或RB 630)也可以處理第二資料的部分,其中第二資料的該部分不包括常數值或立即值中的至少一個。RB 630還可以讀取第二資料的部分。而且,RB 630可以一旦讀取第二資料的該部分就移除包括常數值或立即值中的所儲存的至少一個的表620。
本案的各態樣的上述輸出別名使用程序提供了一種高效的方式,藉由該方式,提高了GPU的效能,並且減少在GPU處使用的GPR空間量。例如,本案的各態樣可以提供一種功率和效能高效的方式,藉由該方式,編譯器可以消除冗餘的移動指令。例如,藉由利用本案的各態樣,GPU的面積成本增量可以幾乎為零。本案的各態樣還可以減少GPR佔用空間(footprint)並減少常數/立即RT分量的GPR讀取/寫入存取。此外,本案的各態樣可以減少從SP向RB發送的資料/指令的量,例如每像素/光纖。
圖7是根據本案的一或多個技術的圖形處理的通訊流程圖700。如圖7所示,根據本案的一或多個技術,圖700包括GPU管線702(例如,GPU管線中的SP或RB)、GPU元件704(例如,GPU管線中的另一元件)與緩衝器或記憶體706之間的示例通訊。
在710處,GPU管線702可以產生包括常數值或立即值中的至少一個的第一資料。第一資料可以由編譯器產生。第一資料可以對應於紅色(R)綠色(G)藍色(B)阿爾法(A)(RGBA)資料,並且常數值或立即值可以對應於RGBA資料的阿爾法分量。在一些態樣中,第一資料(例如,資料712)可以從另一個GPU元件,例如,GPU元件704接收。
在720處,GPU管線702可以產生包括複數個條目的表以儲存與常數值或立即值中的至少一個相關聯的資料。該表可以是渲染目標(RT)別名表。在一些情況下,該表中的複數個條目之每一者條目可以對應於與該表中的複數個條目中的其他條目不同的資料,使得該表中的一個條目可以包括與該表中的另一條目不同的資料。複數個條目中的每一個中的資料可以與從串流處理器(SP)向GPU中的另一元件發送的資料相關聯。
在730處,一旦產生該表,GPU管線702可以處理包括常數值或立即值中的至少一個的第一資料。第一資料可以由GPU中的串流處理器(SP)或高級定序器(HLSQ)處理。如果HLSQ處理第一資料,則可以向SP發送第一資料。
在740處,GPU管線702可以在所產生的表中儲存第一資料的常數值或立即值中的至少一個。
在750處,一旦將常數值或立即值中的至少一個儲存在表中,GPU管線702可以發送包括第一資料的常數值或立即值中的所儲存的至少一個的表。可以向GPU中的渲染後端(RB)或頂點參數快取(VPC)中的至少一個發送包括常數值或立即值中的至少一個的表。
在760處,一旦發送該表,GPU管線702可以跳過處理第二資料的常數值或立即值中的至少一個,其中第二資料與常數值或立即值中的至少一個相關聯。
在770處,GPU管線702可以處理第二資料的部分,其中第二資料的該部分不包括常數值或立即值中的至少一個。第二資料的該部分可以不包括第二資料的前序信號,使得可以不處理第二資料的前序信號。也可以在圖形處理單元(GPU)的不同部分中處理第一資料和第二資料。
在780處,一旦發送該表,GPU管線702可以讀取第二資料的一部分。第二資料的該部分可以不包括常數值或立即值中的至少一個。在一些態樣中,第二資料,例如資料792,可以儲存在緩衝器或記憶體中,例如緩衝器/記憶體706。
在790處,一旦讀取第二資料(例如資料792)的該部分,GPU管線702可以移除包括常數值或立即值中的所儲存的至少一個的表。
圖8是根據本案的一或多個技術的圖形處理的示例方法的流程圖800。如結合圖1-7的示例使用的,該方法可以由裝置執行,諸如用於圖形處理的裝置、GPU、另一個圖形處理器、GPU管線、無線通訊設備、及/或可以執行圖形處理的任何裝置。
在802處,該裝置可以產生包括複數個條目的表以儲存與常數值或立即值中的至少一個相關聯的資料。例如,如圖7的720中所描述的,GPU管線702可以產生包括複數個條目的表以儲存與常數值或立即值中的至少一個相關聯的資料。此外,圖1中的處理單元120可以執行步驟802。該表可以是渲染目標(RT)別名表。在一些情況下,該表中的複數個條目之每一者條目可以對應於與該表中的複數個條目中的其他條目不同的資料,使得該表中的一個條目可以包括與該表中的另一條目不同的資料。複數個條目中的每一個中的資料可以與從串流處理器(SP)向GPU中的另一元件發送的資料相關聯。
在804處,一旦產生該表,該裝置可以處理包括常數值或立即值中的至少一個的第一資料。例如,如圖7的730中所描述的,一旦產生該表,GPU管線702可以處理包括常數值或立即值中的至少一個的第一資料。此外,圖1中的處理單元120可以執行步驟804。第一資料可以由GPU中的串流處理器(SP)或高級定序器(HLSQ)處理。如果HLSQ處理第一資料,則可以向SP發送第一資料。
在806處,該裝置還可以在所產生的表中儲存第一資料的常數值或立即值中的至少一個。例如,如圖7的740中所描述的,GPU管線702可以在所產生的表中儲存第一資料的常數值或立即值中的至少一個。此外,圖1中的處理單元120可以執行步驟806。
在808處,一旦將常數值或立即值中的至少一個儲存在表中,該裝置可以發送包括第一資料的常數值或立即值中的所儲存的至少一個的表。例如,如圖7的750中所描述的,一旦將常數值或立即值中的至少一個儲存在表中,GPU管線702可以發送包括第一資料的常數值或立即值中的所儲存的至少一個的表。此外,圖1中的處理單元120可以執行步驟808。可以向GPU中的渲染後端(RB)或頂點參數快取記憶體(VPC)中的至少一個發送包括常數值或立即值中的至少一個的表。
圖9是根據本案的一或多個技術的圖形處理的示例方法的流程圖900。如結合圖1-7的示例使用的,該方法可以由裝置執行,諸如用於圖形處理的裝置、GPU、另一個圖形處理器、GPU管線、無線通訊設備、及/或可以執行圖形處理的任何裝置。
在902處,該裝置可以產生包括常數值或立即值中的至少一個的第一資料。例如,如圖7的710中所描述的,該GPU管線702可以產生包括常數值或立即值中的至少一個的第一資料。此外,圖1中的處理單元120可以執行步驟902。第一資料可以由編譯器產生。第一資料可以對應於紅色(R)綠色(G)藍色(B)阿爾法(A)(RGBA)資料,並且常數值或立即值可以對應於RGBA資料的阿爾法分量。在一些態樣中,可以從另一個GPU元件接收第一資料。
在904處,該裝置可以產生包括複數個條目的表以儲存與常數值或立即值中的至少一個相關聯的資料。例如,如圖7的720中所描述的,GPU管線702可以產生包括複數個條目的表以儲存與常數值或立即值中的至少一個相關聯的資料。此外,圖1中的處理單元120可以執行步驟904。該表可以是渲染目標(RT)別名表。在一些情況下,該表中的複數個條目之每一者條目可以對應於與該表中的複數個條目中的其他條目不同的資料,使得該表中的一個條目可以包括與該表中的另一條目不同的資料。複數個條目中的每一個中的資料可以與從串流處理器(SP)向GPU中的另一元件發送的資料相關聯。
在906處,一旦產生該表,該裝置可以處理包括常數值或立即值中的至少一個的第一資料。例如,如圖7的730中所描述的,一旦產生該表,GPU管線702可以處理包括常數值或立即值中的至少一個的第一資料。此外,圖1中的處理單元120可以執行步驟906。第一資料可以由GPU中的串流處理器(SP)或高級定序器(HLSQ)處理。如果HLSQ處理第一資料,則可以向SP發送第一資料。
在908處,該裝置還可以在所產生的表中儲存第一資料的常數值或立即值中的至少一個。例如,如圖7的740中所描述的,GPU管線702可以在所產生的表中儲存第一資料的常數值或立即值中的至少一個。此外,圖1中的處理單元120可以執行步驟908。
在910處,一旦將常數值或立即值中的至少一個儲存在表中,該裝置可以發送包括第一資料的常數值或立即值中的所儲存的至少一個的表。例如,如圖7的750中所描述的,一旦將常數值或立即值中的至少一個儲存在表中,GPU管線702可以發送包括第一資料的常數值或立即值中的所儲存的至少一個的表。此外,圖1中的處理單元120可以執行步驟910。可以向GPU中的渲染後端(RB)或頂點參數快取(VPC)中的至少一個發送包括常數值或立即值中的至少一個的表。
在912處,一旦發送該表,該裝置可以跳過處理第二資料的常數值或立即值中的至少一個,其中第二資料與常數值或立即值中的至少一個相關聯。例如,如圖7的760中所描述的,一旦發送該表,GPU管線702可以跳過處理第二資料的常數值或立即值中的至少一個,其中第二資料與常數值或立即值中的至少一個相關聯。此外,圖1中的處理單元120可以執行步驟912。
在914處,該裝置可以處理第二資料的部分,其中第二資料的該部分不包括常數值或立即值中的至少一個。例如,如圖7的770中所描述的,GPU管線702可以處理第二資料的部分,其中第二資料的該部分不包括常數值或立即值中的至少一個。此外,圖1中的處理單元120可以執行步驟914。第二資料的該部分可以不包括第二資料的前序信號,使得可以不處理第二資料的前序信號。也可以在圖形處理單元(GPU)的不同部分中處理第一資料和第二資料。
在916處,一旦發送該表,該裝置可以讀取第二資料的部分。例如,如圖7的780中所描述的,一旦發送該表,GPU管線702可以讀取第二資料的一部分。此外,圖1中的處理單元120可以執行步驟916。第二資料的該部分可以不包括常數值或立即值中的至少一個。在一些態樣中,第二資料可以儲存在緩衝器或記憶體中。
在918處,一旦讀取第二資料的該部分,該裝置可以移除包括常數值或立即值中的所儲存的至少一個的表。例如,如圖7的790中所描述的,一旦讀取第二資料的該部分,GPU管線702可以移除包括常數值或立即值中的所儲存的至少一個的表。此外,圖1中的處理單元120可以執行步驟918。
在配置中,提供了一種用於圖形處理的方法或裝置。該裝置可以是GPU、圖形處理器、或可以執行圖形處理的一些其他處理器。在各態樣中,該裝置可以是設備104內的處理單元120,或者可以是設備104或另一設備內的一些其他硬體。該裝置(例如,處理單元120)可以包括用於產生包括複數個條目的表以儲存與常數值或立即值中的至少一個相關聯的資料的構件;用於一旦產生該表,處理包括常數值或立即值中的至少一個的第一資料的構件;用於在所產生的表中儲存第一資料的常數值或立即值中的至少一個的構件;用於一旦將常數值或立即值中的至少一個儲存在該表中,發送包括第一資料的常數值或立即值中的所儲存的至少一個的表的構件;用於一旦發送該表,跳過處理第二資料的常數值或立即值中的至少一個的構件,其中第二資料與常數值或立即值中的至少一個相關聯;用於處理第二資料的部分的構件,其中第二資料的該部分不包括常數值或立即值中的至少一個;用於一旦發送該表,讀取第二資料的一部分的構件;用於一旦讀取第二資料的該部分,移除包括常數值或立即值中的所儲存的至少一個的表的構件;及用於產生包括常數值或立即值中的至少一個的第一資料的構件,其中第一資料由編譯器產生。
可以實施本文描述的主題以實現一或多個益處或優點。例如,所描述的圖形處理技術可以由GPU、圖形處理器或可以執行圖形處理以實現本文所描述的常數資料儲存技術的一些其他處理器使用。與其他圖形處理技術相比,這也可以以較低的成本實現。此外,本文的圖形處理技術可以改進或加速資料處理或執行。此外,本文的圖形處理技術可以提高資源或資料利用率及/或資源效率。附加地,本案的各態樣可以利用常數資料儲存裝置以提高記憶體頻寬效率及/或增加GPU處的處理速度。
應該理解,所揭示的程序/流程圖中的區塊的特定順序或層次是示例方法的說明。基於設計偏好,應當理解,可以重新佈置程序/流程圖中的區塊的特定順序或層次。此外,可以組合或省區一些區塊。隨附方法的請求項以示例順序呈現了各個區塊的元件,並且並不意味著限於所呈現的特定順序或層次。
提供先前的描述以使熟習此項技術者能夠實踐本文所描述的各個態樣。針對這些態樣的各種修改對於熟習此項技術者而言將是顯而易見的,並且可以將本文中定義的一般原理應用到其他態樣。從而,請求項不旨在限於本文中所顯示的各個態樣,而是應被賦予與請求項的語言一致的完整範圍,其中除非明確指出,以單數形式提及的元件並不旨在表示「一個且僅有一個」,而是「一或多個」。「示例性」一詞在本文中用於表示「用作示例、實例或說明」。本文中被描述為「示例性的」的任何態樣不一定被解釋為優選於或優於其他態樣。
除非另有明確說明,否則術語「一些」是指一或多個,並且術語「或」可以解釋為「及/或」,其中上下文沒有另外規定。諸如「A、B或C中的至少一個」,「A、B或C中的一或多個」,「A、B和C中的至少一個」,「A、B和C中的一或多個」,以及「A、B、C或其任何組合」的組合包括A、B及/或C的任何組合,並且可以包括多個A、多個B或的多個C。特別地,諸如「A、B或C中的至少一個」,「A、B或C中的一或多個」,「A、B和C中的至少一個」,「A、B和C中的一或多個」和「A、B、C或其任意組合」的組合可以是僅A、僅B、僅C、A和B、A和C、B和C、或A和B和C,其中任何此類組合可以包含A、B或C中的一或多個成員。一般熟習此項技術者已知或以後知道的本案通篇所描述的各個態樣的元素的所有結構和功能均等物都以引用的方式明確併入本文中並且旨在被請求項所涵蓋。而且,無論在請求項中是否明確敘述了本文所揭示的內容,這些揭露內容都不旨在於捐獻給公眾。單詞「模組」、「機制」、「元件」、「設備」等可能無法代替單詞「部件」。這樣,除非元件使用短語「用於……的構件」明確敘述,否則任何請求項元件都不應解釋為部件加功能。
在一或多個示例中,可以以硬體、軟體、韌體或其任何組合來實現本文所描述的功能。例如,儘管在本案中通篇使用了術語「處理單元」,但是此類處理單元可以以硬體、軟體、韌體或其任何組合來實現。如果本文所述的任何功能、處理單元、技術或其他模組以軟體實現,則本文所述的功能、處理單元、技術或其他模組可以作為一或多個指令或代碼儲存在電腦可讀取媒體上或作為一或多個指令或代碼傳輸。
根據本案,在上下文沒有另外規定的情況下,術語「或」可以被理解為「及/或」。附加地,雖然諸如「一或多個」或「至少一個」等短語可能已用於本文揭露的某些特徵而非其他特徵,但未使用此類語言的特徵可被解釋為在上下文沒有另外規定的情況下暗示具有此類含義。
在一或多個示例中,可以以硬體、軟體、韌體或其任何組合來實現本文所描述的功能。例如,儘管在本案中通篇使用了術語「處理單元」,但是此類處理單元可以以硬體、軟體、韌體或其任何組合來實現。如果本文所述的任何功能、處理單元、技術或其他模組以軟體實現,則本文所述的功能、處理單元、技術或其他模組可以作為一或多個指令或代碼儲存在電腦可讀取媒體上或作為一或多個指令或代碼傳輸。電腦可讀取媒體可以包括電腦資料儲存媒體或通訊媒體,電腦資料儲存媒體或通訊媒體包括有助於將電腦程式從一個地方轉移到另一地方的任何媒體。以這種方式,電腦可讀取媒體大體可以對應於(1)非暫時性的有形電腦可讀取儲存媒體,或者(2)諸如信號或載波的通訊媒體。資料儲存媒體可以是可以由一台或多台電腦或一或多個處理器存取以擷取指令、代碼及/或資料結構以實現本案中描述的技術的任何可用媒體。作為示例而非限制,此類電腦可讀取媒體可以包括RAM、ROM、EEPROM、CD-ROM或其他光碟儲存、磁碟儲存器或其他磁性儲存裝置。本文使用的磁碟和光碟包括壓縮磁碟(CD)、雷射光碟、光碟、數位多功能光碟(DVD)、軟碟和藍光光碟,其中磁碟通常以磁性方式再現資料,而光碟則藉由雷射光學方式再現資料。上述組合也應包括於電腦可讀取媒體的範圍內。電腦程式產品可以包括電腦可讀取媒體。
該代碼可以由一或多個處理器執行,例如一或多個數位訊號處理器(DSP)、通用微處理器、專用積體電路(ASIC)、算數邏輯單元(ALU)、現場可程式設計閘陣列(FPGA)或其他等效的整合或個別邏輯電路。因此,如本文所使用的術語「處理器」可以指任何前述結構或適合於實現本文描述的技術的任何其他結構。同樣,該些技術可以在一或多個電路或邏輯元件中完全實現。
本案的技術可以在包括無線手持機、積體電路(IC)或IC集,例如,晶片集的多種設備或裝置中實現。在本發明中描述各種元件,模組或單元以強調經配置以執行所揭示技術的裝置的功能態樣,但不一定需要由不同硬體單元來實現。而是,如前述,各種單元可以組合在任何硬體單元中,或者由包括合適的軟體及/或韌體的交互動操作硬體單元的集合來提供,該交互動操作硬體單元包括如前述的一或多個處理器。因此,如本文所使用的術語「處理器」可以指任何前述結構或適合於實現本文描述的技術的任何其他結構。同樣,該些技術可以在一或多個電路或邏輯元件中完全實現。
以下態樣僅是說明性的並且可以與本文描述的其他態樣或教導結合,而不受限制。
態樣1是一種圖形處理方法。該方法包括產生包括複數個條目的表以儲存與常數值或立即值中的至少一個相關聯的資料;一旦產生該表,處理包括常數值或立即值中的至少一個的第一資料;在該產生的表中儲存第一資料的常數值或立即值中的至少一個;及一旦將常數值或立即值中的至少一個儲存在該表中,發送包括第一資料的常數值或立即值中的所儲存的至少一個的表。
態樣2是根據態樣1之方法,其中該表是渲染目標(RT)別名表。
態樣3是根據態樣1和2中任一項所述的方法,包括一旦發送該表,跳過處理第二資料的常數值或立即值中的至少一個,其中第二資料與常數值或立即值中的至少一個相關聯。
態樣4是根據態樣1至3中任一項所述的方法,還包括處理第二資料的部分,其中第二資料的該部分不包括常數值或立即值中的至少一個。
態樣5是根據態樣1至4中任一項所述的方法,其中第二資料的該部分不包括第二資料的前序信號,使得不處理第二資料的前序信號。
態樣6是根據態樣1至5中任一項所述的方法,其中第一資料和第二資料在圖形處理單元(GPU)的不同部分中處理。
態樣7是根據態樣1至6中任一項所述的方法,還包括,一旦發送該表,讀取第二資料的部分。
態樣8是根據態樣1至7中任一項所述的方法,其中第二資料的該部分不包括常數值或立即值中的至少一個。
態樣9是根據態樣1至8中任一項所述的方法,還包括一旦讀取第二資料的該部分,移除包括常數值或立即值中的所儲存的至少一個的表。
態樣10是根據態樣1至9中任一項所述的方法,其中該表中的複數個條目之每一者條目對應於與該表中的複數個條目中的其他條目不同的資料,使得該表中的一個條目包括與該表中的另一條目不同的資料。
態樣11是根據態樣1至10中任一項所述的方法,其中複數個條目中的每一個中的資料與從串流處理器(SP)向圖形處理單元(GPU)中的另一元件發送的資料相關聯。
態樣12是根據態樣1至11中任一項所述的方法,其中第一資料由圖形處理單元(GPU)中的串流處理器(SP)或高級定序器(HLSQ)處理。
態樣13是根據態樣1至12中任一項所述的方法,其中如果HLSQ處理第一資料,則向SP發送第一資料。
態樣14是根據態樣1至13中任一項所述的方法,還包括產生包括常數值或立即值中的至少一個的第一資料,其中該第一資料由編譯器產生。
態樣15是根據態樣1至14中任一項所述的方法,其中第一資料對應於紅色(R)綠色(G)藍色(B)阿爾法(A)(RGBA)資料,並且常數值或立即值對應於RGBA資料的阿爾法分量。
態樣16是根據態樣1至15中任一項所述的方法,其中向圖形處理單元(GPU)中的渲染後端(RB)或頂點參數快取(VPC)中的至少一個發送包括常數值或立即值中的至少一個的表。
態樣17是一種用於圖形處理單元的裝置,包括至少一個處理器,該處理器耦接到記憶體並被配置為實施根據態樣1至16中任一項所述的方法。
態樣18是根據態樣17之裝置,還包括耦接到至少一個處理器的收發器。
態樣19是一種用於圖形處理的裝置,包括用於實施態樣1至16中任一項所述的方法的構件。
態樣20是一種儲存電腦可執行代碼的電腦可讀取媒體,該代碼在由至少一個處理器執行時使該至少一個處理器實施根據態樣1至16中任一項所述的方法。
100:示例內容產生系統
104:設備
107:圖形處理管線
120:處理單元
121:內部記憶體
122:內容編碼器/解碼器
123:內部記憶體
124:系統記憶體
126:通訊介面
127:顯示處理器
128:接收器
130:發送器
131:顯示器
132:收發器
198:決定元件
200:示例GPU
210:命令處理器(CP)
212:繪圖調用封包
220:VFD
222:VS
224:頂點快取記憶體(VPC)
226:三角形設置引擎(TSE)
228:光柵器(RAS)
230:Z處理引擎(ZPE)
232:像素內插器(PI)
234:片段著色器(FS)
236:渲染後端(RB)
238:2級(L2)快取記憶體(UCHE)
240:系統記憶體
250:命令緩衝器
260:上下文暫存器封包
261:上下文狀態
300:圖像或表面
302:區域
310:箱
311:箱
312:箱
313:箱
314:箱
315:箱
321:像素
322:像素
323:像素
324:像素
350:第一視點
351:第二視點
400:GPU
402:高級定序器(HLSQ)
404:VPC
406:紋理處理器(TP)
408:UCHE
410:RB
412:VPC
420:SP
422:主引擎
424:定序器
426:本機記憶體
428:上下文暫存器
430:紋理(TEX)或負載控制器
432:指令快取記憶體
434:執行單元(EU)
436:通用暫存器(GPR)
438:輸出分發器
440:常數RAM
442:紋理分發器
500:GPU
502:HLSQ
506:TP
508:UCHE
510:RB
512:VPC
520:SP
522:主引擎
524:定序器
526:本地緩衝器
528:波排程器
530:紋理(TEX)
532:指令快取記憶體
534:ALU
536:GPR
538:分派器
540:記憶體(MEM)負載儲存裝置(LDST)
600:圖
610:串流處理器(SP)
620:表
630:渲染後端(RB)
700:通訊流程圖
702:GPU管線
704:GPU元件
706:緩衝器/記憶體
710:步驟
712:資料
720:步驟
730:步驟
740:步驟
750:步驟
760:步驟
770:步驟
780:步驟
790:步驟
792:資料
800:流程圖
802:步驟
804:步驟
806:步驟
808:步驟
900:流程圖
902:步驟
904:步驟
906:步驟
908:步驟
910:步驟
912:步驟
914:步驟
916:步驟
918:步驟
圖1是圖示根據本案的一或多個技術的示例內容產生系統的方塊圖。
圖2圖示根據本案的一或多個技術的示例GPU。
圖3圖示根據本案的一或多個技術的示例圖像或表面。
圖4是圖示根據本案的一或多個技術的示例GPU的圖。
圖5是圖示根據本案的一或多個技術的示例GPU的圖。
圖6是圖示根據本案的一或多個技術的示例串流處理器、表和渲染後端的圖。
圖7是圖示根據本發明的一或多個技術的GPU管線、GPU元件和記憶體/緩衝器之間的示例通訊的通訊流程圖。
圖8是根據本案的一或多個技術的圖形處理的示例方法的流程圖。
圖9是根據本案的一或多個技術的圖形處理的示例方法的流程圖。
國內寄存資訊(請依寄存機構、日期、號碼順序註記)
無
國外寄存資訊(請依寄存國家、機構、日期、號碼順序註記)
無
700:通訊流程圖
702:GPU管線
704:GPU元件
706:緩衝器/記憶體
710:步驟
712:資料
720:步驟
730:步驟
740:步驟
750:步驟
760:步驟
770:步驟
780:步驟
790:步驟
792:資料
Claims (35)
- 一種用於圖形處理的裝置,包括: 一記憶體;及 至少一個處理器,該至少一個處理器耦接到該記憶體並被配置為: 產生包括複數個條目的一表以儲存與一常數值或一立即值中的至少一個相關聯的資料; 一旦產生該表,處理包括一常數值或一立即值中的至少一個的第一資料; 在該產生的表中儲存該第一資料的該常數值或該立即值中的至少一個;並且 一旦將該常數值或該立即值中的至少一個儲存在該表中,發送包括該第一資料的該常數值或該立即值中的所儲存的至少一個的該表。
- 根據請求項1之裝置,其中該表是一渲染目標(RT)別名表。
- 根據請求項1之裝置,其中該至少一個處理器還被配置為: 一旦發送該表,跳過處理第二資料的該常數值或該立即值中的至少一個,其中該第二資料與該常數值或該立即值中的至少一個相關聯。
- 根據請求項3之裝置,其中該至少一個處理器還被配置為: 處理該第二資料的一部分,其中該第二資料的該部分不包括該常數值或該立即值中的至少一個。
- 根據請求項4之裝置,其中該第二資料的該部分不包括該第二資料的一前序信號,使得不處理該第二資料的該前序信號。
- 根據請求項4之裝置,其中在一圖形處理單元(GPU)的不同部分中處理該第一資料和該第二資料。
- 根據請求項3之裝置,其中該至少一個處理器還被配置為: 一旦發送該表就讀取該第二資料的一部分。
- 根據請求項7之裝置,其中該第二資料的該部分不包括該常數值或該立即值中的至少一個。
- 根據請求項7之裝置,其中該至少一個處理器還被配置為: 一旦讀取該第二資料的該部分,移除包括該常數值或該立即值中的所儲存的至少一個的該表。
- 根據請求項1之裝置,其中該表中的該複數個條目之每一者條目對應於與該表中的該複數個條目中的其他條目不同的資料,使得該表中的一個條目包括與該表中的另一條目不同的資料。
- 根據請求項10之裝置,其中該複數個條目中的每一個中的該資料與從一串流處理器(SP)向一圖形處理單元(GPU)中的另一元件發送的資料相關聯。
- 根據請求項1之裝置,其中該第一資料由一圖形處理單元(GPU)中的一串流處理器(SP)或一高級定序器(HLSQ)處理。
- 根據請求項12之裝置,其中如果該HLSQ處理該第一資料,則向該SP發送該第一資料。
- 根據請求項1之裝置,其中該至少一個處理器還被配置為: 產生包括該常數值或該立即值中的至少一個的該第一資料,其中該第一資料由一編譯器產生。
- 根據請求項1之裝置,其中該第一資料對應於紅色(R)綠色(G)藍色(B)阿爾法(A)(RGBA)資料,並且該常數值或立即值對應於該RGBA資料的一阿爾法分量。
- 根據請求項1之裝置,其中向一圖形處理單元(GPU)中的一渲染後端(RB)或一頂點參數快取(VPC)中的至少一個發送包括該常數值或該立即值中的至少一個的該表。
- 根據請求項1之裝置,還包括耦接到該至少一個處理器的一收發器。
- 一種用於圖形處理的方法,包括: 產生包括複數個條目的一表以儲存與一常數值或一立即值中的至少一個相關聯的資料; 一旦產生該表,處理包括一常數值或一立即值中的至少一個的第一資料; 在該產生的表中儲存該第一資料的該常數值或該立即值中的至少一個;及 一旦將該常數值或該立即值中的至少一個儲存在該表中,發送包括該第一資料的該常數值或該立即值中的所儲存的至少一個的該表。
- 根據請求項18之方法,其中該表是一渲染目標(RT)別名表。
- 根據請求項18之方法,還包括: 一旦發送該表,跳過處理第二資料的該常數值或該立即值中的至少一個,其中該第二資料與該常數值或該立即值中的至少一個相關聯。
- 根據請求項20之方法,還包括: 處理該第二資料的一部分,其中該第二資料的該部分不包括該常數值或該立即值中的至少一個。
- 根據請求項21之方法,其中該第二資料的該部分不包括該第二資料的一前序信號,使得不處理該第二資料的該前序信號。
- 根據請求項21之方法,其中該第一資料和該第二資料在一圖形處理單元(GPU)的不同部分中處理。
- 根據請求項20之方法,還包括: 一旦發送該表,讀取該第二資料的一部分。
- 根據請求項24之方法,其中該第二資料的該部分不包括該常數值或該立即值中的至少一個。
- 根據請求項24之方法,還包括: 一旦讀取該第二資料的該部分,移除包括該常數值或該立即值中的所儲存的至少一個的該表。
- 根據請求項18之方法,其中該表中的該複數個條目之每一者條目對應於與該表中的該複數個條目中的其他條目不同的資料,使得該表中的一個條目包括與該表中的另一條目不同的資料。
- 根據請求項27之方法,其中該複數個條目中的每一個中的該資料與從一串流處理器(SP)向一圖形處理單元(GPU)中的另一元件發送的資料相關聯。
- 根據請求項18之方法,其中該第一資料由一圖形處理單元(GPU)中的一串流處理器(SP)或一高級定序器(HLSQ)處理。
- 根據請求項29之方法,其中如果該HLSQ處理該第一資料,則向該SP發送該第一資料。
- 根據請求項18之方法,還包括: 產生包括該常數值或該立即值中的至少一個的該第一資料,其中該第一資料由一編譯器產生。
- 根據請求項18之方法,其中該第一資料對應於紅色(R)綠色(G)藍色(B)阿爾法(A)(RGBA)資料,並且該常數值或立即值對應於該RGBA資料的一阿爾法分量。
- 根據請求項18之方法,其中向一圖形處理單元(GPU)中的一渲染後端(RB)或一頂點參數快取記憶體(VPC)中的至少一個發送包括該常數值或該立即值中的至少一個的該表。
- 一種用於圖形處理的裝置,包括: 用於產生包括複數個條目的一表以儲存與一常數值或一立即值中的至少一個相關聯的資料的構件; 用於一旦產生該表,處理包括一常數值或一立即值中的至少一個的第一資料的構件; 用於在該產生的表中儲存該第一資料的該常數值或該立即值中的至少一個的構件;及 用於一旦將該常數值或該立即值中的至少一個儲存在該表中,發送包括該第一資料的該常數值或該立即值中的所儲存的至少一個的該表的構件。
- 一種儲存用於圖形處理的電腦可執行代碼的電腦可讀取媒體,該代碼在由一處理器執行時使該處理器: 產生包括複數個條目的一表以儲存與一常數值或一立即值中的至少一個相關聯的資料; 一旦產生該表,處理包括一常數值或一立即值中的至少一個的第一資料; 在該產生的表中儲存該第一資料的該常數值或該立即值中的至少一個;並且 一旦將該常數值或該立即值中的至少一個儲存在該表中,發送包括該第一資料的該常數值或該立即值中的所儲存的至少一個的該表。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/356,434 | 2021-06-23 | ||
US17/356,434 US11657471B2 (en) | 2021-06-23 | 2021-06-23 | Methods and apparatus for constant data storage |
Publications (1)
Publication Number | Publication Date |
---|---|
TW202324290A true TW202324290A (zh) | 2023-06-16 |
Family
ID=82361334
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW111119650A TW202324290A (zh) | 2021-06-23 | 2022-05-26 | 常數資料儲存裝置 |
Country Status (7)
Country | Link |
---|---|
US (1) | US11657471B2 (zh) |
EP (1) | EP4360039A1 (zh) |
KR (1) | KR20240001272A (zh) |
CN (1) | CN117501302A (zh) |
BR (1) | BR112023026269A2 (zh) |
TW (1) | TW202324290A (zh) |
WO (1) | WO2022271406A1 (zh) |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8094158B1 (en) | 2006-01-31 | 2012-01-10 | Nvidia Corporation | Using programmable constant buffers for multi-threaded processing |
US8154554B1 (en) * | 2006-07-28 | 2012-04-10 | Nvidia Corporation | Unified assembly instruction set for graphics processing |
US9799088B2 (en) * | 2014-08-21 | 2017-10-24 | Qualcomm Incorporated | Render target command reordering in graphics processing |
US9799094B1 (en) * | 2016-05-23 | 2017-10-24 | Qualcomm Incorporated | Per-instance preamble for graphics processing |
US10748323B2 (en) * | 2018-12-04 | 2020-08-18 | Intel Corporation | GPU based shader constant folding |
US11132760B2 (en) | 2019-12-13 | 2021-09-28 | Qualcomm Incorporated | Graphics instruction operands alias |
US11694384B2 (en) | 2020-10-30 | 2023-07-04 | Qualcomm Incorporated | Fast incremental shared constants |
-
2021
- 2021-06-23 US US17/356,434 patent/US11657471B2/en active Active
-
2022
- 2022-05-26 TW TW111119650A patent/TW202324290A/zh unknown
- 2022-05-26 EP EP22736413.0A patent/EP4360039A1/en active Pending
- 2022-05-26 KR KR1020237043764A patent/KR20240001272A/ko not_active Application Discontinuation
- 2022-05-26 WO PCT/US2022/031197 patent/WO2022271406A1/en active Application Filing
- 2022-05-26 CN CN202280042990.8A patent/CN117501302A/zh active Pending
- 2022-05-26 BR BR112023026269A patent/BR112023026269A2/pt unknown
Also Published As
Publication number | Publication date |
---|---|
CN117501302A (zh) | 2024-02-02 |
BR112023026269A2 (pt) | 2024-03-05 |
EP4360039A1 (en) | 2024-05-01 |
US11657471B2 (en) | 2023-05-23 |
US20220414814A1 (en) | 2022-12-29 |
WO2022271406A1 (en) | 2022-12-29 |
KR20240001272A (ko) | 2024-01-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TW202215376A (zh) | 用於圖形處理單元混合渲染的裝置和方法 | |
US20230290034A1 (en) | Fast incremental shared constants | |
US11055808B2 (en) | Methods and apparatus for wave slot management | |
TW202219885A (zh) | 利用gpu緩存用於縮小的使用simo方案最佳化gpu核心的方法和裝置 | |
TW202324290A (zh) | 常數資料儲存裝置 | |
US20230377240A1 (en) | Run-time mechanism for optimal shader | |
US11087431B2 (en) | Methods and apparatus for reducing draw command information | |
US20230019763A1 (en) | Methods and apparatus to facilitate a dedicated bindless state processor | |
US11954758B2 (en) | Dynamic wave pairing | |
US20220357983A1 (en) | Methods and apparatus for wave slot retirement procedures | |
US11893654B2 (en) | Optimization of depth and shadow pass rendering in tile based architectures | |
TW202134996A (zh) | 用於減少渲染資訊的傳輸的方法和裝置 | |
US20240046543A1 (en) | Runtime mechanism to optimize shader execution flow | |
TW202307783A (zh) | Gpu作用域的效能管理負擔最佳化 | |
TW202318332A (zh) | 動態可變速率著色 |