CN107209923B - 图形处理中的混合渲染 - Google Patents
图形处理中的混合渲染 Download PDFInfo
- Publication number
- CN107209923B CN107209923B CN201680006301.2A CN201680006301A CN107209923B CN 107209923 B CN107209923 B CN 107209923B CN 201680006301 A CN201680006301 A CN 201680006301A CN 107209923 B CN107209923 B CN 107209923B
- Authority
- CN
- China
- Prior art keywords
- graphics
- frame
- gpu
- depth
- portions
- 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.)
- Active
Links
- 238000009877 rendering Methods 0.000 title claims abstract description 126
- 238000012545 processing Methods 0.000 title claims abstract description 102
- 230000015654 memory Effects 0.000 claims abstract description 170
- 239000000872 buffer Substances 0.000 claims abstract description 159
- 238000000034 method Methods 0.000 claims abstract description 57
- 238000012360 testing method Methods 0.000 claims description 21
- 238000004891 communication Methods 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 12
- 230000009466 transformation Effects 0.000 description 10
- 230000008859 change Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 238000002156 mixing Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000006399 behavior Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 239000013598 vector Substances 0.000 description 3
- 238000013500 data storage Methods 0.000 description 2
- 238000005286 illumination Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000000844 transformation Methods 0.000 description 2
- 238000001801 Z-test Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000007334 memory performance Effects 0.000 description 1
- 239000002159 nanocrystal Substances 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000013138 pruning Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
-
- 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
-
- 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
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/04—Texture mapping
-
- 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
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/28—Indexing scheme for image data processing or generation, in general involving image processing hardware
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2210/00—Indexing scheme for image generation or computer graphics
- G06T2210/08—Bandwidth reduction
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Image Generation (AREA)
Abstract
本发明呈现用于图形处理的技术和结构。在一个实例中,一种图形处理方法可包含:用图形处理单元GPU,使用一或多个图形操作来渲染帧的一或多个部分;以及用所述GPU,根据所述一或多个图形操作来将色彩数据直接写入到系统存储器中的色彩缓冲器。所述方法可进一步包含:用所述GPU,根据所述一或多个图形操作,将深度数据写入到图形存储器中的深度缓冲器;以及在所述帧的所述一或多个部分的所述渲染完成时,用所述GPU,将所述图形存储器中的所述深度缓冲器解析到所述系统存储器。
Description
技术领域
本发明涉及用于图形处理的技术,且更具体来说,涉及用于图形处理中的混合渲染模式的技术。
背景技术
用于显示的视觉内容(例如用于图形用户接口和视频游戏的内容)可由图形处理单元(GPU)产生。GPU可将二维或三维(3D)对象转换成可显示的二维(2D)像素表示。将关于3D对象的信息转换成可显示的位图被称为像素渲染,且要求相当大的存储器和处理能力。在过去,3D图形能力仅在强大工作站上可用。然而,现在3D图形加速器常见于个人计算机(PC)中以及嵌入式装置中,例如智能电话、平板计算机、便携式媒体播放器、便携式视频游戏控制台等。通常,嵌入式装置相比于常规PC具有较少计算能力和存储器容量。由此,当在嵌入式系统上实施此类技术时,3D图形渲染技术中增加的复杂性带来困难。
发明内容
一般来说,本发明描述用于图形处理中的混合渲染模式别的技术。明确地说,在一些实例中,本发明描述混合渲染模式,其使用分仓通过来确定帧的哪些图元可触摸或以其它方式促成场景的仓。接着仅使用通过分仓通过确定为触摸所述仓的三角形来对所述仓执行渲染。在所述仓的渲染期间,深度缓冲器中的值存储在芯片上快速图形存储器(GMEM)中。一旦仓已渲染,就将深度缓冲器中的值解析到系统存储器。然而,不是也将值存储在GMEM中的色彩缓冲器(即,存储像素的色彩值的缓冲器)中,且接着在仓的渲染完成时将色彩缓冲器解析到系统存储器,而是本发明的渲染技术可将像素值直接写入到存储在系统存储器中的色彩缓冲器,而不使用GMEM。在仓的渲染期间,在其中色彩缓冲器不频繁更新或仅更新一次的情境中,将色彩缓冲器值直接写入到系统存储器可为有益的。
在本发明的一个实例中,一种图形处理方法包括:用图形处理单元(GPU),使用一或多个图形运算来渲染帧的一或多个部分;用所述GPU,根据所述一或多个图形运算,将色彩数据直接写入到系统存储器中的色彩缓冲器;用所述GPU,根据所述一或多个图形运算,将深度数据写入到图形存储器中的深度缓冲器;以及在所述帧的所述一或多个部分的渲染完成时,用所述GPU,将所述图形存储器中的所述深度缓冲器解析到系统存储器。
在本发明的另一实例中,一种经配置以用于图形处理的设备包括:图形存储器,其经配置以存储图形数据;GPU,其与系统存储器和图形存储器通信,所述GPU其经配置以:使用一或多个图形运算来渲染帧的一或多个部分;根据所述一或多个图形运算,将色彩数据直接写入到系统存储器中的色彩缓冲器;根据所述一或多个图形运算,将深度数据写入到图形存储器中的深度缓冲器;以及在所述帧的所述一或多个部分的渲染完成时,将所述图形存储器中的深度缓冲器解析到所述系统存储器。
在本发明的另一实例中,一种经配置以用于图形处理的设备包括:用于使用一或多个图形运算来渲染帧的一或多个部分的装置;用于根据所述一或多个图形运算,将色彩数据直接写入到系统存储器中的色彩缓冲器的装置;用于根据所述一或多个图形运算,将深度数据写入到图形存储器中的深度缓冲器的装置;以及用于在所述帧的所述一或多个部分的渲染完成时,将所述图形存储器中的所述深度缓冲器解析到系统存储器的装置。
在另一实例中,本发明描述一种存储指令的非暂时性计算机可读存储媒体,所述指令在被执行时,致使经配置以用于图形处理的装置的一或多个处理器:使用一或多个图形运算来渲染帧的一或多个部分;根据所述一或多个图形运算,将色彩数据直接写入到系统存储器中的色彩缓冲器;根据所述一或多个图形运算,将深度数据写入到图形存储器中的深度缓冲器;以及在所述帧的所述一或多个部分的渲染完成时,将所述图形存储器中的所述深度缓冲器解析到所述系统存储器。
还在存储用于致使处理器执行所述技术的指令的设备和计算机可读存储媒体的方面描述本发明的技术。附图和以下描述中陈述一或多个实例的细节。其它特征、目标和优点将从描述和图式以及所附权利要求书显而易见。
附图说明
图1是示出经配置以使用本发明的技术的实例计算装置的框图。
图2是示出经配置以使用本发明的技术的实例处理单元的框图。
图3是说明帧的仓的概念图。
图4是更详细地说明帧的仓的概念图。
图5是说明根据本发明的技术的用于使用“软件”分仓的混合渲染模式的命令缓冲器的概念图。
图6是说明根据本发明的技术的用于使用“硬件”分仓的混合渲染模式的命令缓冲器的概念图。
图7是说明根据本发明的一个实例的方法的流程图。
具体实施方式
本发明涉及用于图形处理的技术,且更具体来说,涉及用于混合渲染模式的技术。当前图形渲染系统通常使用分仓渲染模式(有时称为基于平铺块的渲染)或直接渲染模式来渲染场景。在许多实例中,图形处理单元(GPU)可经配置以选择性地执行分仓渲染和基于平铺块的渲染两者。在分仓渲染中,通过使帧分裂成较小部分(例如,矩形仓或平铺块)并单独地渲染这些仓中的每一者来渲染2D或3D场景的一个帧。分仓渲染对于其中极少专用快速图形存储器(GMEM)可用的应用中有用,例如对于移动应用。所述仓的大小可经配置以表示GMEM中可用的存储量。举例来说,如果GMEM能够存储512kB,那么仓的大小可配置为使得包含于所述仓中的像素数据小于或等于512kB。
可存储在GMEM中的像素数据可包含像素的深度值和像素的色彩值。所述仓中的像素的深度值可存储在GMEM中的深度缓冲器中。同样地,所述仓中的像素的色彩值可存储在GMEM中的色彩缓冲器中。当仓的渲染完成时,可将深度缓冲器和色彩缓冲器两者解析到系统存储器(例如解析到动态随机存取存储器(DRAM))。也就是说,将数据从缓冲器解析到系统存储器包含将存储在缓冲器(例如深度缓冲器和色彩缓冲器两者)中的值从GMEM写入到系统存储器。以此方式,下一仓的深度值和色彩值可存储在GMEM中的深度缓冲器和色彩缓冲器中。
另一方面,直接渲染模式下的图形处理并不将帧分裂成较小部分(例如仓或平铺块)。实情为,立即渲染整个帧。在一些图形处理系统(例如,移动装置上的图形处理系统)中,并不存在足够的GMEM来保存像素数据的整个帧。实情为,对于直接渲染模式,使用较慢的系统存储器来渲染所述帧。由此,将深度值和色彩值分别直接写入到系统存储器中的深度缓冲器和色彩缓冲器。
由于直接渲染技术利用系统存储器来存储色彩缓冲器和深度缓冲器,因此直接渲染技术通常经历来自系统存储器的较多存储器业务。GPU与系统存储器之间的存储器业务通常较慢,且因此限制GPU性能。另外,GPU与系统存储器之间的存储器业务消耗比GPU与芯片上图形存储器之间的存储器业务多的电力。
通常,与直接渲染相比,分仓渲染技术经历GPU与系统存储器之间的较少总存储器业务,因为分仓渲染技术使用GMEM来存储色彩缓冲器和深度缓冲器。然而,越来越多的应用程序和GPU架构使用深度测试,包含高级深度测试,来降低色彩读取/写入复杂性。也就是说,基于深度缓冲器中的值来执行图形运算,例如着色,致使此类着色仅对离用户“最近”的像素执行。由此,需要像素值到色彩缓冲器的较少写入。如果仓中的大多数像素几次(或仅一次)写入到色彩缓冲器,那么将像素写入GMEM中的色彩缓冲器中且接着将色彩缓冲器从系统存储器解析出来可导致比仅将像素写入到直接在系统存储器中的色彩缓冲器中低的存储器性能。也就是说,当多次将色彩和/或深度值写入到色彩缓冲器和深度缓冲器时,GMEM的使用提供最多优点。每仓仅几次将色彩值写入到GMEM,且接着将此类值解析到系统可导致比仅直接将所述值写入到系统存储器低的存储器和电力性能。
鉴于这些缺点,本发明提出一种混合渲染系统,其中将像素值写入到直接在系统存储器(例如DRAM)中的色彩缓冲器中,且将深度值写入到GMEM中的深度缓冲器中。本发明的混合渲染技术可结合或不结合分仓技术一起使用。因为深度复杂性(即,深度读取/写入的数目)通常高于色彩复杂性(即,像素值读取/写入的数目),所以本发明的技术可节约从GMEM到DRAM的不必要的色彩缓冲器解析。也就是说,对于其中像素值可能每仓将写入到GMEM几次或仅一次的情境,本发明的混合渲染技术提供较大的存储器使用效率。
图1是说明可用于实施本发明的用于执行混合渲染模式的技术的实例计算装置2的框图。计算装置2可包括(例如)个人计算机、桌上型计算机、膝上型计算机、平板计算机、计算机工作站、视频游戏平台或控制台、移动电话(例如,蜂窝式或卫星电话、陆线电话、因特网电话)、手持式装置(例如,便携式视频游戏装置或个人数字助理(PDA)、个人音乐播放器、视频播放器)、显示装置、电视机、电视机顶盒、服务器、中间网络装置、主机计算机、任何移动装置或处理和/或显示图形数据的任何其它类型的装置。
如图1的实例中所说明,计算装置2可包含用户输入接口4、中央处理单元(CPU)6、存储器控制器8、系统存储器10、图形处理单元(GPU)12、图形存储器(GMEM)14、显示接口16、显示器18以及总线20和22。注意,在一些实例中,GMEM 14可与GPU 12“在芯片上”。在一些情况下,例如在芯片上系统(SoC)设计中,图1中所示的所有硬件元件可在芯片上。用户输入接口4、CPU 6、存储器控制器8、GPU 12和显示接口16可使用总线20彼此通信。存储器控制器8和系统存储器10也可使用总线22彼此通信。总线20、22可为多种总线结构中的任一者,例如第三代总线(例如,超传输(HyperTransport)总线或无限带宽(InfiniBand)总线)、第二代总线(例如,高级图形端口总线、周边组件互连(PCI)高速总线,或高级eXentisible接口(AXI)总线)或另一类型的总线或装置互连件。应注意,图1中所示的不同组件之间的总线和通信接口的特定配置仅是示范性的,且具有相同或不同组件的计算装置和/或其它图形处理系统的其它配置可用于实施本发明的技术。
CPU 6可包括控制计算装置2的操作的通用或专用处理器。用户可将输入提供到计算装置2以致使CPU 6执行一或多个软件应用程序。在CPU 6上执行的软件应用程序可包含(例如)操作系统、字处理器应用程序、电子邮件应用程序、电子表格应用程序、媒体播放器应用程序、视频游戏应用程序、图形用户接口应用程序或另一程序。另外,CPU 6可执行用于控制GPU 12的操作的GPU驱动程序7。用户可经由一或多个输入装置(未图示)(例如,键盘、鼠标、麦克风、触摸垫或经由用户输入接口4耦合到计算装置2的另一输入装置)将输入提供到计算装置2。
在CPU 6上执行的软件应用程序可包含指令CPU 6以致使向显示器18渲染图形数据的一或多个图形渲染指令。在一些实例中,所述软件指令可符合图形应用编程接口(API),例如开放图形库API、开放图形库嵌入系统(OpenGL ES)API、Direct3DAPI、X3D API、RenderMan API、WebGL API或任何其它公共或专有标准图形API。为了处理图形渲染指令,CPU 6可将一或多个图形渲染命令发出到GPU 12(例如,通过GPU驱动程序7),以致使GPU 12执行图形数据的渲染中的一些或全部。在一些实例中,待渲染的图形数据可包含例如点、线、三角形、四边形、三角形带等图形基元的列表。
存储器控制器8促进数据进出系统存储器10的传送。举例来说,存储器控制器8可接收存储器读取和写入命令,且服务相对于存储器系统10的此类命令,以便为计算装置2中的组件提供存储器服务。存储器控制器8经由存储器总线22以通信方式耦合到系统存储器10。虽然在图1中将存储器控制器8说明为与CPU 6和系统存储器10两者分开的处理模块,但在其它实例中,存储器控制器8的一些或全部功能性可实施在CPU 6和系统存储器10中的一或两者上。
系统存储器10可存储可由CPU 6存取以用于执行的程序模块和/或指令和/或由在CPU 6上执行的程序使用的数据。举例来说,系统存储器10可存储窗口管理器应用程序,其由CPU 6使用以在显示器18上呈现图形用户接口(GUI)。另外,系统存储器10可存储用户应用程序以及与所述应用程序相关联的应用程序表面数据。系统存储器10可另外存储由计算装置2的其它组件使用和/或产生的信息。举例来说,系统存储器10可充当GPU 12的装置存储器,且可存储将由GPU 12对其进行操作的数据,以及因GPU 12执行的操作而产生的数据。举例来说,系统存储器10可存储纹理缓冲器、深度缓冲器、模板缓冲器、顶点缓冲器、帧缓冲器等的任何组合。系统存储器10可包含一或多个易失性或非易失性存储器或存储装置,例如随机存取存储器(RAM)、静态RAM(SRAM)、动态RAM(DRAM)、只读存储器(ROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、快闪存储器、磁性数据媒体或光学存储媒体。
GPU 12可经配置以执行图形操作来向显示器18渲染一或多个图形基元。因此,当在CPU 6上执行的软件应用程序中的一者需要图形处理时,CPU 6可向GPU 12提供图形命令和图形数据以用于向显示器18渲染。图形数据可包含(例如)绘制命令、状态信息、图元信息、纹理信息等。在一些情况下,GPU 12可内置有高度并行的结构,与CPU 6相比,所述结构提供对复杂图形相关操作的更高效的处理。举例来说,GPU 12可包含经配置而以并行方式对多个顶点或像素操作的多个处理元件。在一些情况下,GPU 12的高度并行本质允许GPU12比使用CPU 6直接将场景绘制到显示器18更快速地将图形图像(例如,GUI和二维(2D)和/或三维(3D)图形场景)绘制到显示器18上。
在一些情况下,可将GPU 12集成到计算装置2的主板中。在其它情况下,GPU 12可存在于图形卡上,所述图形卡安装在计算装置2的主板中的端口中或可以其它方式并入经配置以与计算装置2交互操作的外围装置内。GPU 12可包含一或多个处理器,例如一或多个微处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)或其它等效的集成或离散逻辑电路。
GPU 12可直接耦合到GMEM 14。因此,GPU 12可在不必使用总线20的情况下从GMEM14读取数据且将数据写入到GMEM 14。换句话说,GPU 12可使用本地存储装置而非芯片外存储器在本地处理数据。这通过消除GPU 12经由总线20读取和写入数据的需要来允许GPU 12以更高效的方式操作,其中经由总线操作可经历繁重的总线业务。然而,在一些情况下,GPU12可不包含单独的存储器,而是改为经由总线20利用存储器10。GMEM 14可包含一或多个易失性或非易失性存储器或存储装置,例如随机存取存储器(RAM)、静态RAM(SRAM)、动态RAM(DRAM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、快闪存储器、磁性数据媒体或光学存储媒体。
CPU 6和/或GPU 12可将经渲染图像数据存储在帧缓冲器15中。帧缓冲器15可为独立存储器或可分配在系统存储器10内。显示接口16可从帧缓冲器15检索数据,并配置显示器18以显示由经渲染图像数据表示的图像。在一些实例中,显示接口16可包含经配置以将从帧缓冲器检索的数字值转换为可由显示器18消耗的模拟信号的数/模转换器(DAC)。在其它实例中,显示接口16可将数字值直接传递到显示器18以供处理。显示器18可包含监视器、电视机、投影装置、液晶显示器(LCD)、等离子显示面板、发光二极管(LED)阵列(例如有机LED(OLED)显示器)、阴极射线管(CRT)显示器、电子纸、表面传导电子发射显示器(SED)、激光电视显示器、纳米晶体显示器或另一类型的显示单元。显示器18可集成在计算装置2内。举例来说,显示器18可为移动电话的屏幕。或者,显示器18可为经由有线或无线通信链路而耦合到计算装置2的独立装置。举例来说,显示器18可为经由电缆或无线链路而连接到个人计算机的计算机监视器或平板显示器。
根据本发明的一个实例,GPU 12可经配置以使用一或多个图形运算来渲染帧的一或多个部分,并根据所述一或多个图形操作来讲色彩数据直接写入到系统存储器10中的色彩缓冲器。GPU 12可进一步经配置以根据一或多个图形操作来将深度数据写入到GMEM 14中的深度缓冲器,且在所述帧的一或多个部分的渲染完成时,将GMEM 14中的深度缓冲器解析到系统存储器10。
图2是进一步详细地说明图1的CPU 6、GPU 12和系统存储器10的实例实施方案的框图。CPU 6可包含至少一个软件应用程序24、图形API 26和GPU驱动程序7,其中的每一者可为在CPU 6上执行的一或多个软体应用程式或服务。GPU 12可包含图形处理管线30,所述图形处理管线包含一起操作以执行图形处理命令的多个图形处理级。GPU 12可经配置以根据本发明的技术,在混合渲染模式下执行图形处理管线30。如图2中所示,图形处理管线30可包含命令引擎32、几何处理级34、光栅化级36和像素处理管线38。图形处理管线30中的组件中的每一者可实施为固定功能组件、可编程组件(例如,作为在可编程着色器单元上执行的着色器程序的部分),或实施为固定功能与可编程组件的组合。可用于CPU 6和GPU 12的存储器可包含系统存储器10和帧缓冲器15。帧缓冲器15可为系统存储器10的部分或可与系统存储器10分开。帧缓冲器15可存储经渲染图像数据的帧。
如将在下文更详细地阐释,根据本发明的技术,GPU 12可经配置以将色彩值存储在GMEM 14中的深度缓冲器13A中。GPU 12可进一步经配置以在帧的一或多个部分(例如仓)的渲染完成时,将深度缓冲器13A解析到系统存储器10中的深度缓冲器13B。GPU 12可进一步经配置以将色彩值存储在直接在系统存储器10中的色彩缓冲器11中(即,而不将色彩值存储在GMEM 14中)。
软件应用程序24可为利用GPU 12的功能性的任何应用程序。举例来说,软件应用24可为GUI应用程序、操作系统、便携式制图应用、用于工程或艺术应用的计算机辅助设计程序、视频游戏应用程序,或使用2D或3D图形的另一种类型的软件应用程序。
软件应用程序24可包含指令GPU 12渲染图形用户接口(GUI)和/或图形场景的一或多个绘制指令。举例来说,绘制指令可包含界定将由GPU 12渲染的一组一或多个图形基元的指令。在一些实例中,绘制指令可共同地界定用于GUI中的多个开窗表面的全部或部分。在额外实例中,所述绘制指令可共同地定义图形场景的全部或部分,所述图形场景包含在由应用程序定义的模型空间或世界空间内的一或多个图形对象。
软件应用程序24可经由图形API 26调用GPU驱动程序7,以将一或多个命令发布到GPU 12,以用于将一或多个图形基元渲染到可显示的图形图像中。举例来说,软件应用程序24可经由图形API 26调用GPU驱动程序7以将图元定义提供给GPU 12。在一些情况下,可以绘制图元(例如,三角形、矩形、三角扇、三角带等)的列表的形式将图元定义提供给GPU 12。图元定义可包含指定与将渲染的图元相关联的一或多个顶点的顶点规格。顶点规格可包含每一顶点的位置坐标,且在一些情况下,包含与顶点相关联的其它属性,例如色彩坐标、法向量和纹理坐标。图元定义还可包含图元类型信息(例如,三角形、矩形、三角扇、三角带等)、缩放信息、旋转信息等。基于由软件应用程序24发布到GPU驱动程序7的指令,GPU驱动程序7可制定指定供GPU 12执行的一或多个图形操作以便渲染图元的一或多个命令。当GPU12接收到来自CPU 6的命令时,图形处理管线30对所述命令进行解码,且配置图形处理管线30内的一或多个处理元件,以执行所述命令中所指定的一或多个图形操作。在执行指定图形操作之后,图形处理管线30将经渲染的数据输出到与显示装置相关联的帧缓冲器15。
根据本发明的技术,GPU 12可经配置以使用像素处理操作和一或多个深度测试来渲染帧的一或多个部分。所述像素处理操作可包含图形操作,其使用、改变、更新和/或通常操纵像素的色彩值。像素的色彩值可处于RGB格式(红、蓝绿)、YUV格式(亮度(Y),以及两个色度值(UV)),或处于任何其它格式。GPU 12也可执行深度测试(或其它图形操作),以便使用、改变、更新和/或通常操纵深度值。深度值可指示像素相对于其它像素距离检视者有多近。可使用深度值来确定什么图元在最终经渲染场景中可见。
根据本发明的技术,GPU 12经配置以将色彩值直接存储到系统存储器10中的色彩缓冲器11。也就是说,GPU 12更新色彩缓冲器11,而不写入到GMEM 14中的任何色彩缓冲器。GPU 12还可经配置以将帧的一或多个部分(例如帧的仓)的深度值存储在GMEM 14中的深度缓冲器13A中。当GPU 12已结束渲染帧的一或多个部分(例如帧的仓)时,GPU 12可将GMEM14中的深度缓冲器13A解析到系统存储器10中的深度缓冲器13B。
GPU驱动程序7可进一步经配置以编译一或多个着色器程序,且将经编译的着色器程序下载到GPU 12内所包含的一或多个可编程着色器单元上。可用高级着色语言来编写着色器程序,例如OpenGL着色语言(GLSL)、高级着色语言(HLSL)、用于图形的C(Cg)着色语言等。经编译的着色器程序可包含控制GPU 12内的可编程着色器单元的操作的一或多个指令。举例来说,着色器程序可包含顶点着色器程序和/或像素着色器程序。顶点着色器程序可控制可编程顶点着色器单元或统一着色器单元的执行,且包含指定一或多个每顶点操作的指令。像素着色器程序可包含控制可编程像素着色器单元或统一着色器单元的执行的像素着色器程序,且包含指定一或多个逐像素操作的指令。根据本发明的一些实例,像素着色器程序还可包含选择性地致使基于源像素的对应目的地阿尔法值而检索源像素的纹理值的指令。GPU 12可根据本发明的技术来执行顶点着色器和像素着色器。也就是说,像素着色器或顶点着色器所执行的更新色彩值的任何图形操作均将致使GPU 12更新系统存储器10中的色彩缓冲器11。像素着色器或顶点着色器所执行的更新深度值的任何图形操作均将致使GPU 12更新GMEM中的深度缓冲器13A。并且,GPU 12经配置以在帧的正由GPU 12渲染的部分完成时,将深度缓冲器13A解析到系统存储器10中的深度缓冲器13B。
图形处理管线30可经配置以经由图形驱动程序28从CPU 6接收一或多个图形处理命令,且执行图形处理命令以产生可显示的图形图像。如上文所论述,图形处理管线30包含一起操作以执行图形处理命令的多个级。然而,应注意,所述级不需要一定实施在单独的硬件块中。举例来说,几何处理级34和像素处理管线38的部分可实施为统一着色器单元的部分。并且,图形处理管线30可经配置以在多种不同的渲染模式中的一者中执行,包含分仓渲染模式和直接渲染模式。
命令引擎32可接收图形处理命令,且配置图形处理管线30内的其余处理级以执行用于实行图形处理命令的各种操作。图形处理命令可包含(例如)绘制命令和图形状态命令。所述绘制命令可包含顶点规格命令,所述顶点规格命令指定一或多个顶点的位置坐标,并且在一些情况下,指定与所述顶点中的每一者相关联的其它属性值,例如色彩坐标、法向量、纹理坐标和雾坐标。所述图形状态命令可包含图元类型命令、变换命令、照明命令等。所述图元类型命令可指定将要渲染的图元的类型和/或顶点如何组合以形成图元。所述变换命令可指定对顶点执行的变换的类型。所述照明命令可指定图形场景内的不同光的类型、方向和/或布局。命令引擎32可致使几何处理级34相对于与一或多个所接收到的命令相关联的顶点和/或图元而执行几何处理。
几何处理级34可对一或多个顶点执行每顶点操作和/或图元设置操作,以便产生用于光栅化级36的图元数据。每一顶点可与一组属性(例如,位置坐标、色彩值、法向量和纹理坐标)相关联。几何处理级34根据各种每顶点操作而修改这些属性中的一或多者。举例来说,几何处理级34可对顶点位置坐标执行一或多个变换以产生经修改的顶点位置坐标。几何处理级34可(例如)将模型化变换、检视变换、投影变换、模型视图(ModelView)变换、模型视图投影(ModelViewProjection)变换、视口变换以及深度范围按比例缩放变换中的一或多者应用于顶点位置坐标,以产生经修改的顶点位置坐标。
在一些情况下,顶点位置坐标可为模型空间坐标,且经修改的顶点位置坐标可为屏幕空间坐标。可在所述模型化、检视、投影和视口变换的应用之后获得屏幕空间坐标。在一些情况下,几何处理级34还可对顶点执行每顶点照明操作以产生顶点的经修改的色彩坐标。几何处理级34还可执行其它操作,包含(例如)正常变换、正常规格化操作、检视量修剪、均质划分和/或隐面消除操作。
几何处理级34可产生包含界定将经光栅化的图元的一组一或多个经修改的顶点的图元数据以及指定顶点如何组合以形成图元的数据。所述经修改的顶点中的每一者可包含(例如)与所述顶点相关联的经修改的顶点位置坐标以及经处理的顶点属性值。所述图元数据可共同地对应于将由图形处理管线30的其它级光栅化的图元。在概念上,每一顶点可对应于图元的其中所述图元的两个边缘会合的隅角。几何处理级34可将图元数据提供到光栅化级36以供进一步处理。
在一些实例中,几何处理级34的全部或部分可由在一或多个着色器单元上执行的一或多个着色器程序实施。举例来说,在此些实例中,几何处理级34可由顶点着色器、几何着色器或其任何组合实施。在其它实例中,可将几何处理级34实施为固定功能硬件处理管线,或实施为固定功能硬件与在一或多个着色器单元上执行的一或多个着色器程序的组合。
光栅化级36经配置以从几何处理级34接收表示将被光栅化的图元的图元数据,且使所述图元光栅化以产生对应于经光栅化的图元的多个源像素。在一些实例中,光栅化级36可确定哪些屏幕像素位置由将被光栅化的图元覆盖,且产生用于被确定为由图元覆盖的每一屏幕像素位置的源像素。光栅化级36可通过使用所属领域的技术人员已知的技术来去确定哪些屏幕像素位置由图元覆盖,例如边缘遍历技术、评估边缘等式等。光栅化级36可将所得源像素提供到像素处理管线38以供进一步处理。
由光栅化级36产生的源像素可对应于屏幕像素位置,例如目的地像素,且与一或多个色彩属性相关联。针对特定经光栅化的图元所产生的所有源像素可称为与经光栅化的图元相关联。由光栅化级36确定的将由图元覆盖的像素可在概念上包含表示图元的顶点的像素、表示图元的边缘的像素以及表示图元的内部的像素。
像素处理管线38经配置以接收与经光栅化的图元相关联的源像素,且对所述源像素执行一或多个逐像素操作。可由像素处理管线38执行的逐像素操作包含(例如)阿尔法测试、纹理映射、色彩计算、像素着色、逐像素照明、雾处理、混合、像素所有权文本、源阿尔法测试、模板测试、深度测试、剪刀测试和/或点刻操作。另外,像素处理管线38可执行一或多个像素着色器程序以执行一或多个逐像素操作。由像素处理管线38产生的所得数据可在本文中被称作目的地像素数据,且存储在帧缓冲器15中。目的地像素数据可与帧缓冲器15中的具有与经处理源像素相同的显示位置的目的地像素相关联。目的地像素数据可包含例如色彩缓冲器11中的色彩值、目的地阿尔法值、深度缓冲器13B中的深度值等数据。
帧缓冲器15存储GPU 12的目的地像素。每一目的地像素可与唯一屏幕像素位置相关联。在一些实例中,帧缓冲器15可存储每一目的地像素的色彩分量和目的地阿尔法值。举例来说,帧缓冲器15可存储每一像素的红色、绿色、蓝色、阿尔法(RGBA)分量,其中“RGB”分量对应于色彩值,且“A”分量对应于目的地阿尔法值。尽管帧缓冲器15和系统存储器10被说明为单独存储器单元,但在其它实例中,帧缓冲器15可为系统存储器10的部分。
如上文所论述,GPU 12可经配置以一次渲染帧的一或多个部分。在本发明的一些实例中,GPU 12可经配置以一次渲染整个帧。在此实例中,当渲染整个帧时,GPU 12将解析GMEM 14中的深度缓冲器13A。在本发明的其它实例中,GPU 12可经配置以一次仅渲染帧的一部分。也就是说,GPU 12可经配置以将帧划分为被称作仓或平铺块的区,并独立地渲染所述仓中的每一者。根据本发明的技术,GPU 12可经配置以将帧分为若干仓,并将与渲染所述仓相关联的任何深度值存储在GMEM 14中的深度缓冲器13A中。当所述仓的渲染完成时,GPU12经配置以将深度缓冲器13A解析到系统存储器10中的深度缓冲器13B。然而,GPU 12经配置以将与渲染所述仓有关的任何色彩值直接存储在系统存储器10中的色彩缓冲器11中。
在这点上,由于色彩缓冲器11可用于帧中的每个仓,因此色彩缓冲器11可被配置成具有使得帧的所有色彩值将刚好放入色彩缓冲器11中的存储器大小。然而,深度缓冲器13A仅需要配置有使得仓的所有深度值会刚好放入深度缓冲器13A中的大小。深度缓冲器13B可被配置成具有使得帧的所有深度值将刚好放入深度缓冲器13B中的大小。下文将论述关于分仓的额外细节。
图3是说明划分成仓以用于分仓渲染模式的帧的概念图。帧40可划分成多个仓,例如仓42。通常,图形硬件将含有快速存储器(例如图2的GMEM 14),其具有足以保持至少一个仓的数据的大小。根据本发明的实例,GMEM 14可被配置成具有保持值得存储在深度缓冲器13A中的深度数据的一个仓的大小。
作为针对帧的特定仓的单个渲染遍次的部分,图形处理管线30可相对于帧的目的地像素的特定子集(例如,目的地像素的特定仓)渲染图元批次的全部或子集。在相对于第一仓执行第一渲染遍次之后,图形处理管线30可相对于第二仓执行第二渲染遍次,等等。图形处理管线30可递增地遍历经过所述仓,直到已渲染与每个仓相关联的图元为止。
图4是更详细示出根据本发明的技术用于混合渲染模式的仓的概念图。渲染/光栅化仓44、46、48和50,以含有多个像素52。一或多个图形基元可在每一仓中可见。举例来说,三角形A(Tri A)的部分在仓44和仓48两者中可见。三角形B(Tri B)的部分在仓44、仓46、仓48和仓50中的每一者中可见。三角形C(Tri C)仅在仓46中可见。在渲染遍次期间,在本发明的一个实例中,将场景分裂成若干仓,且渲染在所述仓中的所有三角形(这有时被称作软件分仓)。在本发明的另一实例中,GPU 12在渲染之前执行额外步骤,来确定所述仓中的哪些三角形在最终经渲染场景中实际可见(这有时被称作硬件分仓)。举例来说,一些三角形可在一或多个其它三角形后方,且将在最后经渲染场景中不可见。以此方式,不必为所述仓渲染不可见的三角形。
根据本发明的技术,在执行特定渲染遍次时,与所述特定渲染遍次相关联的仓的深度数据可存储在GMEM 14中的深度缓冲器13A中。然而,与特定渲染遍次相关联的仓的像素数据可存储在系统存储器10中的色彩缓冲器11中。在执行渲染遍次之后,GPU 12可将GMEM 14中的深度缓冲器13A的内容传送(即,解析)到系统存储器10中的深度缓冲器13B。在将GMEM 14中的深度缓冲器13A的内容传送到系统存储器10中的深度缓冲器13B之后,GPU12可将GMEM 14中的深度缓冲器13A初始化为默认值,且开始相对于不同仓的后续渲染遍次。
图5是示出用于连同“软件”分仓技术使用本发明的混合渲染模式来渲染场景的实例命令结构的概念图。层级1间接缓冲器(IB1)60含有一系列执行命令,用于指导GPU 12执行图形处理管线30的各种步骤(即,执行一或多个图形操作)。IB1 60中的每一执行命令基本上指向含有用于渲染管线的各个方面的命令的一或多个层级2间接缓冲器(IB2)的指针。以此方式,建立用于执行图形渲染管线的两个或更多个层级结构。GPU 12可循序步进通过IB1 60中的每一执行命令,其中IB1 60中的每一执行指向存储在IB2中的特定命令堆叠。IB1和IB2可为GPU 12的机载存储器或可为GPU 12的外部存储器,例如系统存储器10。
IB1 60中的前导执行命令指向含有可由GPU 12执行的前导命令的前导IB2 62。举例来说,前导IB2 62可包含初始化GPU 12的静止状态且设置GPU 12的初始渲染状态的命令。GPU 12的静止状态包含并不基于特定应用而改变的设置。另一方面,渲染状态包含可基于特定应用(例如,开放GL(OpenGL)应用与直接X(Direct X)应用)而改变的GPU设置。在前导IB2中的命令完成之后,控制返回到IB1 60以执行下一执行命令。
IB1 60中的下一执行命令为正使用的渲染模式配置渲染遍次。并且,在图5的实例中,渲染模式是本发明的使用软件分仓的混合渲染模式。接下来,IB1 60中的加载仓执行命令指向加载IB2 66中的命令。对于软件分仓,将特定仓的深度数据加载到GMEM 14中的深度缓冲器13A中。另外,将特定仓的色彩数据加载到系统存储器10中的色彩缓冲器11中。控制接着传递回到IB1 60,且渲染仓执行命令指向渲染IB2中的命令。
渲染IB2 68由一系列状态命令和绘制所加载的仓中的三角形的绘制命令构成。每一绘制命令指令GPU 12根据由命令和/或GPU硬件建立的图形处理管线30(例如,包含几何处理级34、光栅化级36和/或像素处理管线38)绘制三角形。如渲染IB2 68中所示,绘制命令中的每一者指示不使用可见性流来确定特定三角形是否在所述仓中实际上可见。可见性流产生于使用“硬件”分仓的分仓渲染模式中,且将参考图6更详细论述。
渲染IB2 68中的状态命令影响由GPU 12执行的图形处理管线的行为。举例来说,状态命令可改变色彩、多边形模式(例如,点而不是立体或线)、混合(开/关)、深度测试(开/关)、纹理化(开/关)、剔除、裁剪和其它逻辑操作。如渲染IB2 68中所示,状态命令可以每三角形(或每图元)为基础而发布。也就是说,命令“状态三角形A”可影响GPU 12绘制三角形A时的行为,而“状态三角形B1”和“状态三角形B2”命令可影响GPU 12绘制三角形B时的行为。“状态三角形B1”和“状态三角形B2”命令仅指示可针对每一三角形执行多个状态命令。渲染IB2 68中更新正渲染的仓中的像素的色彩值的任何渲染命令致使GPU 12更新系统存储器10中的色彩缓冲器11中的此类色彩值。渲染IB2 68中更新正渲染的仓中的像素的深度值的任何渲染命令致使GPU 12更新GMEM 14中的深度缓冲器13A。
在已执行渲染IB2 68中的全部命令之后(例如,在已绘制全部三角形之后),控制返回到IB1 60。存储仓执行命令可包含指向存储IB2 70的指针,其包含将GMEM 14中的深度缓冲器13A中的深度值存储(即,解析)到系统存储器10中的深度缓冲器13B的命令。接着为一或多个帧的每一仓72重复渲染遍次(例如,从配置渲染遍次到存储仓的执行命令,如IB160中示出)。
图6是示出用于使用“硬件”分仓来使用分仓渲染模式渲染场景的实例命令结构的概念图。IB1 61中的执行命令类似于图6的IB1 60的那些执行命令,与“分仓”遍次有关的命令除外。“分仓”遍次用于产生指示仓中的特定三角形在最后经渲染场景中是否实际上可见的可见性流。举例来说,一些三角形可在场景中的另一三角形后方,且在一些情境中将不可见(例如,当前方三角形不透明时或当未使用混合时)。在渲染仓72之前,IB1 61可包含指向分仓IB2 74中的命令的分仓遍次执行命令。分仓IB2 74包含致使GPU 12执行图形管线的简化版本(例如,渲染IB2 69的简化版本)的命令,但添加基于确定三角形在最后经渲染场景中是否可见的深度测试(Z测试)针对仓中的每一三角形更新可见性流的步骤。当执行分仓遍次时,分仓IB2 74可产生深度值,且可致使GPU 12更新GMEM 14中的深度缓冲器13A。
分仓遍次的目标是识别与当前仓相交的三角形。由此,仅需要确定三角形的顶点的位置来识别三角形是否与特定仓相交。分仓遍次利用仅包含影响顶点的位置的指令的简化顶点着色器。举例来说,色彩指令、纹理坐标以及并不影响三角形顶点的位置的其它指令可从用于分仓遍次的简化顶点着色器移除。分仓遍次还使用粗略光栅化而非精细光栅化来确定每一三角形的近似深度。粗略光栅化以与精细光栅化相比较低的精度(例如,使用较低数目的位)计算深度值。仅必需近似深度值来确定三角形是否在仓中可见。像素着色器不用于分仓遍次中。
分仓遍次接着利用对粗略深度值的深度测试来确定三角形相对于仓中的其它三角形是否在仓中可见。基于此深度测试,更新可见性流。可见性流可为指示经渲染仓中的特定三角形是否可见的位串(例如,1指示三角形可见,0指示三角形不可见)。
渲染IB2 69中的命令类似于图5中的渲染IB 68的那些命令,可见性流的使用除外。渲染IB2 69中的绘制命令(例如,绘制Tri A、绘制Tri B、绘制Tri C等)可使用由分仓遍次产生的可见性流来确定是否有必要绘制特定三角形。举例来说,对于由可见性流指示为不可见的三角形,可跳过绘制。
图7是说明根据本发明的一个实例的方法的流程图。图13的方法可由GPU 12的一或多个硬件单元执行。在本发明的一个实例中,GPU 12可经配置以使用一或多个图形操作来渲染帧的一或多个部分(702)。GPU 12可进一步经配置以根据一或多个图形操作来将色彩数据直接写入到系统存储器10中的色彩缓冲器11(704)。GPU 12可再进一步经配置以根据一或多个图形操作来将深度数据写入到GMEM 14中的深度缓冲器13A(706),且在所述帧的一或多个部分的渲染完成时,将GMEM 14中的深度缓冲器13A解析到系统存储器10中的深度缓冲器13B。在本发明的一个实例中,系统存储器10可为DRAM,且GMEM 14可在与GPU 12相同的集成电路上。
在本发明的另一实例中,GPU 12可经配置以对帧的一或多个部分执行分仓遍次。所述帧的所述一或多个部分可为帧的仓。在一个实例中,为了执行分仓遍次,GPU 12进一步经配置以执行识别在仓中可见的图元的硬件分仓遍次。在此实例中,GPU 12可进一步经配置以通过对被识别为在仓中可见的图元使用一或多个图形操作,来渲染所述帧的仓。在另一实例中,GPU 12经配置以执行识别在所述仓内的图元的软件分仓遍次,且通过对被识别为在所述仓内的图元使用一或多个图形操作来渲染所述帧的仓。
在一或多个实例中,上文所描述的功能可以硬件、软件、固件或其任何组合来实施。如果以软件实施,那么功能可作为一或多个指令或代码存储在包括非暂时性计算机可读媒体的制品上。计算机可读媒体可包含计算机数据存储媒体。数据存储媒体可为可由一或多个计算机或一个或多个处理器存取以检索用于实施本发明中描述的技术的指令、代码和/或数据结构的任何可用媒体。作为实例而非限制,此类计算机可读媒体可包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储装置、磁盘存储装置或其它磁性存储装置、闪存存储器或可用来携带或存储呈指令或数据结构形式的所要程序代码且可由计算机存取的任何其它媒体。如本文中所使用,磁盘和光盘包含压缩光盘(CD)、激光光盘、光学光盘、数字多功能光盘(DVD)、软性磁盘和蓝光光盘,其中磁盘通常以磁性方式再现数据,而光盘利用激光以光学方式再现数据。以上各项的组合也应包含在计算机可读媒体的范围内。
代码可由一或多个处理器执行,所述一或多个处理器例如一或多个DSP、通用微处理器、ASIC、FPGA,或其它等效集成或离散逻辑电路。另外,在一些方面中,可在专用硬件和/或软件模块内提供本文中所描述的功能性。而且,所述技术可完全实施于一或多个电路或逻辑元件中。
本发明的技术可在广泛多种装置或设备中实施,包含无线手持机、集成电路(IC)或一组IC(例如,芯片组)。本发明中描述各种组件、模块或单元是为了强调经配置以执行所揭示的技术的装置的功能方面,但未必需要由不同硬件单元实现。实际上,如上文所描述,各种单元可结合合适的软件和/或固件组合在编解码器硬件单元中,或者通过互操作硬件单元的集合来提供,所述硬件单元包含如上文所描述的一或多个处理器。
已描述了各种实例。这些和其它实例在所附权利要求书的范围内。
Claims (34)
1.一种图形处理方法,所述方法包括:
用图形处理单元GPU,使用一或多个图形操作来渲染帧的一或多个部分;
用所述GPU,根据所述一或多个图形操作,将色彩数据直接写入到系统存储器中的色彩缓冲器;
用所述GPU,根据所述一或多个图形操作,将像素的深度值写入到图形存储器中的深度缓冲器;以及
用所述GPU,在所述帧的所述一或多个部分的所述渲染完成时,向所述系统存储器传送所述图形存储器中所述深度缓冲器的内容。
2.根据权利要求1所述的方法,其进一步包括:
用所述GPU,对所述帧的所述一或多个部分执行分仓遍次。
3.根据权利要求2所述的方法,其中所述帧的所述一或多个部分中的每一者是所述帧的仓。
4.根据权利要求3所述的方法,其中执行所述分仓遍次包括执行硬件分仓遍次,其识别在所述仓中可见的图元,且
其中使用所述一或多个图形操作来渲染所述帧的所述一或多个部分包括对被识别为在所述仓中可见的所述图元使用所述一或多个图形操作,来渲染所述帧的所述仓。
5.根据权利要求3所述的方法,其中执行所述分仓遍次包括执行识别在所述仓内的图元的软件分仓遍次,且
其中使用所述一或多个图形操作来渲染所述帧的所述一或多个部分包括对被识别为在所述仓内的所述图元使用所述一或多个图形操作,来渲染所述帧的所述仓。
6.根据权利要求1所述的方法,其中所述帧的所述一或多个部分是整个帧。
7.根据权利要求1所述的方法,其中使用所述一或多个图形操作来渲染所述帧的所述一或多个部分包括使用像素处理操作和一或多个深度测试来渲染所述帧的所述一或多个部分,且
其中根据所述一或多个图形操作将所述色彩数据直接写入到所述系统存储器中的所述色彩缓冲器包括根据所述像素处理操作,将所述色彩数据直接写入到所述系统存储器中的所述色彩缓冲器,且
其中根据所述一或多个图形操作将所述深度值写入到所述图形存储器中的所述深度缓冲器包括根据所述一或多个深度测试,将所述深度值写入到所述图形存储器中的所述深度缓冲器。
8.根据权利要求1所述的方法,其中所述系统存储器是动态随机存取存储器DRAM,且其中所述图形存储器在与所述GPU相同的集成电路上。
9.根据权利要求1所述的方法,其进一步包括:
在向所述系统存储器传送所述深度缓冲器的内容后将所述深度缓冲器初始化为默认值。
10.一种经配置以用于图形处理的设备,所述设备包括:
图形存储器,其经配置以存储所述图形数据;以及
图形处理单元GPU,其与系统存储器和所述图形存储器通信,所述GPU经配置以:
使用一或多个图形操作来渲染帧的一或多个部分;
根据所述一或多个图形操作,将色彩数据直接写入到系统存储器中的色彩缓冲器;
根据所述一或多个图形操作,将像素的深度值写入到所述图形存储器中的深度缓冲器;以及
当所述帧的所述一或多个部分的所述渲染完成时,向所述系统存储器传送所述图形存储器中所述深度缓冲器的内容。
11.根据权利要求10所述的设备,其进一步包括所述系统存储器。
12.根据权利要求11所述的设备,其中所述系统存储器是动态随机存取存储器DRAM,且其中所述图形存储器在与所述GPU相同的集成电路上。
13.根据权利要求10所述的设备,其中所述GPU进一步经配置以:
对所述帧的所述一或多个部分执行分仓遍次。
14.根据权利要求13所述的设备,其中所述帧的所述一或多个部分中的每一者是所述帧的仓。
15.根据权利要求14所述的设备,其中为了执行所述分仓遍次,所述GPU进一步经配置以执行硬件分仓遍次,其识别在所述仓中可见的图元,且
其中为了使用所述一或多个图形操作来渲染所述帧的所述一或多个部分,所述GPU进一步经配置以对被识别为在所述仓中可见的所述图元使用所述一或多个图形操作,来渲染所述帧的所述仓。
16.根据权利要求14所述的设备,其中为了执行所述分仓遍次,所述GPU进一步经配置以执行软件分仓遍次,其识别在所述仓内的图元,且
其中为了使用所述一或多个图形操作来渲染所述帧的所述一或多个部分,所述GPU进一步经配置以对被识别为在所述仓内的所述图元使用所述一或多个图形操作,来渲染所述帧的所述仓。
17.根据权利要求10所述的设备,其中所述帧的所述一或多个部分是整个帧。
18.根据权利要求10所述的设备,其中为了使用所述一或多个图形操作来渲染所述帧的所述一或多个部分,所述GPU进一步经配置以使用像素处理操作和一或多个深度测试来渲染所述帧的所述一或多个部分,且
其中为了根据所述一或多个图形操作将所述色彩数据直接写入到所述系统存储器中的所述色彩缓冲器,所述GPU进一步经配置以根据所述像素处理操作,
将所述色彩数据直接写入到所述系统存储器中的所述色彩缓冲器,且
其中为了根据所述一或多个图形操作将所述深度值写入到所述图形存储器中的所述深度缓冲器,所述GPU进一步经配置以根据所述一或多个深度测试,将所述深度值写入到所述图形存储器中的所述深度缓冲器。
19.根据权利要求10所述的设备,其进一步包括经配置以显示所述帧的显示器。
20.根据权利要求10所述的设备,其中所述GPU和所述图形存储器是个人计算机、桌上型计算机、膝上型计算机、平板计算机、计算机工作站、视频游戏平台或控制台、移动电话、便携式视频游戏装置、个人音乐播放器、视频播放器、显示装置、电视机、电视机顶盒或服务器的一部分。
21.根据权利要求10所述的设备,其中,所述GPU进一步经配置以:
在向所述系统存储器传送所述深度缓冲器的内容后将所述深度缓冲器初始化为默认值。
22.一种经配置以用于图形处理的设备,所述设备包括:
用于使用一或多个图形操作来渲染帧的一或多个部分的装置;
用于根据所述一或多个图形操作将色彩数据直接写入到系统存储器中的色彩缓冲器的装置;
用于根据所述一或多个图形操作将像素的深度值写入到图形存储器中的深度缓冲器的装置;以及
用于在所述帧的所述一或多个部分的所述渲染完成时向所述系统存储器传送所述图形存储器中所述深度缓冲器的内容的装置。
23.根据权利要求22所述的设备,其进一步包括:
用于对所述帧的所述一或多个部分执行分仓遍次的装置。
24.根据权利要求23所述的设备,其中所述帧的所述一或多个部分中的每一者是所述帧的仓。
25.根据权利要求24所述的设备,其中所述用于执行所述分仓遍次的装置包括用于执行识别在所述仓中可见的图元的硬件分仓遍次的装置,且
其中所述用于使用所述一或多个图形操作来渲染所述帧的所述一或多个部分的装置包括用于对被识别为在所述仓中可见的所述图元使用所述一或多个图形操作来渲染所述帧的所述仓的装置。
26.根据权利要求24所述的设备,其中所述用于执行所述分仓遍次的装置包括用于执行识别在所述仓内的图元的软件分仓遍次的装置,且
其中所述用于使用所述一或多个图形操作来渲染所述帧的所述一或多个部分的装置包括用于对被识别为在所述仓内的所述图元使用所述一或多个图形操作来渲染所述帧的所述仓的装置。
27.根据权利要求22所述的设备,其中所述帧的所述一或多个部分是整个帧。
28.根据权利要求22所述的设备,其中所述用于使用所述一或多个图形操作来渲染所述帧的所述一或多个部分的装置包括用于使用像素处理操作和一或多个深度测试来渲染所述帧的所述一或多个部分的装置,且
其中所述用于根据所述一或多个图形操作将所述色彩数据直接写入到所述系统存储器中的所述色彩缓冲器的装置包括用于根据所述像素处理操作将所述色彩数据直接写入到所述系统存储器中的所述色彩缓冲器的装置,且
其中所述用于根据所述一或多个图形操作将所述深度值写入到所述图形存储器中的所述深度缓冲器的装置包括用于根据所述一或多个深度测试将所述深度值写入到所述图形存储器中的所述深度缓冲器的装置。
29.根据权利要求22所述的设备,其中所述系统存储器是动态随机存取存储器DRAM,且其中所述图形存储器在与GPU相同的集成电路上。
30.根据权利要求22所述的设备,其进一步包括:
用于在向所述系统存储器传送所述深度缓冲器的内容后将所述深度缓冲器初始化为默认值的装置。
31.一种存储指令的非暂时性计算机可读存储介质,所述指令在被执行时,致使配置用于图形处理的装置的一或多个处理器:
使用一或多个图形操作来渲染帧的一或多个部分;
根据所述一或多个图形操作,将色彩数据直接写入到系统存储器中的色彩缓冲器;
根据所述一或多个图形操作,将像素的深度值写入到图形存储器中的深度缓冲器;以及
当所述帧的所述一或多个部分的所述渲染完成时,向所述系统存储器传送所述图形存储器中所述深度缓冲器的内容。
32.根据权利要求31所述的非暂时性计算机可读存储介质,其中所述指令进一步致使所述一或多个处理器:
对所述帧的所述一或多个部分执行分仓遍次。
33.根据权利要求31所述的非暂时性计算机可读存储介质,其中为了使用所述一或多个图形操作来渲染所述帧的所述一或多个部分,所述指令进一步致使所述一或多个处理器使用像素处理操作和一或多个深度测试来渲染所述帧的所述一或多个部分,且
其中为了根据所述一或多个图形操作将所述色彩数据直接写入到所述系统存储器中的所述色彩缓冲器,所述指令进一步致使所述一或多个处理器根据所述像素处理操作,将所述色彩数据直接写入到所述系统存储器中的所述色彩缓冲器,且
其中为了根据所述一或多个图形操作将所述深度值写入到所述图形存储器中的所述深度缓冲器,所述指令进一步致使所述一或多个处理器根据所述一或多个深度测试,将所述深度值写入到所述图形存储器中的所述深度缓冲器。
34.根据权利要求31所述的非暂时性计算机可读存储介质,其进一步包括在执行时致使配置用于图形处理的所述装置的所述一或多个处理器执行如下的指令:
在向所述系统存储器传送所述深度缓冲器的内容后将所述深度缓冲器初始化为默认值。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/618,463 US9489710B2 (en) | 2015-02-10 | 2015-02-10 | Hybrid rendering in graphics processing |
US14/618,463 | 2015-02-10 | ||
PCT/US2016/013932 WO2016130286A1 (en) | 2015-02-10 | 2016-01-19 | Hybrid rendering in graphics processing |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107209923A CN107209923A (zh) | 2017-09-26 |
CN107209923B true CN107209923B (zh) | 2021-07-06 |
Family
ID=55398413
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680006301.2A Active CN107209923B (zh) | 2015-02-10 | 2016-01-19 | 图形处理中的混合渲染 |
Country Status (7)
Country | Link |
---|---|
US (1) | US9489710B2 (zh) |
EP (1) | EP3257024B1 (zh) |
JP (1) | JP2018510405A (zh) |
CN (1) | CN107209923B (zh) |
ES (1) | ES2804149T3 (zh) |
HU (1) | HUE049346T2 (zh) |
WO (1) | WO2016130286A1 (zh) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9842428B2 (en) * | 2014-06-27 | 2017-12-12 | Samsung Electronics Co., Ltd. | Dynamically optimized deferred rendering pipeline |
US20170004647A1 (en) * | 2015-06-30 | 2017-01-05 | Microsoft Technology Licensing, Llc | Rendering graphics data on demand |
US10535114B2 (en) * | 2015-08-18 | 2020-01-14 | Nvidia Corporation | Controlling multi-pass rendering sequences in a cache tiling architecture |
US10460513B2 (en) * | 2016-09-22 | 2019-10-29 | Advanced Micro Devices, Inc. | Combined world-space pipeline shader stages |
KR20180038793A (ko) * | 2016-10-07 | 2018-04-17 | 삼성전자주식회사 | 영상 데이터 처리 방법 및 장치 |
US10445902B2 (en) * | 2016-12-13 | 2019-10-15 | Qualcomm Incorporated | Fetch reduction for fixed color and pattern sub-frames |
US10157443B1 (en) * | 2017-07-28 | 2018-12-18 | Qualcomm Incorporated | Deferred batching of incremental constant loads |
CN107613046B (zh) * | 2017-08-22 | 2020-12-18 | 创新先进技术有限公司 | 滤镜管道系统、图像数据处理方法、装置以及电子设备 |
US10699368B1 (en) | 2017-08-30 | 2020-06-30 | Apple Inc. | Memory allocation techniques for graphics shader |
US10580151B2 (en) * | 2017-12-05 | 2020-03-03 | Qualcomm Incorporated | Tile-based low-resolution depth storage |
US10521321B2 (en) * | 2017-12-21 | 2019-12-31 | Qualcomm Incorporated | Diverse redundancy approach for safety critical applications |
CN110969685B (zh) * | 2018-09-28 | 2024-03-12 | 苹果公司 | 使用渲染图的可定制渲染管线 |
CN109672931B (zh) | 2018-12-20 | 2020-03-20 | 北京百度网讯科技有限公司 | 用于处理视频帧的方法和装置 |
US11315225B2 (en) | 2019-06-20 | 2022-04-26 | Samsung Electronics Co., Ltd. | Coarse depth culling during binning |
CN113256745A (zh) | 2020-02-13 | 2021-08-13 | 英特尔公司 | 用于基于重要度值来编码的方法和装置 |
CN111882480B (zh) * | 2020-07-10 | 2024-07-19 | 长沙景嘉微电子股份有限公司 | 分块数据处理方法、装置、系统及存储介质 |
US11741653B2 (en) * | 2020-07-28 | 2023-08-29 | Advanced Micro Devices, Inc. | Overlapping visibility and render passes for same frame |
CN112148630B (zh) * | 2020-09-17 | 2022-09-06 | 武汉凌久微电子有限公司 | 一种基于gpu图形显示的显存自适应管理方法 |
CN117557701B (zh) * | 2022-08-03 | 2024-09-20 | 荣耀终端有限公司 | 一种图像渲染方法和电子设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6891533B1 (en) * | 2000-04-11 | 2005-05-10 | Hewlett-Packard Development Company, L.P. | Compositing separately-generated three-dimensional images |
CN1655192A (zh) * | 2004-02-10 | 2005-08-17 | 三星电子株式会社 | 基于深度图像的三维图形数据的高速显像的装置和方法 |
CN1954356A (zh) * | 2004-05-14 | 2007-04-25 | 辉达公司 | 用于万用数据写入单元的系统和方法 |
CN101103381A (zh) * | 2004-11-19 | 2008-01-09 | 艾利森电话股份有限公司 | 用于呈现三维图形的方法及装置 |
WO2008025842A1 (de) * | 2006-09-01 | 2008-03-06 | Seereal Technologies S.A. | Schnittstelle und schaltungsanordnung insbesondere für holografische kodiereinheiten oder holografische wiedergabeeinrichtungen |
CN103959338A (zh) * | 2011-11-30 | 2014-07-30 | 高通股份有限公司 | 使用过度绘制跟踪器在图形处理中在直接呈现与分格之间的切换 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5664162A (en) | 1994-05-23 | 1997-09-02 | Cirrus Logic, Inc. | Graphics accelerator with dual memory controllers |
US6856320B1 (en) * | 1997-11-25 | 2005-02-15 | Nvidia U.S. Investment Company | Demand-based memory system for graphics applications |
US6747645B1 (en) | 1998-03-13 | 2004-06-08 | Hewlett-Packard Development Company, L.P. | Graphics memory system that utilizes detached-Z buffering in conjunction with a batching architecture to reduce paging overhead |
US6903739B2 (en) | 2001-02-20 | 2005-06-07 | Ati International Srl | Graphic display system having a frame buffer with first and second memory portions |
KR20060044124A (ko) | 2004-11-11 | 2006-05-16 | 삼성전자주식회사 | 3차원 그래픽 가속을 위한 그래픽 시스템 및 메모리 장치 |
US7976386B2 (en) | 2006-06-12 | 2011-07-12 | Tran Bao Q | Mesh network game controller with voice transmission, search capability, motion detection, and/or position detection |
US8300050B2 (en) * | 2006-11-28 | 2012-10-30 | Adobe Systems Incorporated | Temporary low resolution rendering of 3D objects |
US8289319B2 (en) * | 2007-10-08 | 2012-10-16 | Ati Technologies Ulc | Apparatus and method for processing pixel depth information |
GB0810205D0 (en) * | 2008-06-04 | 2008-07-09 | Advanced Risc Mach Ltd | Graphics processing systems |
US20100091018A1 (en) * | 2008-07-11 | 2010-04-15 | Advanced Micro Devices, Inc. | Rendering Detailed Animated Three Dimensional Characters with Coarse Mesh Instancing and Determining Tesselation Levels for Varying Character Crowd Density |
US8416238B2 (en) * | 2009-02-18 | 2013-04-09 | Autodesk, Inc. | Modular shader architecture and method for computerized image rendering |
CN102667864B (zh) * | 2009-10-26 | 2015-06-03 | 索尼计算机娱乐公司 | 图像文件生成装置、图像处理装置、图像文件生成方法、图像处理方法 |
KR101782044B1 (ko) * | 2011-02-22 | 2017-09-26 | 삼성전자주식회사 | 그래픽 프로세서 및 조기 가시성 테스트 방법 |
GB2497762B (en) * | 2011-12-20 | 2018-05-23 | Advanced Risc Mach Ltd | Intermediate value storage within a graphics processing apparatus |
US20130162625A1 (en) * | 2011-12-23 | 2013-06-27 | Michael L. Schmit | Displayed Image Improvement |
US10559123B2 (en) * | 2012-04-04 | 2020-02-11 | Qualcomm Incorporated | Patched shading in graphics processing |
US9087410B2 (en) * | 2013-01-17 | 2015-07-21 | Qualcomm Incorporated | Rendering graphics data using visibility information |
US10169906B2 (en) * | 2013-03-29 | 2019-01-01 | Advanced Micro Devices, Inc. | Hybrid render with deferred primitive batch binning |
-
2015
- 2015-02-10 US US14/618,463 patent/US9489710B2/en active Active
-
2016
- 2016-01-19 ES ES16705351T patent/ES2804149T3/es active Active
- 2016-01-19 EP EP16705351.1A patent/EP3257024B1/en active Active
- 2016-01-19 WO PCT/US2016/013932 patent/WO2016130286A1/en active Application Filing
- 2016-01-19 HU HUE16705351A patent/HUE049346T2/hu unknown
- 2016-01-19 JP JP2017540859A patent/JP2018510405A/ja active Pending
- 2016-01-19 CN CN201680006301.2A patent/CN107209923B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6891533B1 (en) * | 2000-04-11 | 2005-05-10 | Hewlett-Packard Development Company, L.P. | Compositing separately-generated three-dimensional images |
CN1655192A (zh) * | 2004-02-10 | 2005-08-17 | 三星电子株式会社 | 基于深度图像的三维图形数据的高速显像的装置和方法 |
CN1954356A (zh) * | 2004-05-14 | 2007-04-25 | 辉达公司 | 用于万用数据写入单元的系统和方法 |
CN101103381A (zh) * | 2004-11-19 | 2008-01-09 | 艾利森电话股份有限公司 | 用于呈现三维图形的方法及装置 |
WO2008025842A1 (de) * | 2006-09-01 | 2008-03-06 | Seereal Technologies S.A. | Schnittstelle und schaltungsanordnung insbesondere für holografische kodiereinheiten oder holografische wiedergabeeinrichtungen |
CN103959338A (zh) * | 2011-11-30 | 2014-07-30 | 高通股份有限公司 | 使用过度绘制跟踪器在图形处理中在直接呈现与分格之间的切换 |
Also Published As
Publication number | Publication date |
---|---|
WO2016130286A1 (en) | 2016-08-18 |
HUE049346T2 (hu) | 2020-09-28 |
US9489710B2 (en) | 2016-11-08 |
EP3257024A1 (en) | 2017-12-20 |
JP2018510405A (ja) | 2018-04-12 |
CN107209923A (zh) | 2017-09-26 |
US20160232645A1 (en) | 2016-08-11 |
EP3257024B1 (en) | 2020-04-01 |
ES2804149T3 (es) | 2021-02-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107209923B (zh) | 图形处理中的混合渲染 | |
US10282813B2 (en) | Flex rendering based on a render target in graphics processing | |
US9117302B2 (en) | Switching between direct rendering and binning in graphics processing using an overdraw tracker | |
US9852536B2 (en) | High order filtering in a graphics processing unit | |
US9280956B2 (en) | Graphics memory load mask for graphics processing | |
EP3427229B1 (en) | Visibility information modification | |
US9646359B2 (en) | Indefinite texture filter size for graphics processing | |
CN106575428B (zh) | 图形处理单元中的高阶滤波 | |
US20190087930A1 (en) | Adding metadata to texture surfaces for bandwidth compression |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |