CN112655025A - 处理中自适应中央窝渲染 - Google Patents
处理中自适应中央窝渲染 Download PDFInfo
- Publication number
- CN112655025A CN112655025A CN201980058083.0A CN201980058083A CN112655025A CN 112655025 A CN112655025 A CN 112655025A CN 201980058083 A CN201980058083 A CN 201980058083A CN 112655025 A CN112655025 A CN 112655025A
- Authority
- CN
- China
- Prior art keywords
- bins
- rendering
- processing unit
- frame
- low priority
- 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
- 238000009877 rendering Methods 0.000 title claims abstract description 316
- 238000012545 processing Methods 0.000 title claims description 444
- 230000003044 adaptive effect Effects 0.000 title description 8
- 238000000034 method Methods 0.000 claims abstract description 127
- 230000015654 memory Effects 0.000 claims description 120
- 238000004891 communication Methods 0.000 claims description 36
- 230000008569 process Effects 0.000 description 18
- 230000006870 function Effects 0.000 description 17
- 238000010586 diagram Methods 0.000 description 14
- 238000003860 storage Methods 0.000 description 14
- 230000002093 peripheral effect Effects 0.000 description 9
- 230000000007 visual effect Effects 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 238000004590 computer program Methods 0.000 description 4
- 230000003190 augmentative effect Effects 0.000 description 3
- 230000004438 eyesight Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 239000002131 composite material Substances 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000004424 eye movement Effects 0.000 description 2
- 238000002156 mixing Methods 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 102100038126 Tenascin Human genes 0.000 description 1
- 108010008125 Tenascin Proteins 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000007795 chemical reaction product Substances 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000012432 intermediate storage Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000005043 peripheral vision Effects 0.000 description 1
- 239000002243 precursor Substances 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- 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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/011—Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
- G06F3/013—Eye tracking input arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Human Computer Interaction (AREA)
- Image Generation (AREA)
- Controls And Circuits For Display Device (AREA)
Abstract
提供了一种方法、计算机可读介质和装置。该装置可以被配置为接收指示中央窝区域的信息。该装置可以被配置为基于指示中央窝区域的信息来识别高优先级分格和低优先级分格。该装置可以被配置为确定针对帧的渲染时间分配。该装置可以被配置为基于用于渲染高优先级分格和低优先级分格的时间量来确定将会超过针对帧的渲染时间分配。该装置可以被配置为基于对将会超过针对帧的渲染时间分配的确定,以第一质量而不是第二质量来渲染所述低优先级分格中的至少一个低优先级分格。
Description
本申请要求享有于2018年9月13日提交的美国非临时专利申请16/130,910的益处,其全部内容通过引用的方式并入。
技术领域
本公开内容总体上涉及图形处理。
背景技术
计算设备通常利用图形处理单元(GPU)来加速用于显示的对图形数据的渲染。这样的计算设备可以包括例如计算机工作站、诸如所谓的智能电话的移动电话、嵌入式系统、个人计算机、平板计算机和视频游戏机。GPU执行包括多个处理级的图形处理管线,这些处理级一起操作以执行图形处理命令/指令并输出帧。中央处理单元(CPU)可通过向GPU发出一个或多个图形处理命令/指令来控制GPU的操作。现代CPU通常能够同时执行多个应用程序,每个应用程序可能需要在执行期间利用GPU。提供用于在显示器上视觉呈现的内容的设备通常包括图形处理单元(GPU)。
GPU将图形内容的帧渲染到帧缓冲器中以用于显示。该经渲染帧可在显示之前由显示处理单元从帧缓冲器读取并处理。例如,显示处理单元可以被配置为对由GPU渲染以供显示的一个或多个帧执行处理,且随后将经处理的帧输出到显示器。包括CPU、GPU和显示处理单元的管线可被称为显示处理管线。
发明内容
以下呈现一个或多个方面的简化概要以提供对这些方面的基本理解。本概要不是对所有预期方面的广泛概述,既不旨在标识所有方面的关键或重要因素,也不是描述任何或全部方面的范围。其唯一目的是以简化形式呈现一个或多个方面的一些概念,作为稍后呈现的更详细描述的序言。
在本公开内容的一方面,提供了一种方法、计算机可读介质和装置。该装置可以被配置为接收指示中央窝(fovea)区域的信息。该装置可以被配置为使用基于分格的渲染来渲染帧。该装置可以被配置为将帧划分为多个分格(bin)。该装置可以被配置为基于指示中央窝区域的信息来将所述多个分格中的一个或多个分格识别为高优先级分格。该装置可以被配置为基于指示中央窝区域的信息来将所述多个分格中的一个或多个分格识别为低优先级分格。该装置可以被配置为在渲染所述一个或多个低优先级分格之前渲染所述一个或多个高优先级分格。
在本公开内容的一方面,提供了一种方法、计算机可读介质和装置。该装置可以被配置为接收指示中央窝区域的信息。该装置可以被配置为将帧划分为多个分格。该装置可以被配置为基于指示中央窝区域的信息来确定分格布局,以将所述多个分格中的每个相应分格分类为高优先级分格或低优先级分格。该装置可以被配置为使用针对所述多个分格的所述分格布局来渲染所述帧的图形内容。
在本公开内容的一方面,提供了一种方法、计算机可读介质和装置。该装置可以被配置为接收指示中央窝区域的信息。该装置可以被配置为使用基于分格的渲染来渲染帧。该装置可以被配置为基于指示中央窝区域的信息来识别高优先级分格和低优先级分格。该装置可以被配置为确定针对所述帧的渲染时间分配。该装置可以被配置为基于用于渲染高优先级分格和低优先级分格的时间量来确定将会超过针对所述帧的渲染时间分配。该装置可以被配置为基于对将会超过针对所述帧的渲染时间分配的确定,以第一质量而不是第二质量来渲染所述低优先级分格中的至少一个低优先级分格。
在附图和以下说明书中阐述本公开内容的一个或多个示例的细节。本公开内容的其他特征、目的和优点根据说明书和附图以及权利要求将是显而易见的。
附图说明
图1A是示出根据本公开内容的技术的示例内容生成和译码系统的方框图。
图1B是示出根据本公开内容的技术的在图1A中所示的设备的组件与显示器之间的示例配置的方框图。
图1C是示出根据本公开内容的技术的在图1A中所示的设备的组件与显示器之间的示例配置的方框图。
图2A-2B示出了根据本公开内容的技术的示例流程图。
图3示出了根据本公开内容的技术的示例方法的示例流程图。
图4示出了根据本公开内容的技术的示例方法的示例流程图。
图5示出了根据本公开内容的技术的示例方法的示例流程图。
图6A-E示出了根据本公开内容的技术的具有与多个分格重叠的中央窝区域的示例帧。
图7示出了根据本公开内容的技术的关于是否基于中央窝参数执行动态调整的确定的示例。
具体实施方式
下文参考附图更全面地描述系统、装置、计算机程序产品和方法的各个方面。然而,本公开内容可以以许多不同的形式来实施,并且不应被解释为限于贯穿本公开内容呈现的任何特定结构或功能。相反,提供这些方面是为了使本公开内容透彻和完整,并且将向本领域技术人员充分传达本公开内容的范围。基于本文的教导,本领域技术人员应当理解,本公开内容的范围旨在覆盖本文公开的系统、装置、计算机程序产品和方法的任何方面,无论是独立于本公开内容的其他方面实现还是与本公开内容的其他方面组合实现。例如,可以使用本文阐述的任何数量的方面来实现装置或者实践方法。另外,本公开内容的范围旨在覆盖使用附加于或不同于本文所阐述的本公开内容的各方面的其他结构、功能或结构和功能来实践的这种装置或方法。本文公开的任何方面可以由权利要求的一个或多个要素来体现。
尽管本文描述了各个方面,但是这些方面的许多变化和排列都属于本公开内容的范围内。虽然提及了本公开内容的方面的一些潜在益处和优点,但是本公开内容的范围不旨在限于特定益处、用途或目的。相反,本公开内容的各方面旨在广泛地应用于不同的无线技术、系统配置、网络和传输协议,其中的一些在附图和以下描述中通过示例来说明。具体实施方式和附图仅仅是对本公开内容的说明而不是限制,本公开内容的范围由所附权利要求及其等同变换限定。
现在将参考各种装置和方法来呈现若干方面。将借助各种框、组件、电路、过程、算法等(统称为“要素”)在以下具体实施方式中描述并在附图中示出这些装置和方法。这些要素可以使用电子硬件、计算机软件或其任何组合来实现。这些要素是被实施为硬件还是软件取决于特定应用和施加在整个系统上的设计约束。
作为示例,要素或要素的任何部分或要素的任何组合可以被实施为包括一个或多个处理器(其也可以被称为处理单元)的“处理系统”。处理器的示例包括微处理器、微控制器、图形处理单元(GPU)、通用GPU(GPGPU)、中央处理单元(CPU)、应用处理器、数字信号处理器(DSP)、精简指令集计算(RISC)处理器、片上系统(SoC)、基带处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、可编程逻辑器件(PLD)、状态机、门控逻辑、分立硬件电路、以及被配置为执行本公开内容通篇所描述的各种功能的其它适合的硬件。处理系统中的一个或多个处理器可以执行软件。软件应被广义地解释为表示指令、指令集、代码、代码段、程序代码、程序、子程序、软件组件、应用程序、软件应用程序、软件包、例程、子例程、对象、可执行程序、执行线程、过程、功能等等,无论被称为软件、固件、中间件、微代码、硬件描述语言或其他的。术语应用程序可以指软件。如本文所述,一种或多种技术可以指被配置为执行一个或多个功能的应用程序(即,软件)。在这样的示例中,应当理解,应用程序可以存储在存储器(例如,处理器的片上存储器、系统存储器或任何其他存储器)上。本文描述的硬件,例如处理器,可以被配置为执行应用程序。例如,应用程序可以被描述为包括代码,当由硬件执行时,所述代码使得硬件执行本文描述的一种或多种技术。作为示例,硬件可以从存储器存取代码并且执行从存储器存取的代码以执行本文描述的一种或多种技术。在一些示例中,在本公开内容中标识了组件。在这样的示例中,组件可以是硬件、软件或其组合。这些组件可以是单独的组件或单个组件的子组件。
因此,在本文描述的一个或多个示例中,所述的功能可以以硬件、软件、或其任何组合来实施。如果以软件来实施,则所述功能可以作为一个或多个指令或代码存储或编码在计算机可读介质上。计算机可读介质包括计算机储存介质。储存介质可以是可由计算机访问的任何可用介质。示例性而非限制性地,这样的计算机可读介质可以包括随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程ROM(EEPROM)、光盘存储设备、磁盘存储设备或其它磁存储设备、上述类型的计算机可读介质的组合、或者可以用于以可由计算机存取的指令或数据结构的形式存储计算机可执行代码的任何其它介质。
如本文所使用的,术语“内容”的示例可以指图形内容或显示内容。在一些示例中,如本文所使用的,术语“图形内容”可以指由被配置为执行图形处理的处理单元生成的内容。例如,术语“图形内容”可以指由图形处理管线的一个或多个进程生成的内容。在一些示例中,如本文所使用的,术语“图形内容”可以指由图形处理单元生成的内容。在一些示例中,如本文所使用的,术语“显示内容”可以指由被配置为执行显示处理的处理单元生成的内容。在一些示例中,如本文所使用的,术语“显示内容”可以指由显示处理单元生成的内容。图形内容可以被处理以成为显示内容。例如,图形处理单元可以将图形内容(诸如帧)输出到缓冲器(其可以被称为帧缓冲器)。显示处理单元可以读取图形内容,例如来自缓冲器的一个或多个帧,并且对其执行一种或多种显示处理技术以生成显示内容。例如,显示处理单元可以被配置为对一个或多个经渲染的层执行合成以生成帧。作为另一示例,显示处理单元可被配置为将两个或更多个层组成、混合或以其他方式组合在一起成为单个帧。显示处理单元可以被配置为对帧执行缩放(例如,按比例放大或按比例缩小)。在一些示例中,帧可以指层。在其他示例中,帧可以指已经被混合在一起以形成帧的两个或更多个层(即,帧包括两个或更多个层,并且包括两个或更多个层的帧可以随后被混合)。
如本文所引用的,第一组件(例如,GPU)可以向第二组件(例如,显示处理单元)提供诸如帧之类的内容。在一些示例中,第一组件可以通过将内容存储在第二组件可访问的存储器中来向第二组件提供内容。在这样的示例中,第二组件可以被配置为读取由第一组件存储在存储器中的内容。在其他示例中,第一组件可以在没有任何中间组件(例如,没有存储器或另一组件)的情况下向第二组件提供内容。在这样的示例中,第一组件可以被描述为直接向第二组件提供内容。例如,第一组件可将内容输出到第二组件,并且第二组件可被配置为将从第一组件接收的内容存储在诸如缓冲器之类的存储器中。
低时延渲染用于舒适的虚拟现实(VR)和增强现实(AR)体验。以低的或不一致的帧速率进行渲染的VR系统可能导致用户身体上不适。不能以足够低的时延进行渲染的AR系统可能不能令人信服地锚定所渲染的内容。VR和AR系统通常是资源受限的,并且可以根据渲染期限来渲染内容。渲染期限可以与正在为其渲染内容的显示器的显示器刷新率相关联。在被渲染之后,可在被提供到显示器以供在其上呈现之前进一步处理(例如,通过显示处理单元)经渲染内容(例如,经渲染帧)。达不到渲染期限引入了不期望的时延,因为正被渲染的内容没有准备好下一次显示刷新,这可能导致帧速率降低。因此,所显示的内容可能由于帧速率降低而卡顿。
根据本文描述的技术,处理单元可以被配置为自适应地渲染内容以减少或防止出现达不到渲染期限的情况。AR/VR系统的处理单元可以被配置为利用使用中央窝信息的中央窝渲染,其中基于内容、设备属性和用户关注面积以变化的细节级别来渲染帧的各个区域。根据本文描述的技术,可利用中央窝信息来对帧上的区域进行优先级排序,使得可实施低优先级区域中的质量损失,以便及时完成帧渲染以用于下一次显示刷新。处理单元可以被配置为执行分格,作为分格操作模式的一部分。在分格操作模式中,处理单元可以被配置为基于中央窝信息对渲染进行优先级排序,确定分配给每个分格的渲染时间,且动态地调整工作负荷以加速渲染。中央窝信息可以指示帧的哪些区域是高优先级,哪些区域是低优先级。高优先级分格(例如,靠近中央窝区域的分格)可以以高质量(例如,高分辨率)渲染,并且在任何低优先级分格(例如,更远离中央窝区域的分格)之前渲染。低优先级分格是可以以比高优先级分格的质量(例如,分辨率)低的质量渲染的分格,或者根本不渲染的分格。例如,如果即将无法满足帧的渲染期限,则可以牺牲低优先级分格的质量,使得以低于预期质量的质量来渲染低优先级分格。低优先级分格的质量的降低有助于降低和/或防止由处理单元不能即时地渲染内容所引起的时延,同时使对用户的影响最小,因为用户的中央窝视觉中的区域不受影响,而可以降低或丢弃外围视觉中的区域。
图1A是示出被配置为执行本公开内容的一种或多种技术的示例性设备100的方框图。设备100包括被配置为执行本公开内容的一种或多种技术的显示处理管线102。根据本文描述的技术,显示处理管线102可被配置为生成预定用于显示的内容。显示处理管线102可以通信地耦合到显示器103。在图1A的示例中,显示器103是设备100的显示器。然而,在其它示例中,显示器103可以是在设备100外部的显示器(如图1中以显示器103'示出)。对显示器103的引用可以指的是显示器103或显示器103'(即,设备的显示器或设备外部的显示器)。
在显示器103不在设备100外部的示例中,设备的组件可以被配置为将命令和/或内容发送或以其它方式提供到显示器103以供在其上呈现。在显示器103在设备100外部的示例中,设备100可以被配置为将命令和/或内容发送或以其它方式提供到显示器103以供在其上呈现。如本文所使用的,“命令”、“指令”和“代码”可以互换使用。在一些示例中,设备100的显示器103可以代表被配置为将内容投影到诸如观看介质(例如,屏幕、墙壁或任何其他观看介质)上的显示投影仪。在一些示例中,显示器103可以包括以下中的一个或多个:液晶显示器(LCD)、等离子显示器、有机发光二极管(OLED)显示器、投影显示设备、增强现实(AR)显示设备、虚拟现实(VR)显示设备、头戴式显示器、可穿戴显示器、触摸屏显示器或任何其他类型的显示器。
在一些示例中,显示器103表示第一显示器和第二显示器,其中,第一显示器用于呈现用于用户左眼的显示内容,并且第二显示器用于呈现用于用户右眼的显示内容。在这样的示例中,第一显示器和第二显示器可以分别被称为左眼显示器和右眼显示器。在一些示例中,显示器103可以是视频模式显示器。在其他示例中,显示器103可以是命令模式显示器。
显示处理管线102可包括被配置为执行本公开内容的一种或多种技术的一个或多个组件(或电路)。如本文所使用的,对被配置为执行任何功能、技术等的显示处理管线的引用指的是显示处理管线的一个或多个组件被配置为形成这样的功能、技术等。
在图1A的示例中,显示处理管线102包括第一处理单元104、第二处理单元106、以及第三处理单元108。在一些示例中,第一处理单元104可以被配置为执行一个或多个应用程序120,第二处理单元106可以被配置为执行图形处理,且第三处理单元108可以被配置为执行显示处理。在这样的示例中,第一处理单元104可以是中央处理单元(CPU),第二处理单元106可以是图形处理单元(GPU)或通用GPU(GPGPU),且第三处理单元108可以是显示处理单元,其也可被称为显示处理器。在其它示例中,第一处理单元104、第二处理单元106和第三处理单元108可以各自是被配置为执行针对每个处理单元描述的一个或多个特征的任何处理单元。
第一处理单元可以包括内部存储器105。第二处理单元106可以包括内部存储器107。在一些示例中,内部存储器107可以被称为GMEM。第三处理单元108可以包括内部存储器109。显示处理管线102的处理单元104、106和108中的一个或多个可以通信地耦合到存储器110。存储器110可在显示处理管线102的处理单元104、106和108中的一个或多个的外部。例如,存储器110可以是系统存储器。系统存储器可以是设备100的系统存储器,其可由设备100的一个或多个组件访问。例如,第一处理单元104可以被配置为从存储器110读取和/或向其写入。第二处理单元106可以被配置为从存储器110读取和/或向其写入。第三处理单元108可以被配置为从存储器110读取和/或向其写入。第一处理单元104、第二处理单元106和第三处理单元108可以通过总线通信地耦合到存储器110。在一些示例中,显示处理管线102的一个或多个组件可以通过总线或不同的连接彼此通信地耦合。在其它示例中,系统存储器可以是设备100外部的存储器。
内部存储器105、内部存储器107、内部存储器109和/或存储器110可以包括一个或多个易失性或非易失性存储器或存储设备。在一些示例中,内部存储器105、内部存储器107、内部存储器109和/或存储器110可以包括随机存取存储器(RAM)、静态RAM(SRAM)、动态RAM(DRAM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、闪存、磁数据介质或光存储介质、或任何其他类型的存储器。
根据一些示例,内部存储器105、内部存储器107、内部存储器109和/或存储器110可以是非暂时性存储介质。术语“非暂时性”可以指示不在载波或传播信号中体现存储介质。然而,术语“非暂时性”不应被解释为意味着内部存储器105、内部存储器107、内部存储器109和/或存储器110是不可移动的或其内容是静态的。作为一个示例,存储器110可以从设备100移除并移动到另一设备。作为另一示例,存储器110可以不是可从设备100移除的。
在一些示例中,第一处理单元104可以被配置为执行本文针对第二处理单元106描述的任何技术。在这样的示例中,显示处理管线102可仅包括第一处理单元104和第三处理单元108。可替换地,显示处理管线102可仍包括第二处理单元106,但本文针对第二处理单元106所描述的技术中的一个或多个可取而代之由第一处理单元104执行。
在一些示例中,第一处理单元104可以被配置为执行本文针对第三处理单元108描述的任何技术。在这样的示例中,显示处理管线102可仅包括第一处理单元104和第二处理单元106。可替换地,显示处理管线102可仍包括第三处理单元108,但本文针对第三处理单元108所描述的技术中的一个或多个可取而代之由第一处理单元104执行。
在一些示例中,第二处理单元106可以被配置为执行本文针对第三处理单元108描述的任何技术。在这样的示例中,显示处理管线102可仅包括第一处理单元104和第二处理单元106。可替换地,显示处理管线102可仍包括第三处理单元108,但本文针对第三处理单元108所描述的技术中的一个或多个可取而代之由第二处理单元106执行。
第一处理单元104可以被配置为执行一个或多个应用程序120。第一处理单元104可以被配置为向第二处理单元106提供一个或多个命令/指令(例如,绘制指令),以使第二处理单元106生成图形内容。如本文所使用的,“命令”、“指令”和“代码”可以互换使用。例如,一个或多个应用程序120中的应用程序的执行可以使得将与该应用程序相对应的一个或多个命令/指令(例如,绘制指令)提供给第二处理单元106以生成用于该应用程序的图形内容。在一些示例中,应用程序可以是存储在内部存储器105中的软件(例如,代码)。在其他示例中,应用程序可以是存储在存储器110或者第一处理单元104可访问的另一存储器中的软件。在其它示例中,应用程序可以是存储在多个存储器中的软件,诸如内部存储器105和存储器110。
第二处理单元106可以被配置为根据本文描述的技术执行图形处理,例如在图形处理管线111中。换句话说,第二处理单元106可以被配置为执行本文针对第二处理单元106描述的任何过程。例如,第二处理单元106可以被配置为使用基于图块(tile)的渲染(也称为“分格(binning)”)、直接渲染、自适应渲染、中央窝渲染、空间抗混叠渲染和/或任何图形处理技术来生成图形内容。
在基于图块的渲染中,第二处理单元106可以被配置为将缓冲器(例如,帧缓冲器、帧)划分成被称为分格或图块的子区域。例如,如果内部存储器107能够存储N个存储器单元的数据(其中N为正整数),那么可将场景划分成分格,使得每个分格中所含有的像素数据小于或等于N个存储器单元。以此方式,第二处理单元106可通过将场景划分成可分别地渲染到内部存储器107中的分格,来对场景进行渲染,将每个经渲染分格从内部存储器107存储到帧缓冲器或帧(其可位于存储器110中),且针对场景的每个分格重复该渲染和存储。应理解,经渲染帧是经渲染分格的组合。将分格渲染到内部存储器107中可包括执行命令以将相关联分格中的图元渲染到内部存储器107中。存储经渲染帧(即,对应于帧的经渲染分格)的缓冲器可称为帧缓冲器。帧缓冲器被分配有存储器,其保存可由一个或多个其它组件(例如第三处理单元108)读取的一个或多个经渲染帧。因此,对将帧缓冲器划分为子区域的引用指的是配置第二处理单元106以逐个分格地渲染对应于帧的图形内容。
如本文所描述的,在分格遍次(pass)期间界定的分格可以是经渲染帧(其可称为经渲染场景)的分格/图块的同义词。例如,每个分格可表示经渲染帧的一部分。构成场景的分格可各自与存储器中存储包括在每个相应分格中的图形内容的分格相关联。分格可以是存储器的存储经渲染帧的一部分的部分。
基于图块的渲染通常包括两个遍次:分格遍次和渲染遍次。在分格遍次期间,第二处理单元106可以被配置为接收并处理用于特定场景的绘制命令,以准备将该场景渲染为帧。绘制命令可以包括一个或多个图元。图元可具有一个或多个顶点。第二处理单元106可以被配置为针对用于特定场景的绘制命令中的每个图元的每个顶点,生成屏幕空间中的位置数据(例如,坐标数据,例如三轴(X、Y、Z)坐标数据)。在分格遍次期间,第二处理单元106可以被配置为将缓冲器划分成帧将被渲染到其中的分格。在一些示例中,第二处理单元106可以被配置为在分格遍次期间生成每个分格的可见性信息。关于这点,应理解,第二处理单元106可以被配置为在每分格的基础上生成可见性信息(例如,针对每个分格生成可见性信息)。
在生成每个分格的可见性信息之后(例如,在分格遍次期间),第二处理单元106可以被配置为使用每个相应分格的相应可见性信息单独地渲染每个相应分格。在一些示例中,第二处理单元106可以被配置为使用在分格遍次期间生成的可见性流来避免渲染在分格遍次期间被识别为不可见的图元,这避免过度绘制。因此,仅将可见图元和/或可能可见的图元渲染到每个分格中。
在渲染每个分格期间,第二处理单元106可以被配置为将与正被渲染的分格的像素值存储在内部存储器107中。以此方式,基于图块的渲染使用第二处理单元106的内部存储器107。第二处理单元106可以被配置为将存储在内部存储器107中的经渲染分格存储(例如,复制)到第二处理单元106外部的存储器,例如存储器110。在一些示例中,一旦将分格完全渲染到内部存储器107中,第二处理单元106就可以被配置为将完全渲染的分格存储到第二处理单元106外部的存储器。在其他示例中,第二处理单元106可以被配置为并行地将分格的图形内容渲染到内部存储器107中以及将被渲染到内部存储器107中的图形内容存储到第二处理单元106外部的存储器中。
如本文中所使用,“可见性信息”在一些示例中可指代任何数据结构中的、指示一个或多个图元相对于生成可见性信息所针对的分格是否可见和/或可以是可见(例如,可能可见)的任何信息。如本文所述,图元是可见/可能可见还是不可见可分别指代:将相对于生成可见性信息所针对的分格渲染还是不渲染图元。如本文所使用,根据一个示例,“可以是可见的”图元(例如,可能可见的图元)可指代如下事实:在图形处理管线中的特定处理点处(例如,在渲染遍次之前的分格遍次期间)并不知道图元在经渲染帧中(即,在经渲染帧的相应经渲染分格中)将是可见的还是将是不可见的。在另一示例中,“可以是可见的”图元(例如,可能可见的图元)可指代:在图形处理管线中的特定处理点处(例如,在渲染遍次之前的分格遍次期间)在经渲染帧中(即,在经渲染帧的相应经渲染分格中)不是或将不是确定性可见的图元。
例如,“可见性信息”可指代:任何数据结构中的指示与一个或多个绘制命令相关联的一个或多个图元相对于分格是否可见和/或是否可以是可见的任何信息。作为另一示例,“可见性信息”可描述为包括l和0的序列的可见性流,其中每个“1”或“0”与位于分格内的特定图元相关联。在一些示例中,每个“1”可指示分别与其相关联的图元在经渲染帧中(即,在经渲染帧的相应经渲染分格中)是或可以是可见的,且每个“0”可指示分别与其相关联的图元在经渲染帧中(即,在经渲染帧的相应经渲染分格中)将不可见。在其它示例中,每个“0”可指示分别与其相关联的图元在经渲染帧中(即,在经渲染帧的相应经渲染分格中)是或可以是可见的,且每个“1”可指示分别与其相关联的图元在经渲染帧中(即,在经渲染帧的相应经渲染分格中)将不可见。在其它示例中,“可见性信息”可指代包括与可见性流不同格式的可见性信息的数据结构。
在直接渲染中,第二处理单元106可以被配置为在一个遍次中直接渲染到帧缓冲器(例如,存储器110中的存储单元)。换句话说,第二处理单元106可以被配置为将图形内容渲染到帧缓冲器,而不使用内部存储器107来用于经渲染图形内容的中间存储。在一些示例中,根据如何执行基于图块的渲染,直接渲染模式可以被认为是单个分格,区别仅是将整个帧缓冲器作为单个分格对待。如本文所提及,渲染模式(例如,直接渲染模式、基于图块的渲染模式、自适应渲染模式、中央窝渲染模式及空间抗混叠渲染模式)可指代:第二处理单元106被配置为执行与渲染模式相关联的一种或多种技术。
在自适应渲染中,第二处理单元106可以被配置为将基于图块的渲染的一种或多种技术与直接渲染的一种或多种技术进行组合。例如,在自适应渲染中,可以将一个或多个分格渲染到内部存储器107,并且随后从内部存储器107存储到第二处理单元106外部的存储器中的帧缓冲器(例如,使用基于图块的渲染模式渲染的分格),并且可以将一个或多个分格直接渲染到第二处理单元106外部的存储器中的帧缓冲器(例如,使用直接渲染模式渲染的分格)。第二处理单元106可以被配置为使用在分格遍次期间针对分格生成的可见性信息来对将要使用直接渲染来渲染的这些相应分格进行渲染,且对这些经直接渲染的分格的渲染可在一个渲染遍次中发生。相反,第二处理单元106可以被配置为使用在分格遍次期间针对分格生成的可见性信息来对将要使用基于图块的渲染来渲染的分格进行渲染,且对这些经基于图块的渲染的分格的渲染可在多个渲染遍次中发生(例如,用于使用基于图块的渲染来渲染的分格中的每个相应分格的相应渲染遍次)。
在中央窝渲染中,第二处理单元106可以被配置为基于指示眼睛注视区域(例如,中央窝区域)的信息来渲染帧的图形内容。人类视觉系统导致在中央窝(中央视觉区域,其是人正在观看的地方)中的高分辨率视觉和在中央窝周围的外围区域中的低分辨率。中央窝渲染通过以高分辨率渲染对应于眼睛注视区域(例如,中央窝区域)的图形内容并且以低分辨率渲染对应于眼睛注视区域周围的外围区域的图形内容,来平衡人类视觉系统如何工作。通过降低外围区域中的分辨率,可以降低第二处理单元106的计算负荷,从而导致更高效的处理。
在一些示例中,将图形内容渲染到帧缓冲器可以指代将像素值写入到帧缓冲器。像素值可具有一个或多个分量,例如一个或多个颜色分量。每个分量可以具有相应的值。例如,红、绿和蓝颜色空间中的像素可以具有红色分量值、绿色分量值和蓝色分量值。
图1B是示出根据本公开内容的技术的设备的第三处理单元108与显示器103之间的示例配置的方框图。图1B中的显示器103的示例是智能面板或命令模式面板的示例。第三处理单元108和显示器103可以被配置为通过通信介质(例如,有线和/或无线通信介质)彼此通信。例如,第三处理单元108可以包括通信接口130(例如,总线接口),并且显示器103可以包括使得能够在彼此之间进行通信的通信接口132(例如,总线接口)。在一些示例中,第三处理单元108与显示器103之间的通信可以符合通信标准、通信协议等。例如,第三处理单元108和显示器103之间的通信可以符合显示串行接口(DSI)标准。在一些示例中,第三处理单元108可以被配置为将数据(例如,显示内容)提供到显示器103以供在其上呈现。第三处理单元108还可以被配置为例如当显示器103是命令模式显示器时向显示器103提供命令/指令。显示器103可以包括处理单元134和可由处理单元134访问的存储器136。处理单元134可以被称为显示控制器。存储器136可以被配置为存储显示器103从第三处理单元108接收的数据。例如,存储器136可以被配置为存储(例如,缓冲)从第三处理单元108接收的帧。处理单元134可以被配置为读取从第三处理单元108接收的存储在存储器136中的数据,并且基于从第三处理单元108接收的一个或多个命令来驱动显示器103。
图1C是生成根据本公开内容的技术的设备的第三处理单元108与显示器103之间的示例配置的方框图。图1C中的显示器103的示例是无声面板或视频模式面板的示例。第三处理单元108和显示器103可以被配置为通过通信介质(例如,有线和/或无线通信介质)彼此通信。例如,第三处理单元108可以包括通信接口130(例如,总线接口),并且显示器103可以包括使得能够在彼此之间进行通信的通信接口132(例如,总线接口)。在一些示例中,第三处理单元108与显示器103之间的通信可以符合通信标准、通信协议等。例如,第三处理单元108和显示器103之间的通信可以符合显示串行接口(DSI)标准。在一些示例中,第三处理单元108可以被配置为将数据(例如,显示内容)提供到显示器103以供在其上呈现。显示器103可以包括处理单元134,并且可以不包括存储器。处理单元134可以被称为显示驱动器。处理单元134可以被配置为使得从第三处理单元108接收的显示内容被显示在显示器103上。
在一些示例中,设备100和/或显示处理管线102的一个或多个组件可被组合成单个组件。例如,显示处理管线102的一个或多个组件可以是片上系统(SoC)的一个或多个组件,在这种情况下,显示处理管线102仍可包括第一处理单元104、第二处理单元106和第三处理单元108;但是作为SoC的组件而不是物理上分离的组件。在其他示例中,显示处理管线102的一个或多个组件可以是物理上分离的组件,其未被集成到单个组件中。例如,第一处理单元104、第二处理单元106和第三处理单元108可以各自是彼此物理上分离的组件。应了解,显示处理管线可具有不同配置。因此,本文描述的技术可改进任何显示处理管线和/或显示器,而不仅仅是本文描述的特定示例。
在一些示例中,可以将显示处理管线102的一个或多个组件集成到设备100的主板中。在一些示例中,显示处理管线102的一个或多个组件可存在于设备100的图形卡上,例如安装在设备100的主板中的端口中的图形卡或并入在被配置为与设备100互操作的外围设备内的图形卡。
第一处理单元104、第二处理单元106和/或第三处理单元108可以包括一个或多个处理器,例如一个或多个微处理器、ASIC、FPGA、算术逻辑单元(ALU)、DSP、分立逻辑、软件、硬件、固件、其他等效的集成或分立逻辑电路或其任意组合。在本文描述的技术部分地以软件实现的示例中,软件(指令、代码等)可以存储在可由处理单元访问的合适的非暂时性计算机可读存储介质中。处理单元可使用一个或多个处理器在硬件中执行软件以执行本公开内容的技术。例如,显示处理管线102的一个或多个组件可被配置为执行软件。可由第一处理单元104执行的软件可存储在内部存储器105和/或存储器110中。可由第二处理单元106执行的软件可存储在内部存储器107和/或存储器110中。可由第三处理单元108执行的软件可以存储在内部存储器109和/或存储器110中。
如本文所述,诸如设备100的设备可以指被配置为执行本文所述的一种或多种技术的任何设备、装置或系统。例如,设备可以是服务器、基站、用户设备、客户端设备、站、接入点、计算机(例如,个人计算机、台式计算机、膝上型计算机、平板计算机、计算机工作站或大型计算机)、终端产品、装置、电话、智能电话、服务器、视频游戏平台或控制台、手持设备(例如,便携式视频游戏设备或个人数字助理(PDA))、可穿戴计算设备(例如,智能手表、增强现实(AR)设备或虚拟现实(VR)设备)、非可穿戴设备(例如,非可穿戴AR设备或非穿戴VR设备)、无线通信设备、任何AR设备、任何VR设备、显示器(例如,显示设备)、电视机、电视机顶盒、中间网络设备、数字媒体播放器、视频流设备、内容流设备、车载计算机、任何移动设备、被配置为生成内容的任何设备、或被配置为执行本文描述的一种或多种技术的任何设备。在一些示例中,设备100可以是装置。该装置可以是处理单元、SOC或任何设备。
如本文所述,设备、组件等在本文中可描述为被配置为彼此通信。例如,显示处理管线102的一个或多个组件可被配置为与设备100的一个或多个其他组件(诸如显示器103、存储器110、和/或设备100的一个或多个其他组件(例如,一个或多个输入设备))通信。显示处理管线102的一个或多个组件可被配置为彼此通信。例如,第一处理单元104可以通信地耦合到第二处理单元106和/或第三处理单元108。作为另一示例,第二处理单元106可以通信地耦合到第一处理单元104和/或第三处理单元108。作为另一示例,第三处理单元108可以通信地耦合到第一处理单元104和/或第二处理单元106。
如本文所述,通信可以包括从第一组件向第二组件(或者从第一设备向第二设备)传送信息。在一些示例中,可以在一个或多个消息中携带该信息。作为示例,与第二组件通信的第一组件可以被描述为通信地耦合到第二组件或以其他方式与第二组件耦合。例如,第一处理单元104和第二处理单元106可以通信地耦合。在这样的示例中,第一处理单元104可以将信息传送到第二处理单元106和/或从第二处理单元106接收信息。
在一些示例中,术语“通信地耦合”可以指通信连接,其可以是直接的或间接的。通信连接可以是有线和/或无线的。有线连接可以指信息可以通过其传播的传导路径、迹线或物理介质(不包括无线物理介质)。传导路径可以指任何长度的任何导体,例如导电焊盘、导电过孔、导电平面、导电迹线或任何导电介质。直接通信连接可以指其中没有中间组件驻留在两个通信地耦合的组件之间的连接。间接通信连接可以指其中至少一个中间组件驻留在两个通信地耦合的组件之间的连接。在一些示例中,通信连接可以实现信息的通信(例如,信息的输出、信息的传输、信息的接收等)。在一些示例中,术语“通信地耦合”可以指临时、间歇或永久通信连接。
本文描述的任何设备或组件可以被配置为根据一个或多个通信协议来操作。例如,第一和第二组件可以通过连接通信地耦合。该连接可以是符合或者是根据通信协议的。如本文所使用的,术语“通信协议”可以指任何通信协议,例如符合通信标准的通信协议等。作为示例,通信协议可以包括显示串行接口(DSI)协议。DSI可使得能够通过诸如总线的连接在第三处理单元108和显示器103之间进行通信。
根据本文描述的技术,第二处理单元106可以被配置为更高效地生成图形内容。例如,第二处理单元106可以被配置为使用中央窝渲染、基于图块的渲染和/或自适应渲染来更高效地生成图形内容。例如,第二处理单元106可以被配置为接收指示中央窝区域的信息。基于指示中央窝区域的信息,第二处理单元106可以被配置为识别与帧相对应的哪个或哪些分格是高优先级分格并且识别与帧相对应的哪个或哪些分格是低优先级分格,使得按照由中央窝参数指示的优先级级别的顺序来渲染这些分格。在这样的示例中,第二处理单元106可以被配置为更高效地生成图形内容,诸如通过根据本文描述的技术在帧渲染期间动态地调整工作负荷并且最大程度地使用可用渲染能力。在一些示例中,中央窝参数可以包括:分辨率、抗混叠水平、模糊水平、应用的滤波、细节的纹理水平和细节的几何水平。
例如,根据本文所述的技术,第二处理单元106可被配置为在渲染一个或多个低优先级分格之前渲染一个或多个高优先级分格。在这样的示例中,可以以由中央窝参数确定的高质量分辨率来渲染一个或多个高优先级分格,并且可以随后将其存储在帧缓冲器中。在这样的示例中,可以以由中央窝参数确定的低质量分辨率渲染一个或多个低优先级分格。低质量分辨率是比高优先级分格的高质量分辨率低的分辨率。在这样的示例中,第二处理单元106可以被描述为被配置为使用基于图块的渲染来渲染一个或多个高优先级分格的第一图形内容,并且使用可动态调整的基于图块的渲染来渲染一个或多个低优先级分格的第二图形内容。第一图形内容和第二图形内容可以是相同帧的一部分。一个或多个高优先级分格可以对应于眼睛注视区域(例如,中央窝区域)或以其他方式与眼睛注视区域相关联,并且一个或多个低优先级分格可以对应于眼睛注视区域之外的外围区域或以其他方式与眼睛注视区域之外的外围区域相关联。
第二处理单元106可以被配置为将一个或多个高优先级分格的第一图形内容逐个分格地渲染到缓冲器(例如,内部存储器107中的帧缓冲器)中,并且还将一个或多个低优先级分格的第二图形内容逐个分格渲染到缓冲器中。第一图形内容和第二图形内容二者可以对应于相同的帧。换句话说,正被渲染的帧包括第一和第二图形内容。第一图形内容对应于与一个或多个高优先级分格相关联的图形内容。第二图形内容对应于与一个或多个低优先级分格相关联的图形内容。根据本文所描述的技术,第二处理单元106可以被配置为在渲染一个或多个低优先级分格与之相关联的帧期间动态地调整一个或多个低优先级分格中的零个或更多个低优先级分格的渲染质量。在一些示例中,这可以被称为动态可调整的基于图块的渲染。例如,可以以比第二图形内容的质量更高的质量来渲染第一图形内容。第二处理单元106可以被配置为以一个或多个不同的质量水平渲染第二图形内容,其中第二图形内容的每个质量水平低于第一图形内容的质量。第二处理单元106可以被配置为通过降低渲染一个或多个低优先级分格的质量而在渲染期间动态地调整渲染帧的工作负荷。如果第二处理单元106确定按计划将要达不到或按计划将要满足帧刷新期限,则可以动态地调整工作负荷。在将要达不到帧刷新期限的示例中,第二处理单元106可以降低一个或多个低优先级分格之中的至少一个的渲染质量,以在帧刷新期限内及时完成帧渲染过程。
通过基于由中央窝参数指示的优先级级别来渲染帧,第二处理单元106确保针对一个或多个高质量分格渲染的第一图形内容被渲染以满足帧刷新期限,并且可以识别可以以较低质量渲染帧的哪些区域(例如,一个或多个低优先级分格)以便满足帧刷新期限。第二处理单元106可以被配置为在第二处理单元106确定在帧刷新期限内将无法及时渲染帧的情况下识别帧的哪些区域可以牺牲渲染质量。这样,通过被配置为在帧渲染期间动态地调整工作负荷,第二处理单元106被配置为更高效地生成图形内容并使可用渲染能力达到最大。
图6A-E示出了根据本公开内容的技术的具有与多个分格重叠的中央窝区域的示例帧。在图6A的示例中,将帧缓冲器600划分成16个分格,并且分格6、7、10和11与眼睛注视区域重叠。基于指示眼睛注视区域的信息,第二处理单元106可以被配置为确定分格1-16中的哪个或哪些分格将被识别为高优先级分格,并且确定分格1-16中的哪个或哪些分格将被识别为低优先级分格。换句话说,第二处理单元106可以被配置为确定将以高分辨率渲染分格1-16中的哪个或哪些分格,并且确定将以低分辨率和/或以降级的分辨率渲染分格1-16中的哪个或哪些分格。在图6A的示例中,第二处理单元106可以被配置为确定将分格6、7、10和11识别为使用基于图块的渲染模式渲染的高优先级分格,并确定将分格1-5、8、9和12-16识别为低优先级分格且在已渲染分格6、7、10和11之后渲染。在这样的示例中,可使用动态可调整的基于图块的渲染模式来渲染分格1-5、8、9和12-16。换句话说,第二处理单元106可以被配置为确定按优先级排序的渲染顺序,使得将首先并且以高分辨率/质量渲染这组分格6、7、10和11,并且确定将在已经渲染全部这组分格6、7、10和11之后渲染这组分格1-5、8、9和12-16,并且这组分格1-5、8、9和12-16将会以比这组分格6、7、10和11的质量更低的质量进行渲染。在一些示例中,第二处理单元106可以被配置为使用任何顺序渲染分格6、7、10和11,只要在渲染分格1-5、8、9和12-16中的任何一个分格之前渲染全部分格6、7、10和11即可。第二处理单元106可以被配置为使用任何顺序渲染分格1-5、8、9和12-16,只要在已渲染全部分格6、7、10和11之后渲染这些分格即可。在这样的示例中,第二处理单元106被配置为通过基于中央窝参数对渲染进行优先级排序来更高效地生成帧的图形内容,使得在未处于中央窝区域内(例如,外围区域)的分格之前渲染处于中央窝区域内的分格。第二处理单元106还可以被配置为使时延最低和/或维持低时延,诸如根据本文所描述的技术,通过在渲染不在中央窝区域内的分格期间动态地降低不在中央窝区域内的分格(例如,低优先级分格)的质量。
在图6A的示例中,第二处理单元106被配置为基于指示眼睛注视区域或中央窝区域的信息来确定哪些分格将被识别为高优先级分格和低优先级分格。然而,可以基于许多不同的因素来确定这些分格的优先级,使得本公开内容不旨在限于基于眼睛注视区域的分格的优先级。在一些示例中,可以基于由应用识别的优先级区域、由操作系统(OS)识别的优先级区域、由VR/AR框架识别的优先级区域和/或基于在设备的显示器上的位置的优先级区域,来确定分格的优先级。
在图6A的示例中,第二处理单元106可以被配置为例如在分格遍次期间生成针对分格1-16中的每个分格的可见性信息。第二处理单元106可以被配置为基于针对分格6、7、10和11中的每个分格的相应可见性信息逐个分格地渲染每个相应分格。例如,第二处理单元106可以被配置为在第一渲染遍次中使用针对分格6生成的可见性信息来渲染分格6,在第二渲染遍次中使用针对分格7生成的可见性信息来渲染分格7,在第三渲染遍次中使用针对分格10生成的可见性信息来渲染分格10,并在第四渲染遍次中使用针对分格11生成的可见性信息来渲染分格11。在该示例中,渲染遍次的编号不意味着这些分开的渲染发生的顺序。相反,渲染遍次的编号意味着每个渲染遍次是分开的并且与其他渲染遍次不同。
第二处理单元106可以被配置为将分格6、7、10和11中的每个分格渲染到内部存储器107中。如本文所描述的,对渲染分格的引用是指渲染与分格相对应的图形内容,并且反之亦然。在本文描述的将分格渲染到内部存储器107(例如,分格6、7、10和11)中的示例中,内部存储器107可以被称为中间缓冲器、中间帧缓冲器、分格缓冲器等,因为经渲染分格将随后被存储在存储器110中的帧缓冲器中。
在一些示例中,第二处理单元106可以被配置为基于针对分格1-5、8、9和12-16中的每个分格的相应可见性信息,来逐个分格地渲染每个相应分格。例如,第二处理单元106可以被配置为在第一渲染遍次中使用针对分格1生成的可见性信息来渲染分格1,在第二渲染遍次中使用针对分格2生成的可见性信息来渲染分格2,在第三渲染遍次中使用针对分格3生成的可见性信息来渲染分格3,在第四渲染遍次中使用针对分格4生成的可见性信息来渲染分格4,在第五渲染遍次中使用针对分格5生成的可见性信息来渲染分格5,在第六渲染遍次中使用针对分格8生成的可见性信息来渲染分格8,在第七渲染遍次中使用针对分格9生成的可见性信息来渲染分格9,在第八渲染遍次中使用针对分格12生成的可见性信息来渲染分格12,在第九渲染遍次中使用针对分格13生成的可见性信息来渲染分格13,在第十渲染遍次中使用针对分格14生成的可见性信息来渲染分格14,在第十一渲染遍次中使用针对分格15生成的可见性信息来渲染分格15,以及在第十二渲染遍次中使用针对分格16生成的可见性信息来渲染分格16。在该示例中,渲染遍次的编号不暗示这些分开渲染发生的顺序。相反,渲染遍次的编号意味着每个渲染遍次是分开的并且与其他渲染遍次不同。
图6A提供了渲染顺序602的一个示例,其中第二处理单元106将分格6、7、10和11识别为高优先级分格,将分格1-5、8、9和12-16识别为低优先级分格。分格6、7、10和11已经被第二处理单元106识别为高优先级分格,因为它们与中央窝区域重叠。分格1-5、8、9和12-16已经被第二处理单元106识别为低优先级分格,因为它们不与中央窝区域重叠。在该示例中,第二处理单元按以下顺序渲染高优先级分格:6、7、11和10。然后,渲染顺序602可继续到低优先级分格,使得第二处理单元106可以按以下顺序渲染低优先级分格:9、5、1-4、8、12、16、15、14和13。图6A的渲染顺序602仅仅是一个示例,使得更多的渲染顺序是可能的。本公开内容不旨在限于图6A的示例。
图6B提供了渲染顺序606的另一示例。在该示例中,第二处理单元106已经将分格2、3、6、7、10和11识别为高优先级分格,因为它们与中央窝区域重叠,而分格1、4、5、8、9和12-16是低优先级分格,因为它们不与中央窝区域重叠。在图6B的示例中,中央窝区域相对于图6A的中央窝区域向上移位。图6B提供了帧的一个示例,其中中央窝区域不位于该帧的中心区域。在该示例中,第二处理单元106可以按以下顺序渲染高优先级分格:6、10、11、7、3和2。然后,渲染顺序606继续到低优先级分格,使得第二处理单元106可以按以下顺序渲染低优先级分格:1、5、9、13-16、12、8和4。图6B的渲染顺序606仅仅是一个示例,使得更多的渲染顺序是可能的。
图6C提供了渲染顺序610的又一示例。在该示例中,第二处理单元106已经将分格5、6、9、10、13和14识别为高优先级分格,因为它们与中央窝区域重叠,而分格1-4、7、8、11、12、15和16是低优先级分格,因为它们不与中央窝区域重叠。在图6C的示例中,中央窝区域位于左下角。图6C提供了帧的另一个示例,其中中央窝区域不位于该帧的中心区域。在该示例中,第二处理单元106可以按以下顺序渲染高优先级分格:9、13、14、10、6和5。此后,渲染顺序610继续到低优先级分格,使得第二处理单元106可以按以下顺序渲染低优先级分格:1-3、7、11、15、16、12、8和4。图6C的渲染顺序610仅仅是一个示例,使得更多的渲染顺序是可能的。在一些示例中,可以基于不同因素,诸如但不限于光栅顺序或基于另一预定顺序,来确定高优先级分格或低优先级分格中的渲染顺序。
图6D提供了渲染顺序614的又一示例。在该示例中,第二处理单元106已经将分格4、8、12和16识别为高优先级分格,因为它们与中央窝区域重叠,而分格1-3、5-7、9-11和13-15是低优先级分格,因为它们不与中央窝区域重叠。在图6D的示例中,中央窝区域沿着帧的右边缘定位。图6D提供了帧的另一个示例,其中中央窝区域不位于该帧的中心区域。在该示例中,第二处理单元106可以按以下顺序渲染高优先级分格:4、8、12和16。然后,渲染顺序614继续到低优先级分格,使得第二处理单元106可以按以下顺序渲染低优先级分格:15、11、7、3、2、6、10、14、13、9、5和1。图6D的渲染顺序606仅仅是一个示例,使得更多的渲染顺序是可能的。
图6E提供了渲染顺序618的又一示例。在该示例中,第二处理单元106已经将分格11、12、15和16识别为高优先级分格,因为它们与中央窝区域重叠。第二处理单元106还可以将分格7识别为高优先级分格,尽管其在中央窝区域之外。例如,分格7可以包括将需要以高质量渲染的感兴趣区域。在一些方面,分格7可以包括需要以高质量渲染的经标记的图形对象、手动选择的分格、用户界面(U/I)和/或文本。在这样的示例中,第二处理单元106可从应用程序接收关于分格(例如,分格7)尽管位于中央窝区域外但仍被识别为高优先级分格的指示。在一些方面,第二处理单元可以从操作系统或VR/AR框架接收该指示。第二处理单元106将分格1-6、8-10、13和14识别为低优先级分格,因为它们不与中央窝区域重叠和/或不包括将需要以高质量渲染的感兴趣区域。在图6E的示例中,中央窝区域位于帧的右下角,并且包括在中央窝区域之外的感兴趣区域。在该示例中,第二处理单元106可以按以下顺序渲染高优先级分格:7、11、15、16和12。然后,渲染顺序618继续到低优先级分格,使得第二处理单元106可以按以下顺序渲染低优先级分格:8、4、3、2、6、10、14、13、9、5和1。图6E的渲染顺序仅仅是一个示例,使得更多的渲染顺序是可能的。
图6A-6E的示例之间的共性在于,在渲染任何低优先级分格之前渲染高优先级分格。这样,第二处理单元106将其渲染资源集中到高优先级分格。高优先级分格与中央窝区域重叠,并且是特定帧的主要感兴趣区域,并且应当以高分辨率来渲染。第二处理单元106可以以与高优先级分格相比降低的分辨率来渲染低优先级分格,因为帧的由低优先级分格表示的部分不旨在是特定帧的主要感兴趣区域。第二处理单元106可以降低所述低优先级分格中的一个或多个低优先级分格的质量,以确保渲染帧以满足帧刷新期限。例如,第二处理单元106可以动态地调整中央窝参数以确保渲染帧以满足帧期限。在一些示例中,第二处理单元106可以基于对将会超过针对正被处理的当前帧的渲染时间分配的确定,而显示先前渲染的帧以代替正被处理的当前帧。在这样的示例中,即使执行了一个或多个高优先级分格的渲染,正在处理的整个当前帧也将不会被显示,而是将会被用先前渲染的帧来代替。在一些示例中,第二处理单元106可以基于对将会超过针对帧的渲染时间分配的确定,而跳过对一个或多个低优先级分格中的至少一个低优先级分格的渲染。在这样的示例中,第二处理单元可以显示一个或多个高优先级分格的渲染与先前渲染的低优先级分格的组合,先前渲染的低优先级分格被插入到被跳过的低优先级分格的位置处。因此,第二处理单元106可以被配置为更高效地生成图形内容,诸如通过在帧渲染期间动态地调整工作负荷并且最大程度地使用可用渲染能力。
根据本文描述的技术,第二处理单元106可以被配置为更高效地生成中央窝渲染的图形内容。例如,第二处理单元106可以被配置为将帧划分为多个分格。第二处理单元106可被配置为接收指示眼睛注视区域的信息。基于指示眼睛注视区域的信息,第二处理单元106可以被配置为针对分格布局来布置帧,使得帧被划分成多个分格。处理单元106可以被配置为将分格布局的每个分格识别为高优先级分格或低优先级分格。在一些示例中,分格布局内的分格的分格大小可以是相同的、不同的或其组合。在一些示例中,分格布局包括标准分格布局,其中列中的分格的数量与行中的分格的数量相同(例如,4×4、8×8、16×16等)。第二处理单元106可以被配置为使用分格布局来渲染帧的图形内容。本公开内容不旨在被限制为仅具有高优先级和低优先级分格,并且仅仅是示例。一些示例可以包括与本文描述的技术一致的高、中、低或任何其他数量的优先级。
在一些示例中,为了确定分格布局以对多个分格中的每个相应分格进行分类,第二处理单元106可以被配置为识别与中央窝区域重叠的分格的数量,并且识别不与中央窝区域重叠的分格的数量。与中央窝区域重叠的分格可以是高优先级分格。不与中央窝区域重叠的分格可以是低优先级分格。在一些示例中,第二处理单元106可以被配置为在生成针对低优先级分格中的任何一个低优先级分格的相应可见性信息之前生成针对所述高优先级分格中的每个高优先级分格的相应可见性信息。为了使用分格来渲染帧的图形内容,第二处理单元106可以被配置为基于针对所述高优先级分格中的每个高优先级分格的相应可见性信息和针对低优先级分格的相应可见性信息来渲染图形内容。在低优先级分格中的任何一个分格之前渲染高优先级分格的图形内容。在这样的示例中,第二处理单元106可以被配置为确定针对帧的渲染时间分配。第二处理单元106可以被配置为确定针对低优先级分格中的每个低优先级分格的渲染时间。第二处理单元106可以被配置为基于针对零或更多个低优先级分格的渲染时间量来确定是否将会超过针对帧的渲染时间分配。第二处理单元106可以被配置为基于对是否将会超过针对帧的渲染时间分配的确定,以第一质量或第二质量来渲染低所述优先级分格中的至少一个或多个低优先级分格的图形内容。第一质量可以低于第二质量。
分格布局选择发生在分格遍次之前,在分格遍次中针对所选分格布局的每个分格生成可见性信息。第二处理单元106可以被配置为基于所选分格布局将帧缓冲器划分为多个分格。第二处理单元106可以被配置为使用所选分格布局的分格来渲染帧缓冲器的图形内容。这些技术可以被称为第二处理单元106被配置为执行用于中央窝渲染的动态分格选择,其中基于指示眼睛注视区域的信息从多个分格布局中选择分格布局。在一些示例中,所选分格布局可以具有与分格布局的眼睛注视区域重叠的最小数量的分格。因此,在一些示例中,所选分格布局可以被称为最优分格布局。例如,当自适应渲染技术被用于中央窝渲染时,与眼睛注视区域重叠的分格可以使用比不与眼睛注视区域重叠的分格更高的样本水平来渲染。在这样的示例中,从性能和/或功耗的角度来看,固定分格布局可能不是最优的,因为相对于以较低样本水平执行空间抗混叠渲染,以较高样本水平执行空间抗混叠渲染消耗更多的处理资源和功率。通过基于指示眼睛注视区域的信息动态地选择分格布局,第二处理单元106的性能得到改进,因为可使用较高样本水平处理较少分格。第二处理单元106可以被配置为在执行分格遍次之前选择分格布局。
作为示例,图6A示出了根据第一分格布局的具有与分格重叠的中央窝区域的示例帧600。图6B示出了根据第二分格布局的具有与分格重叠的中央窝区域的示例帧604。图6C示出了根据第三分格布局的具有与分格重叠的中央窝区域的示例帧608。图6D示出了根据第四分格布局的具有与分格重叠的中央窝区域的示例帧612。在所示的示例中,帧600、604、608和612的尺寸相同,并且分格具有相同的尺寸。然而,本公开内容不旨在限于该示例,并且可以使用与本文描述的技术一致的其他分格布局。在一些方面,帧的尺寸可以相同或不同。在一些方面,任何分格布局中的分格可以具有相同的尺寸或者可以具有不同的尺寸。在再一些方面,任何分格布局可以包括具有非统一尺寸的分格。在图6A的示例中,第一分格布局包括16个分格,分格6、7、10和11与中央窝区域重叠。在图6B的示例中,第二分格布局包括16个分格,分格2、3、6、7、10和11与中央窝区域重叠。在图6C的示例中,第三分格布局包括16个分格,分格5、6、9、10、13和14与中央窝区域重叠。在图6D的示例中,第四分格布局包括16个分格,分格4、8、12和16与中央窝区域重叠。
为了选择分格布局,第二处理单元106可以被配置为在多个分格布局中选择相对于其他分格布局而言包括与眼睛注视区域重叠的最少数量的分格的分格布局。在图6A和6B的示例中,第二处理单元106可以被配置为针对每个相应分格布局确定与中央窝区域重叠的相应分格数量。例如,第二处理单元106可以被配置为确定第一分格布局包括与眼睛注视区域重叠的4个分格并且确定第二分格布局包括与眼睛注视区域重叠的6个分格。第二处理单元106可被配置为比较对应于每个相应分格布局的与眼睛注视区域重叠的相应分格数量,以确定哪个分格布局具有与眼睛注视区域重叠的最少数量的分格。例如,在图6A和6B的示例中,第二处理单元106可以被配置为确定第二分格布局的与眼睛注视区域重叠的相应分格数量大于第一分格布局的与眼睛注视区域重叠的相应分格数量。
根据本文描述的技术,第二处理单元106可以被配置为基于指示眼睛注视区域的信息来动态地调整用于中央窝渲染的中央窝参数。动态地调整中央窝参数使得能够使用中央窝渲染更高效地生成图形内容,例如通过确定是否需要降低低优先级分格的质量以确保满足显示刷新期限。对需要降低一个或多个低优先级分格的质量的确定可以发生在各个低优先级分格之间。基于确定将会超过针对帧的渲染时间分配,可以以降低的质量来渲染一个或多个低优先级分格。
作为示例,图7示出了根据本公开内容的技术的关于是否基于中央窝参数执行动态调整的确定的示例700。示例700示出了使用命令流内的命令处理器(CP)命令来进行帧内自适应的方法。在帧渲染开始之前,第二处理单元106使用时间参考来跟踪渲染过程的时序。自由运行计数器704是可以用于对经过的持续时间进行计时并且可以提供帧渲染的开始时间的计数器。命令处理器寄存器到存储器(CP Reg到Mem)702从自由运行计数器704中读取值,并将该值(例如,帧起始时间戳706)存储在存储器中,在该时刻可以渲染高优先级(HP)分格708、710。在渲染高优先级分格708、710之后,可以渲染低优先级(LP)分格712、714、716。
在渲染高优先级分格期间启动的参考帧起始时间戳706由命令处理器存储器到存储器(CP Mem到Mem)718读取。LP分格时间分配720可以提供由CP Mem到Mem 718计算的针对低优先级分格(例如LP分格N 714)的计划的渲染时间分配。LP分格时间分配720可以是用于渲染特定低优先级分格(图7的示例中的LP分格N 714)的预估时间分配。可以根据最终图像的尺寸来估计分格的渲染时间分配。在一些示例中,每个分格的工作负荷量将是不均匀的,使得一些分格可以使用比其他分格更多的渲染时间来完成。可以提前、逐个分格地并且可以基于可见图元来确定预估时间分配720。在一些示例中,预估时间分配720可基于分格中的图元的数量、先前渲染的帧中的相同分格的渲染时间,或可从应用程序提供。存在可以用于确定预估时间分配的许多其他因素,并且本公开内容不旨在限于本文提供的示例。预估时间分配720可以在任何分格处提供估计的渲染时间,以确定剩余渲染时间是否足以在渲染期限之前完成帧的渲染。如果确定将不满足渲染期限,则可以降低一个或多个低优先级分格的质量以弥补时间差。
CP Mem到Mem718可以将LP分格N时间分配720加到帧开始时间戳706,以确定针对LP分格N 712的计划的渲染时间。该计划的渲染时间可以与触发时间戳722进行比较。触发时间戳722可以是针对特定分格(图7的示例中的LP分格N 714)的触发时间。如果计划的渲染时间超过触发时间戳722,则命令处理器条件执行(CP Cond Exec)724将执行不同的命令集。CP Cond Exec 724被配置为基于由自由运行计数器704中指示的经过的渲染时间是否超过阈值或者渲染时间是否没有超过阈值时间,来有条件地执行命令集。如果渲染时间没有超过阈值时间,则CP Cond Exec 724正常操作(例如,不调整渲染质量/细节级别),这意味着CP Cond Exec 724执行命令来针对从当前帧渲染处理的开始就预定的期望细节级别设置下一分格,在图7的示例中为LP分格N+1 716。然而,如果渲染时间超过阈值时间,则CPCond Exec 724可以操作另一命令集来降低下一分格(LP分格N+1 716)的细节级别。当满足某些情况时,CP Cond Exec 724可以在分格之间注入新的命令集,例如但不限于,经过的渲染时间超过预定时间分配,或者如果用于渲染剩余分格的计划时间将会超过渲染期限。CPCond Exec 724可以调整下一分格的渲染以满足渲染期限。例如,CP Cond Exec 724可以指示CP写入728将下一分格重新编程为较低的质量或分辨率。基于指令,CP写入728可以执行对下一分格重新编程的命令块。CP写入728提供CP命令块,该CP命令块用新的命令集来修补(例如,调整或重写)下一分格的命令缓冲器以降低质量或分辨率。例如,如果下一分格被设置为以特定分辨率渲染,则CP写入728可以向下一图块的命令流提供CP将执行的命令,利用新的命令集改变存储在与下一图块相关联的寄存器中的指令,并且设置新的/降低的质量水平,从而动态地调整帧渲染。这样,CP Cond Exec 724可以动态地调整渲染参数,使得帧将及时渲染以满足渲染期限。在一些示例中,对是否降低任何低优先级分格的质量的确定发生在各个低优先级分格之间。然而,在一些示例中,对是否降低任何低优先级分格的质量的确定可以在不同的时机发生,并且不旨在限于以上示例。在一些方面,可以针对每隔一个低优先级分格、随机选择的一个或多个低优先级分格、或者至少一个低优先级分格来执行该确定。
图7示出了在是否降级低优先级分格的第二分格(或LP分格N 714)的示例确定中涉及的框,如仅在LP分格N-1 712和LP分格N 714之间。然而,这些框可以在各个低优先级分格之间,并且不限于仅在LP分格N-1和LP分格N之间。在一些示例中,降低低优先级分格的质量的动态能力允许渲染过程在期限内完成。
返回参考图1,第三处理单元108可以被配置为根据本文描述的技术执行一个或多个显示处理过程122。例如,第三处理单元108可以被配置为在由显示器103呈现之前对由第二处理单元106生成的一个或多个帧执行一种或多种显示处理技术。换句话说,第三处理单元108可以被配置为执行显示处理。在一些示例中,一个或多个显示处理过程122可以包括旋转操作、混合操作、缩放操作、任何显示处理过程/操作或本文描述的任何过程/操作中的一个或多个。
在一些示例中,一个或多个显示处理过程122包括本文针对第三处理单元108描述的任何过程/操作。显示器103可以被配置为显示使用显示处理管线102生成的内容。例如,第二处理单元106可以基于从第一处理单元104接收的命令/指令来生成图形内容。图形内容可以包括一个或多个层。这些层中的每个层可以构成图形内容的帧。第三处理单元108可以被配置为对由第二处理单元106渲染的图形内容执行合成以生成显示内容。显示内容可以构成用于显示的帧。用于显示的帧可以包括由第三处理单元108混合在一起的两个或更多个层/帧。
设备100可以包括或连接到一个或多个输入设备113。在一些示例中,一个或多个输入设备113可以包括以下中的一个或多个:触摸屏、鼠标、外围设备、音频输入设备(例如,麦克风或任何其他视觉输入设备)、眼睛注视输入设备113-1(其可被称为眼睛注视跟踪器、眼睛跟踪器、眼睛注视传感器、眼睛移动跟踪器、眼睛移动传感器、眼睛传感器等)、视觉输入设备(例如,眼睛注视输入设备113-1、相机、眼睛跟踪器或任何其他视觉输入设备)、任何用户输入设备或被配置为从用户接收输入的任何输入设备。在一些示例中,显示器103可以是触摸屏显示器;并且在这样的示例中,显示器103构成示例输入设备113。
在图1A的示例中,一个或多个输入设备113被示为包括眼睛注视输入设备113-1。眼睛注视输入设备113-1可以被配置为确定设备100的用户正在看哪里,诸如用户正在看显示器(例如,显示器103)的哪里。换句话说,眼睛注视输入设备113-1可被配置为生成指示眼睛注视区域的信息。眼睛注视区域可以是设备100的用户正在看的区域。在一些示例中,眼睛注视区域可以被称为中央窝/中央凹区域或者凝视点区域。指示眼睛注视区域的信息可以包括指示一个或多个区域的信息,诸如眼睛注视区域(例如,中央窝区域)和/或眼睛注视区域之外的一个或多个区域(例如,外围区域)。在一些示例中,外围区域可以是落在眼睛注视区域之外的区域。
眼睛注视输入设备113-1可被配置为向第一处理单元104和/或第二处理单元106提供指示眼睛注视区域(例如,中央窝区域)的信息。在一些示例中,第一处理单元104可被配置为从眼睛注视输入设备113-1接收指示眼睛注视区域的信息,并且进一步处理该信息以生成指示眼睛注视区域的经处理的信息。例如,第一处理单元104可被配置为调整与从眼睛注视输入设备113-1接收到的指示眼睛注视区域的信息相对应的眼睛注视区域的大小。在其他示例中,第一处理单元104可被配置为从眼睛注视输入设备113-1接收指示眼睛注视区域的信息并将其转发给第二处理单元106。根据本文描述的技术,第二处理单元106可被配置为从诸如第一处理单元104或眼睛注视输入设备113-1之类的任何组件接收指示眼睛注视区域的信息。由第二处理单元106接收的指示眼睛注视区域的信息可由眼睛注视输入设备113-1生成,并在由第二处理单元106接收之前由零个或更多个其他组件处理。
应当理解,输入设备的输出可以构成到从该输入设备接收输出的组件的输入。眼睛注视输入设备113-1可以与设备100集成,使得眼睛注视输入设备113-1被配置为检测用户相对于显示器103正在看哪里。
显示处理管线102可被配置为执行一个或多个应用程序。例如,第一处理单元104可被配置为执行一个或多个应用程序120。第一处理单元104可以被配置为使得第二处理单元106生成用于由第一处理单元104正在执行的一个或多个应用程序120的内容。换句话说,第一处理单元104对一个或多个应用程序120的执行可使得图形处理管线111生成图形内容。例如,第一处理单元104可以向第二处理单元106发出或以其他方式提供指令(例如,绘制指令),该指令使得第二处理单元106基于从第一处理单元104接收的指令来生成图形内容。第二处理单元106可以被配置为针对由第一处理单元104执行的一个或多个应用程序120中的每个应用程序生成一个或多个层。由第二处理单元106生成的每个层可以存储在缓冲器(例如,帧缓冲器)中。换句话说,缓冲器可以被配置为存储由第二处理单元106渲染的图形内容的一个或多个层。缓冲器可驻留在第二处理单元106的内部存储器107和/或存储器110(在一些示例中,其可以是设备100的系统存储器)中。由第二处理单元106产生的每个层可以构成图形内容。一个或多个层可以对应于单个应用程序或多个应用程序。第二处理单元106可以被配置为生成内容的多个层,意味着第一处理单元104可以被配置为使得第二处理单元106生成内容的多个层。
图2A-B示出了根据本公开内容的技术的示例流程图200。在其他示例中,可以将本文描述的一种或多种技术添加到流程图200和/或可以移除流程图中示出的一种或多种技术。可以并行执行图2A-B中所示的一个或多个框。
在图2A-B的示例中,在框210处,第一处理单元104可被配置为执行应用程序。在框212处,第一处理单元104可以被配置为向第二处理单元106提供一个或多个指令以使得第二处理单元106生成与应用程序相对应的图形内容。在框214处,第二处理单元106可以被配置为接收一个或多个指令。在框215处,第二处理单元106可被配置为接收指示眼睛注视区域(例如,中央窝区域)的信息。在一些示例中,第二处理单元106可被配置为从第一处理单元104和/或眼睛注视输入设备1131接收指示眼睛注视区域的信息。
在框216处,第二处理单元106可被配置为基于从第一处理单元104接收到的一个或多个指令并且基于指示眼睛注视区域的信息来生成图形内容。例如,第二处理单元106可以被配置为根据本文描述的一种或多种技术,诸如根据示例流程图300、示例流程图400和/或示例流程图500,在框216处生成图形内容。图形内容可以包括一个或多个帧。
在框218处,第二处理单元106可以被配置为存储所生成的图形内容(例如,在内部存储器107和/或存储器110中),如本文所描述的。因此,框218一般地表示在渲染期间可以将经渲染图形内容存储在一个或多个存储器中。例如,第二处理单元106可以被配置为使用内部存储器107和/或存储器110来存储经渲染图形内容。就内部存储器107用于存储经渲染图形内容而言,第二处理单元106可以被配置为将经渲染图形内容从内部存储器107存储到存储器110。存储器110中存储经渲染图形内容的单元可以被称为帧缓冲器。
在框220处,第三处理单元208可以被配置为从帧缓冲器获得所生成的图形内容。例如,第三处理单元208可以被配置为从存储器110获得所生成的图形内容的一个或多个帧。在框222处,第三处理单元208可以被配置为使用从帧缓冲器获得的所生成的图形内容来生成用于显示的帧。为了生成显示内容,第三处理单元108可以被配置为对从帧缓冲器读取的所生成的图形内容执行一个或多个显示处理过程223(例如,合成显示过程,诸如混合、旋转或任何其他合成显示过程)。在框234处,第三处理单元108可以被配置为将显示内容输出到显示器103。
图3示出了根据本公开内容的技术的方法的示例流程图300。该方法可以由第二处理单元106执行。在一些示例中,流程图300中所示的方法可以包括图3中未示出的本文所述的一个或多个功能,和/或可以排除一个或多个所示功能。
在框302处,第二处理单元106可以被配置为将帧划分成分格。在框304处,第二处理单元106可以被配置为基于指示中央窝区域的信息将一个或多个分格识别为高优先级分格。在框306处,第二处理单元106可以被配置为基于指示中央窝区域的信息将一个或多个分格识别为低优先级分格。
为了将一个或多个分格识别为高优先级分格,第二处理单元106可以被配置为确定第一分格与中央窝区域重叠。为了将一个或多个分格识别为低优先级分格,第二处理单元106可以被配置为确定第二分格不与中央窝区域重叠。为了将一个或多个分格识别为低优先级分格,第二处理单元106可以被配置为确定一个或多个低优先级分格中的哪些分格可以具有被牺牲的质量,使得以比高优先级分格低的质量和/或以比完全质量低的质量(例如,分格的最高质量、分格的原始质量、分格的预设质量、被接收用于渲染的内容的质量等)来渲染一个或多个低优先级分格。
在框308处,第二处理单元106可以被配置为在渲染一个或多个低优先级分格之前渲染一个或多个高优先级分格。可以将一个或多个高优先级分格渲染到第一存储器中。在框310处,第二处理单元106可以被配置为渲染一个或多个低优先级分格。可以将一个或多个低优先级分格渲染到第一存储器中。第一存储器可以是内部存储器107或者可以是存储器110。为了渲染包括一个或多个高优先级分格和一个或多个低优先级分格的帧,第二处理单元106可以被配置为使用基于分格的渲染。在这样的示例中,第二处理单元可以被配置为执行一个或多个渲染遍次以渲染帧。
在一些示例中,第二处理单元106可以被配置为在已经渲染一个或多个高优先级分格之后渲染一个或多个低优先级分格。在这样的示例中,为了渲染一个或多个低优先级分格,第二处理单元106可以被配置为以第一质量渲染一个或多个低优先级分格中的至少一个分格,所述第一质量低于渲染一个或多个高优先级分格的第二质量。
在一些示例中,第二处理单元106可以被配置为渲染一个或多个低优先级分格中的零个或更多个分格。在一些示例中,第二处理单元106可以被配置为确定针对帧的渲染时间分配。在这样的示例中,第二处理单元106可以被配置为基于用于渲染一个或多个高优先级分格以及一个或多个低优先级分格中的零个或更多个低优先级分格的时间量,来确定将会超过针对帧的渲染时间分配。在这样的示例中,第二处理单元106可以被配置为基于对将会超过针对帧的渲染时间分配的确定,来以第一质量而不是第二质量渲染一个或多个低优先级分格中的至少一个分格。第一质量可以低于第二质量。
在一些示例中,第二处理单元106可以被配置为在一个或多个低优先级分格中的零个或更多个低优先级分格中的各个低优先级分格之间确定是否将会超过针对帧的渲染时间分配。为了以第一质量渲染一个或多个低优先级分格中的至少一个低优先级分格,第二处理单元106可以被配置为动态地调整中央窝参数以确保帧被渲染以满足帧期限。在一些示例中,第二处理单元106可以被配置为基于对将会超过针对正被处理的帧的渲染时间分配的确定而显示先前渲染的帧作为正被处理的帧的替代。在一些示例中,第二处理单元106可以被配置为基于对将会超过针对帧的渲染时间分配的确定,而跳过对一个或多个低优先级分格中的至少一个低优先级分格的渲染。针对帧的渲染时间分配可以基于正被渲染的当前分格中的图元的数量、前一分格的渲染时间或预定估计。为了确定针对帧的渲染时间分配,第二处理单元106可以被配置为将针对一个或多个低优先级分格中的每个低优先级分格的时间分配与触发时间戳进行比较。在这样的示例中,第二处理单元106可以被配置为确定针对一个或多个低优先级分格中的一个低优先级分格的时间分配超过触发时间戳。在这样的示例中,第二处理单元106可以被配置为以第一质量渲染紧接在后的低优先级分格。
图4示出了根据本公开内容的技术的方法的示例流程图400。该方法可以由第二处理单元106执行。在一些示例中,流程图400中所示的方法可以包括图4中未示出的本文所述的一个或多个功能,和/或可以排除一个或多个所示功能。
在框402处,第二处理单元106可以被配置为将帧划分成分格。在框404处,第二处理单元106可以被配置为基于指示中央窝区域的信息确定分格布局,以将每个相应分格分类为高优先级分格或低优先级分格。在框406处,第二处理单元106可以被配置为使用分格布局来渲染帧的图形内容。
在一些示例中,为了确定分格布局以对每个相应分格进行分类,第二处理单元106可以被配置为识别哪些分格与中央窝区域重叠,并且识别哪些分格不与中央窝区域重叠。在该示例中,可以将与中央窝区域重叠的分格识别为高优先级分格。在该示例中,可以将不与中央窝区域重叠的分格识别为低优先级分格。
在一些示例中,第二处理单元106可以被配置为在生成针对任何低优先级分格中的任何一个分格的相应可见性信息之前生成针对高优先级分格中的每个分格的相应可见性信息。在一些示例中,第二处理单元106可以被配置为在生成针对高优先级分格中的每个分格的相应可见性信息之后生成针对低优先级分格中的每个分格的相应可见性信息。在一些示例中,为了使用分格布局来渲染帧的图形内容,第二处理单元106可以被配置为在低优先级分格之前渲染高优先级分格的图形内容。可以在任何低优先级分格之前渲染高优先级分格的图形内容。
在一些示例中,第二处理单元106可以被配置为确定针对帧的渲染时间分配。第二处理单元106可以被配置为确定针对每个低优先级分格的渲染时间。在一些示例中,第二处理单元106可以被配置为基于针对所述低优先级分格中的零个或更多个低优先级分格的剩余渲染时间量来确定是否将会超过针对帧的渲染时间分配。在这样的示例中,第二处理单元106可以被配置为基于对是否将会超过针对帧的渲染时间分配的确定,以第一质量而不是第二质量渲染低优先级分格中的至少一个或多个低优先级分格的图形内容。第一质量可以低于第二质量。
图5示出了根据本公开内容的技术的方法的示例流程图500。该方法可以由第二处理单元106执行。在一些示例中,流程图500中所示的方法可以包括图5中未示出的本文所述的一个或多个功能,和/或可以排除一个或多个所示功能。
在框502处,第二处理单元106可以被配置为确定针对帧的渲染时间分配。渲染时间分配可以是用于渲染特定低优先级分格的预估时间分配。分格的渲染时间分配可以基于最终图像的大小。在一些示例中,每个分格的工作负荷量将是不均匀的,使得一些分格可能使用比其他分格更多的渲染时间来完成。渲染时间分配可以提前、逐个分格地或者普遍地针对所有分格来确定,并且可以基于可见图元。在一些示例中,渲染时间分配可基于分格中的图元的数量、先前渲染的帧中的相同分格的渲染时间,或可从应用程序提供。存在可以用于确定渲染时间分配的其他因素,并且本公开内容不旨在限于本文提供的示例。渲染时间分配可以在任何分格处提供估计的渲染时间,以确定剩余的渲染时间是否足以在渲染期限之前完成帧的渲染。在框504处,第二处理单元106可以被配置为基于用于渲染高优先级分格和低优先级分格的时间量来确定将会超过针对帧的渲染时间分配。可以将渲染时间分配加到提供起始参考时间的起始时间戳,以在特定分格处提供计划的渲染时间。可以将计划的渲染时间与正在渲染的低优先级分格的触发时间进行比较,以便确定正在渲染的低优先级分格的渲染时间是否超过估计的渲染时间。
在框506处,第二处理单元106可以被配置为在所述低优先级分格中的各个低优先级分格之间确定是否将会超过针对帧的渲染时间分配。可以将所述低优先级分格中的一个低优先级分格的计划的渲染时间与相应低优先级分格的触发时间进行比较。每个低优先级分格可以具有特定的触发时间,并且可以与针对该特定分格的计划的渲染时间进行比较。如果计划的渲染时间超过触发时间,则将会超过针对帧的渲染时间分配,并且可能不满足帧刷新渲染期限。
在框508处,第二处理单元106可以被配置为基于对将会超过针对帧的渲染时间分配的确定,以第一质量而不是第二质量渲染所述低优先级分格中的至少一个低优先级分格。在确定将会超过针对帧的渲染时间分配时,可以降低所述低优先级分格中的至少一个低优先级分格的质量。可以降低质量,使得以第一质量而不是第二质量来渲染所述低优先级分格中的至少一个低优先级分格。第二质量是将在正常操作下渲染低优先级分格的质量。然而,第一质量小于第二质量,并且减少所述低优先级分格中的至少一个低优先级分格的渲染时间,以便在刷新期限内及时渲染该帧。
根据本公开内容,在上下文没有另外规定的情况下,术语“或”可以被解释为“和/或”。另外,虽然诸如“一个或多个”或“至少一个”等的短语可能已经用于本文公开的一些特征而非其它特征;但在上下文没有另外规定的情况下未使用这种语言的特征可以被解释为具有这种暗示的含义。
在一个或多个示例中,可以以硬件、软件、固件或其任何组合来实现所描述的功能。例如,尽管贯穿本公开内容使用了术语“处理单元”,但是应当理解,这样的处理单元可以以硬件、软件、固件或其任何组合来实现。如果以软件实现本文描述的任何功能、处理单元、技术或其它模块,则本文描述的功能、处理单元、技术或其它模块可以作为一个或多个指令或代码在计算机可读介质上进行存储或发送。计算机可读介质包括计算机数据存储介质或通信介质,包括便于将计算机程序从一个地方转移到另一个地方的任何介质。以这种方式,计算机可读介质通常可以对应于(1)非暂时性的有形计算机可读存储介质,或者(2)诸如信号或载波的通信介质。数据存储介质可以是可以由一台或多台计算机或一个或多个处理器访问以提取指令、代码和/或数据结构以实现本公开内容中描述的技术的任何可用介质。例如,但是并非限制,这样的计算机可读介质可以包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储设备、磁盘存储设备或其它磁存储设备。本文所使用的磁盘和光盘包括压缩光盘(CD)、激光盘、光盘、数字多功能光盘(DVD)、软盘和光盘,其中磁盘通常磁性地再现数据,而光盘通常利用激光光学地再现数据。上述的组合也包括在计算机可读介质的范围内。计算机程序产品可以包括计算机可读介质。
代码可由一个或多个处理器执行,例如一个或多个DSP、通用微处理器、ASIC、ALU、FPGA或其他等效集成或分立逻辑电路。相应地,如本文所使用的术语“处理器”可以指任何前述结构或适合于实现本文描述的技术的任何其他结构。另外,所述技术可以在一个或多个电路或逻辑元件中完全实现。
本公开内容的技术可以在包括无线手持机、集成电路(IC)或一组IC(例如,芯片组)的多种多样的设备或装置中实现。在本公开内容中描述各种组件、模块或单元以强调被配置为执行所公开技术的设备的功能方面,但不一定需要由不同硬件单元来实现。相反,如上所述,各种单元可以结合合适的软件和/或固件而被组合在任何硬件单元中,或者由互操作的硬件单元的集合来提供,包括如上所述的一个或多个处理器。
已经描述了各种示例。这些和其他示例在所附权利要求的范围内。
Claims (30)
1.一种方法,包括:
由处理单元接收指示中央窝区域的信息;
由所述处理单元使用基于分格的渲染来渲染帧,其中,使用基于分格的渲染来渲染所述帧包括:
将所述帧划分为多个分格;
基于所述指示中央窝区域的信息而将所述多个分格中的一个或多个分格识别为高优先级分格;
基于所述指示中央窝区域的信息而将所述多个分格中的一个或多个分格识别为低优先级分格;
在渲染所述一个或多个低优先级分格之前渲染所述一个或多个高优先级分格。
2.根据权利要求1所述的方法,其中,渲染所述一个或多个低优先级分格包括:
以第一质量渲染所述一个或多个低优先级分格中的至少一个低优先级分格,所述第一质量低于用于渲染所述一个或多个高优先级分格的第二质量。
3.根据权利要求1所述的方法,还包括:
在渲染所述一个或多个低优先级分格中的低优先级分格之前,由所述处理单元确定针对所述帧的渲染时间分配;
由所述处理单元基于用于渲染所述一个或多个高优先级分格和所述一个或多个低优先级分格的时间量,来确定将会超过针对所述帧的所述渲染时间分配;以及
由所述处理单元基于对将会超过针对所述帧的所述渲染时间分配的所述确定,以第一质量而不是第二质量来渲染所述低优先级分格,其中,所述第一质量低于所述第二质量。
4.根据权利要求3所述的方法,还包括:
在所述一个或多个低优先级分格中的各个低优先级分格之间确定是否将会超过针对所述帧的所述渲染时间分配。
5.根据权利要求3所述的方法,其中,以所述第一质量渲染所述低优先级分格包括:动态地调整中央窝参数以确保渲染所述帧以满足所述渲染时间分配。
6.根据权利要求3所述的方法,还包括:
基于对将会超过针对所述帧的所述渲染时间分配的所述确定,显示先前渲染的帧来代替所述帧。
7.根据权利要求3所述的方法,还包括:
基于对将会超过针对所述帧的所述渲染时间分配的所述确定,跳过对所述一个或多个低优先级分格中的至少一个低优先级分格的渲染;以及
显示来自先前渲染的帧的、与被跳过的一个或多个低优先级分格相对应的先前渲染的一个或多个低优先级分格。
8.根据权利要求3所述的方法,其中,确定针对所述帧的所述渲染时间分配是基于正被渲染的当前分格中的图元的数量、前一分格的渲染时间或预定估计的。
9.根据权利要求3所述的方法,其中,确定针对所述帧的所述渲染时间分配进一步包括:将针对所述一个或多个低优先级分格中的每一个低优先级分格的时间分配与触发时间戳进行比较,使得对针对所述一个或多个低优先级分格中的一个低优先级分格的所述时间分配超过所述触发时间戳的确定导致将会以所述第一质量渲染紧接在后的低优先级分格。
10.根据权利要求1所述的方法,其中,将所述多个分格中的一个或多个分格识别为高优先级分格包括:确定所述多个分格中的第一分格与所述中央窝区域重叠,且其中,将所述多个分格中的一个或多个分格识别为低优先级分格包括:确定所述多个分格中的第二分格不与所述中央窝区域重叠。
11.根据权利要求1所述的方法,其中,将所述多个分格中的一个或多个分格识别为低优先级分格包括:确定所述多个分格中的所述一个或多个分格中的哪些分格可具有被牺牲的质量。
12.根据权利要求1所述的方法,其中,所述基于分格的渲染包括用于渲染所述帧的一个或多个渲染遍次。
13.一种装置,包括:
存储器;以及
至少一个处理单元,耦合到所述存储器并且被配置为:
接收指示中央窝区域的信息;
使用基于分格的渲染来渲染帧,其中,为了使用基于分格的渲染来渲染所述帧,所述至少一个处理单元被配置为:
将所述帧划分为多个分格;
基于所述指示中央窝区域的信息而将所述多个分格中的一个或多个分格识别为高优先级分格;
基于所述指示中央窝区域的信息而将所述多个分格中的一个或多个分格识别为低优先级分格;
在渲染所述一个或多个低优先级分格之前渲染所述一个或多个高优先级分格。
14.根据权利要求13所述的装置,其中,为了渲染所述一个或多个低优先级分格,所述至少一个处理单元被配置为:
以第一质量渲染所述一个或多个低优先级分格中的至少一个低优先级分格,所述第一质量低于用于渲染所述一个或多个高优先级分格的第二质量。
15.根据权利要求13所述的装置,其中,在渲染所述一个或多个低优先级分格中的低优先级分格之前,所述至少一个处理单元进一步被配置为:
确定针对所述帧的渲染时间分配;
基于用于渲染所述一个或多个高优先级分格和所述一个或多个低优先级分格的时间量,来确定将会超过针对所述帧的所述渲染时间分配;以及
基于对将会超过针对所述帧的所述渲染时间分配的所述确定,以第一质量而不是第二质量来渲染所述低优先级分格,其中,所述第一质量低于所述第二质量。
16.根据权利要求15所述的装置,其中,所述至少一个处理单元还被配置为:
在所述一个或多个低优先级分格中的各个低优先级分格之间确定是否将会超过针对所述帧的所述渲染时间分配。
17.根据权利要求15所述的装置,其中,为了以所述第一质量渲染所述低优先级分格,所述至少一个处理单元被配置为动态地调整中央窝参数以确保渲染所述帧以满足所述渲染时间分配。
18.根据权利要求15所述的装置,其中,所述至少一个处理单元还被配置为:
基于对将会超过针对所述帧的所述渲染时间分配的所述确定,显示先前渲染的帧来代替所述帧。
19.根据权利要求15所述的装置,其中,所述至少一个处理单元进一步被配置为:
基于对将会超过针对所述帧的所述渲染时间分配的所述确定,跳过对所述一个或多个低优先级分格中的至少一个低优先级分格的渲染;以及
显示来自先前渲染的帧的、与被跳过的一个或多个低优先级分格相对应的先前渲染的一个或多个低优先级分格。
20.根据权利要求15所述的装置,其中,对针对所述帧的所述渲染时间分配的所述确定是基于正被渲染的当前分格中的图元的数量、前一分格的渲染时间或预定估计的。
21.根据权利要求15所述的装置,其中,所述至少一个处理单元被配置为确定针对所述帧的所述渲染时间分配进一步包括:将针对所述一个或多个低优先级分格中的每一个低优先级分格的时间分配与触发时间戳进行比较,使得对针对所述一个或多个低优先级分格中的一个低优先级分格的所述时间分配超过所述触发时间戳的确定导致将会以所述第一质量渲染紧接在后的低优先级分格。
22.根据权利要求13所述的装置,其中,为了将所述多个分格中的一个或多个分格识别为高优先级分格,所述处理单元被配置为:确定所述多个分格中的第一分格与所述中央窝区域重叠,且其中,为了将所述多个分格中的一个或多个分格识别为低优先级分格,所述处理单元被配置为确定所述多个分格中的第二分格不与所述中央窝区域重叠。
23.根据权利要求13所述的装置,其中,为了将所述多个分格中的一个或多个分格识别为低优先级分格,所述至少一个处理单元被配置为:确定所述多个分格中的所述一个或多个分格中的哪些分格可具有被牺牲的质量。
24.根据权利要求13所述的装置,其中,所述基于分格的渲染包括用于渲染所述帧的一个或多个渲染遍次。
25.根据权利要求13所述的装置,其中,所述装置包括无线通信设备。
26.一种计算机可读介质,具有存储于其上的代码,所述代码在被执行时使得处理单元:
接收指示中央窝区域的信息;及
使用基于分格的渲染来渲染帧,其中,为了使用基于分格的渲染来渲染所述帧,所述处理单元被配置为:
将所述帧划分为多个分格;
基于所述指示中央窝区域的信息而将所述多个分格中的一个或多个分格识别为高优先级分格;
基于所述指示中央窝区域的信息而将所述多个分格中的一个或多个分格识别为低优先级分格;及
在渲染所述一个或多个低优先级分格之前渲染所述一个或多个高优先级分格。
27.一种方法,包括:
由处理单元接收指示中央窝区域的信息;
由所述处理单元将帧划分为多个分格;
由所述处理单元基于所述指示中央窝区域的信息来识别所述多个分格中的一个或多个高优先级分格和一个或多个低优先级分格;
基于对所述多个分格中的每个分格的所述识别来确定渲染顺序;以及
由所述处理单元使用所述多个分格和所述渲染顺序来渲染所述帧的图形内容。
28.根据权利要求27所述的方法,其中,识别所述一个或多个高优先级分格和所述一个或多个低优先级分格包括:
识别所述多个分格中哪些分格与所述中央窝区域重叠,其中,将与所述中央窝区域重叠的所述分格识别为高优先级分格,以及
识别所述多个分格中的哪些分格不与所述中央窝区域重叠,其中,将不与所述中央窝区域重叠的所述分格识别为低优先级分格。
29.根据权利要求27所述的方法,还包括:
由所述处理单元在生成针对所述一个或多个低优先级分格中的任何一个低优先级分格的相应可见性信息之前生成针对所述一个或多个高优先级分格中的每个高优先级分格的相应可见性信息;
由所述处理单元在生成针对所述一个或多个高优先级分格中的每个高优先级分格的相应可见性信息之后生成针对所述一个或多个低优先级分格中的每个低优先级分格的相应可见性信息;
其中,所述渲染顺序包括:在渲染所述一个或多个低优先级分格中的任何一个低优先级分格的图形内容之前渲染所述一个或多个高优先级分格的图形内容。
30.根据权利要求29所述的方法,还包括:
由所述处理单元确定针对所述帧的渲染时间分配;
由所述处理单元确定针对所述一个或多个低优先级分格中的每个低优先级分格的渲染时间;
由所述处理单元基于针对所述一个或多个低优先级分格的剩余渲染时间量,来确定是否将会超过针对所述帧的所述渲染时间分配;以及
由所述处理单元基于对是否将会超过针对所述帧的所述渲染时间分配的所述确定,以第一质量而不是第二质量来渲染所述一个或多个低优先级分格的至少一个低优先级分格的图形内容,其中,所述第一质量低于所述第二质量。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/130,910 | 2018-09-13 | ||
US16/130,910 US10650568B2 (en) | 2018-09-13 | 2018-09-13 | In-flight adaptive foveated rendering |
PCT/US2019/049924 WO2020055684A1 (en) | 2018-09-13 | 2019-09-06 | In-flight adaptive foveated rendering |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112655025A true CN112655025A (zh) | 2021-04-13 |
Family
ID=68066809
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980058083.0A Pending CN112655025A (zh) | 2018-09-13 | 2019-09-06 | 处理中自适应中央窝渲染 |
Country Status (5)
Country | Link |
---|---|
US (2) | US10650568B2 (zh) |
EP (1) | EP3850585A1 (zh) |
CN (1) | CN112655025A (zh) |
TW (1) | TW202024866A (zh) |
WO (1) | WO2020055684A1 (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10650568B2 (en) | 2018-09-13 | 2020-05-12 | Qualcomm Incorporated | In-flight adaptive foveated rendering |
US11818419B2 (en) * | 2018-09-28 | 2023-11-14 | Apple Inc. | Mobile device content provisioning adjustments based on wireless communication channel bandwidth condition |
US11721307B1 (en) | 2018-11-02 | 2023-08-08 | Meta Platforms Technologies, Llc | Beam-racing pixel generation in a display engine |
WO2020153221A1 (ja) * | 2019-01-21 | 2020-07-30 | 日本電気株式会社 | 無線通信品質可視化システム、無線通信品質可視化装置、および測定装置 |
GB2583061B (en) * | 2019-02-12 | 2023-03-15 | Advanced Risc Mach Ltd | Data processing systems |
BR112022001434A2 (pt) * | 2019-07-28 | 2022-06-07 | Google Llc | Métodos, sistemas e mídia para renderizar conteúdo de vídeo imersivo com malhas otimizadas |
US11416132B2 (en) * | 2020-07-10 | 2022-08-16 | Vmware, Inc. | Scaling display contents based on user-to-screen distance |
EP4272174A1 (en) * | 2020-12-30 | 2023-11-08 | Advanced Micro Devices, Inc. | Systems and methods for distributed rendering using two-level binning |
CN114935971A (zh) * | 2021-02-05 | 2022-08-23 | 京东方科技集团股份有限公司 | 显示驱动芯片、显示装置和显示驱动方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104169974A (zh) * | 2012-03-15 | 2014-11-26 | 高通股份有限公司 | 图形处理单元中基于可见性的状态更新 |
US9280836B1 (en) * | 2011-10-18 | 2016-03-08 | Google Inc. | Techniques for rendering images in a tiled view |
CN105701852A (zh) * | 2014-12-09 | 2016-06-22 | 三星电子株式会社 | 用于渲染的设备和方法 |
CN106228591A (zh) * | 2016-07-12 | 2016-12-14 | 江苏奥格视特信息科技有限公司 | 虚拟现实超高速实时渲染方法 |
US20170200308A1 (en) * | 2016-01-12 | 2017-07-13 | Qualcomm Incorporated | Systems and methods for rendering multiple levels of detail |
US20180160160A1 (en) * | 2016-12-05 | 2018-06-07 | Adobe Systems Incorporated | Prioritizing tile-based virtual reality video streaming using adaptive rate allocation |
US20180197323A1 (en) * | 2017-01-12 | 2018-07-12 | Imagination Technologies Limited | Graphics processing units and methods for controlling rendering complexity using cost indications for sets of tiles of a rendering space |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9171350B2 (en) | 2010-10-28 | 2015-10-27 | Nvidia Corporation | Adaptive resolution DGPU rendering to provide constant framerate with free IGPU scale up |
US10585472B2 (en) | 2011-08-12 | 2020-03-10 | Sony Interactive Entertainment Inc. | Wireless head mounted display with differential rendering and sound localization |
JP2015195003A (ja) | 2014-03-25 | 2015-11-05 | パナソニックIpマネジメント株式会社 | コマンド制御装置、コマンド制御方法および集積回路 |
US9984664B2 (en) * | 2015-03-18 | 2018-05-29 | Ati Technologies Ulc | Method and apparatus for compensating for variable refresh rate display range limitations |
US11010956B2 (en) | 2015-12-09 | 2021-05-18 | Imagination Technologies Limited | Foveated rendering |
GB2553744B (en) | 2016-04-29 | 2018-09-05 | Advanced Risc Mach Ltd | Graphics processing systems |
GB2553353B (en) | 2016-09-05 | 2021-11-24 | Advanced Risc Mach Ltd | Graphics processing systems and graphics processors |
US10650568B2 (en) | 2018-09-13 | 2020-05-12 | Qualcomm Incorporated | In-flight adaptive foveated rendering |
-
2018
- 2018-09-13 US US16/130,910 patent/US10650568B2/en active Active
-
2019
- 2019-09-06 WO PCT/US2019/049924 patent/WO2020055684A1/en unknown
- 2019-09-06 CN CN201980058083.0A patent/CN112655025A/zh active Pending
- 2019-09-06 EP EP19774188.7A patent/EP3850585A1/en active Pending
- 2019-09-09 TW TW108132474A patent/TW202024866A/zh unknown
-
2020
- 2020-03-30 US US16/834,752 patent/US11164357B2/en active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9280836B1 (en) * | 2011-10-18 | 2016-03-08 | Google Inc. | Techniques for rendering images in a tiled view |
CN104169974A (zh) * | 2012-03-15 | 2014-11-26 | 高通股份有限公司 | 图形处理单元中基于可见性的状态更新 |
CN105701852A (zh) * | 2014-12-09 | 2016-06-22 | 三星电子株式会社 | 用于渲染的设备和方法 |
US20170200308A1 (en) * | 2016-01-12 | 2017-07-13 | Qualcomm Incorporated | Systems and methods for rendering multiple levels of detail |
CN106228591A (zh) * | 2016-07-12 | 2016-12-14 | 江苏奥格视特信息科技有限公司 | 虚拟现实超高速实时渲染方法 |
US20180160160A1 (en) * | 2016-12-05 | 2018-06-07 | Adobe Systems Incorporated | Prioritizing tile-based virtual reality video streaming using adaptive rate allocation |
US20180197323A1 (en) * | 2017-01-12 | 2018-07-12 | Imagination Technologies Limited | Graphics processing units and methods for controlling rendering complexity using cost indications for sets of tiles of a rendering space |
Also Published As
Publication number | Publication date |
---|---|
US20200226813A1 (en) | 2020-07-16 |
WO2020055684A1 (en) | 2020-03-19 |
US20200090396A1 (en) | 2020-03-19 |
US10650568B2 (en) | 2020-05-12 |
TW202024866A (zh) | 2020-07-01 |
EP3850585A1 (en) | 2021-07-21 |
US11164357B2 (en) | 2021-11-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11164357B2 (en) | In-flight adaptive foveated rendering | |
US10573275B2 (en) | Techniques for determining an adjustment for a visual output | |
US10796478B2 (en) | Dynamic rendering for foveated rendering | |
US11037271B2 (en) | Dynamic rendering for foveated rendering | |
US10565689B1 (en) | Dynamic rendering for foveated rendering | |
US20200020067A1 (en) | Concurrent binning and rendering | |
US11847552B2 (en) | Pipeline with processor including neural network for rendering artificial reality | |
CN112740278B (zh) | 用于图形处理的方法及设备 | |
CN116324962A (zh) | 用于显示面板fps切换的方法和装置 | |
WO2021102772A1 (en) | Methods and apparatus to smooth edge portions of an irregularly-shaped display | |
CN117157703A (zh) | 注视点渲染中的内容移位 | |
CN116348904A (zh) | 用simo方法优化gpu内核以用于利用gpu高速缓存进行缩小 | |
US11875452B2 (en) | Billboard layers in object-space rendering | |
WO2024044936A1 (en) | Composition for layer roi processing | |
WO2024044934A1 (en) | Visual quality optimization for gpu composition | |
US20240046410A1 (en) | Foveated scaling for rendering and bandwidth workloads | |
WO2024087152A1 (en) | Image processing for partial frame updates | |
WO2021042331A1 (en) | Methods and apparatus for graphics and display pipeline management | |
CN114930288A (zh) | 用于促进对用于显示器下设备显示器的图像的区域处理的方法和装置 | |
EP4201069A2 (en) | Image-space function transmission | |
CN118103863A (zh) | 用于连续帧动画的功率优化 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |