TW202345087A - 可變比率曲面細分 - Google Patents
可變比率曲面細分 Download PDFInfo
- Publication number
- TW202345087A TW202345087A TW112110903A TW112110903A TW202345087A TW 202345087 A TW202345087 A TW 202345087A TW 112110903 A TW112110903 A TW 112110903A TW 112110903 A TW112110903 A TW 112110903A TW 202345087 A TW202345087 A TW 202345087A
- Authority
- TW
- Taiwan
- Prior art keywords
- tiles
- trf
- primitives
- tessellation
- primitive
- Prior art date
Links
- 238000012545 processing Methods 0.000 claims abstract description 132
- 238000000034 method Methods 0.000 claims abstract description 83
- 230000002829 reductive effect Effects 0.000 claims abstract description 48
- 238000009877 rendering Methods 0.000 claims description 93
- 230000008569 process Effects 0.000 claims description 17
- 238000004891 communication Methods 0.000 claims description 15
- 230000009467 reduction Effects 0.000 claims description 8
- 238000003672 processing method Methods 0.000 claims 1
- 238000003860 storage Methods 0.000 abstract description 22
- 238000004590 computer program Methods 0.000 abstract description 5
- 238000005516 engineering process Methods 0.000 description 37
- 230000006870 function Effects 0.000 description 26
- 238000010586 diagram Methods 0.000 description 23
- 230000003287 optical effect Effects 0.000 description 6
- 239000012634 fragment Substances 0.000 description 5
- 238000004422 calculation algorithm Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 238000012804 iterative process Methods 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 230000000007 visual effect Effects 0.000 description 3
- 230000003190 augmentative effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004040 coloring Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000010304 firing Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 238000002156 mixing Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 239000007795 chemical reaction product Substances 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 230000005574 cross-species transmission Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000003467 diminishing effect Effects 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000001125 extrusion Methods 0.000 description 1
- 210000003128 head Anatomy 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012821 model calculation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000037361 pathway Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000002243 precursor Substances 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- -1 vertex lighting Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/20—Finite element generation, e.g. wire-frame surface description, tesselation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Graphics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Image Generation (AREA)
Abstract
本案內容提供了用於可變比率曲面細分的系統、設備、裝置和方法,包括編碼在儲存媒體上的電腦程式。圖形處理器可以接收用於繪製調用中的複數個圖塊的幾何形狀處理的資料。圖形處理器可以基於複數個圖塊之每一者圖塊的特性來減小複數個圖塊之每一者圖塊的曲面細分因數。減小的曲面細分因數可以對應於TRF。特性可以對應於著色率或可見圖元數量。圖形處理器可以針對複數個圖塊之每一者圖塊應用TRF。圖形處理器可以基於針對複數個圖塊之每一者圖塊應用的TRF來渲染複數個圖塊之每一者圖塊。
Description
本專利申請案主張於2022年4月8日提出申請的並且名稱為「VARIABLE RATE TESSELLATION」的序號為17/658,634的美國專利申請案的權益,該美國專利申請案的全部內容經由引用的方式被明確地併入本文中。
概括而言,本案內容係關於處理系統,並且更具體地,本案內容係關於用於圖形處理的一或多個技術。
計算設備通常執行圖形及/或顯示處理(例如,利用圖形處理單元(GPU)、中央處理單元(CPU)、顯示處理器等)以渲染和顯示視覺內容。此種計算設備可以包括例如電腦工作站、諸如智慧型電話的行動電話、嵌入式系統、個人電腦、平板電腦和視訊遊戲控制台。GPU被配置為執行圖形處理流水線(graphic processing pipeline),圖形處理流水線包括一起操作以執行圖形處理命令以及輸出訊框的一或多個處理階段。中央處理單元(CPU)可以經由向GPU發佈一或多個圖形處理命令來控制GPU的操作。現代的CPU典型地能夠併發地執行多個應用程式,其之每一者應用可能需要在執行期間利用GPU。顯示處理器可以被配置為將從CPU接收的數位資訊轉換為類比值,並且可以向顯示面板發佈用於顯示視覺內容的命令。提供用於在顯示器上進行視覺呈現的內容的設備可以利用CPU、GPU及/或顯示處理器。
當前技術可能無法解決在其中細節層次(LOD)可能減少的區域或圖元(premitive)中的過度曲面細分(tessellation)問題。存在對於其中可以考慮LOD的改良的曲面細分技術的需求。
下文提供了一或多個態樣的簡要概述,以便提供對此種態樣的基本理解。該概述不是對全部預期態樣的廣泛綜述,並且既不意欲辨識全部態樣的關鍵或重要元素,亦不意欲圖示任何或全部態樣的範疇。其唯一目的是以簡化形式呈現一或多個態樣的一些概念,作為稍後呈現的更加詳細的描述的前序。
在本案內容的一態樣中,提供了一種方法、電腦可讀取媒體和裝置。該裝置可以接收用於繪製調用(draw call)中的複數個圖塊的幾何形狀處理的資料。該複數個圖塊之每一者圖塊可以包括複數個圖元。該複數個圖塊之每一者圖塊中的該複數個圖元之每一者圖元可以包括一或多個子圖元。該裝置可以基於該複數個圖塊之每一者圖塊的特性來減小該複數個圖塊之每一者圖塊的曲面細分因數。減小的曲面細分因數可以對應於曲面細分減小因數(TRF)。該特性可以對應於著色率或可見圖元數量。該裝置可以針對該複數個圖塊之每一者圖塊應用該TRF。該裝置可以基於針對該複數個圖塊之每一者圖塊應用的TRF來渲染該複數個圖塊之每一者圖塊。
為了實現前述目的和相關目的,一或多個態樣包括下文中充分描述並且在請求項中具體指出的特徵。以下描述和附圖詳細地闡述了一或多個態樣的某些說明性特徵。然而,該等特徵指示在其中可以採用各個態樣的原理的各種方式中的僅幾種方式,並且該描述意欲包括全部此種態樣以及其均等物。
下文參考附圖更加充分地描述系統、裝置、電腦程式產品和方法的各個態樣。然而,本案內容可以以許多不同的形式來體現,並且不應當被解釋為限於貫穿本案內容所呈現的任何特定的結構或功能。確切而言,提供該等態樣以使得本案內容將是全面和完整的,以及將向熟習此項技術者充分地傳達本案內容的範疇。基於本文中的教示,熟習此項技術者應當理解,本案內容的範疇意欲涵蓋本文中所揭示的系統、裝置、電腦程式產品和方法的任何態樣,無論該態樣是獨立於本案內容的其他態樣實現的還是與其他態樣結合地實現的。例如,使用本文闡述的任何數量的態樣,可以實現裝置或者可以實踐方法。此外,本案內容的範疇意欲涵蓋使用除了本文闡述的揭示內容的各個態樣以外或不同於本文闡述的揭示內容的各個態樣的其他的結構、功能或者結構和功能來實踐的此種裝置或方法。本文揭示的任何態樣可以經由請求項的一或多個元素來體現。
儘管本文描述了各個態樣,但是該等態樣的許多變型和置換落在本案內容的範疇內。儘管提到本案內容的各態樣的一些潛在益處和優勢,但是本案內容的範疇不意欲限於特定的益處、用途或目標。確切而言,本案內容的各態樣意欲廣泛地適用於不同的無線技術、系統配置、處理系統、網路和傳輸協定,其中的一些是經由舉例的方式在附圖和下文的描述中進行說明的。詳細描述和附圖僅是對本案內容的說明而不是限制,本案內容的範疇是經由所附的請求項以及其均等物來限定的。
參考各種裝置和方法提供了若干態樣。經由各種方塊、元件、電路、過程、演算法等(被統稱為「元素」)在下文的詳細描述中描述並且在附圖中圖示該等裝置和方法。該等元素可以使用電子硬體、電腦軟體或其任何組合來實現。此種元素是被實現為硬體還是軟體,取決於特定的應用和對整體系統所施加的設計約束。
例如,元素,或元素的任何部分,或元素的任何組合可以被實現為包括一或多個處理器(其亦可以被稱為處理單元)的「處理系統」。處理器的實例包括:微處理器、微控制器、圖形處理單元(GPU)、通用GPU(GPGPU)、中央處理單元(CPU)、應用處理器、數位信號處理器(DSP)、精簡指令集計算(RISC)處理器、晶片上系統(SoC)、基頻處理器、特殊應用積體電路(ASIC)、現場可程式設計閘陣列(FPGA)、可程式設計邏輯設備(PLD)、狀態機、閘控邏輯、個別硬體電路,以及被配置為執行貫穿本案內容描述的各種功能的其他合適的硬體。處理系統中的一或多個處理器可以執行軟體。無論被稱為軟體、韌體、中間軟體、微代碼、硬體描述語言還是其他,軟體可以被廣泛地解釋為意指指令、指令集、代碼、程式碼片段、程式碼、程式、副程式、軟體元件、應用程式、軟體應用程式、套裝軟體、常式、子常式、物件、可執行檔案、執行的執行緒、程序、函數等。
術語應用程式可以代表軟體。如本文所描述的,一或多個技術可以涉及被配置為執行一或多個功能的應用程式(例如,軟體)。在此種實例中,應用程式可以被儲存在記憶體中(例如,處理器的晶片上記憶體、系統記憶體或任何其他記憶體)。本文描述的硬體(諸如處理器)可以被配置為執行應用程式。例如,應用程式可以被描述為包括代碼,代碼在由硬體執行時使得硬體執行本文描述的一或多個技術。例如,硬體可以從記憶體存取代碼並且執行從記憶體存取的代碼以執行本文描述的一或多個技術。在一些實例中,在本案內容中辨識元件。在此種實例中,元件可以是硬體、軟體或其組合。元件可以是分開的元件或單個元件的子元件。
在本文描述的一或多個實例中,所描述的功能可以在硬體、軟體或其任何組合中實現。若在軟體中實現,則功能可以作為一或多個指令或代碼被儲存或者編碼在電腦可讀取媒體上。電腦可讀取媒體包括電腦儲存媒體。儲存媒體可以是能夠由電腦存取的任何可用媒體。經由舉例而非限制的方式,此種電腦可讀取媒體可以包括隨機存取記憶體(RAM)、唯讀記憶體(ROM)、電子可抹除可程式設計ROM(EEPROM)、光碟儲存、磁碟儲存、其他磁儲存設備、上述類型的電腦可讀取媒體的組合,或者可以用於以能夠由電腦存取的指令或資料結構的形式儲存電腦可執行代碼的任何其他媒體。
如本文所使用的,術語「內容」的例子可以代表「圖形內容」、「圖像」等,而不管術語被用作為形容詞、名詞還是其他詞性。在一些實例中,如本文所使用的,術語「圖形內容」可以代表由圖形處理流水線的一或多個過程產生的內容。在進一步的實例中,如本文所使用的,術語「圖形內容」可以代表由被配置為執行圖形處理的處理單元產生的內容。在進一步的實例中,如本文所使用的,術語「圖形內容」可以代表由圖形處理單元產生的內容。
在電腦圖形學中,可能在經渲染的圖像的細節層次(LOD)與渲染GPU的效能(其可以以訊框每秒(FPS)為單位來度量)之間存在折衷。可以在圖像的某些部分中減少LOD,而不會對圖像的感知品質具有太多影響。經由辨識此種區域(例如,圖塊(patch))或繪製(draw)並且減少該等區域或繪製中的細節,可以提高渲染GPU的效能。在一或多個態樣中,可變比率曲面細分(VRT)技術可以使用來自可變比率著色(variable rate shading)(VRS)特徵的著色率及/或每子圖元值的平均圖元計數來辨識其中可以使用低LOD的區域或繪製。VRT技術隨後可以降低此種區域或繪製的曲面細分率。
圖1是圖示被配置為實現本案內容的一或多個技術的示例性內容產生系統100的方塊圖。內容產生系統100包括設備104。設備104可以包括用於執行本文描述的各種功能的一或多個元件或電路。在一些實例中,設備104的一或多個元件可以是SOC的元件。設備104可以包括被配置為執行本案內容的一或多個技術的一或多個元件。在所示的實例中,設備104可以包括處理單元120、內容編碼器/解碼器122和系統記憶體124。在一些態樣中,設備104可以包括多個可選元件(例如,通訊介面126、收發機132、接收器128、傳輸器130、顯示處理器127和一或多個顯示器131)。顯示器131可以代表一或多個顯示器131。例如,顯示器131可以包括單個顯示器或多個顯示器,其可以包括第一顯示器和第二顯示器。第一顯示器可以是左眼顯示器,以及第二顯示器可以是右眼顯示器。在一些實例中,第一顯示器和第二顯示器可以接收用於在其上呈現的不同的訊框。在其他實例中,第一顯示器和第二顯示器可以接收用於在其上呈現的相同的訊框。在進一步的實例中,圖形處理的結果可以不顯示在設備上,例如第一顯示器和第二顯示器可以不接收用於在其上呈現的任何訊框。替代地,訊框或圖形處理結果可以被傳輸給另一設備。在一些態樣中,此舉可以被稱為分離渲染。
處理單元120可以包括內部記憶體121。處理單元120可以被配置為使用圖形處理流水線107來執行圖形處理。內容編碼器/解碼器122可以包括內部記憶體123。在一些實例中,設備104可以包括處理器,其可以被配置為在由處理單元120產生的一或多個訊框被一或多個顯示器131顯示之前對該等訊框執行一或多個顯示處理技術。儘管示例性內容產生系統100中的處理器被配置為顯示處理器127,但是應當理解,顯示處理器127是處理器的一個實例,並且可以使用其他類型的處理器、控制器等來代替顯示處理器127。顯示處理器127可以被配置為執行顯示處理。例如,顯示處理器127可以被配置為對由處理單元120產生的一或多個訊框執行一或多個顯示處理技術。一或多個顯示器131可以被配置為顯示或以其他方式呈現由顯示處理器127處理的訊框。在一些實例中,一或多個顯示器131可以包括以下各項中的一項或多項:液晶顯示器(LCD)、電漿顯示器、有機發光二極體(OLED)顯示器、投影顯示設備、增強現實顯示設備、虛擬實境顯示設備、頭戴式顯示器,或任何其他類型的顯示設備。
在處理單元120和內容編碼器/解碼器122外部的記憶體(諸如系統記憶體124)對於處理單元120和內容編碼器/解碼器122可以是可存取的。例如,處理單元120和內容編碼器/解碼器122可以被配置為從外部記憶體(諸如系統記憶體124)進行讀取及/或向外部記憶體進行寫入。處理單元120可以經由匯流排通訊地耦合到系統記憶體124。在一些實例中,處理單元120和內容編碼器/解碼器122可以經由匯流排或經由不同的連接通訊地耦合到內部記憶體121。
內容編碼器/解碼器122可以被配置為從諸如系統記憶體124及/或通訊介面126的任何源接收圖形內容。系統記憶體124可以被配置為儲存所接收的經編碼或經解碼的圖形內容。內容編碼器/解碼器122可以被配置為例如從系統記憶體124及/或通訊介面126接收具有經編碼的圖元資料的形式的經編碼或經解碼的圖形內容。內容編碼器/解碼器122可以被配置為對任何圖形內容進行編碼或解碼。
內部記憶體121或系統記憶體124可以包括一或多個揮發性或非揮發性記憶體或儲存設備。在一些實例中,內部記憶體121或系統記憶體124可以包括RAM、靜態隨機存取記憶體(SRAM)、動態隨機存取記憶體(DRAM)、可抹除可程式設計ROM(EPROM)、EEPROM、快閃記憶體、磁性資料媒體或光學儲存媒體,或任何其他類型的記憶體。根據一些實例,內部記憶體121或系統記憶體124可以是非暫時性儲存媒體。術語「非暫時性」可以指示儲存媒體不是在載波或傳播的信號中體現的。然而,術語「非暫時性」不應當被解釋為意指內部記憶體121或系統記憶體124是不可移動的或者其內容是靜態的。作為一個實例,系統記憶體124可以從設備104移除並且移動到另一設備。作為另一實例,系統記憶體124可以是不可從設備104移除的。
處理單元120可以是CPU、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,在某些態樣中,顯示處理器127可以包括VRT單元198,其被配置為接收用於繪製調用中的複數個圖塊的幾何形狀處理的資料。複數個圖塊之每一者圖塊可以包括複數個圖元。複數個圖塊之每一者圖塊中的複數個圖元之每一者圖元可以包括一或多個子圖元。VRT單元198可以被配置為基於複數個圖塊之每一者圖塊的特性來減小複數個圖塊之每一者圖塊的曲面細分因數。減小的曲面細分因數可以對應於TRF。該特性可以對應於著色率或可見圖元數量。VRT單元198可以被配置為針對複數個圖塊之每一者圖塊應用TRF。VRT單元198可以被配置為基於針對複數個圖塊之每一者圖塊應用的TRF來渲染複數個圖塊之每一者圖塊。儘管以下描述可能集中在圖形處理,但是本文描述的概念可以適用於其他類似的處理技術。
諸如設備104的設備可以代表被配置為執行本文描述的一或多個技術的任何設備、裝置或系統。例如,設備可以是伺服器、基地站、使用者設備、客戶端設備、站、存取點、電腦(諸如個人電腦、桌上型電腦、膝上型電腦、平板電腦、電腦工作站,或大型電腦)、最終產品、裝置、電話、智慧型電話、伺服器、視訊遊戲平臺或控制台、手持設備(諸如可攜式視訊遊戲設備或個人數位助理(PDA))、可穿戴計算設備(諸如智慧手錶、增強現實設備或虛擬實境設備)、非可穿戴設備、顯示器或顯示設備、電視機、電視機上盒、中間網路設備、數位媒體播放機、視訊串流設備、內容串流設備、車載電腦、任何行動設備、被配置為產生圖形內容的任何設備,或者被配置為執行本文描述的一或多個技術的任何設備。本文中的過程可以被描述為由特定元件(例如,GPU)來執行,但是在其他實施例中,可以是使用與所揭示的實施例一致的其他元件(例如,CPU)來執行的。
GPU可以在GPU流水線中處理多種類型的資料或資料封包。例如,在一些態樣中,GPU可以處理兩種類型的資料或資料封包,例如,上下文暫存器封包和繪製調用資料。上下文暫存器封包可以是可以管理將如何處理圖形上下文的全域狀態資訊集合,例如,關於全域暫存器、著色程式或常數資料的資訊。例如,上下文暫存器封包可以包括關於色彩格式的資訊。在上下文暫存器封包的一些態樣中,可以存在指示何者工作負載屬於上下文暫存器的位元。此外,可以存在同時及/或並行地執行的多個函數或程式設計。例如,函數或程式設計可以描述特定操作,例如,色彩模式或色彩格式。因此,上下文暫存器可以定義GPU的多個狀態。
上下文狀態可以用於決定單個處理單元(例如,頂點提取器(vertex fetcher)(VFD)、頂點著色器(vertex shader)(VS)、著色器處理器或幾何形狀處理器)如何運行,及/或處理單元以什麼模式運行。為此,GPU可以使用上下文暫存器和程式設計資料。在一些態樣中,GPU可以基於模式或狀態的上下文暫存器定義來產生流水線中的工作負載,例如,頂點或圖元工作負載。某些處理單元(例如,VFD)可以使用該等狀態來決定某些功能,例如,如何組裝頂點。由於該等模式或狀態可能改變,因此GPU可能需要改變對應的上下文。此外,與模式或狀態相對應的工作負載可以遵循改變的模式或狀態。
GPU可以以多種不同的方式渲染圖像。在一些例子中,GPU可以使用渲染及/或片區式渲染來渲染圖像。在片區式渲染GPU中,可以將圖像劃分或分離為不同的部分或片區。在劃分圖像之後,可以分別地渲染每個部分或片區。片區式渲染GPU可以將電腦圖形圖像劃分為網格格式,使得網格的每個部分(亦即,片區)可以分別地渲染。在一些態樣中,在裝倉(binning)通路(pass)中,可以將圖像劃分為不同的倉(bin)或片區。在一些態樣中,在裝倉通路期間,可以構造可見性串流,其中可以辨識可見圖元或繪製調用。與片區式渲染相比,直接渲染不將訊框劃分為較小的倉或片區。而是,在直接渲染中,整個訊框是在單個時間處渲染的。此外,一些類型的GPU可以允許片區式渲染和直接渲染(例如,靈活渲染)兩者。
在一些態樣中,GPU可以將繪製或渲染過程應用於不同的倉或片區。例如,GPU可以針對一個倉進行渲染,並且針對倉中的基元或圖元執行全部的繪製。在針對倉進行渲染的過程期間,可以在GPU內部記憶體(GMEM)中定位渲染目標。在一些例子中,在針對一個倉進行渲染之後,可以將渲染目標的內容移到系統記憶體,並且可以釋放GMEM以渲染下一個倉。此外,GPU可以針對另一倉進行渲染,並且針對該倉中的基元或圖元執行繪製。因此,在一些態樣中,可能存在覆蓋一個表面中的全部繪製的少量倉(例如,四個倉)。進一步地,GPU可以在一個倉中循環通過全部繪製,但是針對可見的繪製調用(亦即包括可見幾何形狀的繪製調用)執行繪製。在一些態樣中,例如在裝倉通路中,可以產生可見性串流,以決定圖像或場景之每一者圖元的可見性資訊。例如,該可見性串流可以辨識某個圖元是否可見。在一些態樣中,該資訊可以用於例如在渲染通路中移除不可見的圖元。此外,圖元中的被辨識為可見的至少一些圖元可以在渲染通路中進行渲染。
在片區式渲染的一些態樣中,可以存在多個處理階段或通路。例如,渲染可以在兩個通路中執行,例如,可見性或倉-可見性通路以及渲染或倉-渲染通路。在可見性通路期間,GPU可以輸入渲染工作負載,記錄圖元或三角形的位置,並且隨後決定何者圖元或三角形落入何者倉或區域中。在可見性通路的一些態樣中,GPU亦可以辨識或標記可見性串流之每一者圖元或三角形的可見性。在渲染通路期間,GPU可以輸入可見性串流,並且一次處理一個倉或區域。在一些態樣中,可以分析可見性串流以決定何者圖元或圖元的頂點可見或不可見。因此,可以處理可見的圖元或圖元的頂點。經由如此做,GPU可以減少處理或渲染不可見的圖元或三角形的不必要的工作負載。
在一些態樣中,在可見性通路期間,可以處理某些類型的圖元幾何形狀,例如僅位置幾何形狀。此外,根據圖元或三角形的位置或定位,可以將圖元分類到不同的倉或區域中。在一些例子中,將圖元或三角形分類到不同的倉中可以是經由決定用於該等圖元或三角形的可見性資訊來執行的。例如,GPU可以決定每個倉或區域中的圖元之每一者圖元的可見性資訊或將該可見性資訊寫入例如系統記憶體中。該可見性資訊可以用於決定或產生可見性串流。在渲染通路中,可以分別地渲染每個倉中的圖元。在該等例子中,可見性串流可以是從用於丟棄對於該倉不可見的圖元的記憶體中提取的。
GPU或GPU架構的一些態樣可以提供用於渲染的多種不同的選項,例如,軟體渲染和硬體渲染。在軟體渲染中,驅動器或CPU可以經由一次處理每個視圖來複製整個訊框幾何形狀。此外,一些不同的狀態可以根據視圖而改變。因此,在軟體渲染中,軟體可以經由改變可以用於針對圖像之每一者視點進行渲染的一些狀態來複製整個工作負載。在某些態樣中,由於GPU可能針對圖像之每一者視點多次提交相同的工作負載,因此可能存在增加的管理負擔量。在硬體渲染中,硬體或GPU可以負責複製或處理針對圖像之每一者視點的幾何形狀。因此,硬體可以管理針對圖像之每一者視點的圖元或三角形的複製或處理。
圖2圖示根據本案內容的一或多個技術的圖像或表面200,其包括被劃分為多個倉的多個圖元。如圖2所示,圖像或表面200包括區域202,區域202包括圖元221、222、223和224。圖元221、222、223和224被劃分或放置到不同的倉中,例如倉210、211、212、213、214和215。圖2圖示針對圖元221-224使用多個視點的片區式渲染的實例。例如,圖元221-224位於第一視點250和第二視點251中。因此,處理或渲染包括區域202的圖像或表面200的GPU可以利用多個視點或多視圖渲染。
如本文所指示的,GPU或圖形處理器單元可以使用片區式渲染架構來降低功耗或節省記憶體頻寬。如上文進一步所陳述的,此種渲染方法可以將場景劃分為多個倉,以及包括辨識在每個倉中可見的三角形的可見性通路。因此,在片區式渲染中,完整螢幕可以被劃分為多個倉或片區。隨後,可以多次渲染場景,例如,針對每個倉渲染一次或多次。
在圖形渲染的各態樣中,一些圖形應用程式可能一次或多次地針對單個目標(亦即,渲染目標)進行渲染。例如,在圖形渲染中,系統記憶體上的訊框緩衝器可以多次被更新。訊框緩衝器可以是記憶體或隨機存取記憶體(RAM)的一部分(例如,包含位元映像或儲存),以幫助儲存用於GPU的顯示資料。訊框緩衝器亦可以是包含資料的完整訊框的記憶體緩衝器。此外,訊框緩衝器可以是邏輯緩衝器。在一些態樣中,更新訊框緩衝器可以是在倉或片區渲染中執行的,其中如上所論述的,將表面劃分為多個倉或片區,並且隨後可以分別地渲染每個倉或片區。進一步地,在片區式渲染中,可以將訊框緩衝器分割為多個倉或片區。
如本文中所指示的,在一些態樣中(諸如在倉或片區式渲染架構中),訊框緩衝器可能具有重複地儲存或寫入到其的資料,例如,當從不同類型的記憶體進行渲染時。此舉可以被稱為解析和取消解析訊框緩衝器或系統記憶體。例如,當向一個訊框緩衝器儲存或寫入並且隨後切換到另一訊框緩衝器時,可以將訊框緩衝器上的資料或資訊從GPU處的GMEM解析到系統記憶體,亦即雙倍資料速率(DDR)RAM或動態RAM(DRAM)中的記憶體。
在一些態樣中,系統記憶體亦可以是晶片上系統(SoC)記憶體或例如在設備或智慧型電話上的用於儲存資料或資訊的另一基於晶片的記憶體。系統記憶體亦可以是由CPU及/或GPU共享的實體資料儲存。在一些態樣中,系統記憶體可以是例如在設備或智慧型電話上的DRAM晶片。因此,SoC記憶體可以是儲存資料的基於晶片的方式。
在一些態樣中,GMEM可以是GPU處的晶片上記憶體,其可以經由靜態RAM(SRAM)來實現。此外,GMEM可以被儲存在設備(例如,智慧型電話)上。如本文中所指示的,資料或資訊可以例如在設備處在系統記憶體或DRAM與GMEM之間傳輸。在一些態樣中,系統記憶體或DRAM可以位於CPU或GPU處。此外,資料可以被儲存在DDR或DRAM處。在一些態樣中(諸如在倉或片區式渲染中),記憶體的一小部分可以被儲存在GPU處(例如,在GMEM處)。在一些例子中,與在訊框緩衝器或系統記憶體處儲存資料相比,在GMEM處儲存資料可能使用較大的處理工作負載及/或功耗。
圖3是圖示圖形處理流水線300的方塊圖。流水線300包括輸入組裝器階段382、頂點著色器階段384、幾何形狀著色器階段386、光柵化器階段(rasterizer stage)388、圖元著色器階段390和輸出合併器階段(output merger stage)392。在一些實例中,應用程式介面(API)可以被配置為使用在圖3中所示的該等階段之每一者階段。圖形處理流水線400在下文中被描述為由處理單元120來執行,但是可以由各種其他圖形處理器來執行。
圖形處理流水線300通常包括可程式設計階段(例如,利用圓角圖示)和固定功能階段(例如,利用直角圖示)。例如,與圖形渲染流水線300的某些階段相關聯的圖形渲染操作通常由可程式設計著色器處理器來執行,而與圖形渲染流水線300的其他階段相關聯的其他圖形渲染操作通常由與處理單元120相關聯的不可程式設計固定功能硬體單元來執行。由著色單元執行的圖形渲染階段通常可以被稱為「可程式設計」階段,而由固定功能單元執行的階段通常可以被稱為固定功能階段。本文中關於不同階段是可程式設計階段或固定功能階段的指示可以是示例性的,並且亦可以使用可程式設計階段或固定功能階段之間的其他組合。
輸入組裝器階段382在圖3的實例中被示為固定功能階段,並且通常負責向圖形處理流水線300提供圖形資料(例如,三角形、線和點)。例如,輸入組裝器階段382可以收集用於高階表面、圖元等的頂點資料,並且將頂點資料和屬性輸出到頂點著色器階段384。因此,輸入組裝器階段382可以使用固定功能操作來從晶片外記憶體讀取頂點。輸入組裝器階段382隨後可以從該等頂點建立流水線工作項,同時亦產生頂點辨識符(「VertexID」)、例子辨識符(「InstanceID」,其可用於頂點著色器)和圖元辨識符(「PrimitiveID」,其可用於幾何形狀著色器和圖元著色器)。輸入組裝器階段382可以在讀取頂點之後自動地產生VertexID、InstanceID和PrimitiveID。
頂點著色器階段384可以處理所接收的頂點資料和屬性。例如,頂點著色器階段384可以執行每頂點處理(諸如變換、蒙皮(skinning)、頂點位移(vertex displacement))並且計算每頂點材料屬性。在一些實例中,頂點著色器階段384可以產生紋理座標、頂點色彩、頂點照明、霧因數等。頂點著色器階段384通常採用單個輸入頂點並且輸出單個經處理的輸出頂點。
幾何形狀著色器階段386可以接收由頂點資料(例如,三角形的三個頂點、線的兩個頂點或點的單個頂點)定義的圖元,並且進一步處理該圖元。例如,幾何形狀著色器階段386可以執行每圖元處理(諸如輪廓邊緣偵測(silhouette-edge)和陰影體積拉伸(shadow volume extrusion))以及其他可能的處理操作。因此,幾何形狀著色器階段386可以接收一個圖元作為輸入(其可以包括一或多個頂點),並且輸出零個、一或多個圖元(其同樣可以包括一或多個頂點)。輸出圖元可以包含比在沒有幾何形狀著色器階段386的情況下可能包含的資料更多的資料。輸出資料的總量可以等於頂點大小乘以頂點計數,並且可以是在每引動受限的(limited per invocation)。從幾何形狀著色器階段386輸出的串流可以允許到達該階段的圖元被儲存到晶片外記憶體。串流輸出通常與幾何形狀著色器階段386相聯絡,並且兩者可以一起程式設計(例如,使用API)。
光柵化器階段388可以是負責裁剪圖元並且為圖元著色器階段390準備圖元的固定功能階段。例如,光柵化器階段388可以執行裁剪(包括自訂裁剪邊界)、透視劃分、視埠/剪刀選擇和實現、渲染目標選擇和圖元設置。以此種方式,光柵化器階段388可以產生用於由圖元著色器階段390進行著色的多個片段。
圖元著色器階段390可以從光柵化器階段388接收片段,並且產生諸如色彩的每圖元資料。圖元著色器階段390亦可以執行每圖元處理,諸如紋理混合和照明模型計算。因此,圖元著色器階段390可以接收一個圖元作為輸入,並且可以在相同的相對位置處輸出一個圖元(或者用於圖元的零值)。
輸出合併器階段392可以負責對各種類型的輸出資料(諸如圖元著色器值、深度資訊和蒙板(stencil)資訊)進行組合以產生最終結果。例如,輸出合併器階段392可以針對渲染目標(圖元位置)執行固定功能混合、深度及/或蒙板操作。儘管上文關於頂點著色器階段384、幾何形狀著色器階段386和圖元著色器階段390進行了一般性描述,但是前述描述中的每種描述可以代表由GPU指定以執行相應的著色操作的一或多個著色單元。
某些GPU可能無法支援在圖3中所示的全部著色器階段。例如,由於硬體及/或軟體限制(例如,有限數量的著色單元和相關聯的元件),一些GPU可能無法指定著色單元來執行多於兩個的著色操作。在實例中,某些GPU可能不支援與幾何形狀著色器階段386相關聯的操作。而是,GPU可以包括對指定著色單元以執行頂點著色器階段384和圖元著色器階段390的支援。因此,由著色單元執行的操作可以遵循與頂點著色器階段384和圖元著色器階段390相關聯的輸入/輸出介面。
此外,在一些實例中,相對於不包括幾何形狀著色器階段386的圖形處理流水線,將幾何形狀著色器階段386引入流水線可以導致對儲存單元的額外讀取和寫入。例如,如前述,頂點著色器階段384可以將頂點寫出到晶片外記憶體。幾何形狀著色器階段386可以讀取該等頂點(由頂點著色器階段384輸出的頂點)並且寫入新的頂點,該等頂點隨後被圖元著色。
圖4是圖示包括曲面細分階段的示例性圖形處理流水線400的方塊圖。例如,流水線400包括輸入組裝器階段440、頂點著色器階段442、外殼著色器階段(hull shader stage)444、曲面細分器階段446、域著色器階段(domain shader stage)448、幾何形狀著色器階段450、光柵化器階段452、圖元著色器階段454和輸出合併器階段456。在一些實例中,API可以被配置為使用在圖4中所示的階段之每一者階段。圖形處理流水線400在下文中被描述為由處理單元120來執行,但是亦可以由各種其他圖形處理器來執行。
在圖4中所示的某些階段可以與關於圖3所示和描述的階段類似或相同地配置(例如,組裝器階段440、頂點著色器階段442、幾何形狀著色器階段450、光柵化器階段452、圖元著色器階段454和輸出合併器階段456)。此外,流水線400包括用於硬體曲面細分的額外階段。例如,除了上文關於圖3描述的階段之外,圖形處理流水線400亦包括外殼著色器階段444、曲面細分器階段446和域著色器階段448。亦即,包括外殼著色器階段444、曲面細分器階段446和域著色器階段448以適應由處理單元120進行的曲面細分,而不是由正在執行的軟體應用程式(例如,由CPU)來執行。
外殼著色器階段444可以從頂點著色器階段442接收圖元,並且可以負責執行至少兩個動作。首先,外殼著色器階段444可以負責決定曲面細分因數集合。外殼著色器階段444可以每圖元一次產生曲面細分因數。曲面細分器階段446可以使用曲面細分因數來決定對給定圖元進行曲面細分(例如,將圖元分離成較小的部分)的精細程度。外殼著色器階段444亦可以負責產生稍後將由域著色器階段448使用的控制點。亦即,例如,外殼著色器階段444可以負責產生將由域著色器階段448用於建立實際的經曲面細分的頂點的控制點,該等實際的經曲面細分的頂點最終在渲染時使用。
當曲面細分器階段446從外殼著色器階段444接收資料時,曲面細分器階段446可以使用若干種演算法中的一種演算法來決定用於當前圖元類型的適當取樣圖案。例如,通常,曲面細分器階段446可以將所請求的曲面細分量(如由外殼著色器階段444決定的)轉換為當前「域」內的一組座標點。亦即,取決於來自外殼著色器階段444的曲面細分因數以及曲面細分器階段446的特定配置,曲面細分器階段446可以決定需要對當前圖元中的何者點進行取樣,以便將輸入圖元曲面細分成較小的部分。曲面細分器階段446的輸出可以是域點集合,其可以包括重心座標(barycentric coordinate)。
除了由外殼著色器階段444產生的控制點之外,域著色器階段448亦可以採用域點,並且使用域點來建立新頂點。域著色器階段448可以使用針對當前圖元、紋理、程序演算法或任何其他演算法產生的控制點的完整列表,以將針對每個經曲面細分的點的重心「位置」轉換為傳遞到流水線中的下一階段的輸出幾何形狀。如前述,某些GPU可能無法支援在圖4中所示的全部著色器階段。例如,由於硬體及/或軟體限制(例如,有限數量的著色單元和相關聯的元件),一些GPU可能無法指定著色單元來執行多於兩個的的著色操作。在實例中,某些GPU可能不支援與幾何形狀著色器階段450、外殼著色器階段444和域著色器階段448相關聯的操作。而是,GPU可以包括對指定著色單元以執行頂點著色器階段442和圖元著色器階段454的支援。因此,由著色單元執行的操作可以遵循與頂點著色器階段442和圖元著色器階段454相關聯的輸入/輸出介面。
在電腦圖形學中,可能在經渲染的圖像的LOD與渲染GPU的效能(其可以以FPS為單位來度量)之間存在折衷。換言之,當LOD高時,FPS數量可能下降。相反,可以經由降低LOD來提高效能。可以在圖像的某些部分中減少LOD,而不會對圖像的感知品質具有太多影響。經由辨識此種區域(例如,圖塊)或繪製並且減少該等區域或繪製中的細節,可以提高渲染GPU的效能。
其中低LOD可以是可接受的區域或物件的實例可以包括遠離相機的物件、不在使用者的焦點(例如,使用者眼睛的焦點)中的區域、移動物件(此種物件通常可能是運動模糊的),或者處於陰影中或沒有被充分照明的物件。
經渲染的物件的圖元的數量和經光柵化的圖元的圖元著色率可以影響渲染操作的LOD。
可以在圖形流水線的頂點著色器階段中改變繪製或物件中的圖元數量。改變由開發者指定的圖元的數量可能不是可推薦的,因為如此做可能引起不期望的效果,諸如破壞物件或繪製的水密性(watertightness)(例如,水密網格集合可以代表由一個封閉表面組成的網格)。對於經曲面細分的圖元,可以修改內部的(或裡面的)經曲面細分的圖元的數量,而不會破壞繪製的水密性。有時,曲面細分可能產生大量的子圖元,其中許多子圖元最終可能對圖像的品質貢獻很小。可以降低此種圖元的內部曲面細分率,而在圖像品質態樣沒有太多降低。
圖5A圖示包括基於曲面細分而產生的子圖元的三角形圖元500A。加陰影的子圖元可以對應於內部經曲面細分的子圖元。未加陰影的子圖元可以對應於外部經曲面細分的子圖元。圖5B圖示三角形圖元500B,其包括基於以較高曲面細分因數進行曲面細分而產生的子圖元。三角形圖元500B可以與三角形圖元500A相同。由於較高的曲面細分因數,三角形圖元500B可以包括比三角形圖元500A多得多的子圖元。類似於圖5A,在圖5B中,加陰影的子圖元可以對應於內部經曲面細分的子圖元,並且未加陰影的子圖元可以對應於外部經曲面細分的子圖元。
曲面細分率可以經由曲面細分因數(TessFactor)來指定。TessFactor可以指示圖元的邊緣可以被細分多少次。可以存在用於外部邊緣和內部邊緣的分別的TessFactor(亦即外部TessFactor和內部TessFactor)。
在一或多個態樣中,VRT技術可以使用來自VRS特徵的著色率及/或每子圖元值的平均圖元計數來辨識其中可以使用低LOD的區域或繪製。VRT技術隨後可以降低此種區域或繪製的曲面細分率。
VRS可以是API特徵,並且可以允許開發者指定用於訊框的不同區域或繪製的不同著色率。著色率可以代表調用圖元著色器(或片段著色器)的解析度。在沒有VRS的情況下,針對每圖元/片段著色器操作可以對一個圖元進行著色。利用VRS,可以在一個操作中對一組附近圖元一起著色。該組圖元可以是1x2(例如,橫向朝向)、2x1(例如,縱向朝向)或4x4圖元的區塊等。在其中LOD規範低的區域中,開發者可以降低著色率。換言之,可以在一個著色器操作中對更多圖元進行著色。在一或多個態樣中,基於VRT技術,若著色率低,則可以降低曲面細分率。
在一或多個態樣中,除了基於VRS的著色率之外或代替基於VRS的著色率,VRT技術亦可以使用圖元計數來辨識曲面細分率。具體地,可以辨識具有每子圖元的低圖元計數的圖元,並且可以降低此種圖元的曲面細分率。
在一或多個態樣中,可以在利用三角形作為輸出圖元類型的四邊形(quad)和三角形(tri)域中執行曲面細分操作。
在一些實例中,內部TessFactor(而不是外部TessFactor)可以是不同的。在此種實例中,外部TessFactor可以不改變,因為如此做可能破壞繪製的水密性。
曲面細分減小因數(TRF)可以代表內部TessFactor可以與其相乘以便減小內部TessFactor的被乘數。TRF可以落在某個範圍內,例如,(0-1]範圍(亦即,排除0並且包括1)。當TRF為1時,可以保留原始TessFactor。
當啟用幾何形狀著色器時,可以不使用VRT技術。如前述,幾何形狀著色器可以採用一個圖元作為輸入,並且可以輸出多個圖元。由於可以基於VRT來減少幾何形狀著色器的輸入圖元的數量,因此若將VRT與幾何形狀著色器一起使用,則輸出圖像可能顯著變化。幾何形狀著色器和曲面細分可能很少一起啟用。
每繪製和每圖元VRT技術可以在基於片區(裝倉)或直接渲染架構兩者中使用。基於螢幕空間圖像和基於圖元計數的VRT技術可以在基於片區的架構中使用。下文可以進一步詳細解釋每繪製、每圖元、基於螢幕空間圖像和基於圖元計數的方法。
在一或多個態樣中,作為VRT的一部分,可以基於可以從VRS特徵接收的著色率(例如,圖元圖案)來辨識TRF。根據一個態樣,下文的表1可以提供對應於不同著色率的TRF。
表1
圖元圖案(VRS) | 描述 | TRF |
1x1 | 無二次取樣 | 1 |
1x2 | 2x二次取樣(橫向) | |
2x1 | 2x二次取樣(縱向) | |
2x2 | 4x二次取樣 | |
1x4 | 4x二次取樣(橫向) | |
4x1 | 4x二次取樣(縱向) | |
2x4 | 8x二次取樣(橫向) | |
4x2 | 8x二次取樣(縱向) | |
4x4 | 16x二次取樣 |
此處,可以選擇TRF,使得保持圖元數量與子圖元數量的比率((圖元數量)/(子圖元數量))(或者將變化保持為最小)。在不同的配置中,圖元數量可以代表有效圖元數量或可見圖元數量,如將在下文進一步詳細解釋的。例如,考慮著色率為2x2個圖元的情況。因此,有效圖元計數可以減少4倍,因為4個圖元可以被分類在一起以形成1個粗略(有效)圖元。為了保持(有效)圖元數量與子圖元數量的相同比率,子圖元數量亦可以減少4倍。由於子圖元數量可以大致變化為內部TessFactor的平方,因此在此種情況下,TRF可以被選擇為1/2。
在VRS特徵中,可以以不同的細微性來指定著色率。該等可以包括每繪製細微性、每圖元(例如,每激發頂點(per provoking vertex))細微性、每螢幕空間圖像細微性或以上三種細微性的任何組合。
下文可以詳細地描述與著色率細微性中的每種著色率細微性相關的VRT技術。具體地,VRT技術可以使用VRS輸入來辨識內部TessFactor。
圖6A是圖示其中使用每繪製或每圖元VRT的圖形處理流水線600A的方塊圖。各個階段可以對應於在圖3和圖4中所示的相同階段。在裝倉(可見性)通路中,方塊602可以包括輸入組裝器階段和幾何形狀處理階段。方塊604可以包括外殼著色器階段,外殼著色器階段可以產生並且輸出未經修改的TessFactor。方塊606可以包括TessFactor調整器階段,TessFactor調整器階段可以基於包括繪製或圖元的著色率的VRS輸入來調整TessFactor,以輸出經調整的TessFactor。方塊608可以包括曲面細分器階段,曲面細分器階段可以基於經調整的TessFactor進行曲面細分。方塊610可以包括域著色器階段、低解析度Z(LRZ)階段和可見性串流壓縮器(VSC)階段。方塊610可以輸出可見性串流,可見性串流可以在渲染通路中進行處理。在渲染通路中,方塊612可以包括輸入組裝器階段和幾何形狀處理階段。方塊614可以包括外殼著色器階段,外殼著色器階段可以產生並且輸出未經修改的TessFactor。方塊616可以包括TessFactor調整器階段,TessFactor調整器階段可以基於包括繪製或圖元的著色率的VRS輸入來調整TessFactor,以輸出經調整的TessFactor。方塊618可以包括曲面細分器階段,曲面細分器階段可以基於經調整的TessFactor進行曲面細分。方塊620可以包括域著色器階段和圖元著色器階段。方塊620可以輸出經渲染的圖像。
在一個態樣中,使用VRS特徵,開發者或應用程式可以在命令緩衝器中指定每繪製的著色率。可以基於該著色率來辨識針對每個繪製指定的LOD。VRT技術可以接收該著色率(例如,在方塊606和616處),並且可以將對應TRF應用於該繪製調用中的全部圖元。在一些實例中,在沒有直接經由API指定每繪製的著色率的情況下,可以基於裝倉通路來在每繪製或每圖塊的基礎上獲得針對相同訊框的著色率資訊。在進一步的實例中,可以基於來自先前訊框的資料來獲得著色率資訊。
相同的TessFactor減小技術可以被應用於裝倉(可見性)通路和渲染通路兩者中。因此,每繪製VRT技術可以在裝倉通路和渲染通路兩者中節省硬體曲面細分器和域著色器中的循環。
在一個態樣中,VRS可以允許開發者指定每圖元級別的著色率(例如,每激發頂點(輸出圖元中的頂點中的一個頂點可以被指定為激發頂點,並且該指定可以由其他過程使用(例如,使用來自激發頂點的輸出而不是來自其他頂點的輸出)))。每圖元級別的著色率可以是與命令緩衝器中的激發頂點一起指定的。若沒有每圖元指定著色率,則可以假設著色率為1x1。
改變每圖元曲面細分率可以類似於改變每繪製曲面細分率,不同之處在於應用VRT技術的細微性。此處,VRT技術可以辨識TRF,並且可以基於圖元的著色率來修改每個圖元的內部TessFactor。
類似於每繪製VRT,每圖元VRT技術亦可以在裝倉(可見性)通路和渲染通路兩者中節省硬體曲面細分器和域著色器中的循環。
圖6B是圖示其中使用基於螢幕空間圖像或基於圖元計數的VRT的圖形處理流水線600B的方塊圖。各個階段可以對應於在圖3和圖4中所示的相同階段。在裝倉(可見性)通路中,方塊652可以包括輸入組裝器階段、幾何形狀處理階段、外殼著色器階段、曲面細分器階段、域著色器階段和LRZ階段。可以在方塊652處產生用於繪製或圖元之每一者繪製或圖元的TRF,並且可以將其儲存在TRF緩衝器662處。方塊654可以包括可見性串流壓縮器階段。在渲染通路中,方塊656可以包括輸入組裝器階段、幾何形狀處理階段和外殼著色器階段。可以基於可以從TRF緩衝器662中取得的對應TRF值來調整由外殼著色器階段提供的未經修改的TessFactor。方塊658可以包括曲面細分器階段和域著色器階段。曲面細分器階段可以基於經調整的TessFactor進行曲面細分。方塊660可以包括圖元著色器階段。方塊660可以輸出經渲染的圖像。
在一個態樣中,在VRS特徵中,使用螢幕空間圖像,開發者可以指定訊框的不同區域的著色率。可以針對如由VRS片區大小所指示的圖元片區(例如,8x8、16x16或32x32個圖元片區)的區塊來指定著色率。根據著色率,VRT技術可以向每個片區指派TRF。
圖7是圖示與訊框重疊的螢幕空間圖像的示意圖700。螢幕空間圖像的原點(例如,左上角點)可以與訊框的原點(例如,左上角點)對準。若訊框大於螢幕空間圖像,則訊框的溢位區域(spill over region)可以具有被設置為「1」的TRF值(亦即,沒有TessFactor減小)。因此,在圖7中,基於不同的LOD規範,訊框的位於螢幕空間圖像之內的區域可以與低曲面細分率(用於低LOD規範)、中等曲面細分率(用於中等LOD規範)或高曲面細分率(用於高LOD規範)相關聯。低、中等或高曲面細分率可以分別與低、中等或高TRF值相關聯。訊框的在螢幕空間圖像之外的溢位區域可以與預設的未經修改的曲面細分率相關聯(亦即,TRF值可以被設置為「1」)。
在基於螢幕空間圖像的VRT中,在方塊652中,從曲面細分器輸出的圖元的位置可以在裝倉(可見性)通路中的幾何形狀處理階段之後而不是之前可用。因此,VRT技術可以不應用於裝倉(可見性)通路中。
可以在幾何形狀處理階段之後到來的LRZ階段可以存取螢幕空間圖像和訊框上的圖元的位置兩者。在圖形流水線的該階段,可以計算TRF值,並且可以將TRF值指派給每個片區。在與圖元相關聯(例如,至少部分地被圖元覆蓋)的片區的TRF當中,可以選擇最高的TRF值作為圖元的TRF。
圖8是圖示與三角形圖元相交的螢幕空間圖像片區的示意圖800。三角形圖元可以跨越3個螢幕空間圖像片區而分佈。數值(「0.5」、「0.5」、「1」和「0.25」)可以是用於相應螢幕空間圖像片區的TRF值。最高的TRF值(其可以對應於最小的TessFactor減小)(對於左下片區,其是「1」)可以被選擇作為用於三角形圖元的TRF。
返回參考圖6B,所選擇的TRF值可以被儲存在TRF緩衝器662中。在渲染通路中,對於每個經曲面細分的圖元,可以從TRF緩衝器662中取得TRF,並且可以相應地修改TessFactor。隨後可以將經調整的TessFactor發送給硬體曲面細分器。
基於螢幕空間的VRT技術可以在渲染通路中(但不在裝倉通路中)節省硬體曲面細分器和域著色器中的循環。
在一個態樣中,VRT技術可以是基於圖元計數的。曲面細分器有時可能對圖元進行過度曲面細分。更多的曲面細分通常導致更高的LOD。然而,超過特定點的曲面細分可能在圖像品質上提供越來越小的回報。對於小圖元,可能更快地達到回報減少的點。距相機較遠的圖元可以與較高的深度值相關聯,但是與相對較小的邊界框相關聯。因此,對於此種圖元而言,可能不期望繁重的曲面細分。
可以對子圖元中的一些子圖元進行Z剔除或平面剔除(plane culled)(亦即,較遠的子圖元可以被較近的重疊子圖元隱藏,並且因此可以被去除)。被剔除的子圖元可能對圖像品質沒有貢獻。具有大量被剔除的子圖元的圖元可能被有效地過度曲面細分。
圖元數量與子圖元數量的比率可以是可以用於辨識過度曲面細分的良好指示符。該比率的低值可以指示平均而言每個子圖元容納很少的圖元。
在基於圖元計數的VRT中,開發者可以指定跟可見圖元數量與子圖元數量的比率相關聯的閾值。對於具有低於閾值的比率的圖元,可以減少子圖元數量,使得比率可以變得等於閾值。
LRZ階段可以包括用於每片區的圖元的計數器。跨越圖元的全部片區累積該值可以提供圖元的可見圖元總數。使用圖元計數和閾值,可以如下計算期望的新子圖元計數。
期望的新子圖元計數N_vrt=可見圖元數量/閾值
根據N_vrt,可以使用反覆運算方法來計算圖元的TRF(亦即,可以嘗試不同的TRF值,以便尋找產生最接近期望的新子圖元計數N_vrt的子圖元計數的TRF值)。此舉將在下文中進一步詳細解釋的。精確的TRF值對於VRT而言可能是不必要的。因此,在一些配置中,代替使用以上等式,亦可以使用不太精確但更簡單的方法。
每個圖元的TRF值可以在裝倉(可見性)通路的結束時被儲存在TRF緩衝器662中。該TRF可以用於修改渲染通路中的圖元的TessFactor。
基於圖元計數的VRT技術可以在渲染通路中節省硬體曲面細分器和域著色器中的循環。
為了解釋用於尋找產生最接近期望的新子圖元計數N_vrt的子圖元計數的TRF值的過程,可以如下定義一些等式、函數和變數。
TF[x]=TessFactor[x],對於邊緣x
P[x],用於邊緣x的奇數同位檢查=
表2
對於邊緣x,
(「
」表示上限函數),表示邊緣的變數:b-底部邊緣,l-左側邊緣,t-頂部邊緣,r-右側邊緣,i-內部邊緣(Tri域),u-水平內部邊緣(Quad域),以及v-垂直內部邊緣(Quad域)。
PARTITION | P[x] |
INTEGER | 若TF是奇數,則為1,否則為0 |
FRACTIONAL_ODD | 1 |
FRACTIONAL_EVEN | 0 |
圖9A是圖示包括基於曲面細分而產生的三角形子圖元的三角形圖元900A的示意圖。在圖9A中指示了左側邊緣(l)、右側邊緣(r)、底部邊緣(b)和內部邊緣(i)。三角形圖元中的三角形子圖元數量可以由下文的等式[1]提供。
子圖元數量=2T[b]+2T[l]+2T[r]-P[b]-P[l]-P[r]+4P[i]+6T[i](T[i]–1-P[i]) →等式[1]
圖9B是圖示包括基於曲面細分而產生的三角形子圖元的四邊形圖元900B的示意圖。在圖9B中指示了左側邊緣(l)、右側邊緣(r)、頂部邊緣(t)、底部邊緣(b)、水平內部邊緣(u)和垂直內部邊緣(v)。進一步地,可以定義參數c,其中若P[u]&P[v]等於1,則c可以是2,或者若P[u]&P[v]等於0,則c可以是0。四邊形圖元中的三角形子圖元數量可以由下文的等式[2]提供。
子圖元數量=2T[b]+2T[l]+2T[t]+2T[r]-P[b]-P[l]-P[t]-P[r]+2P[u]+2P[v]-4T[v](P[u]+1)-4T[u](P[v]+1)+8T[u]T[v]+c →等式[2]
為了求解用於三角形圖元900A的TRF值,可以使用等式[1]。全部外部TessFactor可以是已知的(例如,其可以與原始圖元的TessFactor相同)。因此,可以計算用於全部外部邊緣的T[x]和P[x]。
新的內部TesFactor(TF[i])可以是TF_original [i]*TRF。可以基於具有不同TRF值的反覆運算來尋找用於內部邊緣的T[i]和P[i]的值。
可以基於等式[1]來尋找子圖元計數。可以選擇提供最接近N_vrt的子圖元計數的TRF。
若N_vrt低於最小可能值或與最小可能值相同,則TRF可以被設置為1。用於N_vrt的最小可能值可以是當內部TessFactor被設置為1(亦即TF[i]=1)時的子圖元計數。
為了求解用於四邊形圖元900B的TRF值,可以使用等式[2]。全部外部TessFactor可以是已知的(例如,其可以與原始圖元的TessFactor相同)。因此,可以計算用於全部外部邊緣的T[x]和P[x]。
新的內部TessFactor(TF[u])可以是TRF*TF_original [u],並且TF[v]可以是TRF*TF_original [v]。可以基於具有不同TRF值的反覆運算來尋找用於內部邊緣的T[u]、T[v]、P[u]和P[v]的值。
可以基於等式[2]來尋找子圖元計數。可以選擇提供最接近N_vrt的子圖元計數的TRF。
若N_vrt低於最小可能值或與最小可能值相同,則TRF可以被設置為1。用於N_vrt的最小可能值可以是當內部TessFactor被設置為1(亦即,TF[u]=1並且TF[v]=1)時的子圖元計數。
圖10是圖示根據本案內容的一或多個技術的在第一GPU元件1002(例如,處理單元、著色單元、曲面細分器等)與第二GPU元件1004(例如,快取記憶體、緩衝器、內部記憶體等)之間的示例性通訊的調用流程圖1000。在1010處,第一GPU元件1002可以從第二GPU元件1004接收用於繪製調用中的複數個圖塊的幾何形狀處理的資料1012。複數個圖塊之每一者圖塊可以包括複數個圖元。複數個圖塊之每一者圖塊中的複數個圖元之每一者圖元可以包括一或多個子圖元。
在1020處,第一GPU元件1002可以從第二GPU元件1004接收與複數個圖塊之每一者圖塊的著色率相關聯的VRS輸入1022。可以基於VRS輸入來減小複數個圖塊之每一者圖塊的曲面細分因數。
在一種配置中,VRS輸入可以是基於繪製的。用於複數個圖塊之每一者圖塊的TRF可以是相同的TRF。在一種配置中,可以在裝倉通路或渲染通路中應用用於複數個圖塊之每一者圖塊的TRF。
在一種配置中,VRS輸入可以是基於圖元的。用於複數個圖塊中的至少一個圖塊的第一TRF可以不同於用於複數個圖塊中的至少一個其他圖塊的第二TRF。在一種配置中,可以在裝倉通路或渲染通路中應用用於複數個圖塊之每一者圖塊的TRF。
在一種配置中,VRS輸入可以是基於圖像的。在1030處,第一GPU元件1002可以基於VRS輸入1022來建立用於儲存用於複數個圖塊之每一者圖塊的TRF的TRF緩衝器。
在一種配置中,可以在渲染通路中應用用於複數個圖塊之每一者圖塊的TRF。在一種配置中,複數個圖元可以包括與複數個片區相關聯的第一圖元。用於第一圖元的第一TRF可以對應於用於複數個片區的最大第二TRF。
在1040處,第一GPU元件1002可以基於複數個圖塊之每一者圖塊的特性來減小複數個圖塊之每一者圖塊的曲面細分因數。該特性可以對應於著色率或可見圖元數量。
在1050處,第一GPU元件1002可以針對複數個圖塊之每一者圖塊應用TRF。
在1060處,第一GPU元件1002可以基於針對複數個圖塊之每一者圖塊應用的TRF來渲染複數個圖塊之每一者圖塊。
在一種配置中,複數個圖塊之每一者圖塊的曲面細分因數可以被減小,使得針對複數個圖塊之每一者圖塊而言有效圖元數量與一或多個子圖元的數量的比率保持恆定。
在一種配置中,可以基於複數個圖塊之每一者圖塊內的可見圖元數量與一或多個子圖元的數量的比率來動態地辨識TRF。可以基於反覆運算過程來辨識TRF。
在一種配置中,可以減小包括複數個圖塊之每一者圖塊的曲面細分因數的一或多個內部曲面細分因數。可以不減小一或多個外部曲面細分因數。
圖11是根據本案內容的一或多個技術的圖形處理的示例性方法的流程圖1100。該方法可以由裝置來執行,諸如結合圖1-圖10的態樣所使用的用於圖形處理的裝置、GPU、CPU、無線通訊設備等。
在1102處,該裝置可以接收用於繪製調用中的複數個圖塊的幾何形狀處理的資料。複數個圖塊之每一者圖塊可以包括複數個圖元。複數個圖塊之每一者圖塊中的複數個圖元之每一者圖元可以包括一或多個子圖元。參考圖10,在1010處,第一GPU元件1002可以接收用於繪製調用中的複數個圖塊的幾何形狀處理的資料1012。進一步地,圖1中的處理單元120可以執行操作1102。
在1104處,該裝置可以基於複數個圖塊之每一者圖塊的特性來減小複數個圖塊之每一者圖塊的曲面細分因數。減小的曲面細分因數可以對應於TRF。該特性可以對應於著色率或可見圖元數量。參考圖10,在1040處,第一GPU元件1002可以基於複數個圖塊之每一者圖塊的特性來減小複數個圖塊之每一者圖塊的曲面細分因數。進一步地,圖1中的處理單元120可以執行操作1104。
在1106處,該裝置可以針對複數個圖塊之每一者圖塊應用TRF。參考圖10,在1050處,第一GPU元件1002可以針對複數個圖塊之每一者圖塊應用TRF。進一步地,圖1中的處理單元120可以執行操作1106。
在1108處,該裝置可以基於針對複數個圖塊之每一者圖塊應用的TRF來渲染複數個圖塊之每一者圖塊。參考圖10,在1060處,第一GPU元件1002可以基於針對複數個圖塊之每一者圖塊應用的TRF來渲染複數個圖塊之每一者圖塊。進一步地,圖1中的處理單元120可以執行操作1108。
圖12是根據本案內容的一或多個技術的圖形處理的示例性方法的流程圖1200。該方法可以由裝置來執行,諸如結合圖1-圖10的態樣所使用的用於圖形處理的裝置、GPU、CPU、無線通訊設備等。
在1202處,該裝置可以接收用於繪製調用中的複數個圖塊的幾何形狀處理的資料。複數個圖塊之每一者圖塊可以包括複數個圖元。複數個圖塊之每一者圖塊中的複數個圖元之每一者圖元可以包括一或多個子圖元。參考圖10,在1010處,第一GPU元件1002可以接收用於繪製調用中的複數個圖塊的幾何形狀處理的資料1012。進一步地,圖1中的處理單元120可以執行操作1202。此外,圖6B中的方塊652可以執行操作1202。
在一種配置中,在1204處,該裝置可以接收與複數個圖塊之每一者圖塊的著色率相關聯的VRS輸入。可以基於VRS輸入來減小複數個圖塊之每一者圖塊的曲面細分因數。參考圖10,在1020處,第一GPU元件1002可以接收與複數個圖塊之每一者圖塊的著色率相關聯的VRS輸入1022。進一步地,圖1中的處理單元120可以執行操作1204。此外,圖6B中的方塊652可以執行操作1204。
在一種配置中,VRS輸入可以是基於繪製的。用於複數個圖塊之每一者圖塊的TRF可以是相同的TRF。在一種配置中,可以在裝倉通路或渲染通路中應用用於複數個圖塊之每一者圖塊的TRF。
在一種配置中,VRS輸入可以是基於圖元的。用於複數個圖塊中的至少一個圖塊的第一TRF可以不同於用於複數個圖塊中的至少一個其他圖塊的第二TRF。在一種配置中,可以在裝倉通路或渲染通路中應用用於複數個圖塊之每一者圖塊的TRF。
在一種配置中,VRS輸入可以是基於圖像的。在1206處,該裝置可以基於VRS輸入來建立用於儲存用於複數個圖塊之每一者圖塊的TRF的TRF緩衝器。參考圖10,在1030處,第一GPU元件1002可以基於VRS輸入1022來建立用於儲存用於複數個圖塊之每一者圖塊的TRF的TRF緩衝器。進一步地,圖1中的處理單元120可以執行操作1206。此外,圖6B中的方塊662可以執行操作1206。
在一種配置中,可以在渲染通路中應用用於複數個圖塊之每一者圖塊的TRF。在一種配置中,複數個圖元可以包括與複數個片區相關聯的第一圖元。用於第一圖元的第一TRF可以對應於用於複數個片區的最大第二TRF。
在1208處,該裝置可以基於複數個圖塊之每一者圖塊的特性來減小複數個圖塊之每一者圖塊的曲面細分因數。減小的曲面細分因數可以對應於TRF。該特性可以對應於著色率或可見圖元數量。參考圖10,在1040處,第一GPU元件1002可以基於複數個圖塊之每一者圖塊的著色率或可見圖元數量來減小複數個圖塊之每一者圖塊的曲面細分因數。進一步地,圖1中的處理單元120可以執行操作1208。此外,圖6A中的方塊606及/或圖6B中的方塊658可以執行操作1208。
在1210處,該裝置可以針對複數個圖塊之每一者圖塊應用TRF。參考圖10,在1050處,第一GPU元件1002可以針對複數個圖塊之每一者圖塊應用TRF。進一步地,圖1中的處理單元120可以執行操作1210。此外,圖6B中的方塊658可以執行操作1210。
在1212處,該裝置可以基於針對複數個圖塊之每一者圖塊應用的TRF來渲染複數個圖塊之每一者圖塊。參考圖10,在1060處,第一GPU元件1002可以基於針對複數個圖塊之每一者圖塊應用的TRF來渲染複數個圖塊之每一者圖塊。進一步地,圖1中的處理單元120可以執行操作1212。此外,圖6B中的方塊660可以執行操作1212。
在一種配置中,複數個圖塊之每一者圖塊的曲面細分因數可以被減小,使得針對複數個圖塊之每一者圖塊而言有效圖元數量與一或多個子圖元的數量的比率保持恆定。
在一種配置中,可以基於複數個圖塊之每一者圖塊內的可見圖元數量與一或多個子圖元的數量的比率來動態地辨識TRF。可以基於反覆運算過程來辨識TRF。
在一種配置中,可以減小包括複數個圖塊之每一者圖塊的曲面細分因數的一或多個內部曲面細分因數。可以不減小一或多個外部曲面細分因數。
在各配置中,提供了一種用於圖形處理的方法或裝置。該裝置可以是GPU、CPU或可以執行圖形處理的某種其他處理器。在各態樣中,該裝置可以是設備104內的處理單元120,或者可以是設備104或另一設備內的某種其他硬體。該裝置可以包括用於接收用於對繪製調用中的複數個圖塊進行幾何形狀處理的資料的構件。複數個圖塊之每一者圖塊可以包括複數個圖元。複數個圖塊之每一者圖塊中的複數個圖元之每一者圖元可以包括一或多個子圖元。該裝置亦可以包括用於基於複數個圖塊之每一者圖塊的特性來減小複數個圖塊之每一者圖塊的曲面細分因數的構件。減小的曲面細分因數可以對應於TRF。該特性可以對應於著色率或可見圖元數量。該裝置亦可以包括用於針對複數個圖塊之每一者圖塊應用TRF的構件。該裝置亦可以包括用於基於針對複數個圖塊之每一者圖塊應用的TRF來渲染複數個圖塊之每一者圖塊的構件。
在一種配置中,複數個圖塊之每一者圖塊的曲面細分因數可以被減小,使得針對複數個圖塊之每一者圖塊而言有效圖元數量與一或多個子圖元的數量的比率保持恆定。
在一種配置中,可以基於複數個圖塊之每一者圖塊內的可見圖元數量與一或多個子圖元的數量的比率來動態地辨識TRF。可以基於反覆運算過程來辨識TRF。
在一種配置中,該裝置亦可以包括用於接收與複數個圖塊之每一者圖塊的著色率相關聯的VRS輸入的構件。可以基於VRS輸入來減小複數個圖塊之每一者圖塊的曲面細分因數。
在一種配置中,VRS輸入可以是基於繪製的。用於複數個圖塊之每一者圖塊的TRF可以是相同的TRF。
在一種配置中,可以在裝倉通路或渲染通路中應用用於複數個圖塊之每一者圖塊的TRF。
在一種配置中,VRS輸入可以是基於圖元的。用於複數個圖塊中的至少一個圖塊的第一TRF可以不同於用於複數個圖塊中的至少一個其他圖塊的第二TRF。
在一種配置中,可以在裝倉通路或渲染通路中應用用於複數個圖塊之每一者圖塊的TRF。
在一種配置中,VRS輸入可以是基於圖像的。該裝置亦可以包括用於基於VRS輸入來建立用於儲存用於複數個圖塊之每一者圖塊的TRF的TRF緩衝器的構件。
在一種配置中,可以在渲染通路中應用用於複數個圖塊之每一者圖塊的TRF。
在一種配置中,複數個圖元可以包括與複數個片區相關聯的第一圖元。用於第一圖元的第一TRF可以對應於用於複數個片區的最大第二TRF。
在一種配置中,可以減小包括複數個圖塊之每一者圖塊的曲面細分因數的一或多個內部曲面細分因數。可以不減小一或多個外部曲面細分因數。
返回參考圖6A-圖12,在曲面細分階段中,在LOD是基於著色率及/或圖元計數而降低的情況下,可以減小TessFactor。即使TessFactor顯著地減小,亦可以不存在圖像的品質的明顯降低。同時,可以提高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)、軟碟和藍光光碟,其中磁碟通常磁性地複製資料,而光碟通常利用鐳射來光學地複製資料。上述各項的組合亦應當被包括在電腦可讀取媒體的範疇之內。電腦程式產品可以包括電腦可讀取媒體。
本案內容的技術可以在各種各樣的設備或裝置中實現,包括無線手機、積體電路(IC)或一組IC(例如,晶片組)。在本案內容中描述了各個元件、模組或單元,以強調被配置為執行所揭示的技術的設備的功能態樣,但是不一定需要經由不同的硬體單元來實現。而是,如前述,各個單元可以被組合在任何硬體單元中,或者由可交互操作的硬體單元的集合(包括如前述的一或多個處理器)結合合適的軟體及/或韌體來提供。相應地,如本文所使用的,術語「處理器」可以代表前述結構中的任何一者或者適合於實現本文描述的技術的任何其他結構。此外,該等技術可以在一或多個電路或邏輯元件中充分地實現。
以下態樣僅是說明性的,並且可以與本文描述的其他態樣或教示進行組合,但不限於此。
態樣1是一種用於圖形處理的裝置,包括:至少一個處理器,其耦合到記憶體並且被配置為:接收用於繪製調用中的複數個圖塊的幾何形狀處理的資料,該複數個圖塊之每一者圖塊包括複數個圖元,該複數個圖塊之每一者圖塊中的該複數個圖元之每一者圖元包括一或多個子圖元;基於該複數個圖塊之每一者圖塊的特性來減小該複數個圖塊之每一者圖塊的曲面細分因數,減小的曲面細分因數對應於TRF,該特性對應於著色率或可見圖元數量;針對該複數個圖塊之每一者圖塊應用該TRF;及基於針對該複數個圖塊之每一者圖塊應用的TRF來渲染該複數個圖塊之每一者圖塊。
態樣2是根據態樣1之裝置,其中該複數個圖塊之每一者圖塊的該曲面細分因數被減小,使得針對該複數個圖塊之每一者圖塊而言有效圖元數量與該一或多個子圖元的數量的比率保持恆定。
態樣3是根據態樣1之裝置,其中該TRF是基於該複數個圖塊之每一者圖塊內的該可見圖元數量與該一或多個子圖元的數量的比率來動態地辨識的,並且該TRF是基於反覆運算過程來辨識的。
態樣4是根據態樣1和2中任一項之裝置,該至少一個處理器亦被配置為:接收與該複數個圖塊之每一者圖塊的該著色率相關聯的VRS輸入,其中該複數個圖塊之每一者圖塊的該曲面細分因數是基於該VRS輸入來減小的。
態樣5是根據態樣4之裝置,其中該VRS輸入是基於繪製的,並且用於該複數個圖塊之每一者圖塊的該TRF是相同的TRF。
態樣6是根據態樣5之裝置,其中用於該複數個圖塊之每一者圖塊的該TRF是在裝倉通路或渲染通路中應用的。
態樣7是根據態樣4之裝置,其中該VRS輸入是基於圖元的,並且用於該複數個圖塊中的至少一個圖塊的第一TRF不同於用於該複數個圖塊中的至少一個其他圖塊的第二TRF。
態樣8是根據態樣7之裝置,其中用於該複數個圖塊之每一者圖塊的該TRF是在裝倉通路或渲染通路中應用的。
態樣9是根據態樣4之裝置,其中該VRS輸入是基於圖像的,並且該至少一個處理器亦被配置為:基於該VRS輸入來建立用於儲存用於該複數個圖塊之每一者圖塊的該TRF的TRF緩衝器。
態樣10是根據態樣9之裝置,其中用於該複數個圖塊之每一者圖塊的該TRF是在渲染通路中應用的。
態樣11是根據態樣9和10中任一項之裝置,其中該複數個圖元包括與複數個片區相關聯的第一圖元,並且用於該第一圖元的第一TRF對應於用於該複數個片區的最大第二TRF。
態樣12是根據態樣1-11中任一項之裝置,其中包括該複數個圖塊之每一者圖塊的該曲面細分因數的一或多個內部曲面細分因數被減小,並且一或多個外部曲面細分因數不被減小。
態樣13是根據態樣1-12中任一項之裝置,其中該裝置是無線通訊設備。
態樣14是一種用於實現根據態樣1-13中任一項之無線通訊的方法。
態樣15是一種用於圖形處理的裝置,包括用於實現如態樣1-13中任一項之方法的構件。
態樣16是一種儲存電腦可執行代碼的電腦可讀取媒體,該代碼在由至少一個處理器執行時使得該至少一個處理器實現如態樣1-13中任一項之方法。
本文已經描述了各個態樣。該等實例和其他態樣在跟隨的請求項的範疇內。
0.25:數值
0.5:數值
1:數值
100:內容產生系統
104:設備
107:圖形處理流水線
120:處理單元
121:內部記憶體
122:內容編碼器/解碼器
123:內部記憶體
124:系統記憶體
126:通訊介面
127:顯示處理器
128:接收器
130:傳輸器
131:顯示器
132:收發機
198:VRT單元
200:圖像或表面
202:區域
210:倉
211:倉
212:倉
213:倉
214:倉
215:倉
221:圖元
222:圖元
223:圖元
224:圖元
250:第一視點
251:第二視點
300:圖形處理流水線
382:輸入組裝器階段
384:頂點著色器階段
386:幾何形狀著色器階段
388:光柵化器階段
390:圖元著色器階段
392:輸出合併器階段
400:圖形處理流水線
440:輸入組裝器階段
442:頂點著色器階段
444:外殼著色器階段
446:曲面細分器階段
448:域著色器階段
450:幾何形狀著色器階段
452:光柵化器階段
454:圖元著色器階段
456:輸出合併器階段
500A:三角形圖元
500B:三角形圖元
600A:圖形處理流水線
600B:圖形處理流水線
602:方塊
604:方塊
606:方塊
608:方塊
610:方塊
612:方塊
614:方塊
616:方塊
618:方塊
620:方塊
652:方塊
654:方塊
656:方塊
658:方塊
660:方塊
662:TRF緩衝器
700:示意圖
800:示意圖
900A:三角形圖元
900B:四邊形圖元
1000:調用流程圖
1002:第一GPU元件
1004:第二GPU元件
1010:步驟
1012:資料
1020:步驟
1022:VRS輸入
1030:步驟
1040:步驟
1050:步驟
1060:步驟
1100:流程圖
1102:步驟
1104:步驟
1106:步驟
1108:步驟
1200:流程圖
1202:步驟
1204:步驟
1206:步驟
1208:步驟
1210:步驟
1212:步驟
圖1是圖示根據本案內容的一或多個技術的示例性內容產生系統的方塊圖。
圖2圖示根據本案內容的一或多個技術的示例性圖像或表面。
圖3是圖示根據本案內容的一或多個技術的圖形處理流水線的方塊圖。
圖4是圖示根據本案內容的一或多個技術的包括曲面細分階段的示例性圖形處理流水線的方塊圖。
圖5A圖示根據本案內容的一或多個技術的包括基於曲面細分而產生的子圖元的三角形圖元。
圖5B圖示根據本案內容的一或多個技術的包括基於以較高曲面細分因數進行的曲面細分而產生的子圖元的三角形圖元。
圖6A是圖示根據本案內容的一或多個技術的其中使用每繪製或每圖元的可變比率曲面細分(VRT)的圖形處理流水線的方塊圖。
圖6B是圖示根據本案內容的一或多個技術的其中使用基於螢幕空間圖像或基於圖元計數的VRT的圖形處理流水線的方塊圖。
圖7是圖示根據本案內容的一或多個技術的與訊框重疊的螢幕空間圖像的示意圖。
圖8是圖示根據本案內容的一或多個技術的與三角形圖元相交的螢幕空間圖像片區的示意圖。
圖9A是圖示根據本案內容的一或多個技術的包括基於曲面細分而產生的三角形子圖元的三角形圖元的示意圖。
圖9B是圖示根據本案內容的一或多個技術的包括基於曲面細分而產生的三角形子圖元的四邊形圖元的示意圖。
圖10是圖示根據本案內容的一或多個技術的在第一GPU元件與第二GPU元件之間的示例性通訊的調用流程圖。
圖11是根據本案內容的一或多個技術的圖形處理的示例性方法的流程圖。
圖12是根據本案內容的一或多個技術的圖形處理的示例性方法的流程圖。
國內寄存資訊(請依寄存機構、日期、號碼順序註記)
無
國外寄存資訊(請依寄存國家、機構、日期、號碼順序註記)
無
1000:調用流程圖
1002:第一GPU元件
1004:第二GPU元件
1010:步驟
1012:資料
1020:步驟
1022:VRS輸入
1030:步驟
1040:步驟
1050:步驟
1060:步驟
Claims (30)
- 一種用於圖形處理的裝置,包括: 一記憶體;及 至少一個處理器,其耦合到該記憶體並且被配置為: 接收用於一繪製調用中的複數個圖塊的幾何形狀處理的資料,該複數個圖塊之每一者圖塊包括複數個圖元,該複數個圖塊之每一者圖塊中的該複數個圖元之每一者圖元包括一或多個子圖元; 基於該複數個圖塊之每一者圖塊的一特性來減小該複數個圖塊之每一者圖塊的一曲面細分因數,該減小的曲面細分因數對應於一曲面細分減小因數(TRF),該特性對應於一著色率或一可見圖元數量; 針對該複數個圖塊之每一者圖塊應用該TRF;及 基於針對該複數個圖塊之每一者圖塊應用的該TRF來渲染該複數個圖塊之每一者圖塊。
- 根據請求項1之裝置,其中該複數個圖塊之每一者圖塊的該曲面細分因數被減小,使得針對該複數個圖塊之每一者圖塊而言一有效圖元數量與該一或多個子圖元的一數量的一比率保持恆定。
- 根據請求項1之裝置,其中該TRF是基於該複數個圖塊之每一者圖塊內的該可見圖元數量與該一或多個子圖元的一數量的一比率來動態地辨識的,並且該TRF是基於一反覆運算過程來辨識的。
- 根據請求項1之裝置,該至少一個處理器亦被配置為: 接收與該複數個圖塊之每一者圖塊的該著色率相關聯的一可變比率著色(VRS)輸入,其中該複數個圖塊之每一者圖塊的該曲面細分因數是基於該VRS輸入來減小的。
- 根據請求項4之裝置,其中該VRS輸入是基於繪製的,並且用於該複數個圖塊之每一者圖塊的該TRF是一相同的TRF。
- 根據請求項5之裝置,其中用於該複數個圖塊之每一者圖塊的該TRF是在一裝倉通路或一渲染通路中應用的。
- 根據請求項4之裝置,其中該VRS輸入是基於圖元的,並且用於該複數個圖塊中的至少一個圖塊的一第一TRF不同於用於該複數個圖塊中的至少一個其他圖塊的一第二TRF。
- 根據請求項7之裝置,其中用於該複數個圖塊之每一者圖塊的該TRF是在一裝倉通路或一渲染通路中應用的。
- 根據請求項4之裝置,其中該VRS輸入是基於圖像的,並且該至少一個處理器亦被配置為: 基於該VRS輸入來建立用於儲存用於該複數個圖塊之每一者圖塊的該TRF的一TRF緩衝器。
- 根據請求項9之裝置,其中用於該複數個圖塊之每一者圖塊的該TRF是在一渲染通路中應用的。
- 根據請求項9之裝置,其中該複數個圖元包括與複數個片區相關聯的一第一圖元,並且用於該第一圖元的一第一TRF對應於用於該複數個片區的一最大第二TRF。
- 根據請求項1之裝置,其中包括該複數個圖塊之每一者圖塊的該曲面細分因數的一或多個內部曲面細分因數被減小,並且一或多個外部曲面細分因數不被減小。
- 根據請求項1之裝置,其中該裝置是一無線通訊設備。
- 一種圖形處理的方法,包括以下步驟: 接收用於一繪製調用中的複數個圖塊的幾何形狀處理的資料,該複數個圖塊之每一者圖塊包括複數個圖元,該複數個圖塊之每一者圖塊中的該複數個圖元之每一者圖元包括一或多個子圖元; 基於該複數個圖塊之每一者圖塊的一特性來減小該複數個圖塊之每一者圖塊的一曲面細分因數,該減小的曲面細分因數對應於一曲面細分減小因數(TRF),該特性對應於一著色率或一可見圖元數量; 針對該複數個圖塊之每一者圖塊應用該TRF;及 基於針對該複數個圖塊之每一者圖塊應用的該TRF來渲染該複數個圖塊之每一者圖塊。
- 根據請求項14之方法,其中該複數個圖塊之每一者圖塊的該曲面細分因數被減小,使得針對該複數個圖塊之每一者圖塊而言一有效圖元數量與該一或多個子圖元的一數量的一比率保持恆定。
- 根據請求項14之方法,其中該TRF是基於該複數個圖塊之每一者圖塊內的該可見圖元數量與該一或多個子圖元的一數量的一比率來動態地辨識的,並且該TRF是基於一反覆運算過程來辨識的。
- 根據請求項14之方法,亦包括以下步驟: 接收與該複數個圖塊之每一者圖塊的該著色率相關聯的一可變比率著色(VRS)輸入,其中該複數個圖塊之每一者圖塊的該曲面細分因數是基於該VRS輸入來減小的。
- 根據請求項17之方法,其中該VRS輸入是基於繪製的,並且用於該複數個圖塊之每一者圖塊的該TRF是一相同的TRF。
- 根據請求項18之方法,其中用於該複數個圖塊之每一者圖塊的該TRF是在一裝倉通路或一渲染通路中應用的。
- 根據請求項17之方法,其中該VRS輸入是基於圖元的,並且用於該複數個圖塊中的至少一個圖塊的一第一TRF不同於用於該複數個圖塊中的至少一個其他圖塊的一第二TRF。
- 根據請求項20之方法,其中用於該複數個圖塊之每一者圖塊的該TRF是在一裝倉通路或一渲染通路中應用的。
- 根據請求項17之方法,其中該VRS輸入是基於圖像的,並且該方法亦包括以下步驟: 基於該VRS輸入來建立用於儲存用於該複數個圖塊之每一者圖塊的該TRF的一TRF緩衝器。
- 根據請求項22之方法,其中用於該複數個圖塊之每一者圖塊的該TRF是在一渲染通路中應用的。
- 根據請求項22之方法,其中該複數個圖元包括與複數個片區相關聯的一第一圖元,並且用於該第一圖元的一第一TRF對應於用於該複數個片區的一最大第二TRF。
- 根據請求項14之方法,其中包括該複數個圖塊之每一者圖塊的該曲面細分因數的一或多個內部曲面細分因數被減小,並且一或多個外部曲面細分因數不被減小。
- 一種儲存電腦可執行代碼的非暫時性電腦可讀取媒體,該代碼在由至少一個處理器執行時使得該至少一個處理器進行以下操作: 接收用於一繪製調用中的複數個圖塊的幾何形狀處理的資料,該複數個圖塊之每一者圖塊包括複數個圖元,該複數個圖塊之每一者圖塊中的該複數個圖元之每一者圖元包括一或多個子圖元; 基於該複數個圖塊之每一者圖塊的一特性來減小該複數個圖塊之每一者圖塊的一曲面細分因數,該減小的曲面細分因數對應於一曲面細分減小因數(TRF),該特性對應於一著色率或一可見圖元數量; 針對該複數個圖塊之每一者圖塊應用該TRF;及 基於針對該複數個圖塊之每一者圖塊應用的該TRF來渲染該複數個圖塊之每一者圖塊。
- 根據請求項26之非暫時性電腦可讀取媒體,其中該複數個圖塊之每一者圖塊的該曲面細分因數被減小,使得針對該複數個圖塊之每一者圖塊而言一有效圖元數量與該一或多個子圖元的一數量的一比率保持恆定。
- 根據請求項26之非暫時性電腦可讀取媒體,其中該TRF是基於該複數個圖塊之每一者圖塊內的該可見圖元數量與該一或多個子圖元的一數量的一比率來動態地辨識的,並且該TRF是基於一反覆運算過程來辨識的。
- 根據請求項26之非暫時性電腦可讀取媒體,該代碼亦使得該至少一個處理器進行以下操作: 接收與該複數個圖塊之每一者圖塊的該著色率相關聯的一可變比率著色(VRS)輸入,其中該複數個圖塊之每一者圖塊的該曲面細分因數是基於該VRS輸入來減小的。
- 根據請求項29之非暫時性電腦可讀取媒體,其中該VRS輸入是基於繪製的,並且用於該複數個圖塊之每一者圖塊的該TRF是一相同的TRF。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/658,634 | 2022-04-08 | ||
US17/658,634 US11908079B2 (en) | 2022-04-08 | 2022-04-08 | Variable rate tessellation |
Publications (1)
Publication Number | Publication Date |
---|---|
TW202345087A true TW202345087A (zh) | 2023-11-16 |
Family
ID=86226702
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW112110903A TW202345087A (zh) | 2022-04-08 | 2023-03-23 | 可變比率曲面細分 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11908079B2 (zh) |
TW (1) | TW202345087A (zh) |
WO (1) | WO2023196120A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11869115B1 (en) * | 2022-07-29 | 2024-01-09 | Qualcomm Incorporated | Density driven variable rate shading |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10535185B2 (en) * | 2012-04-04 | 2020-01-14 | Qualcomm Incorporated | Patched shading in graphics processing |
US10643381B2 (en) | 2016-01-12 | 2020-05-05 | Qualcomm Incorporated | Systems and methods for rendering multiple levels of detail |
US10818054B2 (en) | 2016-04-01 | 2020-10-27 | Intel Corporation | Apparatus and method for asynchronous texel shading |
US10192280B2 (en) | 2016-04-08 | 2019-01-29 | Qualcomm Incorporated | Per-vertex variable rate shading |
US20170358132A1 (en) * | 2016-06-12 | 2017-12-14 | Apple Inc. | System And Method For Tessellation In An Improved Graphics Pipeline |
US10152819B2 (en) | 2016-08-15 | 2018-12-11 | Microsoft Technology Licensing, Llc | Variable rate shading |
GB2558886B (en) | 2017-01-12 | 2019-12-25 | Imagination Tech Ltd | Graphics processing units and methods for controlling rendering complexity using cost indications for sets of tiles of a rendering space |
US10242496B2 (en) | 2017-04-24 | 2019-03-26 | Intel Corporation | Adaptive sub-patches system, apparatus and method |
US11010862B1 (en) * | 2019-11-14 | 2021-05-18 | Advanced Micro Devices, Inc. | Reduced bandwidth tessellation factors |
US11158292B2 (en) | 2020-01-24 | 2021-10-26 | Intel Corporation | Method and apparatus for dynamically changing display clock frequency |
-
2022
- 2022-04-08 US US17/658,634 patent/US11908079B2/en active Active
-
2023
- 2023-03-23 TW TW112110903A patent/TW202345087A/zh unknown
- 2023-03-23 WO PCT/US2023/016147 patent/WO2023196120A1/en unknown
Also Published As
Publication number | Publication date |
---|---|
WO2023196120A1 (en) | 2023-10-12 |
US11908079B2 (en) | 2024-02-20 |
US20230326134A1 (en) | 2023-10-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10867434B2 (en) | Variable rate shading | |
US10049486B2 (en) | Sparse rasterization | |
CN106204712B (zh) | 分段线性不规则光栅化 | |
US9269180B2 (en) | Computer graphics processor and method for rendering a three-dimensional image on a display screen | |
US11250620B2 (en) | Graphics processing | |
US11631212B2 (en) | Methods and apparatus for efficient multi-view rasterization | |
TW202345087A (zh) | 可變比率曲面細分 | |
TW202230287A (zh) | 用於遮擋處理技術的方法和裝置 | |
US20230101978A1 (en) | Meshlet shading atlas | |
KR20230168281A (ko) | 포비티드 렌더링에서의 콘텐츠 시프팅 | |
TW202137141A (zh) | 用於邊緣壓縮抗混疊的方法和裝置 | |
KR20240151243A (ko) | 가변 레이트 테셀레이션 | |
US20240212257A1 (en) | Workload packing in graphics texture pipeline | |
WO2023055655A1 (en) | Meshlet shading atlas | |
TW202228082A (zh) | 物件空間渲染中的佈告板層 | |
TW202311940A (zh) | 基於圖塊的結構中深度和陰影遍歷渲染的最佳化 | |
TW202217745A (zh) | 用於擴展式分箱的可配置圍邊支援 | |
TW202147243A (zh) | 用於次序無關的遮擋計算的方法和裝置 | |
WO2024025687A1 (en) | Density driven variable rate shading |