CN117980956A - 动态可变速率着色 - Google Patents
动态可变速率着色 Download PDFInfo
- Publication number
- CN117980956A CN117980956A CN202280063472.4A CN202280063472A CN117980956A CN 117980956 A CN117980956 A CN 117980956A CN 202280063472 A CN202280063472 A CN 202280063472A CN 117980956 A CN117980956 A CN 117980956A
- Authority
- CN
- China
- Prior art keywords
- frame
- color analysis
- gpu
- frequency map
- image
- Prior art date
- Legal status (The legal status 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 status listed.)
- Pending
Links
- 238000004040 coloring Methods 0.000 title claims description 43
- 238000000034 method Methods 0.000 claims abstract description 148
- 238000012545 processing Methods 0.000 claims abstract description 141
- 238000004458 analytical method Methods 0.000 claims abstract description 86
- 238000009877 rendering Methods 0.000 claims description 83
- 230000008569 process Effects 0.000 claims description 60
- 230000015654 memory Effects 0.000 claims description 48
- 238000001914 filtration Methods 0.000 claims description 5
- 230000006870 function Effects 0.000 description 21
- 238000010586 diagram Methods 0.000 description 15
- 238000004891 communication Methods 0.000 description 14
- 230000008901 benefit Effects 0.000 description 12
- 230000006835 compression Effects 0.000 description 7
- 238000007906 compression Methods 0.000 description 7
- 238000006243 chemical reaction Methods 0.000 description 5
- 239000012634 fragment Substances 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 238000003491 array Methods 0.000 description 4
- 238000004590 computer program Methods 0.000 description 4
- 230000000007 visual effect Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 230000009467 reduction Effects 0.000 description 3
- 244000025254 Cannabis sativa Species 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 239000007795 chemical reaction product Substances 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
- G06T15/80—Shading
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/40—Filling a planar surface by adding surface attributes, e.g. colour or texture
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/90—Determination of colour characteristics
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Multimedia (AREA)
- Image Generation (AREA)
- Image Processing (AREA)
- Television Systems (AREA)
Abstract
本文所呈现的各方面涉及用于图形处理的方法和设备,包括装置(例如,GPU)。该装置可以对多个帧中的至少一个第一帧执行颜色分析,该颜色分析是基于该至少一个第一帧中的至少一个图像执行的。该装置也可以基于所执行的颜色分析生成该多个帧中的至少一个第二帧的频率图。进一步地,该装置可以基于该至少一个第二帧的该频率图渲染该至少一个第二帧,该至少一个第二帧在该至少一个第一帧之后被渲染。
Description
相关申请的交叉引用
本申请要求名称为“DYNAMIC VARIABLE RATE SHADING”并且于2021年9月22日提交的美国非临时专利申请序列17/482,296号的权益,该美国非临时专利申请以引用方式全文明确并入本文。
技术领域
本公开总体上涉及处理系统,并且更具体地,涉及用于图形处理的一种或多种技术。
背景技术
计算设备通常执行图形和/或显示处理(例如,利用图形处理单元(GPU)、中央处理单元(CPU)、显示处理器等)以渲染和显示视觉内容。此类计算设备可包括例如计算机工作站、移动电话(诸如智能电话)、嵌入式系统、个人计算机、平板计算机和视频游戏控制台。GPU被配置为执行图形处理流水线,该图形处理流水线包括一个或多个处理级,这些处理级一起操作以执行图形处理命令并输出帧。中央处理单元(CPU)可以通过向GPU发出一个或多个图形处理命令来控制该GPU的操作。现代CPU通常能够并发地执行多个应用,每个应用可能需要在执行期间利用GPU。显示处理器被配置为将从CPU接收的数字信息转换成模拟值,并且可以向显示面板发出命令以显示可视内容。提供用于在显示器上可视呈现的内容的设备可以利用GPU和/或显示处理器。
设备的GPU可以被配置为执行在图形处理流水线中的过程。此外,显示处理器或显示处理单元(DPU)可以被配置为执行显示处理的过程。然而,随着无线通信和更小的手持设备的出现,已经发展出针对改善的图形或显示处理的增加的需求。
发明内容
下面给出了一个或多个方面的简化概述,以便提供对这些方面的基本理解。本概述不是对所有预期方面的广泛概述,并且既不旨在标识所有方面的关键或重要元素,也不旨在描述任何或所有方面的范围。其唯一目的是以简化形式给出一个或多个方面的一些概念,作为稍后给出的更详细的描述的前序。
在本公开的一方面,提供了一种方法、计算机可读介质和装置。该装置可以是图形处理单元(GPU)或可以执行图形处理的任何装置。该装置可以基于应用数据生成至少一个第一帧或至少一个第二帧中的一者或多者。该装置也可以基于应用数据选择该至少一个第一帧中的至少一个图像,其中颜色分析是基于所选择的至少一个图像执行的。另外,该装置可以压缩该至少一个第一帧的一个或多个图块,其中颜色分析是基于所压缩的一个或多个图块执行的。该装置也可以对多个帧中的至少一个第一帧执行颜色分析,该颜色分析是基于该至少一个第一帧中的至少一个图像执行的。该装置也可以基于所执行的颜色分析生成该多个帧中的至少一个第二帧的频率图。此外,该装置可以基于该至少一个第二帧的该频率图选择该至少一个第二帧的频率数据。该装置也可以基于该至少一个第二帧的该频率图渲染该至少一个第二帧,该至少一个第二帧在该至少一个第一帧之后被渲染。该装置也可以向显示器或缓冲器传输该至少一个第二帧,其中在基于该频率图渲染该至少一个第二帧之后传输该至少一个第二帧。
在附图和以下描述中阐述了本公开的一个或多个示例的细节。本公开的其他特征、目的和优点将从描述和附图以及权利要求中显而易见。
附图说明
图1是示出根据本公开的一种或多种技术的示例内容生成系统的框图。
图2示出根据本公开的一种或多种技术的示例GPU。
图3示出根据本公开的一种或多种技术的示例图像或表面。
图4是示出GPU渲染性能的示例的曲线图。
图5是示出示例动态可变速率着色过程的示图。
图6是示出示例动态可变速率着色过程的示图。
图7是示出GPU组件、另一GPU组件和显示器/缓冲器之间的示例通信的通信流程图。
图8是图形处理的示例方法的流程图。
图9是图形处理的示例方法的流程图。
具体实施方式
图形处理的一些方面可以利用不同类型的着色,例如,可变速率着色(VRS)。可变速率着色是以不同速率分配渲染性能或功率的方式。例如,图形处理单元(GPU)可以利用可变速率着色在渲染后的图像上以不同速率分配渲染性能/功率。即,可变速率着色是通过改变图像或帧的不同区域的着色速率来提高渲染性能和质量的特征。在一些实例中,可变速率着色可以通过减少在GPU处执行的工作量来显著提高某些应用的性能。由于可变速率着色可以提供提高性能的优势,因此包括自动或动态方式(例如经由应用或游戏配置文件)来使用可变速率着色可能是有利的。然而,在整个帧上使用可变速率着色可能导致大量明显的劣质渲染或具有不同内容质量的渲染。这种不同的渲染质量可能导致应用为其相应的内容制定特定的速率。此外,一些应用可以不利用可变速率着色特征,因为如果普遍应用,则可能会引入损坏。本公开的各方面可以自动或动态地启用可变速率着色。例如,本公开的各方面可以自动或动态地启用可变速率着色以在GPU处渲染应用而不在输出内容中引入任何损坏。此外,本公开的各方面可以利用动态可变速率着色来提高GPU的性能。本公开的动态可变速率着色也可以节省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,在某些方面,处理单元120可以包括确定组件198,确定组件198被配置为基于应用数据生成至少一个第一帧或至少一个第二帧中的一者或多者。确定组件198也可以被配置为基于应用数据选择该至少一个第一帧中的至少一个图像,其中颜色分析是基于所选择的至少一个图像执行的。确定组件198也可以被配置为压缩该至少一个第一帧的一个或多个图块,其中颜色分析是基于所压缩的一个或多个图块执行的。确定组件198也可以被配置为对多个帧中的至少一个第一帧执行颜色分析,该颜色分析是基于该至少一个第一帧中的至少一个图像执行的。确定组件198也可以被配置为基于所执行的颜色分析生成该多个帧中的至少一个第二帧的频率图。确定组件198也可以被配置为基于该至少一个第二帧的该频率图选择该至少一个第二帧的频率数据。确定组件198也可以被配置为基于该至少一个第二帧的该频率图渲染该至少一个第二帧,该至少一个第二帧在该至少一个第一帧之后被渲染。确定组件198也可以被配置为向显示器或缓冲器传输该至少一个第二帧,其中在基于该频率图渲染该至少一个第二帧之后传输该至少一个第二帧。尽管以下描述可以集中于图形处理,但是本文中描述的概念可以适用于其他类似的处理技术。
如本文所描述的,诸如设备104之类的设备可以是指被配置为执行本文描述的一种或多种技术的任何设备、装置或系统。例如,设备可以是服务器、基站、用户装备、客户端设备、站、接入点、计算机(例如,个人计算机、台式计算机、膝上型计算机、平板计算机、计算机工作站、或大型计算机)、最终产品、装置、电话、智能电话、服务器、视频游戏平台或控制台、手持式设备(例如,便携式视频游戏设备或个人数字助理(PDA))、可穿戴计算设备(例如,智能手表、增强现实设备或虚拟现实设备)、非可穿戴设备、显示器或显示设备、电视、电视机顶盒、中间网络设备、数字媒体播放器、视频流设备、内容流设备、车载计算机、任何移动设备、被配置为生成图形内容的任何设备、或被配置为执行本文所描述的一种或多种技术的任何设备。本文的过程可以被描述为由特定组件(例如,GPU)执行,但是在另外的实施方案中,可以使用与所公开的实施方案一致的其他组件(例如,CPU)来执行。
GPU可以在GPU流水线中处理多种类型的数据或数据分组。例如,在一些方面,GPU可以处理两种类型的数据或数据分组,例如,上下文寄存器分组和绘制调用数据。上下文寄存器分组可以是一组全局状态信息,例如,关于全局寄存器、着色程序或常数数据的信息,其可以调节图形上下文将如何被处理。例如,上下文寄存器分组可包括关于颜色格式的信息。在上下文寄存器分组的一些方面,可能存在指示哪个工作负载属于上下文寄存器的比特。此外,可能存在同时和/或并行运行的多个功能或程序。例如,功能或程序可以描述某个操作,例如,颜色模式或颜色格式。因此,上下文寄存器可以定义GPU的多个状态。
可以利用上下文状态确定单个处理单元(例如,顶点提取器(VFD)、顶点着色器(VS)、着色器处理器或几何处理器)如何运行和/或处理单元以哪种模式运行。为了这样做,GPU可以使用上下文寄存器和编程数据。在一些方面,GPU可基于模式或状态的上下文寄存器定义在流水线中生成工作负载(例如,顶点或像素工作负载)。某些处理单元(例如,VFD)可以使用这些状态来确定某些功能,例如,如何聚集顶点。由于这些模式或状态可能改变,因此GPU可能需要改变对应的上下文。另外,与模式或状态相对应的工作负载可以遵循改变的模式或状态。
图2示出根据本公开的一种或多种技术的示例GPU 200。如图2所示,GPU 200包括命令处理器(CP)210、绘制调用分组212、VFD 220、VS222、顶点高速缓存(VPC)224、三角形设置引擎(TSE)226、光栅化器(RAS)228、Z过程引擎(ZPE)230、像素插值器(PI)232、片段着色器(FS)234、渲染后端(RB)236、二级(L2)高速缓存(UCHE)238和系统存储器240。虽然图2显示了GPU 200包括处理单元220-238,但GPU 200可以包括多个附加处理单元。另外,处理单元220-238仅仅是一示例,并且处理单元的任何组合或顺序可由根据本公开的GPU使用。GPU200也包括命令缓冲器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可以将计算机图形图像划分成网格格式,以使得网格的每个部分(即图块)被单独渲染。在一些方面,在分箱过程期间,图像可以被划分成不同的箱或图块。在一些方面,在分箱过程期间,可以构建可见流,其中可以标识可见图元或绘制调用。与平铺渲染相反,直接渲染不会将帧划分成更小的箱或图块。相反,在直接渲染中,整个帧是一次渲染的。另外,一些类型的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的显示数据。帧缓冲器也可以是包含数据的完整帧的存储器缓冲器。另外,帧缓冲器可以是逻辑缓冲器。在一些方面,更新帧缓冲器可以在箱或平铺渲染中执行,其中,如上所述,表面被划分成多个箱或图块,然后每个箱或图块可以被单独渲染。此外,在平铺渲染中,可以将帧缓冲器划分为多个箱或图块。
图形处理的一些方面可以利用不同类型的着色,例如,可变速率着色(VRS)。可变速率着色是以不同速率分配渲染性能或功率的方式。例如,图形处理单元(GPU)可以利用可变速率着色在渲染后的图像上以不同速率分配渲染性能/功率。即,可变速率着色是通过改变图像或帧的不同区域的着色速率来提高渲染性能和质量的特征。另外,可变速率着色可以被称为粗像素着色。
在一些实例中,可变速率着色可以通过减少在图形处理单元(GPU)处执行的工作量来显著提高某些应用的性能。例如,可变速率着色可以减少片段着色器在GPU处执行指令的次数。可变速率着色也可以以少量可感知视差来降低着色速率。例如,可变速率着色可以导致降低着色速率,而输出图像处的可感知视觉质量很少或没有降低。
图4示出利用VRS速率的GPU渲染性能的一个示例的曲线图400。更具体地,图4中的曲线图400显示了有关利用具有强制绘制状态的VRS速率的每秒帧数(fps)量的渲染性能。如图4所示,不同应用(例如,应用410和应用420)的fps量可以随着强制绘制状态VRS速率的量增加而增加。例如,对于1×1的可变速率着色,应用410和应用420的fps可以分别为69和71。例如,对于2×2的可变速率着色,应用410和应用420的fps可以分别为83和82。例如,对于4×4的可变速率着色,应用410和应用420的fps可以分别为88和89。如图4所描绘,可变速率着色可以通过减少在GPU处执行的工作量来显著提高某些应用的性能。
在一些方面,可变速率着色可以保留输出图像的边缘内容,这可以减少所显示内容的损坏。然而,有可能会渲染在所显示内容的边缘附近显示大量损坏的内容。例如,如果将整个草地渲染为单个单元,则可能存在边缘混叠,因为每片草地都不包括图元的网格。这是某些应用选择其各自可变着色速率以适应其相应内容的原因之一。
由于可变速率着色可以提供提高性能的优势,因此包括自动或动态方式(例如经由应用或游戏配置文件)来使用可变速率着色可能是有利的。然而,在整个帧上使用可变速率着色可能导致大量明显的劣质渲染或具有不同内容质量的渲染。这种不同的渲染质量可能导致应用为其相应的内容制定特定的速率。此外,一些应用可以不利用可变速率着色特征,因为如果普遍应用,则可能会引入损坏。因此,自动或动态地启用可变速率着色可能是有利的。例如,自动或动态地启用可变速率着色以在GPU处渲染应用而不在输出内容中引入任何损坏可能是有利的。此外,利用动态可变速率着色来提高GPU的性能可能是有利的。
本公开的各方面可以自动或动态地启用可变速率着色。例如,本公开的各方面可以自动或动态地启用可变速率着色以在GPU处渲染应用而不在输出内容中引入任何损坏。此外,本公开的各方面可以利用动态可变速率着色来提高GPU的性能。本公开的动态可变速率着色也可以节省GPU处的功率或热量,例如因为减少了片段着色器的调用。
另外,本公开的各方面可在计算过程中利用动态可变速率着色来对帧数据执行颜色分析。例如,可以利用GPU的计算过程对帧数据执行颜色分析,以构造VRS图像用于后续帧。可以采用颜色分析来确定对比度高并且因此可能需要更高质量的VRS速率的区域。这可以极大地减少损坏量并且使得显示内容中的质量差异无法察觉。
在一些实例中,本公开的各方面可以利用帧的元数据来允许到VRS速率的转换。例如,根据帧和/或几何缓冲器的大小,分析帧数据可能花费大量时间。本公开的各方面可以改为读取帧的元数据(例如,带宽压缩元数据)并执行到VRS速率的简单转换(例如,查找表(LUT)转换)。例如,这是可行的,因为当压缩UBWC图块(即,具有少量细节的图块)时硬件已经辅助执行了颜色分析。
本公开的各方面可以自动获得一定数量的每秒帧数(fps)的增加,不会引入损坏并且不需要在计算过程中维持相同程度的性能来生成图像。例如,本公开的各方面可以在不引入损坏的情况下按照fps量(例如,约10fps)来提高总体性能,并且在计算过程中利用类似的性能来生成图像。在一些实例中,为了避免基于帧到帧差异的损坏,本公开的各方面可以引入滤波器内核,例如,最小滤波器内核。通过引入最小滤波器内核,本公开的各方面可以在计算过程中转换VRS图像中的数据。
另外,本公开的各方面可以使用GPU硬件来消除或减少计算过程。例如,可以通过添加将带宽压缩元数据转换成VRS图像的图形存储器(GMEM)系统解析来消除计算过程。从带宽压缩元数据到VRS图像的这种转换可以是查找表(LUT)转换。此外,本公开的各方面可以允许GPU硬件动态生成缓冲器数据。例如,在可见性过程期间可以由GPU硬件动态生成低分辨率z过程(LRZ)质量缓冲器数据,以在同一帧的渲染过程中使用。
在一些实例中,本公开的各方面可以利用先前帧数据来创建可变速率着色图像用于后续帧。本公开的各方面也可以在基于帧中的细节来选择速率的计算过程中执行颜色分析。此外,本公开的各方面可以(例如,基于启发法)确定将哪些渲染过程应用于VRS图像。例如,GPU驱动程序可以利用启发法来确定将哪些渲染过程应用于VRS图像。GPU驱动程序的这一确定可以针对主几何缓冲(Gbuffer)过程。该GPU驱动程序的这一确定也可以作为用户游戏配置文件来启用或通过应用检测来启用。
图5示出了根据本公开的各方面的动态可变速率着色过程的一个示例的示图500。如图5所示,示图500是包括第一帧510、第二帧520和VRS图像530的示例动态可变速率着色过程。更具体地,图5显示了可以对第一帧510执行颜色分析,其中该颜色分析是基于第一帧510中的图像执行的。此外,可以基于该颜色分析为第二帧520生成VRS图像530或频率图。此外,可以基于第二帧520的VRS图像530或频率图来渲染第二帧,其中第二帧520在第一帧510之后被渲染。
如图5所示,本公开的各方面可以利用先前帧数据(例如,第一帧510的数据)来创建VRS图像(例如,VRS图像530)用于后续帧(例如,第二帧520)。另外,如图5所示,本公开的各方面可以在基于第一帧510中的细节来选择VRS速率的计算过程中执行颜色分析。如图5中进一步所描绘,本公开的各方面可以利用GPU驱动程序来确定将哪些渲染过程应用于VRS图像530。本公开的各方面可以利用启发法来确定将哪些渲染过程应用于VRS图像530。
在一些方面,GPU处的计算过程可以读取整个帧的数据以执行颜色分析,例如对包含20MB或更多MB的大型帧。当压缩帧的图块(例如,UBWC图块)时,本公开的各方面可以利用GPU硬件来对帧执行该颜色分析。例如,计算过程可以读取图块的带宽压缩元数据并且将压缩的图块大小转换为VRS速率。这可能导致应用或游戏上的带宽大量减少,例如,带宽减少了96%。此外,计算过程可以读取带宽压缩元数据,这可能导致GPU的算术逻辑单元(ALU)处的复杂工作减少。计算过程也可以在另一应用单元(例如,特权较低的应用容器(LPAC))上运行带宽压缩元数据。
另外,在本公开的一些方面,与带宽压缩元数据硬件相关联的动态可变速率着色可以消除输出内容中的明显损坏。这可能导致按fps计的输出内容的大量增益,例如,在一些应用中10fps的增益。在一些实例中,将VRS图像应用于后续帧可能不会对输出内容造成任何新的明显损坏。例如,将VRS图像应用于后续帧可以通过在VRS图像生成中使用最小滤波器来解决当前帧与后续帧的任何差异,从而减少输出内容的明显损坏。
图6示出了根据本公开的各方面的动态可变速率着色过程的一个示例的示图600。如图6所示,示图600是包括可见性过程610、低分辨率z过程(LRZ)质量缓冲器620、渲染过程630和帧640的示例动态可变速率着色过程。更具体地,图6显示了可以在可见性过程610之后执行颜色分析,其中对LRZ质量缓冲器620执行该颜色分析。此外,本公开的各方面可以在渲染过程630之前启用LRZ质量缓冲器620。
如图6所示,本公开的各方面可以映射到某些VRS速率。例如,映射到VRS速率可以十分简单,使得GPU硬件可以通过从图形存储器(GMEM)到系统存储器(SMEM)的解析直接生成VRS图像。该GMEM到SMEM的解析可以消除对计算过程的需要。此外,如图6所描绘,GPU硬件可以在可见性过程610期间运行分析并且将VRS速率应用于渲染过程630。
在一些实例中,本公开的各方面可以利用没有特定压缩类型的压缩格式,例如,带宽压缩或包括元数据的任何压缩。此外,本公开的各方面可以利用某些压缩格式(例如,带宽压缩)的元数据来生成频率图用于其他应用(即,除VRS之外的应用)。
本公开的各方面可以包括数个不同的益处或优点。例如,本公开的各方面可以利用动态可变速率着色在GPU硬件利用率略微增加的同时提高GPU的性能。例如,本公开的各方面可以使GPU的性能增加15%到35%。另外,本公开的各方面可以节省GPU处的功率或热量,因为减少了片段着色器的调用。本公开的各方面可以针对应用自动发起,使得对输出内容造成的损坏最小。此外,本公开的各方面可以提升某些应用,以及提高对应用(例如,配置文件应用)的用户控制量。本公开的各方面也可以允许用户控制VRS速率的程度和对应的输出内容的损坏量。例如,一些用户可以选择较大的损坏量使得fps更高,而其他用户可以选择较小的损坏量使输出内容更清晰。
图7是根据本公开的一种或多种技术的图形处理的通信流程图700。如图7所示,示图700包括根据本公开的一种或多种技术的GPU组件702(例如,GPU流水线中的组件)、GPU组件704(例如,GPU流水线中的另一组件)和显示器或缓冲器706之间的示例通信。
在710处,GPU组件702可以基于应用数据生成至少一个第一帧或至少一个第二帧中的一者或多者。例如,基于从GPU组件704接收的应用数据712在GPU组件702处可以生成该至少一个第一帧和/或该至少一个第二帧。
在720处,GPU组件702可以基于应用数据选择该至少一个第一帧中的至少一个图像,其中颜色分析是基于所选择的至少一个图像执行的。在一些实例中,该至少一个图像可以与该至少一个第一帧的几何缓冲器相关联。此外,该应用数据可以对应于该至少一个第一帧的启发法。
在730处,GPU组件702可以压缩该至少一个第一帧的一个或多个图块,其中颜色分析是基于所压缩的一个或多个图块执行的。所压缩的一个或多个图块可以对应于该至少一个第一帧的压缩后的元数据。
在740处,GPU组件702可以对多个帧中的至少一个第一帧执行颜色分析,该颜色分析是基于该至少一个第一帧中的至少一个图像执行的。可以经由图形处理单元(GPU)处的计算过程或经由GPU处的硬件执行该颜色分析。
在750处,GPU组件702可以基于所执行的颜色分析生成该多个帧中的至少一个第二帧的频率图。在一些方面,该频率图可以是查找表(LUT)。例如,生成该频率图可以包括基于该颜色分析来生成查找表(LUT)。
在一些实例中,可以对该频率图进行滤波来解决该至少一个第一帧与该至少一个第二帧之间的差异。该至少一个第一帧与该至少一个第二帧之间的该差异可以对应于帧差异。此外,可以基于内核对该频率图进行滤波。该频率图也可以对应于可变速率着色(VRS)图像。
在760处,GPU组件702可以基于该至少一个第二帧的该频率图选择该至少一个第二帧的频率数据。该至少一个第二帧的该频率数据可以对应于一个或多个可变速率着色(VRS)速率。
在770处,GPU组件702可以基于该至少一个第二帧的该频率图渲染该至少一个第二帧,该至少一个第二帧在该至少一个第一帧之后被渲染。
在780处,GPU组件702可以向显示器或缓冲器传输该至少一个第二帧(例如,帧782),其中在基于该频率图渲染该至少一个第二帧之后传输该至少一个第二帧。例如,GPU组件702可以将帧782传输到显示器或缓冲器706。
图8是根据本公开的一种或多种技术的图形处理的示例方法的流程图800。该方法可以由GPU(例如,用于图形处理的装置)、另一图形处理器、GPU流水线、无线通信设备和/或结合图1至图7的示例使用的可以执行图形处理的任何装置来执行。
在808处,GPU可以对多个帧中的至少一个第一帧执行颜色分析,该颜色分析是基于该至少一个第一帧中的至少一个图像执行的,如结合图1至图7中的示例所描述的。例如,如图7的740中描述的,GPU组件702可以对多个帧中的至少一个第一帧执行颜色分析,该颜色分析是基于该至少一个第一帧中的至少一个图像执行的。此外,步骤808可以由图1中的处理单元120执行。可以经由图形处理单元(GPU)处的计算过程或经由GPU处的硬件执行该颜色分析。
在810处,GPU可以基于所执行的颜色分析生成该多个帧中的至少一个第二帧的频率图,如结合图1至图7中的示例所描述的。例如,如图7的750中描述的,GPU组件702可以基于所执行的颜色分析生成该多个帧中的至少一个第二帧的频率图。此外,步骤810可以由图1中的处理单元120执行。在一些方面,该频率图可以是查找表(LUT)。例如,生成该频率图可以包括基于该颜色分析来生成查找表(LUT)。
在一些实例中,可以对该频率图进行滤波来解决该至少一个第一帧与该至少一个第二帧之间的差异。该至少一个第一帧与该至少一个第二帧之间的该差异可以对应于帧差异。此外,可以基于内核对该频率图进行滤波。该频率图也可以对应于可变速率着色(VRS)图像。
在814处,GPU可以基于该至少一个第二帧的该频率图渲染该至少一个第二帧,该至少一个第二帧在该至少一个第一帧之后被渲染,如结合图1至图7中的示例所描述的。例如,如图7的770中描述的,GPU组件702可以基于该至少一个第二帧的该频率图渲染该至少一个第二帧,该至少一个第二帧在该至少一个第一帧之后被渲染。此外,步骤814可以由图1中的处理单元120执行。
图9是根据本公开的一种或多种技术的图形处理的示例方法的流程图900。该方法可以由GPU(例如,用于图形处理的装置)、另一图形处理器、GPU流水线、无线通信设备和/或结合图1至图7的示例使用的可以执行图形处理的任何装置来执行。
在902处,该GPU可以基于应用数据生成至少一个第一帧或至少一个第二帧中的一者或多者,如结合图1至图7中的示例所描述的。例如,如图7的710中描述的,GPU组件702可以基于应用数据生成至少一个第一帧或至少一个第二帧中的一者或多者。此外,步骤902可以由图1中的处理单元120执行。
在904处,GPU可以基于应用数据选择该至少一个第一帧中的至少一个图像,其中颜色分析是基于所选择的至少一个图像执行的,如结合图1至图7中的示例所描述的。例如,如图7的720中描述的,GPU组件702可以基于应用数据选择该至少一个第一帧中的至少一个图像,其中颜色分析是基于所选择的至少一个图像执行的。此外,步骤904可以由图1中的处理单元120执行。在一些实例中,该至少一个图像可以与该至少一个第一帧的几何缓冲器相关联。此外,该应用数据可以对应于该至少一个第一帧的启发法。
在906处,GPU可以压缩该至少一个第一帧的一个或多个图块,其中颜色分析是基于所压缩的一个或多个图块执行的,如结合图1至图7中的示例所描述的。例如,如图7的730中描述的,GPU组件702可以压缩该至少一个第一帧的一个或多个图块,其中颜色分析是基于所压缩的一个或多个图块执行的。此外,步骤906可以由图1中的处理单元120执行。所压缩的一个或多个图块可以对应于该至少一个第一帧的压缩后的元数据。
在908处,GPU可以对多个帧中的至少一个第一帧执行颜色分析,该颜色分析是基于该至少一个第一帧中的至少一个图像执行的,如结合图1至图7中的示例所描述的。例如,如图7的740中描述的,GPU组件702可以对多个帧中的至少一个第一帧执行颜色分析,该颜色分析是基于该至少一个第一帧中的至少一个图像执行的。此外,步骤908可以由图1中的处理单元120执行。可以经由图形处理单元(GPU)处的计算过程或经由GPU处的硬件执行该颜色分析。
在910处,GPU可以基于所执行的颜色分析生成该多个帧中的至少一个第二帧的频率图,如结合图1至图7中的示例所描述的。例如,如图7的750中描述的,GPU组件702可以基于所执行的颜色分析生成该多个帧中的至少一个第二帧的频率图。此外,步骤910可以由图1中的处理单元120执行。在一些方面,该频率图可以是查找表(LUT)。例如,生成该频率图可以包括基于该颜色分析来生成查找表(LUT)。
在一些实例中,可以对该频率图进行滤波来解决该至少一个第一帧与该至少一个第二帧之间的差异。该至少一个第一帧与该至少一个第二帧之间的该差异可以对应于帧差异。此外,可以基于内核对该频率图进行滤波。该频率图也可以对应于可变速率着色(VRS)图像。
在912处,GPU可以基于该至少一个第二帧的该频率图选择该至少一个第二帧的频率数据,如结合图1至图7中的示例所描述的。例如,如图7的760中描述的,GPU组件702可以基于该至少一个第二帧的该频率图选择该至少一个第二帧的频率数据。此外,步骤912可以由图1中的处理单元120执行。该至少一个第二帧的该频率数据可以对应于一个或多个可变速率着色(VRS)速率。
在914处,GPU可以基于该至少一个第二帧的该频率图渲染该至少一个第二帧,该至少一个第二帧在该至少一个第一帧之后被渲染,如结合图1至图7中的示例所描述的。例如,如图7的770中描述的,GPU组件702可以基于该至少一个第二帧的该频率图渲染该至少一个第二帧,该至少一个第二帧在该至少一个第一帧之后被渲染。此外,步骤914可以由图1中的处理单元120执行。
在916处,GPU可以向显示器或缓冲器传输该至少一个第二帧,其中在基于该频率图渲染该至少一个第二帧之后传输该至少一个第二帧,如结合图1至图7中的示例所描述的。例如,如图7的780中描述的,GPU组件702可以向显示器或缓冲器传输该至少一个第二帧,其中在基于该频率图渲染该至少一个第二帧之后传输该至少一个第二帧。此外,步骤916可以由图1中的处理单元120执行。
在配置中,提供了用于图形处理的方法或装置。该装置可以是GPU、图形处理器或可执行图形处理的某个其他处理器。在各方面,该装置可以是设备104内的处理单元120,或者可以是设备104或另一设备内的某个其他硬件。该装置(例如,处理单元120)可以包括用于对多个帧中的至少一个第一帧执行颜色分析的构件,该颜色分析是基于该至少一个第一帧中的至少一个图像执行的;用于基于所执行的颜色分析生成该多个帧中的至少一个第二帧的频率图的构件;用于基于该至少一个第二帧的该频率图渲染该至少一个第二帧的构件,该至少一个第二帧在该至少一个第一帧之后被渲染;用于基于应用数据选择该至少一个第一帧中的该至少一个图像的构件,其中该颜色分析是基于所选择的至少一个图像执行的;用于压缩该至少一个第一帧的一个或多个图块的构件,其中该颜色分析是基于所压缩的一个或多个图块执行的;用于基于该至少一个第二帧的该频率图选择该至少一个第二帧的频率数据的构件;用于基于应用数据生成该至少一个第一帧或该至少一个第二帧中的一者或多者的构件;以及用于向显示器或缓冲器传输该至少一个第二帧的构件,其中在基于该频率图渲染该至少一个第二帧之后传输该至少一个第二帧。
本文中所描述的主题可被实现以达成一个或多个益处或优点。例如,所描述的图形处理技术可以由GPU、图形处理器或可以执行图形处理以实现本文所描述的动态可变速率着色技术的一些其他处理器使用。与其他图形处理技术相比,这也可以以低成本实现。此外,本文的图形处理技术可以改进或加速数据处理或执行。此外,本文的图形处理技术可以改进资源或数据利用和/或资源效率。另外,本公开的各方面可以利用动态可变速率着色技术,以便提高存储器带宽效率和/或提高GPU处的处理速度。
应当理解的是,所公开的过程/流程图中框的特定顺序或层次只是对示例方法的例示。应当理解的是,基于设计偏好可以重新排列过程/流程图中框的特定顺序或层次。进一步地,一些框可以组合或者省略。所附的方法权利要求以样本顺序给出了各个框的元素,但是并不意味着受限于所给出的特定顺序或层次。
提供前面的描述是为了使本领域的任何技术人员能够实践本文描述的各个方面。对这些方面的各种修改对于本领域技术人员而言将是显而易见的,并且本文中所定义的通用原理可以应用于其他方面。因此,权利要求并不旨在限于本文所示出的各方面,而是应被赋予与权利要求的语言相一致的全部范围,其中除非特别说明,否则以单数形式对元素的引用并不旨在表示“一个且仅一个”,而是表示“一个或多个”。词语“示例性”在本文中用于意指“用作示例、实例、或例示”。本文中被描述为“示例性”的任何方面未必被解释为比其他方面优选或具有优势。
除非另有明确声明,否则术语“一些”指代一个或多个,并且在上下文没有另外规定的情况下,术语“或”可以被解释为“和/或”。诸如“A、B或C中的至少一者”、“A、B或C中的一者或多者”、“A、B和C中的至少一者”、“A、B和C中的一者或多者”以及“A、B、C或它们的任何组合”之类的组合包括A、B和/或C的任何组合,并且可以包括多个A、多个B或多个C。具体而言,诸如“A、B或C中的至少一者”、“A、B或C中的一者或多者”、“A、B和C中的至少一者”、“A、B和C中的一者或多者”以及“A、B、C或它们的任何组合”之类的组合可以是仅A、仅B、仅C、A和B、A和C、B和C或A和B和C,其中任何此类组合可包含A、B或C的一个或多个成员。贯穿本公开描述的各个方面的元素的对于本领域普通技术人员来说是已知的或稍后将是已知的所有结构和功能等同方案以引用方式明确地并入本文,并且旨在被权利要求所涵盖。此外,本文所公开的任何内容都不是旨在奉献给公众的,无论这种公开是否在权利要求中明确地记载。词语“模块”、“机构”、“元素”、“设备”等不能替代词语“构件”。因此,没有权利要求元素要被解释为功能构件,除非元素是明确地使用短语“用于......的构件”来记载的。
在一个或多个示例中,本文中所描述的功能可以在硬件、软件、固件或它们的任何组合中实现。例如,尽管贯穿本公开使用了术语“处理单元”,但是这样的处理单元可以在硬件、软件、固件或它们的任何组合中实现。如果在本文中描述的任何功能、处理单元、技术或其他模块以软件实现,则在本文中描述的功能、处理单元、技术或其他模块可以作为一个或多个指令或代码存储在计算机可读介质上或在计算机可读介质上传输。
根据本公开,在上下文没有另外规定的情况下术语“或”可被解读为“和/或”。另外,虽然诸如“一个或多个”或“至少一个”等短语可能已经用于本文所公开的一些特征而不是其他特征,但是没有使用这种语言的特征可以被解读为在上下文没有另外规定的情况下具有此类隐含含义。
在一个或多个示例中,本文中所描述的功能可以在硬件、软件、固件或它们的任何组合中实现。例如,尽管贯穿本公开使用了术语“处理单元”,但是这样的处理单元可以在硬件、软件、固件或它们的任何组合中实现。如果在本文中描述的任何功能、处理单元、技术或其他模块以软件实现,则在本文中描述的功能、处理单元、技术或其他模块可以作为一个或多个指令或代码存储在计算机可读介质上或在计算机可读介质上传输。计算机可读介质可包括计算机数据存储介质或通信介质,这些介质包括促成计算机程序从一地向另一地转移的任何介质。以此方式,计算机可读介质一般可对应于(1)非暂态的有形计算机可读存储介质或(2)诸如信号或载波之类的通信介质。数据存储介质可以是可由一台或多台计算机或一个或多个处理器访问以检索用于实现本公开所述技术的指令、代码和/或数据结构的任何可用介质。作为示例而非限定,此类计算机可读介质可包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储、磁盘存储或其他磁存储设备。如本文使用的磁盘和光盘包括:压缩光盘(CD)、激光光盘、光学光盘、数字多功能光盘(DVD)、软盘和蓝光光盘,其中磁盘通常以磁性方式再现数据,而光盘利用激光来以光学方式再现数据。上述的组合应当也被包括在计算机可读介质的范围内。计算机程序产品可以包括计算机可读介质。
代码可以由一个或多个处理器来执行,诸如一个或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、算术逻辑单元(ALU)、现场可编程逻辑阵列(FPGA)、或其他等效的集成的或分立的逻辑电路。相应地,如本文所使用的术语“处理器”可以指任何上述结构或适于实现本文所描述的技术的任何其他结构。同样,这些技术可以在一个或多个电路或逻辑元件中被完全实现。
本公开的技术可以在各种各样的设备或装置中实现,包括无线手机、集成电路(IC)或IC组(例如,芯片组)。本公开中描述了各种组件、模块或单元,以强调被配置为执行所公开技术的设备的功能方面,但不一定需要由不同的硬件单元来实现。相反,如上所述,各个单元可以被组合在任何硬件单元中,或者由可互操作的硬件单元的集合(包括如上所述的一个或多个处理器)结合合适的软件和/或固件来提供。相应地,如本文所使用的术语“处理器”可以指任何上述结构或适于实现本文所描述的技术的任何其他结构。同样,这些技术可以在一个或多个电路或逻辑元件中被完全实现。
以下方面仅是例示性的并且可以与本文描述的其他方面或教导内容相结合,而不受限制。
方面1是一种用于图形处理的装置,所述装置包括至少一个处理器,所述至少一个处理器耦接到存储器且被配置为:对多个帧中的至少一个第一帧执行颜色分析,所述颜色分析是基于所述至少一个第一帧中的至少一个图像执行的;基于所执行的颜色分析生成所述多个帧中的至少一个第二帧的频率图;以及基于所述至少一个第二帧的所述频率图渲染所述至少一个第二帧,所述至少一个第二帧在所述至少一个第一帧之后被渲染。
方面2是根据方面1所述的装置,其中所述至少一个处理器被进一步配置为:基于应用数据选择所述至少一个第一帧中的至少一个图像,其中所述颜色分析是基于所选择的至少一个图像执行的。
方面3是根据方面1和方面2中任一项所述的装置,其中所述至少一个图像与所述至少一个第一帧的几何缓冲器相关联。
方面4是根据方面1至方面3中任一项所述的装置,其中所述应用数据对应于所述至少一个第一帧的启发法。
方面5是根据方面1至方面4中任一项所述的装置,其中所述至少一个处理器被进一步配置为:压缩所述至少一个第一帧的一个或多个图块,其中基于所压缩的一个或多个图块执行所述颜色分析。
方面6是根据方面1至方面5中任一项所述的装置,其中所压缩的一个或多个图块对应于所述至少一个第一帧的压缩后的元数据。
方面7是根据方面1至方面6中任一项所述的装置,其中生成所述频率图包括:基于所述颜色分析生成查找表(LUT)。
方面8是根据方面1至方面7中任一项所述的装置,其中对所述频率图进行滤波来解决所述至少一个第一帧与所述至少一个第二帧之间的差异。
方面9是根据方面1至方面8中任一项所述的装置,其中所述至少一个第一帧与所述至少一个第二帧之间的所述差异对应于帧差异。
方面10是根据方面1至方面9中任一项所述的装置,其中基于内核对所述频率图进行滤波。
方面11是根据方面1至方面10中任一项所述的装置,其中所述频率图对应于可变速率着色(VRS)图像。
方面12是根据方面1至方面11中任一项所述的装置,其中所述至少一个处理器被进一步配置为:基于所述至少一个第二帧的所述频率图选择所述至少一个第二帧的频率数据。
方面13是根据方面1至方面12中任一项所述的装置,其中所述至少一个第二帧的所述频率数据对应于一个或多个可变速率着色(VRS)速率。
方面14是根据方面1至方面13中任一项所述的装置,其中所述至少一个处理器被进一步配置为:基于应用数据生成所述至少一个第一帧或所述至少一个第二帧中的一者或多者。
方面15是根据方面1至方面14中任一项所述的装置,其中所述颜色分析是经由图形处理单元(GPU)处的计算过程或经由所述GPU处的硬件执行的。
方面16是根据方面1至方面15中任一项所述的装置,其中所述至少一个处理器被进一步配置为:向显示器或缓冲器传输所述至少一个第二帧,其中在基于所述频率图渲染所述至少一个第二帧之后传输所述至少一个第二帧。
方面17是根据方面1至方面16中任一项所述的装置,所述装置还包括耦接到所述至少一个处理器的天线或收发器中的至少一者。
方面18是一种用于实现方面1至方面17中的任一项的图形处理的方法。
方面19是一种用于图形处理的装置,所述装置包括用于实现方面1至方面17中的任一项的构件。
方面20是一种存储计算机可执行代码的计算机可读介质,所述代码在由处理器执行时使所述至少一个处理器实现方面1至方面17中的任一项。
Claims (34)
1.一种用于图形处理的装置,所述装置包括:
存储器;和
至少一个处理器,所述至少一个处理器耦接到所述存储器并且被配置为:
对多个帧中的至少一个第一帧执行颜色分析,所述颜色分析是基于所述至少一个第一帧中的至少一个图像执行的;
基于所执行的颜色分析生成所述多个帧中的至少一个第二帧的频率图;以及
基于所述至少一个第二帧的所述频率图渲染所述至少一个第二帧,所述至少一个第二帧在所述至少一个第一帧之后被渲染。
2.根据权利要求1所述的装置,其中所述至少一个处理器被进一步配置为:
基于应用数据选择所述至少一个第一帧中的所述至少一个图像,其中所述颜色分析是基于所选择的至少一个图像执行的。
3.根据权利要求2所述的装置,其中所述至少一个图像与所述至少一个第一帧的几何缓冲器相关联。
4.根据权利要求2所述的装置,其中所述应用数据对应于所述至少一个第一帧的启发法。
5.根据权利要求1所述的装置,其中所述至少一个处理器被进一步配置为:
压缩所述至少一个第一帧的一个或多个图块,其中所述颜色分析是基于所压缩的一个或多个图块执行的。
6.根据权利要求5所述的装置,其中所压缩的一个或多个图块对应于所述至少一个第一帧的压缩后的元数据。
7.根据权利要求1所述的装置,其中生成所述频率图包括:基于所述颜色分析生成查找表(LUT)。
8.根据权利要求1所述的装置,其中对所述频率图进行滤波来解决所述至少一个第一帧与所述至少一个第二帧之间的差异。
9.根据权利要求8所述的装置,其中所述至少一个第一帧与所述至少一个第二帧之间的所述差异对应于帧差异。
10.根据权利要求8所述的装置,其中基于内核对所述频率图进行滤波。
11.根据权利要求1所述的装置,其中所述频率图对应于可变速率着色(VRS)图像。
12.根据权利要求1所述的装置,其中所述至少一个处理器被进一步配置为:
基于所述至少一个第二帧的所述频率图选择所述至少一个第二帧的频率数据。
13.根据权利要求12所述的装置,其中所述至少一个第二帧的所述频率数据对应于一个或多个可变速率着色(VRS)速率。
14.根据权利要求1所述的装置,其中所述至少一个处理器被进一步配置为:
基于应用数据生成所述至少一个第一帧或所述至少一个第二帧中的一者或多者。
15.根据权利要求1所述的装置,其中所述颜色分析是经由图形处理单元(GPU)处的计算过程或经由所述GPU处的硬件执行的。
16.根据权利要求1所述的装置,所述装置还包括耦接到所述至少一个处理器的天线或收发器中的至少一者,其中所述至少一个处理器被进一步配置为:
向显示器或缓冲器传输所述至少一个第二帧,其中在基于所述频率图渲染所述至少一个第二帧之后传输所述至少一个第二帧。
17.一种图形处理的方法,所述方法包括:
对多个帧中的至少一个第一帧执行颜色分析,所述颜色分析是基于所述至少一个第一帧中的至少一个图像执行的;
基于所执行的颜色分析生成所述多个帧中的至少一个第二帧的频率图;以及
基于所述至少一个第二帧的所述频率图渲染所述至少一个第二帧,所述至少一个第二帧在所述至少一个第一帧之后被渲染。
18.根据权利要求17所述的方法,所述方法还包括:
基于应用数据选择所述至少一个第一帧中的所述至少一个图像,其中所述颜色分析是基于所选择的至少一个图像执行的。
19.根据权利要求18所述的方法,其中所述至少一个图像与所述至少一个第一帧的几何缓冲器相关联。
20.根据权利要求18所述的方法,其中所述应用数据对应于所述至少一个第一帧的启发法。
21.根据权利要求17所述的方法,所述方法还包括:
压缩所述至少一个第一帧的一个或多个图块,其中所述颜色分析是基于所压缩的一个或多个图块执行的。
22.根据权利要求21所述的方法,其中所压缩的一个或多个图块对应于所述至少一个第一帧的压缩后的元数据。
23.根据权利要求17所述的方法,其中生成所述频率图包括:基于所述颜色分析生成查找表(LUT)。
24.根据权利要求17所述的方法,其中对所述频率图进行滤波来解决所述至少一个第一帧与所述至少一个第二帧之间的差异。
25.根据权利要求24所述的方法,其中所述至少一个第一帧与所述至少一个第二帧之间的所述差异对应于帧差异。
26.根据权利要求24所述的方法,其中基于内核对所述频率图进行滤波。
27.根据权利要求17所述的方法,其中所述频率图对应于可变速率着色(VRS)图像。
28.根据权利要求17所述的方法,所述方法还包括:
基于所述至少一个第二帧的所述频率图选择所述至少一个第二帧的频率数据。
29.根据权利要求28所述的方法,其中所述至少一个第二帧的所述频率数据对应于一个或多个可变速率着色(VRS)速率。
30.根据权利要求17所述的方法,所述方法还包括:
基于应用数据生成所述至少一个第一帧或所述至少一个第二帧中的一者或多者。
31.根据权利要求17所述的方法,其中所述颜色分析是经由图形处理单元(GPU)处的计算过程或经由所述GPU处的硬件执行的。
32.根据权利要求17所述的方法,所述方法还包括:
向显示器或缓冲器传输所述至少一个第二帧,其中在基于所述频率图渲染所述至少一个第二帧之后传输所述至少一个第二帧。
33.一种用于图形处理的装置,所述装置包括:
用于对多个帧中的至少一个第一帧执行颜色分析的构件,所述颜色分析是基于所述至少一个第一帧中的至少一个图像执行的;
用于基于所执行的颜色分析生成所述多个帧中的至少一个第二帧的频率图的构件;和
用于基于所述至少一个第二帧的所述频率图渲染所述至少一个第二帧的构件,所述至少一个第二帧在所述至少一个第一帧之后被渲染。
34.一种存储用于图形处理的计算机可执行代码的计算机可读介质,所述代码在由处理器执行时使所述处理器:
对多个帧中的至少一个第一帧执行颜色分析,所述颜色分析是基于所述至少一个第一帧中的至少一个图像执行的;
基于所执行的颜色分析生成所述多个帧中的至少一个第二帧的频率图;以及
基于所述至少一个第二帧的所述频率图渲染所述至少一个第二帧,所述至少一个第二帧在所述至少一个第一帧之后被渲染。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/482,296 US11727631B2 (en) | 2021-09-22 | 2021-09-22 | Dynamic variable rate shading |
US17/482,296 | 2021-09-22 | ||
PCT/US2022/041571 WO2023048892A1 (en) | 2021-09-22 | 2022-08-25 | Dynamic variable rate shading |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117980956A true CN117980956A (zh) | 2024-05-03 |
Family
ID=83598591
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280063472.4A Pending CN117980956A (zh) | 2021-09-22 | 2022-08-25 | 动态可变速率着色 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11727631B2 (zh) |
KR (1) | KR20240044504A (zh) |
CN (1) | CN117980956A (zh) |
TW (1) | TW202318332A (zh) |
WO (1) | WO2023048892A1 (zh) |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8258359B2 (en) * | 2010-04-20 | 2012-09-04 | Fina Technology, Inc. | Alkylation of toluene to form styrene and ethylbenzene |
US20150304640A1 (en) * | 2012-12-20 | 2015-10-22 | Dolby Laboratories Licensing Corporation | Managing 3D Edge Effects On Autostereoscopic Displays |
US9104175B2 (en) * | 2013-03-08 | 2015-08-11 | Christie Digital Systems Usa, Inc. | Light shaping for imaging using holography |
EP3446551B1 (en) * | 2016-04-22 | 2019-08-14 | Signify Holding B.V. | Controlling a lighting system |
KR20230149347A (ko) * | 2017-03-17 | 2023-10-26 | 매직 립, 인코포레이티드 | 컬러 가상 콘텐츠 워핑을 갖는 혼합 현실 시스템 및 이를 사용하여 가상 콘텐츠를 생성하는 방법 |
US11798196B2 (en) * | 2020-01-08 | 2023-10-24 | Apple Inc. | Video-based point cloud compression with predicted patches |
US11302287B1 (en) * | 2020-11-10 | 2022-04-12 | Microsoft Technology Licensing, Llc | Color correction in computing systems for color vision deficiency |
-
2021
- 2021-09-22 US US17/482,296 patent/US11727631B2/en active Active
-
2022
- 2022-08-25 WO PCT/US2022/041571 patent/WO2023048892A1/en active Application Filing
- 2022-08-25 KR KR1020247008884A patent/KR20240044504A/ko unknown
- 2022-08-25 TW TW111132029A patent/TW202318332A/zh unknown
- 2022-08-25 CN CN202280063472.4A patent/CN117980956A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
TW202318332A (zh) | 2023-05-01 |
US20230086288A1 (en) | 2023-03-23 |
US11727631B2 (en) | 2023-08-15 |
KR20240044504A (ko) | 2024-04-04 |
WO2023048892A1 (en) | 2023-03-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11481865B2 (en) | Methods and apparatus for tensor object support in machine learning workloads | |
CN116391205A (zh) | 用于图形处理单元混合渲染的装置和方法 | |
WO2022076125A1 (en) | Methods and apparatus for histogram based and adaptive tone mapping using a plurality of frames | |
US11037358B1 (en) | Methods and apparatus for reducing memory bandwidth in multi-pass tessellation | |
WO2022093462A1 (en) | Fast incremental shared constants | |
CN116348904A (zh) | 用simo方法优化gpu内核以用于利用gpu高速缓存进行缩小 | |
US11080928B2 (en) | Methods and apparatus for visibility stream management | |
US11727631B2 (en) | Dynamic variable rate shading | |
US11869115B1 (en) | Density driven variable rate shading | |
US11893654B2 (en) | Optimization of depth and shadow pass rendering in tile based architectures | |
US20220172695A1 (en) | Methods and apparatus for plane planning for overlay composition | |
CN117980955A (zh) | 与样本空间相关联的聚焦分箱渲染 | |
WO2023224865A1 (en) | Run-time mechanism for optimal shader | |
EP4201069A2 (en) | Image-space function transmission | |
TW202134996A (zh) | 用於減少渲染資訊的傳輸的方法和裝置 | |
CN117501302A (zh) | 常数数据存储 | |
WO2023177542A1 (en) | Compatible compression for different types of image views | |
CN117616398A (zh) | Gpu范围界定中的性能开销优化 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination |