TW202316375A - 與取樣空間相關聯的注視點分塊渲染 - Google Patents

與取樣空間相關聯的注視點分塊渲染 Download PDF

Info

Publication number
TW202316375A
TW202316375A TW111131288A TW111131288A TW202316375A TW 202316375 A TW202316375 A TW 202316375A TW 111131288 A TW111131288 A TW 111131288A TW 111131288 A TW111131288 A TW 111131288A TW 202316375 A TW202316375 A TW 202316375A
Authority
TW
Taiwan
Prior art keywords
primitives
rendering
sample space
space
pass
Prior art date
Application number
TW111131288A
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 TW202316375A publication Critical patent/TW202316375A/zh

Links

Images

Classifications

    • 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
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/50Controlling the output signals based on the game progress
    • A63F13/52Controlling the output signals based on the game progress involving aspects of the displayed game scene
    • A63F13/525Changing parameters of virtual cameras
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/40Filling a planar surface by adding surface attributes, e.g. colour or texture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Image Generation (AREA)
  • Image Processing (AREA)

Abstract

本文提出的各態樣係關於用於圖形處理的方法和設備,包括例如GPU的裝置。該裝置可以接收與場景中的一或多個訊框相關聯的複數個圖元,該場景的一部分與用於放大的取樣空間及/或縮小的取樣空間相關聯。該裝置也可以對複數個圖元執行分塊傳遞,該分塊傳遞與未縮放的取樣空間相關聯,其中分塊傳遞將複數個圖元中的每一個分類到與一或多個訊框中的每一個相關聯的一或多個塊。此外,該裝置可以為一或多個塊中的每一個執行一或多個渲染傳遞中的一個。該裝置也可以基於放大的取樣空間或縮小的取樣空間中的至少一個來光柵化複數個圖元中的每一個。

Description

