TW202123165A - 用於減少繪製命令資訊的方法和裝置 - Google Patents

用於減少繪製命令資訊的方法和裝置 Download PDF

Info

Publication number
TW202123165A
TW202123165A TW109137418A TW109137418A TW202123165A TW 202123165 A TW202123165 A TW 202123165A TW 109137418 A TW109137418 A TW 109137418A TW 109137418 A TW109137418 A TW 109137418A TW 202123165 A TW202123165 A TW 202123165A
Authority
TW
Taiwan
Prior art keywords
state
graphic
groups
group
graphics
Prior art date
Application number
TW109137418A
Other languages
English (en)
Inventor
斯里哈里巴布 阿拉
喬納拉加達 納根德拉庫瑪
阿維納什 西薩拉馬亞
Original Assignee
美商高通公司
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 美商高通公司 filed Critical 美商高通公司
Publication of TW202123165A publication Critical patent/TW202123165A/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3055Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Graphics (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • Image Generation (AREA)

Abstract

本案內容涉及用於圖形處理的方法和裝置。本案內容的各態樣可以決定複數個圖形狀態組之每一者圖形狀態組的狀態。此外,本案內容的各態樣可以決定複數個圖形狀態組中的至少一個圖形狀態組是否包括改變的狀態。另外,本案內容的各態樣可以在至少一個圖形狀態組包括改變的狀態時,傳送用於至少一個圖形狀態組的狀態資訊。在一些態樣中,狀態資訊包括關於至少一個圖形狀態組的狀態的資訊。本案內容的各態樣亦可以為複數個圖形狀態組配置繪製狀態,其中繪製狀態包括用於圖形狀態組之每一者圖形狀態組的狀態資訊。

Description

用於減少繪製命令資訊的方法和裝置
概括而言,本案內容係關於處理系統,並且更具體地,本案內容係關於用於圖形處理的一或多個技術。
計算設備通常利用圖形處理單元(GPU)來加速圖形資料的渲染以進行顯示。此類計算設備可以包括例如電腦工作站、諸如所謂的智慧型電話之類的行動電話、嵌入式系統、個人電腦、平板電腦和視訊遊戲控制台。GPU執行圖形處理流水線,其包括一起操作以執行圖形處理命令並且輸出訊框的一或多個處理階段。中央處理單元(CPU)可以經由向GPU發出一或多個圖形處理命令來控制GPU的操作。現代的CPU通常能夠併發地執行多個應用,其之每一者應用在執行程序期間可能需要利用GPU。提供用於在顯示器上視覺呈現的內容的設備通常包括GPU。
通常,設備的GPU被配置為執行圖形處理流水線中的程序。然而,隨著無線通訊和較小的手持設備的出現,對改進的圖形處理的需求日益增長。
下文提供了一或多個態樣的簡化概述,以便提供對此類態樣的基本理解。該概述不是對所有預期態樣的詳盡綜述,而且既不意欲標識所有態樣的關鍵元素,亦不意欲圖示任何或所有態樣的範疇。其唯一目的是以簡化的形式提供一或多個態樣的一些概念,作為稍後提供的更加詳細的描述的前序。
在本案內容的一個態樣中,提供了一種方法、電腦可讀取媒體和裝置。該裝置可以是中央處理單元(CPU)、圖形處理單元(GPU)、或可以執行圖形處理的任何裝置。該裝置可以決定複數個圖形狀態組之每一者圖形狀態組的狀態。該裝置亦可以決定複數個圖形狀態組中的至少一個圖形狀態組是否包括改變的狀態。另外,當至少一個圖形狀態組包括改變的狀態時,該裝置可以傳送用於至少一個圖形狀態組的狀態資訊。在一些態樣中,狀態資訊包括關於至少一個圖形狀態組的狀態的資訊。該裝置亦可以辨識包括改變的狀態的複數個圖形狀態組中的至少一個圖形狀態組。此外,該裝置可以改變複數個圖形狀態組中的至少一個圖形狀態組的狀態,使得至少一個圖形狀態組包括改變的狀態。該裝置亦可以決定用於複數個圖形狀態組中的至少一個圖形狀態組的狀態資訊。該裝置亦可以向GPU發送用於複數個圖形狀態組中的至少一個圖形狀態組的狀態資訊。另外,該裝置可以決定複數個圖形狀態組中的一或多個圖形狀態組是否包括未改變的狀態。當一或多個圖形狀態組包括未改變的狀態時,該裝置亦可以針對複數個圖形狀態組的一或多個圖形狀態組之每一者圖形狀態組複製狀態或狀態指標。該裝置亦可以為複數個圖形狀態組配置繪製狀態。此外,該裝置可以基於用於複數個圖形狀態組中的至少一個圖形狀態組的狀態資訊來渲染顯示內容中的至少一些內容。該裝置亦可以基於顯示內容來決定複數個圖形狀態組之每一者圖形狀態組。
在附圖和以下描述中闡述了本案內容的一或多個實例的細節。根據說明書和附圖以及根據申請專利範圍,本案內容的其他特徵、目標和優點將是顯而易見的。
一些CPU為每個圖形狀態組構建或寫入完整的狀態資訊集合,而不管特定圖形狀態組的狀態或上下文狀態是否已經改變。為每個繪製調用構建完整的狀態資訊集合可能會導致CPU的大量管理負擔。CPU亦可以通知GPU處理每個單獨的圖形狀態組的狀態,這可能利用CPU及/或GPU處的過多工作負載。此外,若指示GPU渲染每個圖形狀態組,而不管圖形狀態組是否改變狀態,則GPU可能執行不必要的工作。本案內容的各態樣可以在繪製調用之間傳送用於每個工作負載的圖形狀態資訊時減少CPU工作負載管理負擔。例如,本案內容的各個態樣可以針對每個繪製調用傳送圖形狀態組的增量或變化狀態,並且消除傳送圖形狀態組的非增量或非變化狀態。經由減少來自CPU的不必要指令的數量和GPU處的不必要的狀態處理,本案內容的各個態樣可以減少CPU及/或GPU處的大量工作負載。
下文參照附圖更加充分描述了系統、裝置、電腦程式產品和方法的各個態樣。然而,本案內容可以以許多不同的形式來體現,並且不應當被解釋為限於貫穿本案內容所呈現的任何特定的結構或功能。更確切地說,這些態樣被提供使得本案內容將是透徹和完整的,並且將向本發明所屬領域中具有通常知識者充分地傳達本案內容的範疇。基於本文的教導,本發明所屬領域中具有通常知識者應當明白的是,本案內容的範疇意欲涵蓋本文所揭示的系統、裝置、電腦程式產品和方法的任何態樣,無論該態樣是獨立於本案內容的其他態樣實現的亦是與其結合地實現的。例如,使用本文所闡述的任何數量的態樣,可以實現一種裝置,或者可以實施一種方法。此外,本案內容的範疇意欲涵蓋使用除了本文所闡述的本案內容的各個態樣以外或不同於其的其他結構、功能或者結構和功能來實施的此類裝置或方法。本文揭示的任何態樣可以由請求項的一或多個元素來實現。
儘管本文描述了各個態樣,但是這些態樣的許多變型和置換落在本案內容的範疇之內。儘管提到了本案內容的各態樣的一些潛在益處和優點,但是本案內容的範疇並非意欲限於特定益處、用途或目標。更確切地說,本案內容的各態樣意欲廣泛地適用於不同的無線技術、系統組態、網路和傳輸協定,其中一些經由舉例在附圖和以下描述中進行說明。詳細描述和附圖僅是說明本案內容,而不是進行限制,本案內容的範疇由所附的請求項以及其均等物來限定。
現在將參照各種裝置和方法來提供若干態樣。將經由各個方塊、部件、電路、程序、演算法等(被統稱為「元素」),在以下的詳細描述中描述並且在附圖中示出這些裝置和方法。這些元素可以使用電子硬體、電腦軟體或其任何組合來實現。至於這些元素是實現為硬體還是軟體,取決於特定的應用和對整個系統所施加的設計約束。
舉例而言,可以將元素、或元素的任何部分、或元素的任何組合實現為「處理系統」,其包括一或多個處理器(其亦可以被稱為處理單元)。處理器的實例包括:微處理器、微控制器、圖形處理單元(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可以包括第一顯示器和第二顯示器。第一顯示器可以是左眼顯示器,並且第二顯示器可以是右眼顯示器。在一些實例中,第一和第二顯示器可以接收用於在其上呈現的不同的訊框。在其他實例中,第一和第二顯示器可以接收用於在其上呈現的相同的訊框。在另外的實例中,圖形處理的結果可以不顯示在設備上,例如,第一和第二顯示器可以不接收用於在其上呈現的任何訊框。相反,可以將訊框或圖形處理結果傳送給另一設備。在一些態樣中,這可以稱為分割渲染。
處理單元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,在某些態樣中,圖形處理流水線107可以包括決定部件198,其被配置為:決定複數個圖形狀態組之每一者圖形狀態組的狀態。決定部件198亦可以被配置為:決定複數個圖形狀態組中的至少一個圖形狀態組是否包括改變的狀態。決定部件198亦可以被配置為:當至少一個圖形狀態組包括改變的狀態時,傳送用於至少一個圖形狀態組的狀態資訊。在一些態樣中,狀態資訊包括關於至少一個圖形狀態組的狀態的資訊。決定部件198亦可以被配置為:辨識包括改變的狀態的複數個圖形狀態組中的至少一個圖形狀態組。決定部件198亦可以被配置為:改變複數個圖形狀態組中的至少一個圖形狀態組的狀態,使得至少一個圖形狀態組包括改變的狀態。決定部件198亦可以被配置為:決定用於複數個圖形狀態組中的至少一個圖形狀態組的狀態資訊。決定部件198亦可以被配置為:向GPU發送用於複數個圖形狀態組中的至少一個圖形狀態組的狀態資訊。決定部件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、L2快取記憶體(UCHE)238、虛擬分割緩存(VSC)239和系統記憶體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可以經由單獨的路徑來將上下文暫存器封包260或繪製調用資料封包212發送給GPU中的處理單元或塊。此外,命令緩衝器250可以改變上下文暫存器和繪製調用的不同狀態。例如,可以以以下方式來構造命令緩衝器:上下文N的上下文暫存器、上下文N的繪製調用、上下文N+1的上下文暫存器以及上下文N+1的繪製調用。
GPU可以多種不同方式來渲染影像。在一些情況下,GPU可以使用渲染或平鋪渲染來渲染影像。在平鋪渲染GPU中,可以將影像劃分或分割為不同的部分或圖塊。在劃分影像之後,可以單獨地渲染每個部分或圖塊。平鋪渲染GPU可以將電腦圖形影像劃分為網格格式,使得網格的每個部分(亦即,圖塊)被單獨地渲染。在一些態樣中,在分箱流程(binning pass)期間,影像可以被劃分為不同的箱(bin)或圖塊(tile)。此外,在分箱流程中,可以例如使用繪製調用來在某些箱中將不同的圖元陰影化。在一些態樣中,在分箱流程期間,可以構造可見性串流,其中可以辨識可見圖元或繪製調用。
在一些態樣中,GPU可以將繪製或渲染程序應用於不同的箱或圖塊。例如,GPU可以渲染到一個箱,並且隨後對箱中的圖元或圖元執行所有繪製。另外,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或圖形處理器單元可以使用平鋪渲染架構來減少功耗或節省記憶體頻寬。如上文進一步所述,該渲染方法可以將場景劃分為多個箱,以及包括辨識在每個箱中可見的三角形的可見性流程。因此,在平鋪渲染中,全屏可以被劃分為多個箱或圖塊。隨後可以對場景進行多次渲染,例如,每個箱被渲染一次。
如上所指出的,GPU可以在一個箱中循環經由每個繪製調用,並且執行可見的繪製調用。在一些態樣中,落入給定箱的繪製調用被視為是活繪製調用,而落在箱之外的繪製調用被視為死繪製調用。高效地跳過死繪製調用可以降低經由多次渲染場景所導致的硬體管理負擔。
對於GPU的每個功能,可以存在指派的組,即工作負載組或圖形狀態組。工作負載或圖形狀態組亦可以包括對應的狀態或上下文狀態。因此,與特定的狀態或上下文狀態相對應的每個工作負載或圖形狀態組可以執行GPU的功能。例如,深度狀態可以是一個工作負載或圖形狀態組,混合狀態可以是另一工作負載或圖形狀態組,並且片段著色器狀態可以是另一工作負載或圖形狀態組。
對於每個箱或圖塊,GPU可以執行所有工作負載或圖形狀態組,並且獲取該特定箱的每個活繪製。此外,GPU可以為每個箱渲染獲取命令串流。另外,如上所指出的,在可見性流程中,GPU可以處理命令串流。GPU亦可以決定在可見性流程期間哪個繪製調用在特定的箱中可見。
在可見性流程期間,GPU亦可以為每個繪圖調用之每一者圖形狀態組構建狀態資訊或上下文狀態資訊的集合。在一些態樣中,當CPU或軟體提供增量或變化的狀態或上下文狀態時,GPU亦可以為每個繪製調用構建完整的狀態資訊集合。因此,CPU可以在可見性流程期間傳送工作負載或圖形狀態組的這些增量狀態或上下文狀態。在一些態樣中,可以在執行每個繪製調用之前發送命令串流,例如,在可見性流程中。因此,可以在GPU渲染或繪製之前,在可見性流程中發送命令串流。
在一些情況下,CPU或軟體可以在繪圖調用之間為每個圖形狀態組構建或寫入完整的狀態或上下文狀態。經由這樣做,CPU可以説明GPU或硬體跳到下一繪製調用,而不是為死繪製調用獲取命令串流。因此,在一些態樣中,CPU可以為每個圖形狀態組構建或寫入完整的狀態資訊集合,而不管特定圖形狀態組的狀態或上下文狀態是否已經改變。例如,若繪製調用1-3是死繪製調用,則為了從繪製調用0跳到繪製調用4,CPU或軟體可以在繪圖調用之間為每個圖形狀態組構建完整的狀態資訊集合。
為了為每個圖形狀態組構建完整的狀態資訊集合,CPU可以利用每個圖形狀態組的圖形狀態,例如,上下文暫存器、常數、著色器和資源描述符。實際上,在一些態樣中,每個繪製調用可以包含完整的上下文狀態資訊集合,這可以增加相當多的驅動器管理負擔。
如前述,工作負載或圖形狀態組可以包括常數、頂點著色器、片段著色器、幾何體著色器、上下文暫存器、獲取器、資源描述符、混合狀態、資料狀態、深度狀態等。工作負載或圖形狀態組的數量可以是任何適當的數位,例如8、16、32或64。此外,每個工作負載或圖形狀態組可以對應於例如在GPU處執行的特定的狀態或上下文狀態。在一些態樣中,CPU可以指示GPU如何將其工作負載劃分為不同的工作負載或圖形狀態組。隨後,GPU可以處理這些不同的工作負載或圖形狀態組。在一些態樣中,GPU可能不具有關於哪個組對應於特定狀態或上下文狀態的知識。
在一些態樣中,CPU或驅動器可以包括工作負載管理負擔量,例如,1%到20%的工作負載管理負擔,以便為每個繪製調用構建完整的狀態資訊集合。為了使CP在箱渲染流程期間有效地跳過死繪製調用並且移動到該箱的下一活繪製,需要構建完整的狀態。該管理負擔取決於工作負載的類型以及CPU是否為具有未改變的狀態的每個圖形狀態組構建先前的狀態資訊。在一些情況下,軟體可以為變化組構建具有新狀態資訊(亦即,增量狀態資訊)的命令串流。因此,增量狀態可以是從先前的繪製調用改變的狀態。同樣地,非增量狀態可以是沒有從先前的繪製調用改變的狀態。經由發送增量狀態而不發送非增量狀態,CPU可以減少工作負載管理負擔。此外,CPU可以構建具有增量狀態的命令串流,以避免驅動器管理負擔。
圖4圖示包括狀態資訊的實例圖400。圖4顯示圖形狀態組0-7,其包括特定繪製調用的對應狀態。另外,圖4圖示CPU為每個繪製調用之每一者狀態構建或寫入完整的狀態資訊。因此,即使圖形狀態組的上下文狀態從一個繪製調用到下一繪製調用沒有改變,CPU亦可以繼續構建該特定狀態。
圖4亦圖示與每個繪製調用的特定上下文狀態相對應的圖形狀態組。例如,對於在步驟419處執行的繪製調用0,CPU可以在410處設置繪製狀態,包括對應的組0-7的狀態資訊411-418。對於在步驟429處執行的繪製調用1,CPU可以在420處設置繪製狀態,包括對應的組0-7的狀態資訊421-428。對於在步驟439處執行的繪製調用2,CPU可以在430處設置繪製狀態,包括對應的組0-7的狀態資訊431-438。對於在步驟449執行的繪製調用3,CPU可以在440處設置繪製狀態,包括對應的組0-7的狀態資訊441-448。對於在步驟459處執行的繪製調用4,CPU可以在450處設置繪製狀態,包括對應的組0-7的狀態資訊451-458。對於在步驟469處執行的繪製調用5,CPU可以在460處設置繪製狀態,包括對應的組0-7的狀態資訊461-468。對於在步驟479處執行的繪製調用6,CPU可以在470處設置繪製狀態,包括對應的組0-7的狀態資訊471-478。
如圖4所示,對於不同的繪製調用,圖形狀態組0-7可以包括三個不同的上下文狀態,例如,狀態0、1或2。一些圖形狀態組的上下文狀態可以在後續的繪製調用之間發生變化,例如,從狀態0移動到狀態1。例如,從繪製調用0到繪製調用1,組5的上下文狀態從0變為1。如圖4中進一步所示,該模式可以繼續用於圖形狀態組,直到針對不同狀態(例如,狀態X、Y或Z)的特定繪製調用(例如,繪製N)為止。圖4亦顯示8個不同的圖形狀態組,但是可以存在任何不同數量的適當圖形狀態組,例如,8、16、32或64。如前述,GPU的工作負載或狀態被劃分為這些工作負載或圖形狀態組。
如上所指出的,圖4圖示可以構建每個圖形狀態組的狀態,即使它們沒有改變。為每個繪製調用構建完整的狀態資訊集合可能會導致來自CPU的顯著管理負擔,這亦會導致大量CPU工作負載週期。這亦可能會影響GPU工作負載執行時的CPU功耗。如圖4所示,從繪製調用0到繪製調用1,組5可以從狀態0變為狀態1,但是CPU仍然可能為繪製1構建或寫入每個狀態。另外,從繪製調用1到繪製調用2,組2和組6可以從狀態0變為狀態1,但是CPU仍然可能為繪製調用2構建或寫入每個狀態。因此,CPU可以寫入所有組的完整狀態,而不管每個組的狀態是否改變。
在一些態樣中,當CPU寫入所有組的完整狀態時,CPU可以通知GPU處理每個組的這些狀態之每一者狀態。因此,GPU可以處理更多的工作負載週期,因為針對每個繪製調用存在完整狀態。此外,CPU可以向GPU發送用於每個繪製調用的完整狀態資訊,而不考慮GPU渲染模式。
在一些態樣中,GPU可以具有不同的渲染模式,例如,直接或軟體分箱模式及/或硬體分箱模式。如本文提及的,在軟體分箱模式下,GPU可以渲染每個圖塊並且處理每個箱中的所有繪製調用。另外,在軟體分箱模式下,可以不傳送關於活或死繪製調用的資訊。例如,在軟體分箱模式下,可以同時渲染整個曲面,而不是經由將表面分割為小圖塊或箱進行渲染。如本文提及的,軟體分箱模式可以不包括可見性流程。在一些態樣中,當存在較少數量的繪製調用時,軟體分箱模式可以是有用的。
在硬體分箱模式下,存在可見性流程,其中GPU處理每個繪製調用及/或產生可見性資訊。如本文提及的,可見性資訊可以描述在每個箱或圖塊中哪個繪製調用可見。此外,在硬體分箱模式下,表面被劃分成圖塊,並且經由處理每個圖塊的所有繪製調用來分別渲染每個圖塊。如前述,該可見性資訊包括關於活或死繪製調用的資訊。在一些態樣中,在可見性流程期間或之後,可以將用於每個箱的活或死繪製調用資訊傳送給GPU,並且GPU可以基於活或死繪製調用資訊來渲染每個箱。因此,在渲染每個箱之前,GPU可以針對每個繪製調用複製完整的狀態資訊集合。
如上所指出的,在一些態樣中,CPU可以通知GPU處理每個單獨的圖形狀態組的狀態,這可能利用CPU處的大量工作負載。此外,若指示GPU處理每個圖形狀態組,而不管圖形狀態組是否改變狀態,則GPU可能執行不必要的工作。經由消除來自CPU的不必要的指令和GPU處的不必要的狀態處理,可以在CPU和GPU兩者處節省大量的工作負載。
本案內容的各個態樣可以基於在繪製調用之間傳送用於每個工作負載的完整圖形狀態資訊來消除CPU工作負載管理負擔,例如,與利用的CPU功率成比例。例如,本案內容的各態樣可以針對每個繪製調用傳送圖形狀態組的增量或變化狀態,並且消除傳送圖形狀態組的非增量或非變化狀態。這可以在軟體分箱模式和硬體分箱模式兩者下發生。
在一些態樣中,在硬體分箱模式下,GPU的命令處理器(CP)可以將來自先前的繪製調用的非增量狀態複製到下一個繪製調用。CP亦可以獲取用於可見性流程的命令串流。因此,在可見性流程期間,CP的命令串流可以複製非增量狀態。在一些情況下,CP複製非增量狀態的管理負擔可以被隱藏。例如,當GPU在用於每個箱的渲染流程之前或者與先前的渲染流程並行地處理可見性流程時,CP的管理負擔可以被隱藏或移動。實際上,GPU流水線可以與先前訊框的渲染流程並行地處理可見性流程,經由這樣做,可以隱藏整個可見性流程處理。
如本文所指出的,本案內容的各態樣可以使CPU或軟體能夠辨識來自先前的繪製調用的每個圖形狀態組的增量或變化狀態,而不是為每個繪製調用的每個組提供完整的狀態資訊集合。因此,CPU或軟體可以向GPU發送變化狀態。經由這樣做,這可以節省CPU處的工作負載週期及/或減少CPU驅動器管理負擔。例如,CPU可以構建或寫入非增量或非變化狀態,而不是為每個繪製調用的每個圖形狀態組構建完整的狀態資訊集合,這節省了執行的工作負載量。
如本文所指出的,在一些態樣中,例如,在直接渲染模式或軟體分箱模式下,GPU的CP可以直接處理圖形狀態組的增量狀態,而不是每個繪製調用構建完整的狀態資訊集合。這可以減少工作負載量,使得與完整的狀態工作負載(例如,處理包括每個繪製調用的非增量狀態的完整的狀態資訊集合)相比,可以更快地處理減少的工作負載。由於將不構建完整的狀態資訊集合,GPU可以在處理增量狀態時進行其他處理。如上所指出的,在硬體分箱可見性流程中,CP可能不處理用於每個繪製調用的完整的狀態資訊集合。CP亦可以構建可以在分箱渲染流程中使用的設置繪製狀態遮罩。此外,由於CP可能不處理完整的狀態,因此與構建完整的狀態資訊集合相比,GPU處的可見性流程處理可以更快。
在一些態樣中,在不同的渲染模式下,例如,在直接模式、軟體分箱模式或硬體分箱模式下,CPU可以向GPU發送增量狀態資訊。在直接模式或軟體分箱模式下,由於不存在可見性流程,GPU可能不構建完整的狀態資訊集合或複製非變化的狀態。當GPU正在渲染訊框時,GPU可以直接處理改變的狀態。在一些態樣中,在直接模式或軟體分箱模式下,GPU可以更快地處理渲染流程,因為它不構建完整的狀態資訊集合或複製非變化的狀態。例如,在渲染流程期間,GPU可以處理圖形狀態組的增量狀態,因此GPU可以針對每個繪製調用執行更少的工作負載週期。
在硬體分箱模式下,GPU可以為每個繪製調用之每一者圖形狀態組構建完整的狀態資訊集合,例如,在可見性流程期間。如上所指出的,硬體分箱模式可以包括可見性流程,並且在可見性流程期間亦可以執行非增量狀態資訊的複製。GPU將執行更少的工作負載週期,因為它複製非變化的狀態,而不是處理所有狀態,包括非變化的狀態。另外,經由複製每個非變化的狀態,本案內容的各個態樣可以更高效地為每個繪製調用之每一者圖形狀態組構建完整的狀態資訊集合,從而可以更快地處理每個平鋪渲染流程。
如上所指出的,本案內容的各態樣可以包括CPU為每個圖形狀態組構建或寫入增量狀態變化資訊。在一些態樣中,例如,在硬體分箱模式期間,GPU可以在可見性流程期間為非變化的圖形狀態組產生或複製剩餘的狀態資訊。如本文所提及的,可見性流程可以發生在每個箱的渲染流程之前。
圖5圖示根據本案內容的一或多個技術的包括狀態資訊的實例圖500。圖5顯示工作負載或圖形狀態組0-7,其包括每個繪製調用的對應的上下文狀態。此外,圖5圖示CPU為每個繪製調用之每一者增量或變化狀態構建或寫入上下文狀態資訊。因此,若圖形狀態組的上下文狀態從一個繪製調用到下一繪製調用沒有改變,則CPU將不構建或寫入該上下文狀態。未構建或寫入的非增量狀態在圖5中標記為「未使用」。
圖5亦圖示每個繪製調用的哪些圖形狀態組與增量或變化狀態相對應。例如,對於在步驟519處執行的繪製調用0,CPU可以在510處設置繪製狀態,包括對應的組0-7的增量狀態資訊511-518。對於在步驟529處執行的繪製調用1,CPU可以在520處設置繪製狀態,包括對應的組5的增量狀態資訊521。對於在步驟539處執行的繪製調用2,CPU可以在530處設置繪製狀態,包括對應的組2和6的增量狀態資訊531和532。對於在步驟549處執行的繪製調用3,CPU可以在540處設置繪製狀態,包括對應的組4的增量狀態資訊541。對於在步驟559處執行的繪製調用4,CPU可以在550處設置繪製狀態,包括對應的組1和6的增量狀態資訊551和552。對於在步驟569處執行的繪製調用5,CPU可以在560處設置繪製狀態,包括對應的組3的增量狀態資訊561。對於在步驟579處執行的繪製調用6,CPU可以在570處設置繪製狀態,包括對應的組0、1和2的增量狀態資訊571、572和573。如上所指示的,標記為「未使用」的狀態資訊可以與圖形狀態組的非增量或未改變的狀態相對應。
如圖5所示,對於不同的繪製調用,圖形狀態組0-7可以包括三個不同的上下文狀態,例如,狀態0、1或2。一些圖形狀態組的上下文狀態可以在後續的繪製調用之間發生變化,例如,從狀態0移動到狀態1。例如,從繪製調用0到繪製調用1,組5的上下文狀態從0變為1,例如,如步驟521所示。如前述,圖5亦顯示了8個不同的圖形狀態組,但是可以存在任意不同數量的適當的圖形狀態組,例如,8、16、32或64個。
圖5顯示了包括增量狀態資訊的增量串流,在GPU執行可見性流程之前從CPU向GPU發送該增量狀態資訊。圖5中的設置繪製狀態(例如,步驟510、520、530、540、550、560和570處的「SET_DRAW_STATE」指示GPU為每個組設置繪製狀態。由於沒有辨識出具有非增量狀態的組,因此設置繪製狀態可以指示GPU為包括增量狀態或變化狀態的組設置繪製狀態。如圖5所示,CPU或軟體在不構建或寫入任何資訊的情況下為非增量狀態預留空間。在硬體分箱模式下,CPU可以在可見性流程之前將該資訊發送到GPU。
如本文所指出的,在本案內容的一些態樣中,CPU可以向GPU發送關於工作負載或圖形狀態組的增量或變化狀態的資訊。CPU可以發送用於實際改變狀態的圖形狀態組的資訊,但是不發送用於沒有改變狀態的圖形狀態組的資訊。如圖5所示,對於新的繪製調用,不存在用於沒有改變狀態的組的資訊,即「未使用」資訊。在一些情況下,「未使用」可能是CPU未使用的記憶體。例如,CPU可能未使用該系統記憶體,使得GPU可以基於GPU渲染模式來複製非增量狀態。經由跳過每個繪製調用中的非改變的狀態,CPU可以節省每個繪製調用的處理時間。在CPU發送用於組的變化狀態資訊之後,GPU可以為每個繪製產生可見性資訊並且亦可以為每個繪製調用構建完整的狀態資訊集合。在硬體分箱模式下,GPU可以在可見性流程中複製用於非增量狀態的狀態資訊。
GPU可以基於來自GPU的狀態資訊來決定哪些工作負載或上下文狀態組尚未改變狀態。GPU或命令處理器(CP)可以例如在硬體分箱模式下在可見性流程期間複製尚未改變狀態的組。另外,在可見性流程期間,GPU可以在並行流水線中隱藏或移動這些週期。在本案內容的一些態樣中,CPU或軟體可以構建具有增量狀態的命令串流,如圖5所示,而不是每個繪製調用構建完整的狀態資訊集合。經由這樣做,CPU可以減少其處理工作負載,以及減少GPU處的處理工作負載。
圖6圖示根據本案內容的一或多個技術的包括狀態資訊的實例圖600。圖6顯示了工作負載或圖形狀態組0-7,其包括每個繪製調用的對應的上下文狀態。圖6亦示出CPU針對每個繪製調用之每一者增量或變化狀態構建或寫入上下文狀態資訊,例如,如圖6中的淺灰色所示。若圖形狀態組的上下文狀態從一個繪製調用到下一繪製調用沒有改變,則CPU將不構建或寫入該上下文狀態。隨後,GPU或CP可以例如在可見性流程期間複製來自先前的繪製調用的非增量或未改變的狀態,如圖6中的深灰色所示。
圖6圖示每個繪製調用的哪些圖形狀態組包括增量或變化狀態,以及哪些圖形狀態組包括非增量狀態並且被GPU複製。例如,對於在步驟619處執行的繪製調用0,CPU可以在610處設置繪製狀態,包括對應的組0-7的增量狀態資訊611-618。對於在步驟629處執行的繪製調用1,CPU可以在620處設置繪製狀態,包括對應的組5的增量狀態資訊621。GPU可以複製對應的組0-4和6-7的非增量狀態資訊622-628。對於在步驟639處執行的繪製調用2,CPU可以在630處設置繪製狀態,包括對應的組2和6的增量狀態資訊631和632。GPU可以複製對應的組0-1、3-5和7的非增量狀態資訊633-638。儘管圖4-6顯示了八個組,但是組數量不限於八個。例如,可以存在任意適當數量的組。圖4-6被簡化為顯示八個組。
對於在步驟649處執行的繪製調用3,CPU可以在640處設置繪製狀態,包括對應的組4的增量狀態資訊641。GPU可以複製對應的組0-3和5-7的非增量狀態資訊642-648。對於在步驟659處執行的繪製調用4,CPU可以在650處設置繪製狀態,包括對應的組1和6的增量狀態資訊651和652。GPU可以複製對應的組0、2-5和7的非增量狀態資訊653-658。對於在步驟669處執行的繪製調用5,CPU可以在660處設置繪製狀態,包括對應的組3的增量狀態資訊661。GPU可以複製對應的組0-2和4-7的非增量狀態資訊662-668。對於在步驟679處執行的繪製調用6,CPU可以在670處設置繪製狀態,包括對應的組0、1和2的增量狀態資訊671、672和673。GPU可以複製對應的組3-7的非增量狀態資訊674-678。
如圖6所示,對於不同的繪製調用,圖形狀態組0-7可以包括三個不同的上下文狀態,例如,狀態0、1或2。例如,一些圖形狀態組的上下文狀態可以在後續的繪製調用之間發生變化,例如,從狀態0移動到狀態1。例如,從繪製調用0到繪製調用1,組5的上下文狀態從0變為1,例如,如步驟621所示。如前述,圖6亦顯示了8個不同的圖形狀態組,但是可以存在任意不同數量的適當的圖形狀態組,例如,8、16、32或64個。
圖6顯示了在可見性流程期間(例如,在硬體分箱模式下)由GPU執行的命令串流。命令串流包括由CPU建立和發送的增量狀態資訊和由GPU複製的非增量狀態資訊。如前述,CPU可以為命令串流之每一者組預留非增量狀態,並且隨後GPU可以複製每個非增量狀態。所以CPU或軟體可以執行圖6中的淺灰色步驟,並且GPU或硬體可以複製深灰色步驟。
圖6中的圖600圖示命令串流的可見表示,例如,在GPU完成了處理可見性流程之後。如圖6所示,GPU將在可見性流程中的步驟619處執行繪製0。隨後,GPU在步驟621處獲取組5的狀態資訊,並且在可見性流程的步驟629處執行繪製1。當GPU執行可見性流程時,其可以在步驟622-628處複製或填充組0-4和6-7的未改變的狀態。因此,在CPU發送變化組的增量或變化狀態資訊之後,並且在可見性流程期間,GPU可以為每個繪製調用產生可見性資訊並且亦複製非增量狀態資訊,以為每個繪製調用準備完整的狀態。例如,CPU可以發送繪製1的增量或改變狀態資訊,例如,當組5從狀態0變為狀態1時,並且隨後,GPU產生組5的可見性資訊並且複製或填充非變化組0-4和6-7的狀態資訊。
如本文所指出的,GPU的CP可以例如在可見性流程期間將對應的工作負載的非增量狀態從先前的繪製調用複製到下一個繪製調用。因此,在硬體分箱模式下,GPU在可見性流程期間構建完整的狀態資訊集合。這樣做的一個優點是GPU正在執行的工作(例如,從先前的繪製調用複製非增量狀態資訊)可以被隱藏或從正常的GPU處理中移開。可以在並行工作流水線中執行這種被隱藏或移開的工作。
圖5和6圖示用於在增量串流或命令串流期間傳送狀態資訊的上述處理的實例。如圖5和6所示,本案內容的各態樣(例如,本文的CPU和GPU)可以執行多個不同的步驟或程序以在增量串流或命令串流中傳送狀態資訊。例如,本文的CPU可以基於顯示內容來決定複數個圖形狀態組(例如圖5和6中的組0-7)之每一者圖形狀態組。本文的CPU亦可以例如在圖5中的步驟510、520、530、540、550、560、570處配置或設置複數個圖形狀態組的繪製狀態。在一些態樣中,繪製狀態可以包括用於複數個圖形狀態組之每一者圖形狀態組的狀態資訊,例如,圖5中的511-518中的狀態資訊。本文的CPU亦可以決定複數個圖形狀態組之每一者圖形狀態組的狀態,例如,圖5中的511-518中的狀態。
本文的CPU亦可以改變複數個圖形狀態組中的至少一個圖形狀態組的狀態,使得至少一個圖形狀態組包括改變的狀態,例如,在圖5中的521處,組5從狀態0變為狀態1。本文的CPU亦可以決定複數個圖形狀態組中的至少一個圖形狀態組是否包括改變的狀態,例如,CPU可以決定在圖5中的521處組5從狀態0變為狀態1。本文的CPU亦可以辨識包括改變的狀態的複數個圖形狀態組中的至少一個圖形狀態組,例如,CPU可以辨識在圖5中的521處組5從狀態0變為狀態1。
本文的CPU亦可以決定用於複數個圖形狀態組中的至少一個圖形狀態組的狀態資訊,例如,CPU可以決定圖6中的611-618處的狀態資訊。本文的CPU亦可以在至少一個圖形狀態組包括改變的狀態時,傳送用於複數個圖形狀態組中的至少一個圖形狀態組的狀態資訊,例如,CPU可以傳送圖6的621處的用於組5的狀態資訊。在一些態樣中,狀態資訊可以包括關於至少一個圖形狀態組的狀態的資訊,例如,圖6中的621處的用於組5的狀態資訊。本文的CPU亦可以向GPU發送用於複數個圖形狀態組中的至少一個圖形狀態組的狀態資訊,例如,CPU可以發送圖6的621處的用於組5的狀態資訊。在一些態樣中,用於至少一個圖形狀態組的狀態資訊可以由CPU發送,例如,如圖6中的621處所示。
本文的CPU和GPU亦可以決定複數個圖形狀態組中的一或多個圖形狀態組是否包括未改變的狀態,例如,CPU或GPU可以決定組0-4和6-7是否包括圖6中的622-628處的未改變的狀態。本文的CPU和GPU亦可以在一或多個圖形狀態組包括未改變的狀態時,針對複數個圖形狀態組的一或多個圖形狀態組之每一者圖形狀態組複製狀態或狀態指標,例如,CPU或GPU可以針對圖6中的622-628處的組0-4和6-7複製狀態或狀態指標。在一些態樣中,包括未改變的狀態的一或多個圖形狀態組之每一者圖形狀態組的狀態可以在可見性流程期間由GPU的CP複製。在一些態樣中,可以基於狀態資訊來決定包括未改變的狀態的複數個圖形狀態組中的一或多個圖形狀態組,例如,可以基於狀態資訊來決定圖6中的622-628處的組0-4和6-7。
本文的CPU和GPU亦可以基於用於複數個圖形狀態組中的至少一個圖形狀態組的狀態資訊來渲染顯示內容中的至少一些內容,例如,GPU可以基於圖6中的621處的用於組5的狀態資訊來渲染顯示內容中的至少一些內容。在一些態樣中,可以基於先前的繪製調用和當前的繪製調用來決定至少一個圖形狀態組的改變的狀態,例如,可以基於619處的繪製調用0和629處的繪製調用1來決定在621處的組5的改變的狀態。在一些情況下,狀態資訊可以包括用於至少一個圖形狀態組之每一者圖形狀態組的狀態的列表,例如,圖6圖示611-618處的狀態資訊的列表。在一些態樣中,可以由CPU執行關於多個圖形狀態組中的至少一個圖形狀態組是否包括改變的狀態的決定。
本案內容的上述態樣可以包括多個優點。例如,本案內容的各態樣可以在處理每個箱的命令串流時減少CPU管理負擔,同時減少GPU管理負擔。事實上,不是CPU為每個繪製調用構建完整的狀態資訊,而是CPU可以構建用於增量或非變化的狀態的資訊。另外,在直接渲染模式或軟體分箱模式下,GPU可以直接處理增量狀態,而不是每個繪製調用構建完整的狀態資訊,這可以提高處理速度。此外,在硬體分箱模式下的可見性流程中,GPU的CP可能不處理每個繪製調用的完整的狀態資訊集合,因為可以複製非增量狀態的狀態資訊。經由這樣做,GPU可以構建可以在渲染流程中使用的設置繪製狀態遮罩。
圖7圖示根據本案內容的一或多個技術的實例方法的實例流程圖700。該方法可以由諸如CPU、GPU之類的裝置或用於圖形處理的裝置來執行。在702處,該裝置可以例如基於顯示內容來決定複數個圖形狀態組之每一者圖形狀態組,如結合圖3、4、5和6中的實例描述的。在704處,該裝置可以為複數個圖形狀態組配置繪製狀態,如結合圖3、4、5和6中的實例描述的。在一些態樣中,繪製狀態可以包括用於複數個圖形狀態組之每一者圖形狀態組的狀態資訊,如結合圖3、4、5和6中的實例描述的。在706處,該裝置可以決定複數個圖形狀態組的每個圖形狀態組的狀態,如結合圖3、4、5和6中的實例描述的。
在708,該裝置可以改變複數個圖形狀態組中的至少一個圖形狀態組的狀態,使得至少一個圖形狀態組包括改變的狀態,如結合圖3、4、5和6中的實例描述的。在710處,該裝置可以決定複數個圖形狀態組中的至少一個圖形狀態組是否包括改變的狀態,如結合圖3、4、5和6中的實例描述的。在712處,該裝置可以辨識包括改變的狀態的複數個圖形狀態組中的至少一個圖形狀態組,如結合圖3、4、5和6中的實例描述的。
在714處,該裝置可以決定用於複數個圖形狀態組中的至少一個圖形狀態組的狀態資訊,如結合圖3、4、5和6中的實例描述的。在716處,當至少一個圖形狀態組包括改變的狀態時,該裝置可以傳送用於複數個圖形狀態組中的至少一個圖形狀態組的狀態資訊,如結合圖3、4、5和6中的實例描述的。在一些態樣中,狀態資訊可以包括關於至少一個圖形狀態組的狀態的資訊,如結合圖3、4、5和6中的實例描述的。在718處,該裝置可以向GPU發送用於複數個圖形狀態組中的至少一個圖形狀態組的狀態資訊,如結合圖3、4、5和6中的實例描述的。在一些態樣中,用於至少一個圖形狀態組的狀態資訊可以由CPU發送,如結合圖3、4、5和6中的實例描述的。
在720處,該裝置可以決定複數個圖形狀態組中的一或多個圖形狀態組是否包括未改變的狀態,如結合圖3、4、5和6中的實例描述的。在722處,當一或多個圖形狀態組包括未改變的狀態時,該裝置可以針對複數個圖形狀態組的一或多個圖形狀態組之每一者圖形狀態組複製狀態或狀態指標,如結合圖3、4、5和6中的實例描述的。在一些態樣中,包括未改變的狀態的一或複數個圖形狀態組之每一者圖形狀態組的狀態可以由GPU的CP在可見性流程期間複製,如結合圖3、4、5和6中的實例描述的。在一些態樣中,可以基於狀態資訊來決定包括未改變的狀態的複數個圖形狀態組中的一或多個圖形狀態組,如結合圖3、4、5和6中的實例描述的。
在724處,該裝置可以基於用於複數個圖形狀態組中的至少一個圖形狀態組的狀態資訊來渲染顯示內容中的至少一些內容,如結合圖3、4、5和6中的實例描述的。在一些態樣中,可以基於先前的繪製調用和當前的繪製調用來決定至少一個圖形狀態組的改變的狀態,如結合圖3、4、5和6中的實例描述的。在一些情況下,狀態資訊可以包括至少一個圖形狀態組之每一者圖形狀態組的狀態的列表,如結合圖3、4、5和6中的實例描述的。在一些態樣中,可以由CPU執行關於複數個圖形狀態組中的至少一個圖形狀態組是否包括改變的狀態的決定,如結合圖3、4、5和6中的實例描述的。
在一種配置中,提供了一種用於圖形處理的方法或裝置。該裝置可以是CPU、GPU或可以執行圖形處理的某個其他處理器。在一個態樣中,該裝置可以是設備104內的處理單元120,或者可以是設備104或另一設備內的某個其他硬體。該裝置可以包括:用於決定複數個圖形狀態組之每一者圖形狀態組的狀態的單元。該裝置亦可以包括:用於決定複數個圖形狀態組中的至少一個圖形狀態組是否包括改變的狀態的單元。該裝置亦可以包括:用於當至少一個圖形狀態組包括改變的狀態時,傳送用於複數個圖形狀態組中的至少一個圖形狀態組的狀態資訊的單元。該裝置亦可以包括:用於辨識包括改變的狀態的複數個圖形狀態組中的至少一個圖形狀態組的單元。該裝置亦可以包括:用於改變複數個圖形狀態組中的至少一個圖形狀態組的狀態,使得至少一個圖形狀態組包括改變的狀態的單元。該裝置亦可以包括:用於決定用於複數個圖形狀態組中的至少一個圖形狀態組的狀態資訊的單元。該裝置亦可以包括:用於向GPU發送用於複數個圖形狀態組中的至少一個圖形狀態組的狀態資訊的單元。該裝置亦可以包括:用於決定複數個圖形狀態組中的一或多個圖形狀態組是否包括未改變的狀態的單元。該裝置亦可以包括:用於當一或多個圖形狀態組包括未改變的狀態時,針對複數個圖形狀態組的一或多個圖形狀態組之每一者圖形狀態組複製狀態的單元。該裝置亦可以包括:用於為複數個圖形狀態組配置繪製狀態的單元。該裝置亦可以包括:用於基於用於複數個圖形狀態組中的至少一個圖形狀態組的狀態資訊來渲染顯示內容中的至少一些內容的單元。該裝置亦可以包括:用於基於顯示內容來決定複數個圖形狀態組之每一者圖形狀態組的單元。
可以實現本文描述的主題,以實現一或多個益處或優點。例如,所描述的圖形處理技術可以由GPU、CPU或可以執行圖形處理的某個其他處理器用來實現本文描述的狀態資訊技術。與其他圖形處理技術相比,這亦可以以低成本實現。此外,本文的圖形處理技術可以改善或加速資料處理或執行。此外,本文的圖形處理技術可以提高資源或資料利用率及/或資源效率。另外,本案內容的各態樣可以利用狀態資訊程序,該狀態資訊程序可以減少在增量串流或命令串流期間花費的時間和消耗的金錢。
根據本案內容,在上下文沒有另外規定的情況下,術語「或」可以被解釋為「及/或」。另外,儘管諸如「一或多個」或「至少一個」等的短語可能已經用於本文所揭示的一些特徵,而沒有用於其他特徵,但是未針對其使用這種語言的特徵可以被解釋為在上下文沒有另外規定的情況下暗示了這種含義。
在一或多個實例中,本文描述的功能可以用硬體、軟體、韌體或其任何組合來實現。例如,儘管已經在整個本案內容中使用了術語「處理單元」,但是此類處理單元可以用硬體、軟體、韌體或其任何組合來實現。若任何功能、處理單元、本文描述的技術或其他模組是用軟體來實現的,則任何功能、處理單元、本文描述的技術或其他模組可以作為一或多個指令或代碼儲存在電腦可讀取媒體上或者經由其進行傳輸。電腦可讀取媒體可以包括電腦資料儲存媒體或通訊媒體,該通訊媒體包括促進將電腦程式從一個地方傳送到另一個地方的任何媒體。以此方式,電腦可讀取媒體通常可以對應於:(1)非暫時性的有形電腦可讀取儲存媒體、或者(2)諸如信號或載波之類的通訊媒體。資料儲存媒體可以是可以由一或多個電腦或者一或多個處理器存取以取得用於實現在本案內容中描述的技術的指令、代碼及/或資料結構的任何可用的媒體。經由舉例而非限制性的方式,此類電腦可讀取媒體可以包括RAM、ROM、EEPROM、CD-ROM或其他光碟儲存、磁碟儲存或其他磁存放裝置。如本文所使用的,磁碟和光碟包括壓縮光碟(CD)、鐳射光碟、光碟、數位多功能光碟(DVD)、軟碟和藍光光碟,其中磁碟通常磁性地複製資料,而光碟則利用鐳射來光學地複製資料。上述各項的組合亦應當被包括在電腦可讀取媒體的範疇之內。任何電腦程式產品可以包括電腦可讀取媒體。
代碼可以由一或多個處理器來執行,諸如一或多個數位訊號處理器(DSP)、通用微處理器、特殊應用積體電路(ASIC)、算數邏輯單位(ALU)、現場可程式設計邏輯陣列(FPGA)、或其他等效的整合或個別邏輯電路。因此,如本文所使用的術語「處理器」可以代表前述結構中的任何一者或者適於實現本文描述的技術的任何其他結構。此外,該等技術可以完全在一或多個電路或邏輯部件中實現。
本案內容的技術可以在多種多樣的設備或裝置中實現,包括無線手機、積體電路(IC)或一組IC(例如,晶片組)。在本案內容中描述了各種部件、模組或單元以強調被配置以執行所揭示的技術的設備的功能性態樣,但是不一定需要經由不同的硬體單元來實現。確切而言,如前述,各種單元可以被組合在任何硬體單元中,或者由可交互動操作的硬體單元的集合(包括如前述的一或多個處理器)結合適當的軟體及/或韌體來提供。
已經描述了各個實例。這些和其他實例在所附的請求項的範疇內。
100:內容產生系統 104:設備 107:圖形處理流水線 120:處理單元 121:內部記憶體 122:內容編碼器/解碼器 123:內部記憶體 124:內部記憶體 126:通訊介面 127:顯示處理器 128:接收器 130:發射器 131:顯示器 132:收發機 198:決定部件 200:圖形處理單元 210:命令處理器(CP) 212:繪製調用封包GPU 220:頂點獲取器(VFD) 222:頂點著色器(VS) 224:頂點快取記憶體(VPC) 226:三角形設置引擎(TSE) 228:光柵化器(RAS) 230:Z程序引擎(ZPE) 232:圖元內插器(PI) 234:片段著色器(FS) 236:渲染後端(RB) 238:L2快取記憶體(UCHE) 239:虛擬分割緩存(VSC) 240:系統記憶體 250:命令緩衝器 260:上下文暫存器封包 261:上下文狀態 300:影像或表面 302:區域 310,311,312,313,314,315:箱 321,322,323,324:圖元 350:第一視點 351:第二視點 400:圖 410:方塊 411,412,413,414,415,416,417,418:狀態資訊 419:步驟 420:方塊 421,422,423,424,425,426,427,428:狀態資訊 429:步驟 430:方塊 431,432,433,434,435,436,437,438:狀態資訊 439:步驟 440:方塊 441,442,443,444,445,446,447,448:狀態資訊 449:步驟 450:方塊 451,452,453,454,455,456,457,458:狀態資訊 459:步驟 460:方塊 461,462,463,464,465,466,467,468:狀態資訊 469:步驟 470:方塊 471,472,473,474,475,476,477,478:狀態資訊 479:步驟 500:圖 510:方塊 511,512,513,514,515,516,517,518:增量狀態資訊 519:步驟 520:方塊 521:增量狀態資訊 529:步驟 530:方塊 531,532:增量狀態資訊 539:步驟 540:方塊 541:增量狀態資訊 549:步驟 550:方塊 551,552:增量狀態資訊 559:步驟 560:方塊 561:增量狀態資訊 569:步驟 570:方塊 571,572,573:增量狀態資訊 579:步驟 600:圖 610:方塊 611,612,613,614,615,616,617,618:增量狀態資訊 619:步驟 620:方塊 621:增量狀態資訊 622,623,624,625,626,627,628:非增量狀態資訊 629:步驟 630:方塊 631,632:增量狀態資訊 633,634,635,636,637,638:非增量狀態資訊 639:步驟 640:方塊 641:增量狀態資訊 642,643,644,645,646,647,648:非增量狀態資訊 649:步驟 650:方塊 651,652:增量狀態資訊 653,654,655,656,657,658:非增量狀態資訊 659:步驟 660:方塊 661:增量狀態資訊 662,663,664,665,666,667,668:非增量狀態資訊 669:步驟 670:方塊 671,672,673:增量狀態資訊 674,675,676,677,678:非增量狀態資訊 679:步驟 700:流程圖 702,704,706,708,710,712:方塊 714,716,718,720,722,724:方塊 CP:命令處理器 VFD:頂點獲取器 VS:頂點著色器 VPC:頂點快取記憶體 TSE:三角形設置引擎 RAS:光柵化器 ZPE:Z程序引擎 PI:圖元內插器 FS:片段著色器 VSC:虛擬分割緩存 RB:渲染後端 UCHE:L2快取記憶體
圖1是示出根據本案內容的一或多個技術的實例內容產生系統的方塊圖。
圖2圖示根據本案內容的一或多個技術的實例GPU。
圖3圖示根據本案內容的一或多個技術的實例影像或表面。
圖4圖示根據本案內容的一或多個技術的包括狀態資訊的實例圖。
圖5圖示根據本案內容的一或多個技術的包括狀態資訊的實例圖。
圖6圖示根據本案內容的一或多個技術的包括狀態資訊的實例圖。
圖7圖示根據本案內容的一或多個技術的實例方法的實例流程圖。
700:流程圖
702,704,706,708,710,712:方塊
714,716,718,720,722,724:方塊

Claims (49)

  1. 一種圖形處理的方法,包括以下步驟: 決定複數個圖形狀態組之每一者圖形狀態組的一狀態; 決定該複數個圖形狀態組中的至少一個圖形狀態組是否包括一改變的狀態;及 當該至少一個圖形狀態組包括一改變的狀態時,傳送用於該複數個圖形狀態組中的該至少一個圖形狀態組的狀態資訊,其中該狀態資訊包括關於該至少一個圖形狀態組的該狀態的資訊。
  2. 根據請求項1之方法,亦包括以下步驟: 辨識包括該改變的狀態的該複數個圖形狀態組中的該至少一個圖形狀態組。
  3. 根據請求項1之方法,亦包括以下步驟: 改變該複數個圖形狀態組中的該至少一個圖形狀態組的該狀態,使得該至少一個圖形狀態組包括一改變的狀態。
  4. 根據請求項1之方法,亦包括以下步驟: 決定用於該複數個圖形狀態組中的該至少一個圖形狀態組的該狀態資訊。
  5. 根據請求項1之方法,其中傳送用於該複數個圖形狀態組中的該至少一個圖形狀態組的該狀態資訊亦包括以下步驟: 向一圖形處理單元(GPU)發送用於該複數個圖形狀態組中的該至少一個圖形狀態組的該狀態資訊。
  6. 根據請求項5之方法,其中用於該至少一個圖形狀態組的該狀態資訊是由一中央處理單元(CPU)發送的。
  7. 根據請求項1之方法,亦包括以下步驟: 決定該複數個圖形狀態組中的一或多個圖形狀態組是否包括一未改變的狀態。
  8. 根據請求項7之方法,亦包括以下步驟: 當該一或多個圖形狀態組包括一未改變的狀態時,複製該複數個圖形狀態組中的該一或多個圖形狀態組之每一者圖形狀態組的該狀態。
  9. 根據請求項8之方法,其中包括該未改變的狀態的該一或多個圖形狀態組之每一者圖形狀態組的該狀態是由一圖形處理單元(GPU)的一命令處理器(CP)在一可見性流程期間複製的。
  10. 根據請求項7之方法,其中包括一未改變的狀態的該複數個圖形狀態組中的該一或多個圖形狀態組是基於該狀態資訊來決定的。
  11. 根據請求項1之方法,亦包括以下步驟: 為該複數個圖形狀態組配置一繪製狀態,其中該繪製狀態包括用於該複數個圖形狀態組之每一者圖形狀態組的狀態資訊。
  12. 根據請求項1之方法,亦包括以下步驟: 基於用於該複數個圖形狀態組中的該至少一個圖形狀態組的該狀態資訊來渲染顯示內容中的至少一些內容。
  13. 根據請求項12之方法,亦包括以下步驟: 基於該顯示內容來決定該複數個圖形狀態組之每一者圖形狀態組。
  14. 根據請求項1之方法,其中該至少一個圖形狀態組的該改變的狀態是基於一先前的繪製調用和一當前的繪製調用來決定的。
  15. 根據請求項1之方法,其中該狀態資訊包括該至少一個圖形狀態組之每一者圖形狀態組的該狀態的一列表。
  16. 根據請求項1之方法,其中關於該複數個圖形狀態組中的該至少一個圖形狀態組是否包括一改變的狀態的該決定是由一中央處理單元(CPU)執行的。
  17. 一種用於圖形處理的裝置,包括: 一記憶體;及 至少一個處理器,其耦合到該記憶體並且被配置為進行以下操作: 決定複數個圖形狀態組之每一者圖形狀態組的一狀態; 決定該複數個圖形狀態組中的至少一個圖形狀態組是否包括一改變的狀態;及 當該至少一個圖形狀態組包括一改變的狀態時,傳送用於該複數個圖形狀態組中的該至少一個圖形狀態組的狀態資訊,其中該狀態資訊包括關於該至少一個圖形狀態組的該狀態的資訊。
  18. 根據請求項17之裝置,其中該至少一個處理器亦被配置為進行以下操作: 辨識包括該改變的狀態的該複數個圖形狀態組中的該至少一個圖形狀態組。
  19. 根據請求項17之裝置,其中該至少一個處理器亦被配置為進行以下操作: 改變該複數個圖形狀態組中的該至少一個圖形狀態組的該狀態,使得該至少一個圖形狀態組包括一改變的狀態。
  20. 根據請求項17之裝置,其中該至少一個處理器亦被配置為進行以下操作: 決定用於該複數個圖形狀態組中的該至少一個圖形狀態組的該狀態資訊。
  21. 根據請求項17之裝置,其中為了傳送用於該複數個圖形狀態組中的該至少一個圖形狀態組的該狀態資訊,亦包括該至少一個處理器被配置為進行以下操作: 向一圖形處理單元(GPU)發送用於該複數個圖形狀態組中的該至少一個圖形狀態組的該狀態資訊。
  22. 根據請求項21之裝置,其中用於該至少一個圖形狀態組的該狀態資訊是由一中央處理單元(CPU)發送的。
  23. 根據請求項17之裝置,其中該至少一個處理器亦被配置為進行以下操作: 決定該複數個圖形狀態組中的一或多個圖形狀態組是否包括一未改變的狀態。
  24. 根據請求項23之裝置,其中該至少一個處理器亦被配置為進行以下操作: 當該一或多個圖形狀態組包括一未改變的狀態時,複製該複數個圖形狀態組中的該一或多個圖形狀態組之每一者圖形狀態組的該狀態。
  25. 根據請求項24之裝置,其中包括該未改變的狀態的該一或多個圖形狀態組之每一者圖形狀態組的該狀態是由一圖形處理單元(GPU)的一命令處理器(CP)在一可見性流程期間複製的。
  26. 根據請求項23之裝置,其中包括一未改變的狀態的該複數個圖形狀態組中的該一或多個圖形狀態組是基於該狀態資訊來決定的。
  27. 根據請求項17之裝置,其中該至少一個處理器亦被配置為進行以下操作: 為該複數個圖形狀態組配置一繪製狀態,其中該繪製狀態包括用於該複數個圖形狀態組之每一者圖形狀態組的狀態資訊。
  28. 根據請求項17之裝置,其中該至少一個處理器亦被配置為進行以下操作: 基於用於該複數個圖形狀態組中的該至少一個圖形狀態組的該狀態資訊來渲染顯示內容中的至少一些內容。
  29. 根據請求項28之裝置,其中該至少一個處理器亦被配置為進行以下操作: 基於該顯示內容來決定該複數個圖形狀態組之每一者圖形狀態組。
  30. 根據請求項17之裝置,其中該至少一個圖形狀態組的該改變的狀態是基於一先前的繪製調用和一當前的繪製調用來決定的。
  31. 根據請求項17之裝置,其中該狀態資訊包括該至少一個圖形狀態組之每一者圖形狀態組的該狀態的一列表。
  32. 根據請求項17之裝置,其中關於該複數個圖形狀態組中的該至少一個圖形狀態組是否包括一改變的狀態的該決定是由一中央處理單元(CPU)執行的。
  33. 一種用於圖形處理的裝置,包括: 用於決定複數個圖形狀態組之每一者圖形狀態組的一狀態的單元; 用於決定該複數個圖形狀態組中的至少一個圖形狀態組是否包括一改變的狀態的單元;及 用於當該至少一個圖形狀態組包括一改變的狀態時,傳送用於該複數個圖形狀態組中的該至少一個圖形狀態組的狀態資訊的單元,其中該狀態資訊包括關於該至少一個圖形狀態組的該狀態的資訊。
  34. 根據請求項33之裝置,亦包括: 用於辨識包括該改變的狀態的該複數個圖形狀態組中的該至少一個圖形狀態組的單元。
  35. 根據請求項33之裝置,亦包括: 用於改變該複數個圖形狀態組中的該至少一個圖形狀態組的該狀態,使得該至少一個圖形狀態組包括一改變的狀態的單元。
  36. 根據請求項33之裝置,亦包括: 用於決定用於該複數個圖形狀態組中的該至少一個圖形狀態組的該狀態資訊的單元。
  37. 根據請求項33之裝置,其中該用於傳送用於該複數個圖形狀態組中的該至少一個圖形狀態組的該狀態資訊的單元被配置為進行以下操作: 向一圖形處理單元(GPU)發送用於該複數個圖形狀態組中的該至少一個圖形狀態組的該狀態資訊。
  38. 根據請求項37之裝置,其中用於該至少一個圖形狀態組的該狀態資訊是由一中央處理單元(CPU)發送的。
  39. 根據請求項33之裝置,亦包括: 用於決定該複數個圖形狀態組中的一或多個圖形狀態組是否包括一未改變的狀態的單元。
  40. 根據請求項39之裝置,亦包括: 用於當該一或多個圖形狀態組包括一未改變的狀態時,複製該複數個圖形狀態組中的該一或多個圖形狀態組之每一者圖形狀態組的該狀態的單元。
  41. 根據請求項40之裝置,其中包括該未改變的狀態的該一或多個圖形狀態組之每一者圖形狀態組的該狀態是由一圖形處理單元(GPU)的一命令處理器(CP)在一可見性流程期間複製的。
  42. 根據請求項39之裝置,其中包括一未改變的狀態的該複數個圖形狀態組中的該一或多個圖形狀態組是基於該狀態資訊來決定的。
  43. 根據請求項33之裝置,亦包括: 用於為該複數個圖形狀態組配置一繪製狀態的單元,其中該繪製狀態包括用於該複數個圖形狀態組之每一者圖形狀態組的狀態資訊。
  44. 根據請求項33之裝置,亦包括: 用於基於用於該複數個圖形狀態組中的該至少一個圖形狀態組的該狀態資訊來渲染顯示內容中的至少一些內容的單元。
  45. 根據請求項44之裝置,亦包括: 用於基於該顯示內容來決定該複數個圖形狀態組之每一者圖形狀態組的單元。
  46. 根據請求項33之裝置,其中該至少一個圖形狀態組的該改變的狀態是基於一先前的繪製調用和一當前的繪製調用來決定的。
  47. 根據請求項33之裝置,其中該狀態資訊包括該至少一個圖形狀態組之每一者圖形狀態組的該狀態的列表。
  48. 根據請求項33之裝置,其中關於該複數個圖形狀態組中的該至少一個圖形狀態組是否包括一改變的狀態的該決定是由一中央處理單元(CPU)執行的。
  49. 一種儲存用於圖形處理的電腦可執行代碼的電腦可讀取媒體,包括用於進行以下操作的代碼: 決定複數個圖形狀態組之每一者圖形狀態組的一狀態; 決定該複數個圖形狀態組中的至少一個圖形狀態組是否包括一改變的狀態;及 當該至少一個圖形狀態組包括一改變的狀態時,傳送用於該複數個圖形狀態組中的該至少一個圖形狀態組的狀態資訊,其中該狀態資訊包括關於該至少一個圖形狀態組的該狀態的資訊。
TW109137418A 2019-11-25 2020-10-28 用於減少繪製命令資訊的方法和裝置 TW202123165A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/694,956 2019-11-25
US16/694,956 US11087431B2 (en) 2019-11-25 2019-11-25 Methods and apparatus for reducing draw command information

Publications (1)

Publication Number Publication Date
TW202123165A true TW202123165A (zh) 2021-06-16

Family

ID=73498287

Family Applications (1)

Application Number Title Priority Date Filing Date
TW109137418A TW202123165A (zh) 2019-11-25 2020-10-28 用於減少繪製命令資訊的方法和裝置

Country Status (5)

Country Link
US (1) US11087431B2 (zh)
EP (1) EP4066217B1 (zh)
CN (1) CN114600149A (zh)
TW (1) TW202123165A (zh)
WO (1) WO2021108052A1 (zh)

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8607151B2 (en) * 2006-08-01 2013-12-10 Nvidia Corporation Method and system for debugging a graphics pipeline subunit
US8970608B2 (en) * 2010-04-05 2015-03-03 Nvidia Corporation State objects for specifying dynamic state
US9342857B2 (en) * 2013-03-29 2016-05-17 Nvidia Corporation Techniques for locally modifying draw calls
KR102066533B1 (ko) * 2013-11-19 2020-01-16 삼성전자 주식회사 도메인 쉐이딩 방법과 이를 수행하는 장치들
US9773340B2 (en) 2015-06-12 2017-09-26 Qualcomm Incorporated Rendering using ray tracing to generate a visibility stream
US9881352B2 (en) 2015-11-13 2018-01-30 Intel Corporation Facilitating efficient graphics commands processing for bundled states at computing devices
US20180040095A1 (en) 2016-08-02 2018-02-08 Qualcomm Incorporated Dynamic compressed graphics state references
US10026145B2 (en) * 2016-12-13 2018-07-17 Qualcomm Incorporated Resource sharing on shader processor of GPU

Also Published As

Publication number Publication date
CN114600149A (zh) 2022-06-07
WO2021108052A1 (en) 2021-06-03
US20210158470A1 (en) 2021-05-27
EP4066217A1 (en) 2022-10-05
EP4066217B1 (en) 2024-04-24
US11087431B2 (en) 2021-08-10
EP4066217C0 (en) 2024-04-24

Similar Documents

Publication Publication Date Title
US11481865B2 (en) Methods and apparatus for tensor object support in machine learning workloads
KR102614847B1 (ko) 그래픽스 프로세싱 유닛 하이브리드 렌더링을 위한 장치 및 방법
US12056804B2 (en) Fast incremental shared constants
TW202219885A (zh) 利用gpu緩存用於縮小的使用simo方案最佳化gpu核心的方法和裝置
TW202223831A (zh) 用於基於區域不連續性的運動估計的方法和裝置
TW202123165A (zh) 用於減少繪製命令資訊的方法和裝置
TW202134996A (zh) 用於減少渲染資訊的傳輸的方法和裝置
US11657471B2 (en) Methods and apparatus for constant data storage
US11893654B2 (en) Optimization of depth and shadow pass rendering in tile based architectures
US20240256221A1 (en) Floating point atomics using integer hardware
TW202307783A (zh) Gpu作用域的效能管理負擔最佳化
TW202225962A (zh) 用於疊加複合的平面規劃
TW202318332A (zh) 動態可變速率著色
WO2024064032A1 (en) Improving visibility generation in tile based gpu architectures