與取樣空間相關聯的注視點分塊渲染
相關申請的交叉引用
本專利申請案請求於2021年9月17日提出申請的標題為「FOVEATED BINNED RENDERING ASSOCIATED WITH SAMPLE SPACES」的美國非臨時專利申請序號17/478,694的權益,該申請藉由引用將其全部內容明確合併於此。
本案大體係關於處理系統,並且更特定言之係關於用於圖形處理的一或多個技術。
計算設備經常執行圖形及/或顯示處理(例如,利用圖形處理單元(GPU)、中央處理單元(CPU)、顯示處理器等)來渲染和顯示視覺內容。此類計算設備可以包括例如電腦工作站、諸如智慧手機之類的行動電話、嵌入式系統、個人電腦、平板電腦和視訊遊戲控制台。GPU被配置為執行包括一或多個處理階段的圖形處理管線,這些處理階段一起操作以執行圖形處理命令並輸出訊框。中央處理單元(CPU)可以藉由向GPU發出一或多個圖形處理命令來控制GPU的操作。現代CPU通常能夠併發執行多個應用,每一個應用在執行期間可能需要利用GPU。顯示處理器被配置為將從CPU接收的數位資訊轉換為類比值,並且可以向顯示面板發出命令以顯示視覺內容。在顯示器上提供用於視覺呈現的內容的設備可以使用GPU及/或顯示處理器。
設備的GPU可以被配置為在圖形處理管線中執行處理。此外,顯示處理器或顯示處理單元(DPU)可以被配置為執行顯示處理的程序。然而,隨著無線通訊和更小的手持設備的出現,對改進圖形或顯示處理的需求不斷增加。
下面介紹一或多個態樣的簡化概述,以便提供本發明一些態樣的基本理解。本概述不是所有預期態樣的廣泛概述,並且既不旨在標識所有態樣的關鍵或重要元素,也不旨在界定任何或所有態樣的範圍。其唯一目的是以簡化的形式呈現一或多個態樣的一些概念,作為稍後呈現的更詳細描述的序言。
在一態樣中,本案提供了一種方法、電腦可讀取媒體和裝置。該裝置可以是圖形處理單元(CPU)或任何可以進行圖形處理的裝置。該裝置可以接收與場景中的一或多個訊框相關聯的複數個圖元,該場景的一部分與用於複數個圖元的放大的取樣空間或用於複數個圖元的縮小的取樣空間中的至少一個相關聯。該裝置也可以從圖形處理單元(GPU)驅動程式接收針對放大的取樣空間或縮小的取樣空間中的至少一個的縮放因數。附加地,該裝置可以對複數個圖元執行分塊傳遞,該分塊傳遞與複數個圖元的未縮放的取樣空間相關聯,其中該分塊傳遞將複數個圖元中的每一個分類到與一或多個訊框中的每一個相關聯的一或多個塊。該裝置也可以針對一或多個塊中的每一個執行一或多個渲染傳遞中的一個,一或多個渲染傳遞中的每一個與放大的取樣空間或縮小的取樣空間中的至少一個相關聯,一或多個渲染傳遞中的每一個包括用於複數個圖元中的每一個的視埠變換。該裝置也可以在為複數個圖元中的每一個執行一或多個渲染傳遞中的一個之後,對複數個圖元中的每一個執行剔除程序。此外,該裝置可以基於放大的取樣空間或縮小的取樣空間中的至少一個來光柵化複數個圖元中的每一個。該裝置也可以基於複數個圖元中的每一個的光柵化來渲染複數個圖元中的每一個。該裝置也可以在渲染複數個圖元中的每一個之後發送渲染的複數個圖元。
在附圖和以下描述中將詳細闡述本案的一或多個示例。根據說明書、附圖和申請專利範圍,本案的其他特徵、目的和優點將是顯而易見的。
圖形處理的一些態樣可能會利用注視點渲染,這是在渲染虛擬實境(VR)、增強現實(AR)、或擴展現實(XR)的場景中採用的另一種最佳化技術。此外,圖形處理的一些態樣可能會利用注視點分塊渲染,這也主要用於VR/AR/XR應用。在注視點分塊渲染中,視場(FoV)中心的塊可以以全解析度渲染(例如,分塊傳遞中的塊),而主FoV之外的塊(例如,渲染傳遞中的塊)可以以較低或縮小的解析度渲染,例如,1x:2y、1x:4y、2x:4y等。圖形處理的一些態樣也可以利用視埠變換程序(例如,Xform)。視埠變換程序使用可能取決於渲染目標解析度的參數(即,比例和偏移)。注視點分塊渲染在縮小的渲染傳遞中使用不同的塊大小。例如,在注視點分塊渲染中,分塊傳遞可以使用原始視埠比例和視埠偏移,而渲染傳遞可以使用針對每個區塊的調整後視埠比例和偏移來實現相同或更低的解析度。由於分塊傳遞和渲染傳遞之間的視埠比例可能不同,相同的圖元/三角形在分塊傳遞和渲染傳遞之間可能具有不同的螢幕座標。基於此,圖元/三角形可能不會覆蓋分塊傳遞中的任何取樣,但(例如,由於有限精度、面部翻轉等)它可能會覆蓋渲染傳遞中的有效取樣。此程序可能會導致場景中出現視覺偽像。如本文所指示的,一些圖形處理問題可能是視埠參數在分塊傳遞和渲染傳遞之間不同的結果,諸如包括不同的縮放因數。這些不同的縮放因數可能會導致場景中出現視覺偽像。為了避免這些偽像,GPU上的軟體可能會禁用多個剔除演算法,並且可能會強製圖元在分塊傳遞中可見。但是,這可能會對GPU的效能產生很大影響。本案的各態樣可以提供包括在分塊傳遞和渲染傳遞之間的類似視埠參數的圖形處理技術。例如,本案的各態樣可以包括視埠變換而不在分塊傳遞和渲染傳遞之間進行縮放。附加地,本案的各態樣可以包括在分塊傳遞和渲染傳遞之間的類似縮放因數或偏移參數。例如,本案的各態樣可以將縮放參數或偏移參數保持在縮小的空間中。
系統、裝置、電腦程式產品和方法的各個態樣在下文中參考附圖更全面地描述。然而,本案可以以許多不同的形式體現,並且不應被解釋為限於貫穿本案所呈現的任何特定結構或功能。相反,提供這些態樣以使得本案將是詳盡的和完整的,並將本案的範圍充分傳達給熟習此項技術者。基於本文的教導,熟習此項技術者應當理解,本案的範圍旨在覆蓋本案的系統、裝置、電腦程式產品和方法的任何態樣,無論是獨立於本案的任何其他態樣還是與本案的任何其他態樣組合地實施。例如,可以使用本文所闡述的任何數量的態樣來實施一種裝置或實踐一種方法。另外,本案的範圍旨在覆蓋此類裝置或方法,該裝置或方法使用除了本文闡述的本案的各個態樣之外或不同於本文闡述的本案的各個態樣的其他結構、功能、或結構和功能來實踐。本案的任何態樣可以由請求項的一或多個元素來體現。
儘管本文描述了各個態樣,但是這些態樣的許多變化和排列落入本案的範圍內。儘管提到了本案的各態樣的一些潛在益處和優點,但是本案的範圍不旨在限於特定的益處、用途或目標。相反,本案的各態樣旨在廣泛地適用於不同的無線技術、系統配置、網路和傳輸協定,其中一些在附圖和下述實施方式中藉由示例的方式被示出。詳細描述和附圖僅是對本案的說明而非限制,本案的範圍由所附請求項及其均等物限定。
現在將參考各種裝置和方法來呈現幾個態樣。這些裝置和方法在以下詳細描述中進行描述,並在附圖中藉由各種方塊、元件、電路、處理、演算法等(統稱為「元素」)進行說明。可以使用電子硬體、電腦軟體或其任意組合來實施這些元素。將這種元件實施為硬體還是軟體取決於特定的應用和強加在整個系統上的設計約束。
例如,元素、或元素的任何部分、或元素的任何組合都可以被實施為包括一或多個處理器的「處理系統」(其也可以被稱為處理單元)。處理器的示例包括微處理器、微控制器、圖形處理單元(GPU)、通用GPU(GPGPU)、中央處理單元(CPU)、應用處理器、數位訊號處理器(DSP)、精簡指令集計算(RISC)處理器、片上系統(SoC)、基頻處理器、專用積體電路(ASIC)、現場可程式設計閘陣列(FPGA)、可程式設計邏輯裝置(PLD)、狀態機、閘控邏輯、離散硬體電路、以及被配置為執行整個本案中描述的各種功能的其他合適的硬體。處理系統中的一或多個處理器可以運行軟體。無論是被稱為軟體、韌體、仲介軟體、微碼、硬體描述語言還是其他形式,軟體能被廣義地解釋為意指指令、指令集、代碼、程式碼片段、程式碼、程式、副程式、軟體元件、應用、軟體應用、套裝軟體、常式、子常式、物件、可執行檔、執行執行緒、程序、功能等等。術語應用可以指的是軟體。如本文所述,一或多個技術可指被配置為執行一或多個功能的應用,即軟體。在此類示例中,應用可以被儲存在記憶體上,例如處理器的片上記憶體、系統記憶體或任何其他記憶體。本文描述的硬體,例如處理器,可以被配置為執行應用。例如,應用可以被描述為包括代碼,當由硬體執行時,該代碼使硬體執行本文描述的一或多個技術。作為示例,硬體可以從記憶體存取代碼並且執行從記憶體存取的代碼以執行本文描述的一或多個技術。在一些示例中,組件在本案中被標識。在此類示例中,元件可以是硬體、軟體或其組合。元件可以是單獨的元件或單個元件的子元件。
因此,在本文描述的一或多個示例中,可以以硬體、軟體、或其任何組合來實施所描述的功能。如果在軟體中實施,則功能可以作為一或多個指令或代碼儲存在電腦可讀取媒體上或在電腦可讀取媒體上編碼。電腦可讀取媒體包括電腦儲存媒體。儲存媒體可以是可以由電腦存取的任何可用媒體。作為示例而非限制,這種電腦可讀取儲存媒體可以包括隨機存取記憶體(RAM)、唯讀記憶體(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,在某些態樣中,處理單元120可以包括決定元件198,該決定元件被配置為接收與場景中的一或多個訊框相關聯的複數個圖元,該場景的一部分與用於複數個圖元的放大的取樣空間或用於複數個圖元的縮小的取樣空間中的至少一個相關聯。決定元件198也可以被配置為從圖形處理單元(GPU)驅動程式接收針對放大的取樣空間或縮小的取樣空間中的至少一個的縮放因數。決定元件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中,圖像可以被劃分或分離成不同的段或片。劃分圖像後,可以單獨渲染每個段或片。平鋪渲染GPU可以將電腦圖形圖像劃分為網格格式,使得網格的每個部分(即,片)被單獨渲染。在一些態樣中,在分塊傳遞期間,圖像可以被劃分為不同的塊或片。在一些態樣中,在分塊傳遞期間,可見性串流可以被構建,其中可標識可見圖元及/或繪製調用。與平鋪渲染相比,直接渲染不會將訊框劃分為更小的塊或片。相反,在直接渲染中,整個訊框是一次渲染的。附加地,某些類型的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的顯示資料。訊框緩衝器也可以是包含完整資料訊框的儲存緩衝器。附加地,訊框緩衝器可以是邏輯緩衝器。在一些態樣中,更新訊框緩衝器可以在塊或平鋪渲染中執行,其中如前述,表面被劃分為多個塊或片,然後可以單獨渲染每個區塊或片。而且,在平鋪渲染中,訊框緩衝器可以劃分為多個塊或片。
如本文所指示的,圖形處理的一些態樣可以利用不同類型的渲染,例如平鋪渲染或分塊渲染。平鋪渲染或分塊渲染是藉由顯示空間中的矩形網格細分電腦圖形場景並分別渲染網格的每個段(即,片或塊)的程序。具有有限記憶體存取頻寬的圖形處理單元(GPU)可以使用平鋪或分塊渲染。在某些情況下,可以在一定數量的傳遞,例如,兩個傳遞中執行平鋪渲染,以便最大化GPU利用率,諸如分塊傳遞和渲染傳遞。
在平鋪渲染或分塊渲染中,分塊傳遞可以分析訊框並決定屬於每個區塊或片的圖元。這可能會導致圖元到塊的圖,該圖可以儲存在中間資料結構中。渲染傳遞可以分別渲染每個區塊或片。對於每個區塊或片,可以查詢中間圖,並且可以將屬於相應塊/片的圖元渲染到片上緩衝區。在每個區塊的渲染傳遞結束時,片上緩衝區可以解析為系統記憶體或顯示器緩衝區。
圖4圖示光柵化程序的一個示例的圖400。更具體地說,圖4中的圖400顯示了圖元410的光柵化程序。如圖4所示,光柵化是GPU中為圖元,例如,圖元410,產生取樣覆蓋範圍的程序。通常,光柵器檢查對照圖元/三角形的邊緣的每個取樣,並且如果取樣在圖元/三角形內部,則將其標記為已覆蓋。換言之,光柵器可以對照圖元/三角形邊緣的邊緣等式來測試每個取樣。如圖4所示,如果取樣在圖元/三角形,例如圖元410,內部,則它可以被標記為已覆蓋。
附加地,圖形處理的一些態樣可能會利用注視點渲染,這是在渲染虛擬實境(VR)、增強現實(AR)、或擴展現實(XR)的場景中採用的另一種最佳化技術。在注視點渲染中,眼球追蹤器,例如整合在VR頭盔上的眼球追蹤器,可用於標識渲染目標中的主視場(FoV)。產生的FoV資訊可用於以不同的解析度渲染場景中的各個區域。這可以顯著減少渲染工作量,而不會顯著影響被渲染圖像的視覺品質。此外,圖形處理的一些態樣可能會利用注視點分塊渲染,這也用於VR/AR/XR應用程式。在注視點分塊渲染中,FoV中心的塊可以以全解析度渲染(例如,分塊傳遞中的塊),而主FoV之外的塊(例如,渲染傳遞中的塊)可以以較低或縮小的解析度,例如,1x:2y、1x:4y、2x:4y等,渲染。
圖形處理的一些態樣也可以利用視埠變換程序(例如,Xform)。視埠變換是GPU處理中的一個數學步驟,它將圖元從標準化設備座標(NDC)空間轉換為最終螢幕空間。視埠變換程序使用可能取決於渲染目標解析度的參數(即,比例和偏移)。這些視埠變換比例和偏移也可能直接影響圖元幾何。
注視點分塊渲染在縮小的渲染傳遞中使用不同的塊大小。例如,在注視點分塊渲染中,分塊傳遞可以使用原始視埠比例和視埠偏移,而渲染傳遞可以使用針對每個區塊的調整後視埠比例和偏移來實現相同或更低的解析度。例如,渲染傳遞可以針對每個區塊在X及/或Y方向上使用各種比例(例如,1:1、1:2或1:4視埠比例)。由於分塊傳遞和渲染傳遞之間的視埠比例可能不同,相同的圖元/三角形在分塊傳遞和渲染傳遞之間可能具有不同的螢幕座標。例如,不同的視埠參數可能會導致頂點落在分塊傳遞和渲染傳遞之間的取樣空間中的不同位置。基於此,圖元/三角形可能不會覆蓋分塊傳遞中的任何取樣,但(例如,由於有限精度、面部翻轉等)它可能會覆蓋渲染傳遞中的有效取樣。此程序可能會導致場景中出現視覺偽像。此外,這可能發生在訊框級別以及塊級別,其更大程度上可能是VR/AR/XR段中的普遍問題。
圖5圖示塊注視點程序的一個示例的圖500。如圖5所示,圖500是一個示例塊注視點程序,包括塊511、塊512、塊513、塊514、和圖元520。更具體地,圖5顯示了在塊注視點程序中圖元520的可見性問題。即,圖元520包括塊511-514中的取樣覆蓋範圍問題。如圖5所示,塊511-514中的每一個中的點對應於1x比例的取樣,而塊511-514中心的「x」對應於2x比例的取樣。例如,圖元520不覆蓋1x比例的任何取樣,因此它可以在分塊程序中被移除。這可能會導致場景中出現偽像。
圖6A和6B分別圖示塊注視點程序的另一個示例的圖600和650。如圖6A和6B所示,圖600和650是包括圖元611、612、613和614的示例塊注視點程序。更具體地,圖6A和6B顯示了圖6A中的分塊傳遞和圖6B中的渲染傳遞中的圖元614的可見性問題。即,圖元614的面在圖6A中的分塊傳遞和圖6B中的渲染傳遞之間翻轉。例如,由於GPU內定點操作的精度有限,由於不同的視埠比例和浮點到定點捕捉,圖元/三角形可能會翻轉它們的面。這種圖元/三角形面翻轉問題可能會導致場景中出現偽像。
如圖6A所示,圖元614是分塊傳遞中的背面三角形,並且所有取樣都被圖元611/612/613覆蓋。例如,由於背面剔除,圖元614在分塊中被剔除。然而,如圖6B所示,在渲染傳遞中,圖元614由於固定點捕捉而翻轉變為可見。此外,一些取樣可能被圖元614覆蓋。由於圖元614已經在分塊中被剔除,它可能會在縮小的渲染期間在其位置處的網格中產生一個洞。這也可能導致視覺偽像。附加地,在分塊傳遞中在「零區域」中偵測到的圖元可能最終在渲染傳遞中處於「非零區域」中。這是視覺偽像的另一個潛在原因。
圖7圖示渲染傳遞的一個示例的圖700。如圖7所示,圖700是包括步驟710、720、730和740的示例渲染傳遞。更具體地,圖7顯示了渲染傳遞,該渲染傳遞包括與分塊傳遞相比具有縮放的視埠變換。即,圖7中的渲染傳遞包括不同於分塊傳遞的視埠縮放和偏移參數。如圖7所示,在步驟710處,接收輸入圖元/三角形。在步驟720處,使用縮放(即,與分塊傳遞相比)執行視埠變換。在步驟730處,執行剔除程序。在步驟740處,執行光柵化程序。由於分塊和渲染之間存在不同的縮放因數,這可能會導致場景中出現視覺偽像。
如前述,一些圖形處理問題可能是視埠參數在分塊傳遞和渲染傳遞之間不同的結果,諸如包括不同的縮放因數。這些不同的縮放因數可能會導致場景中出現視覺偽像。為了避免這些偽像,GPU上的軟體可能會禁用多個剔除演算法,並且可能會強製圖元在分塊傳遞中可見。但是,這可能會對GPU的效能產生很大影響。因此,在分塊傳遞和渲染傳遞之間包括類似的視埠參數可能是有益的。例如,包括視埠變換而不在分塊傳遞和渲染傳遞之間進行縮放可能是有益的。此外,包括在分塊傳遞和渲染傳遞之間的類似縮放因數或偏移參數可能是有益的。例如,將縮放參數或偏移參數保持在縮小的空間中可能是有益的。
本案的各態樣可以提供包括在分塊傳遞和渲染傳遞之間的類似視埠參數的圖形處理技術。例如,本案的各態樣可以包括視埠變換而不在分塊傳遞和渲染傳遞之間進行縮放。附加地,本案的各態樣可以包括在分塊傳遞和渲染傳遞之間的類似縮放因數或偏移參數。例如,本案的各態樣可以將縮放參數或偏移參數保持在縮小的空間中。
在一些情況下,本案的各態樣可以執行無偽像縮小的渲染,同時保持啟用大多數剔除演算法。例如,上述視覺偽像的主要原因是在分塊和縮小的渲染中相同圖元的剔除結果不同。如前述,這可能是由於分塊傳遞和渲染傳遞中的不同視埠參數。因此,本案的各態樣可以提議在縮小的渲染中保持視埠縮放和偏移參數與分塊傳遞的相同。
藉由在分塊傳遞和渲染傳遞中保持相似的視埠縮放及/或偏移參數,這可以確保圖元在分塊和渲染程序中具有相同的剔除結果。因此,這可能有助於在分塊傳遞和渲染傳遞中無縫啟用剔除演算法。例如,在縮小的渲染傳遞中,光柵器可以在縮小域中產生取樣覆蓋範圍。為了實現這一點,本案的各態樣可以針對具有與分塊傳遞相同的解析度的圖元執行放大的取樣空間的可見性測試。在一些情況下,這可能與決定/標識縮小域中的覆蓋範圍具有相同的效果。
圖8圖示根據本案的各態樣的渲染傳遞的一個示例的圖800。如圖8所示,圖800是包括步驟810、820、830和840的示例渲染傳遞。更具體地,圖8顯示了渲染傳遞,該渲染傳遞包括與分塊傳遞相比具有縮放的視埠變換。即,圖8中的渲染傳遞包括與分塊傳遞相似的的視埠縮放和偏移參數。這樣做,圖8中的渲染傳遞可以確保跨分塊傳遞和渲染傳遞的圖元的相同剔除結果。
如圖8所示,在步驟810處,本案的各態樣可以接收輸入圖元/三角形。在步驟820處,本案的各態樣可以在沒有縮放的情況下執行視埠變換(即,與分塊傳遞相比)。例如,本案的各態樣可以計算放大的取樣空間中的覆蓋範圍。此外,本案的各態樣可以將其他參數保持在縮小的空間中。在步驟830處,本案的各態樣可以執行剔除程序。在步驟840處,本案的各態樣可以使用放大的取樣空間執行光柵化程序。如本文所述,圖8中的渲染傳遞中的步驟810-840可以幫助無縫地啟用分塊傳遞和渲染傳遞中的剔除演算法。
在一些態樣中,為了保持視埠縮放及/或偏移參數在分塊傳遞和渲染傳遞中相似,本案的各態樣可以利用多個不同的邊緣等式。更具體地,本案的各態樣可以將圖元/三角形的邊緣等式與不同的縮放因數例如,XY縮放因數,相乘。例如,光柵器可以利用第一個等式:R = E aX 步驟+ E bY 步驟+ C ref,其中E a是圖元A的邊緣等式,E b是圖元B的邊緣等式,X 步驟是X 步驟分量,Y 步驟是Y 步驟分量,並且C ref是常數。對於縮小的光柵化,X 步驟和Y 步驟可以乘以X縮放因數(S x)和Y縮放因數(S y)。因此,第一個等式可以轉化為第二個等式=E a(X 步驟*S x)+ E b(Y 步驟*S y) + C ref。第二個等式可以重新排列成第三個等式=(E a*S x)X 步驟+ (E b*S y)Y 步驟+ C ref。此外,第三個等式可以轉化為第四個等式=E a'' X 步驟+ E b'' Y 步驟+ C ref。除了使用E a的修改形式(即,E a'')和E b的修改形式(即,E b'')之外,第四個等式可能類似於第一個等式。如上所示,根據第三個等式,如果E a和E b分別乘以比例X(S x)和比例Y(S y)因數,這可能導致將取樣移動到放大空間中。
附加地,本案的各態樣可以對邊緣等式使用不同的步驟,以便在分塊傳遞和渲染傳遞中保持視埠縮放及/或偏移參數相似。例如,分塊程序的光柵器等式(R)可以是:R=E a*X + E b*Y + C init,其中E a作為圖元A的邊緣等式,E b是圖元B的邊緣等式,X是X分量,Y是Y分量,並且C init是初始常數。對於正面圖元,測試點(X,Y)可以是:如果R>0,則測試點在某條線內,如果R<0,則測試點在該線外,並且如果R=0,則測試點在該線上。附加地,在X方向和Y方向分別具有縮放因數比例X和比例Y的縮小的渲染(R')中的第二個光柵器等式可以是:R'=E a'*X'+ E b'*Y'+ C init',其中E a'=E a/比例Y,E b'=E b/比例X,並且C init'=C init/(比例X*比例Y)。基於上述等式,R'*比例X*比例Y=(E a*比例X)*X' + (E b*比例Y)*Y' + C init。在一些情況下,如果比例X和比例Y為正,則上述等式的符號可能足以執行邊緣測試。因此,對應於縮小的渲染(R'')中圖元邊緣的第三個光柵器等式可能是:R''=E a'' *X'+E b'' *Y'+C init,其中E a''=E a*比例X並且E b''=E b*比例Y。
本案的各態樣可以利用上述邊緣等式,例如,第三光柵器等式(R''),在針對縮小的渲染中的圖元邊緣的取樣的邊緣測試中。本案的各態樣的上述邊緣等式可以包括許多益處或優點。例如,藉由保持剔除演算法完好無損,上述邊緣等式可以為注視點分塊渲染提供快速且穩健的策略。更具體地說,這些邊緣等式可以允許穩健的注視點策略,該策略可能不會藉由保持剔除演算法啟用來妨礙GPU效能。這些邊緣等式還可以實現無偽像、穩健且快速的分塊注視點策略。此外,這些邊緣等式可以允許本案的各態樣不損害GPU效能,因為所提出的策略可以幫助保持剔除演算法啟用。
圖9是根據本案的一或多個技術的圖形處理的通訊流程圖900。如圖9所示,根據本案的一或多個技術,圖900包括GPU管線902(例如,GPU管線中的元件)、GPU元件904(例如,GPU管線中的另一個元件)、和顯示器或緩衝器906之間的示例通訊。
在910處,GPU管線902可以接收與場景中的一或多個訊框相關聯的複數個圖元,例如,圖元912,該場景的一部分與用於複數個圖元的放大的取樣空間或用於複數個圖元的縮小的取樣空間中的至少一個相關聯。複數個圖元可以從圖形處理單元(GPU)管線之外的至少一個應用程式或GPU管線之外的至少一款遊戲接收到。
在920處,GPU管線902可以從圖形處理單元(GPU)驅動程式接收針對放大的取樣空間或縮小的取樣空間中的至少一個的縮放因數。在一些態樣中,放大的取樣空間或縮小的取樣空間中的至少一個可以對應於縮放因數。
在930處,GPU管線902可以對複數個圖元執行分塊傳遞,該分塊傳遞與複數個圖元的未縮放的取樣空間相關聯,其中該分塊傳遞將複數個圖元中的每一個分類到與一或多個訊框中的每一個相關聯的一或多個塊。在一些情況下,分塊傳遞可以使用未縮放的取樣空間將複數個圖元中的每一個分配到每個圖元出現在其中的一或多個塊中。
在940處,GPU管線902可以針對一或多個塊中的每一個執行一或多個渲染傳遞中的一個,一或多個渲染傳遞中的每一個與放大的取樣空間或縮小的取樣空間中的至少一個相關聯,一或多個渲染傳遞中的每一個包括用於複數個圖元中的每一個的視埠變換。一或多個渲染傳遞可以與注視點渲染程序相關聯。
在一些態樣中,針對複數個圖元中的每一個的視埠變換可以與針對複數個圖元的未縮放的取樣空間相關聯。同樣,視埠變換可以與視埠比例中的至少一個或未縮放的視埠變換的至少一個偏移參數相關聯。視埠變換也可以與維持未縮放的取樣空間中的所有複數個圖元的多個幾何參數中的每一個相關聯。
在950處,GPU管線902可以在為複數個圖元中的每一個執行一或多個渲染傳遞中的一個之後,對複數個圖元中的每一個執行剔除程序。
在960處,GPU管線902可以基於放大的取樣空間或縮小的取樣空間中的至少一個來光柵化複數個圖元中的每一個。在一些情況下,本文的GPU可以計算複數個圖元中的每一個在放大的取樣空間或縮小的取樣空間中的至少一個的覆蓋範圍。例如,光柵化複數個圖元中的每一個還可以包括計算複數個圖元中的每一個在放大的取樣空間或縮小的取樣空間中的至少一個的覆蓋範圍。同樣,本文的GPU可以為複數個圖元中的每一個修改一或多個邊緣係數。例如,計算複數個圖元中的每一個的覆蓋範圍還可以包括為複數個圖元中的每一個修改一或多個邊緣係數。
在970處,GPU管線902可以基於複數個圖元中的每一個的光柵化來渲染複數個圖元中的每一個。
在980處,GPU管線902可以在渲染複數個圖元中的每一個之後發送渲染的複數個圖元,例如圖元982。可以向顯示器或儲存緩衝器中的至少一個發送所渲染的複數個圖元。
圖10是根據本案的一或多個技術的圖形處理的示例方法的流程圖1000。如結合圖1-9的示例使用的,該方法可以由GPU執行,諸如用於圖形處理的裝置、另一個圖形處理器、GPU管線、無線通訊設備、及/或可以執行圖形處理的任何裝置。
如結合圖1-9中的示例所述,在1002處,GPU可以接收與場景中的一或多個訊框相關聯的複數個圖元,該場景的一部分與用於複數個圖元的放大的取樣空間或用於複數個圖元的縮小的取樣空間中的至少一個相關聯。例如,如圖9的910中所述,GPU管線902可以接收與場景中的一或多個訊框相關聯的複數個圖元,該場景的一部分與用於複數個圖元的放大的取樣空間或用於複數個圖元的縮小的取樣空間中的至少一個相關聯。此外,步驟1002可以由圖1中的處理單元120執行。複數個圖元可以從圖形處理單元(GPU)管線之外的至少一個應用程式或GPU管線之外的至少一款遊戲接收到。
如結合圖1-9中的示例所述,在1006處,GPU可以對複數個圖元執行分塊傳遞,該分塊傳遞與複數個圖元的未縮放的取樣空間相關聯,其中該分塊傳遞將複數個圖元中的每一個分類到與一或多個訊框中的每一個相關聯的一或多個塊。例如,如圖9的930中所述,GPU管線902可以對複數個圖元執行分塊傳遞,該分塊傳遞與複數個圖元的未縮放的取樣空間相關聯,其中該分塊傳遞將複數個圖元中的每一個分類到與一或多個訊框中的每一個相關聯的一或多個塊。此外,步驟1006可以由圖1中的處理單元120執行。在一些情況下,分塊傳遞可以使用未縮放的取樣空間將複數個圖元中的每一個分配到每個圖元出現在其中的一或多個塊中。
如結合圖1-9中的示例所述,在1008處,GPU可以針對一或多個塊中的每一個執行一或多個渲染傳遞中的一個,一或多個渲染傳遞中的每一個與放大的取樣空間或縮小的取樣空間中的至少一個相關聯,一或多個渲染傳遞中的每一個包括用於複數個圖元中的每一個的視埠變換。例如,如圖9的940中所述,GPU管線902可以針對一或多個塊中的每一個執行一或多個渲染傳遞中的一個,一或多個渲染傳遞中的每一個與放大的取樣空間或縮小的取樣空間中的至少一個相關聯,一或多個渲染傳遞中的每一個包括用於複數個圖元中的每一個的視埠變換。此外,步驟1008可以由圖1中的處理單元120執行。一或多個渲染傳遞可以與注視點渲染程序相關聯。
在一些態樣中,針對複數個圖元中的每一個的視埠變換可以與針對複數個圖元的未縮放的取樣空間相關聯。同樣,視埠變換可以與視埠比例中的至少一個或未縮放的視埠變換的至少一個偏移參數相關聯。視埠變換也可以與維持未縮放的取樣空間中的所有複數個圖元的多個幾何參數中的每一個相關聯。
如結合圖1-9中的示例所述,在1012處,GPU可以基於放大的取樣空間或縮小的取樣空間中的至少一個來光柵化複數個圖元中的每一個。例如,如圖9的960中所述,GPU管線902可以基於放大的取樣空間或縮小的取樣空間中的至少一個來光柵化複數個圖元中的每一個。此外,步驟1012可以由圖1中的處理單元120執行。在一些情況下,本文的GPU可以計算複數個圖元中的每一個在放大的取樣空間或縮小的取樣空間中的至少一個的覆蓋範圍。例如,光柵化複數個圖元中的每一個還可以包括計算複數個圖元中的每一個在放大的取樣空間或縮小的取樣空間中的至少一個的覆蓋範圍。同樣,本文的GPU可以為複數個圖元中的每一個修改一或多個邊緣係數。例如,計算複數個圖元中的每一個的覆蓋範圍還可以包括為複數個圖元中的每一個修改一或多個邊緣係數。
圖11是根據本案的一或多個技術的圖形處理的示例方法的流程圖1100。如結合圖1-9的示例使用的,該方法可以由GPU執行,諸如用於圖形處理的裝置、另一個圖形處理器、GPU管線、無線通訊設備、及/或可以執行圖形處理的任何裝置。
如結合圖1-9中的示例所述,在1102處,GPU可以接收與場景中的一或多個訊框相關聯的複數個圖元,該場景的一部分與用於複數個圖元的放大的取樣空間或用於複數個圖元的縮小的取樣空間中的至少一個相關聯。例如,如圖9的910中所述,GPU管線902可以接收與場景中的一或多個訊框相關聯的複數個圖元,該場景的一部分與用於複數個圖元的放大的取樣空間或用於複數個圖元的縮小的取樣空間中的至少一個相關聯。此外,步驟1102可以由圖1中的處理單元120執行。複數個圖元可以從圖形處理單元(GPU)管線之外的至少一個應用程式或GPU管線之外的至少一款遊戲接收到。
如結合圖1-9中的示例所述,在1104處,GPU可以從GPU驅動程式接收針對放大的取樣空間或縮小的取樣空間中的至少一個的縮放因數。例如,如圖9的920中所述,GPU管線902可以從GPU驅動程式接收針對放大的取樣空間或縮小的取樣空間中的至少一個的縮放因數。此外,步驟1104可以由圖1中的處理單元120執行。在一些態樣中,放大的取樣空間或縮小的取樣空間中的至少一個可以對應於縮放因數。
如結合圖1-9中的示例所述,在1106處,GPU可以對複數個圖元執行分塊傳遞,該分塊傳遞與複數個圖元的未縮放的取樣空間相關聯,其中該分塊傳遞將複數個圖元中的每一個分類到與一或多個訊框中的每一個相關聯的一或多個塊。例如,如圖9的930中所述,GPU管線902可以對複數個圖元執行分塊傳遞,該分塊傳遞與複數個圖元的未縮放的取樣空間相關聯,其中該分塊傳遞將複數個圖元中的每一個分類到與一或多個訊框中的每一個相關聯的一或多個塊。此外,步驟1106可以由圖1中的處理單元120執行。在一些情況下,分塊傳遞可以使用未縮放的取樣空間將複數個圖元中的每一個分配到每個圖元出現在其中的一或多個塊中。
如結合圖1-9中的示例所述,在1108處,GPU可以針對一或多個塊中的每一個執行一或多個渲染傳遞中的一個,一或多個渲染傳遞中的每一個與放大的取樣空間或縮小的取樣空間中的至少一個相關聯,一或多個渲染傳遞中的每一個包括用於複數個圖元中的每一個的視埠變換。例如,如圖9的940中所述,GPU管線902可以針對一或多個塊中的每一個執行一或多個渲染傳遞中的一個,一或多個渲染傳遞中的每一個與放大的取樣空間或縮小的取樣空間中的至少一個相關聯,一或多個渲染傳遞中的每一個包括用於複數個圖元中的每一個的視埠變換。此外,步驟1108可以由圖1中的處理單元120執行。一或多個渲染傳遞可以與注視點渲染程序相關聯。
在一些態樣中,針對複數個圖元中的每一個的視埠變換可以與針對複數個圖元的未縮放的取樣空間相關聯。同樣,視埠變換可以與視埠比例中的至少一個或未縮放的視埠變換的至少一個偏移參數相關聯。視埠變換也可以與維持未縮放的取樣空間中的所有複數個圖元的多個幾何參數中的每一個相關聯。
如結合圖1-9中的示例所述,在1110處,GPU可以在為複數個圖元中的每一個執行一或多個渲染傳遞中的一個之後,對複數個圖元中的每一個執行剔除程序。例如,如圖9的950中所述,GPU管線902可以在為複數個圖元中的每一個執行一或多個渲染傳遞中的一個之後,對複數個圖元中的每一個執行剔除程序。此外,步驟1110可以由圖1中的處理單元120執行。
如結合圖1-9中的示例所述,在1112處,GPU可以基於放大的取樣空間或縮小的取樣空間中的至少一個來光柵化複數個圖元中的每一個。例如,如圖9的960中所述,GPU管線902可以基於放大的取樣空間或縮小的取樣空間中的至少一個來光柵化複數個圖元中的每一個。此外,步驟1112可以由圖1中的處理單元120執行。在一些情況下,在1112a處,GPU可以計算複數個圖元中的每一個在放大的取樣空間或縮小的取樣空間中的至少一個的覆蓋範圍。例如,光柵化複數個圖元中的每一個還可以包括計算複數個圖元中的每一個在放大的取樣空間或縮小的取樣空間中的至少一個的覆蓋範圍。同樣,在1112b處,GPU可以為複數個圖元中的每一個修改一或多個邊緣係數。例如,計算複數個圖元中的每一個的覆蓋範圍還可以包括為複數個圖元中的每一個修改一或多個邊緣係數。
如結合圖1-9中的示例所述,在1114處,GPU可以基於複數個圖元中的每一個的光柵化來渲染複數個圖元中的每一個。例如,如圖9的970中所述,GPU管線902可以基於複數個圖元中的每一個的光柵化來渲染複數個圖元中的每一個。此外,步驟1114可以由圖1中的處理單元120執行。
如結合圖1-9中的示例所述,在1116處,GPU可以在渲染複數個圖元中的每一個之後發送渲染的複數個圖元。例如,如圖9的980中所述,GPU管線902可以在渲染複數個圖元中的每一個之後發送渲染的複數個圖元。此外,步驟1116可以由圖1中的處理單元120執行。可以向顯示器或儲存緩衝器中的至少一個發送所渲染的複數個圖元。
在配置中,提供了一種用於圖形處理的方法或裝置。該裝置可以是GPU、圖形處理器、或可以執行圖形處理的一些其他處理器。在各態樣中,該裝置可以是設備104內的處理單元120,或者可以是設備104或另一設備內的一些其他硬體。該裝置,例如,處理單元120,可以包括用於接收與場景中的一或多個訊框相關聯的複數個圖元的構件,該場景的一部分與用於複數個圖元的放大的取樣空間或用於複數個圖元的縮小的取樣空間中的至少一個相關聯;用於對複數個圖元執行分塊傳遞的構件,分塊傳遞與複數個圖元的未縮放的取樣空間相關聯,其中分塊傳遞將複數個圖元中的每一個分類到與一或多個訊框中的每一個相關聯的一或多個塊;用於針對一或多個塊中的每一個執行一或多個渲染傳遞中的一個的構件,一或多個渲染傳遞中的每一個與放大的取樣空間或所述縮小的取樣空間中的至少一個相關聯,一或多個渲染傳遞中的每一個包括用於複數個圖元中的每一個的視埠變換;用於基於放大的取樣空間或縮小的取樣空間中的至少一個來光柵化複數個圖元中的每一個的構件;用於在為複數個圖元中的每一個執行一或多個渲染傳遞中的一個之後,對複數個圖元中的每一個執行剔除程序的構件;用於從圖形處理單元(GPU)驅動程式接收針對放大的取樣空間或縮小的取樣空間中的至少一個的縮放因數的構件;用於計算複數個圖元中的每一個在放大的取樣空間或縮小的取樣空間中的至少一個的覆蓋範圍的構件;用於為複數個圖元中的每一個修改一或多個邊緣係數的構件;用於基於複數個圖元中的每一個的光柵化來渲染複數個圖元中的每一個的構件;及用於在渲染複數個圖元中的每一個之後發送渲染的複數個圖元的構件。
可以實施本文描述的主題以實現一或多個益處或優點。例如,所描述的圖形處理技術可以由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之裝置,其中針對複數個圖元中的每一個的視埠變換與針對複數個圖元的未縮放的取樣空間相關聯。
態樣3是根據態樣1和2中任一項所述的裝置,其中視埠變換與未縮放的視埠變換的視埠比例中的至少一個或至少一個偏移參數相關聯。
態樣4是根據態樣1至3中任一項所述的裝置,其中視埠變換與維持未縮放的取樣空間中的所有複數個圖元的多個幾何參數中的每一個相關聯。
態樣5是根據態樣1至4中任一項所述的裝置,其中分塊傳遞使用未縮放的取樣空間將複數個圖元中的每一個分配到每個圖元出現在其中的一或多個塊中。
態樣6是根據態樣1至5中任一項所述的裝置,其中該至少一個處理器還被配置為:在為複數個圖元中的每一個執行一或多個渲染傳遞中的一個之後,對複數個圖元中的每一個執行剔除程序。
態樣7是根據態樣1至6中任一項所述的裝置,其中放大的取樣空間或縮小的取樣空間中的至少一個對應於縮放因數。
態樣8是根據態樣1至7中任一項所述的裝置,其中該至少一個處理器還被配置為:從圖形處理單元(GPU)驅動程式接收針對放大的取樣空間或縮小的取樣空間中的至少一個的縮放因數。
態樣9是根據態樣1至8中任一項所述的裝置,其中為了光柵化複數個圖元中的每一個,該至少一個處理器還被配置為:計算複數個圖元中的每一個在放大的取樣空間或縮小的取樣空間中的至少一個的覆蓋範圍。
態樣10是根據態樣1至9中任一項所述的裝置,其中為了計算複數個圖元中的每一個的覆蓋範圍,該至少一個處理器還被配置為:為複數個圖元中的每一個修改一或多個邊緣係數。
態樣11是根據態樣1至10中任一項所述的裝置,其中該至少一個處理器還被配置為:基於複數個圖元中的每一個的光柵化來渲染複數個圖元中的每一個。
態樣12是根據態樣1至11中任一項所述的裝置,其中該至少一個處理器還被配置為:在渲染複數個圖元中的每一個之後發送所渲染的複數個圖元。
態樣13是根據態樣1至12中任一項所述的裝置,其中向顯示器或儲存緩衝器中的至少一個發送所渲染的複數個圖元。
態樣14是根據態樣1至13中任一項所述的裝置,其中一或多個渲染傳遞與注視點渲染程序相關聯。
態樣15是根據態樣1至14中任一項所述的裝置,其中複數個圖元是從圖形處理單元(GPU)管線之外的至少一個應用程式或GPU管線之外的至少一款遊戲接收到的。
態樣16是根據態樣1至15中任一項所述的裝置,還包括耦接到至少一個處理器的天線或收發器中的至少一個。
態樣17是一種用於實現態樣1至16中任一項的圖形處理方法。
態樣18是一種用於圖形處理的裝置,包括用於實施態樣1至16中任一項的構件。
態樣19是一種儲存電腦可執行代碼的電腦可讀取媒體,該代碼在由處理器執行時使該至少一個處理器實施態樣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:圖 410:圖元 500:圖 511:塊 512:塊 513:塊 514:塊 520:圖元 600:圖 611:圖元 612:圖元 613:圖元 614:圖元 650:圖 700:圖 710:步驟 720:步驟 730:步驟 740:步驟 800:圖 810:步驟 820:步驟 830:步驟 840:步驟 900:通訊流程圖 902:GPU管線 904:GPU元件 906:緩衝器 910:步驟 912:圖元 920:步驟 930:步驟 940:步驟 950:步驟 960:步驟 970:步驟 980:步驟 982:圖元 1000:流程圖 1002:步驟 1006:步驟 1008:步驟 1012:步驟 1100:流程圖 1102:步驟 1104:步驟 1106:步驟 1108:步驟 1110:步驟 1112:步驟 1112a:步驟 1112b:步驟 1114:步驟 1116:步驟
圖1是圖示根據本案的一或多個技術的示例內容產生系統的方塊圖。
圖2圖示根據本案的一或多個技術的示例GPU。
圖3圖示根據本案的一或多個技術的示例圖像或表面。
圖4是圖示示例光柵化程序的圖。
圖5是圖示示例塊注視點程序的圖。
圖6A是圖示示例塊注視點程序的圖。
圖6B是圖示示例塊注視點程序的圖。
圖7是圖示示例渲染傳遞的圖。
圖8是圖示示例渲染傳遞的圖。
圖9是示出GPU管線、GPU元件、和顯示器/緩衝器之間的示例通訊的通訊流程圖。
圖10是圖形處理示例方法的流程圖。
圖11是圖形處理示例方法的流程圖。
國內寄存資訊(請依寄存機構、日期、號碼順序註記) 無 國外寄存資訊(請依寄存國家、機構、日期、號碼順序註記) 無
900:通訊流程圖
902:GPU管線
904:GPU元件
906:緩衝器
910:步驟
912:圖元
920:步驟
930:步驟
940:步驟
950:步驟
960:步驟
970:步驟
980:步驟
982:圖元

Claims (32)

  1. 一種用於圖形處理的裝置,包括: 一記憶體;及 至少一個處理器,該至少一個處理器耦接到該記憶體並被配置為: 接收與場景中的一或多個訊框相關聯的複數個圖元,該場景的一部分與用於該複數個圖元的放大的取樣空間或用於該複數個圖元的縮小的取樣空間中的至少一個相關聯; 對該複數個圖元執行分塊傳遞,該分塊傳遞與該複數個圖元的未縮放的取樣空間相關聯,其中該分塊傳遞將該複數個圖元中的每一個分類到與該一或多個訊框中的每一個相關聯的一或多個塊; 針對該一或多個塊中的每一個執行一或多個渲染傳遞中的一個,該一或多個渲染傳遞中的每一個與該放大的取樣空間或該縮小的取樣空間中的至少一個相關聯,該一或多個渲染傳遞中的每一個包括用於該複數個圖元中的每一個的視埠變換;及 基於該放大的取樣空間或該縮小的取樣空間中的至少一個來光柵化該複數個圖元中的每一個。
  2. 根據請求項1之裝置,其中針對該複數個圖元中的每一個的該視埠變換與針對該複數個圖元的該未縮放的取樣空間相關聯。
  3. 根據請求項2之裝置,其中該視埠變換與該未縮放的視埠變換的視埠比例中的至少一個或至少一個偏移參數相關聯。
  4. 根據請求項2之裝置,其中該視埠變換與維持該未縮放的取樣空間中的所有該複數個圖元的多個幾何參數中的每一個相關聯。
  5. 根據請求項1之裝置,其中該分塊傳遞使用該未縮放的取樣空間將該複數個圖元中的每一個分配到每個圖元出現在其中的該一或多個塊中。
  6. 根據請求項1之裝置,其中該至少一個處理器還被配置為: 在為該複數個圖元中的每一個執行該一或多個渲染傳遞中的一個之後,對該複數個圖元中的每一個執行一剔除程序。
  7. 根據請求項1之裝置,其中該放大的取樣空間或該縮小的取樣空間中的至少一個對應於一縮放因數。
  8. 根據請求項7之裝置,其中該至少一個處理器還被配置為: 從一圖形處理單元(GPU)驅動程式接收針對該放大的取樣空間或該縮小的取樣空間中的至少一個的該縮放因數。
  9. 根據請求項1之裝置,其中為了光柵化該複數個圖元中的每一個,該至少一個處理器還被配置為: 計算該複數個圖元中的每一個在該放大的取樣空間或該縮小的取樣空間中的至少一個的一覆蓋範圍。
  10. 根據請求項9之裝置,其中為了計算該複數個圖元中的每一個的該覆蓋範圍,該至少一個處理器還被配置為: 為該複數個圖元中的每一個修改一或多個邊緣係數。
  11. 根據請求項1之裝置,其中該至少一個處理器還被配置為: 基於該複數個圖元中的每一個的光柵化來渲染該複數個圖元中的每一個。
  12. 根據請求項11之裝置,其中該至少一個處理器還被配置為: 在渲染該複數個圖元中的每一個之後發送所渲染的複數個圖元。
  13. 根據請求項12之裝置,其中向一顯示器或一儲存緩衝器中的至少一個發送該所渲染的複數個圖元。
  14. 根據請求項1之裝置,其中該一或多個渲染傳遞與一注視點渲染程序相關聯。
  15. 根據請求項1之裝置,還包括耦接到該至少一個處理器的一天線或一收發器中的至少一個,其中該複數個圖元是從一圖形處理單元(GPU)管線之外的至少一個應用程式或GPU管線之外的至少一款遊戲接收到的。
  16. 一種用於圖形處理的方法,包括: 接收與一場景中的一或多個訊框相關聯的複數個圖元,該場景的一部分與用於該複數個圖元的一放大的取樣空間或用於該複數個圖元的一縮小的取樣空間中的至少一個相關聯; 對該複數個圖元執行一分塊傳遞,該分塊傳遞與該複數個圖元的一未縮放的取樣空間相關聯,其中該分塊傳遞將該複數個圖元中的每一個分類到與該一或多個訊框中的每一個相關聯的一或多個塊; 針對該一或多個塊中的每一個執行一或多個渲染傳遞中的一個,該一或多個渲染傳遞中的每一個與該放大的取樣空間或該縮小的取樣空間中的至少一個相關聯,該一或多個渲染傳遞中的每一個包括用於該複數個圖元中的每一個的一視埠變換;及 基於該放大的取樣空間或該縮小的取樣空間中的至少一個來光柵化該複數個圖元中的每一個。
  17. 根據請求項16之方法,其中針對該複數個圖元中的每一個的該視埠變換與針對該複數個圖元的該未縮放的取樣空間相關聯。
  18. 根據請求項17之方法,其中該視埠變換與該未縮放的視埠變換的一視埠比例中的至少一個或至少一個偏移參數相關聯。
  19. 根據請求項17之方法,其中該視埠變換與維持該未縮放的取樣空間中的所有該複數個圖元的多個幾何參數中的每一個相關聯。
  20. 根據請求項16之方法,其中該分塊傳遞使用該未縮放的取樣空間將該複數個圖元中的每一個分配到每個圖元出現在其中的該一或多個塊中。
  21. 根據請求項16之方法,還包括: 在為該複數個圖元中的每一個執行該一或多個渲染傳遞中的一個之後,對該複數個圖元中的每一個執行一剔除程序。
  22. 根據請求項16之方法,其中該放大的取樣空間或該縮小的取樣空間中的至少一個對應於一縮放因數。
  23. 根據請求項22之方法,還包括: 從一圖形處理單元(GPU)驅動程式接收針對該放大的取樣空間或該縮小的取樣空間中的至少一個的該縮放因數。
  24. 根據請求項16之方法,其中光柵化該複數個圖元中的每一個還包括: 計算該複數個圖元中的每一個在該放大的取樣空間或該縮小的取樣空間中的至少一個的一覆蓋範圍。
  25. 根據請求項24之方法,其中計算該複數個圖元中的每一個的覆蓋範圍還包括: 為該複數個圖元中的每一個修改一或多個邊緣係數。
  26. 根據請求項16之方法,還包括: 基於該複數個圖元中的每一個的光柵化來渲染該複數個圖元中的每一個。
  27. 根據請求項26之方法,還包括: 在渲染該複數個圖元中的每一個之後發送所渲染的複數個圖元。
  28. 根據請求項27之方法,其中向一顯示器或一儲存緩衝器中的至少一個發送該所渲染的複數個圖元。
  29. 根據請求項16之方法,其中該一或多個渲染傳遞與一注視點渲染程序相關聯。
  30. 根據請求項16之方法,其中該複數個圖元是從一圖形處理單元(GPU)管線之外的至少一個應用程式或該GPU管線之外的至少一款遊戲接收到的。
  31. 一種用於圖形處理的裝置,包括: 用於接收與一場景中的一或多個訊框相關聯的複數個圖元的構件,該場景的一部分與用於該複數個圖元的一放大的取樣空間或用於該複數個圖元的一縮小的取樣空間中的至少一個相關聯; 用於對該複數個圖元執行一分塊傳遞的構件,該分塊傳遞與該複數個圖元的一未縮放的取樣空間相關聯,其中該分塊傳遞將該複數個圖元中的每一個分類到與該一或多個訊框中的每一個相關聯的一或多個塊; 用於針對該一或多個塊中的每一個執行一或多個渲染傳遞中的一個的構件,該一或多個渲染傳遞中的每一個與該放大的取樣空間或該縮小的取樣空間中的至少一個相關聯,該一或多個渲染傳遞中的每一個包括用於該複數個圖元中的每一個的一視埠變換;及 用於基於該放大的取樣空間或該縮小的取樣空間中的至少一個來光柵化該複數個圖元中的每一個的構件。
  32. 一種儲存用於圖形處理的電腦可執行代碼的電腦可讀取媒體,該代碼在由一處理器執行時使該處理器: 接收與一場景中的一或多個訊框相關聯的複數個圖元,該場景的一部分與用於該複數個圖元的一放大的取樣空間或用於該複數個圖元的一縮小的取樣空間中的至少一個相關聯; 對該複數個圖元執行一分塊傳遞,該分塊傳遞與該複數個圖元的一未縮放的取樣空間相關聯,其中該分塊傳遞將該複數個圖元中的每一個分類到與該一或多個訊框中的每一個相關聯的一或多個塊; 針對該一或多個塊中的每一個執行一或多個渲染傳遞中的一個,該一或多個渲染傳遞中的每一個與該放大的取樣空間或該縮小的取樣空間中的至少一個相關聯,該一或多個渲染傳遞中的每一個包括用於該複數個圖元中的每一個的一視埠變換;及 基於該放大的取樣空間或該縮小的取樣空間中的至少一個來光柵化該複數個圖元中的每一個。
TW111131288A 2021-09-17 2022-08-19 與取樣空間相關聯的注視點分塊渲染 TW202316375A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/478,694 2021-09-17
US17/478,694 US11734787B2 (en) 2021-09-17 2021-09-17 Foveated binned rendering associated with sample spaces

Publications (1)

Publication Number Publication Date
TW202316375A true TW202316375A (zh) 2023-04-16

Family

ID=83228752

Family Applications (1)

Application Number Title Priority Date Filing Date
TW111131288A TW202316375A (zh) 2021-09-17 2022-08-19 與取樣空間相關聯的注視點分塊渲染

Country Status (6)

Country Link
US (1) US11734787B2 (zh)
EP (1) EP4402639A1 (zh)
KR (1) KR20240042090A (zh)
CN (1) CN117980955A (zh)
TW (1) TW202316375A (zh)
WO (1) WO2023043573A1 (zh)

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0900700D0 (en) * 2009-01-15 2009-03-04 Advanced Risc Mach Ltd Methods of and apparatus for processing graphics
US9799088B2 (en) * 2014-08-21 2017-10-24 Qualcomm Incorporated Render target command reordering in graphics processing
GB2553744B (en) * 2016-04-29 2018-09-05 Advanced Risc Mach Ltd Graphics processing systems
US10453241B2 (en) * 2017-04-01 2019-10-22 Intel Corporation Multi-resolution image plane rendering within an improved graphics processor microarchitecture
US10403032B2 (en) 2017-08-22 2019-09-03 Qualcomm Incorporated Rendering an image from computer graphics using two rendering computing devices
GB2573543B (en) 2018-05-09 2021-10-27 Advanced Risc Mach Ltd Graphics Processing
US20200020067A1 (en) * 2018-07-13 2020-01-16 Qualcomm Incorporated Concurrent binning and rendering
EP3598391B1 (en) 2018-07-16 2023-09-06 Huawei Technologies Co., Ltd. Variable resolution rendering
US10867431B2 (en) * 2018-12-17 2020-12-15 Qualcomm Technologies, Inc. Methods and apparatus for improving subpixel visibility
US11792420B2 (en) 2019-11-04 2023-10-17 Qualcomm Incorporated Methods and apparatus for foveated compression

Also Published As

Publication number Publication date
WO2023043573A1 (en) 2023-03-23
US20230092394A1 (en) 2023-03-23
KR20240042090A (ko) 2024-04-01
US11734787B2 (en) 2023-08-22
EP4402639A1 (en) 2024-07-24
CN117980955A (zh) 2024-05-03

Similar Documents

Publication Publication Date Title
US11631212B2 (en) Methods and apparatus for efficient multi-view rasterization
US11080928B2 (en) Methods and apparatus for visibility stream management
US11748842B2 (en) Methods and apparatus for content shifting in foveated rendering
TW202316375A (zh) 與取樣空間相關聯的注視點分塊渲染
US11380047B2 (en) Methods and apparatus for order-independent occlusion computations
US11727631B2 (en) Dynamic variable rate shading
WO2024055221A1 (en) Fast msaa techniques for graphics processing
US20240265486A1 (en) Backface culling for guard band clipping primitives
US12033603B2 (en) Methods and apparatus for plane planning for overlay composition
US11373267B2 (en) Methods and apparatus for reducing the transfer of rendering information
US20230269388A1 (en) Adaptive block-based frame similarity encoding
TW202311940A (zh) 基於圖塊的結構中深度和陰影遍歷渲染的最佳化