图形处理单元中的再现模式选择的制作方法

xiaoxiao2020-7-22  16

图形处理单元中的再现模式选择的制作方法
【专利摘要】本发明描述用于自动地选择再现模式以供图形处理单元GPU用来再现图形数据以进行显示的技术。更具体来说,所述技术包含评估与再现一个或一个以上再现单元的图形数据相关联的至少两个度量,且基于所述所评估的度量为当前再现单元自动地选择即时再现模式或延迟再现模式。所述选定的再现模式可为经预测使用较少的电力和/或系统带宽来再现所述当前再现单元的所述图形数据的所述再现模式中的所述一者。再现单元可包括一组帧、一帧、一帧的一部分、与一帧相关联的多个再现目标、与一帧相关联的单一再现目标,或单一再现目标的一部分。
【专利说明】图形处理单元中的再现模式选择
【技术领域】
[0001]本发明涉及处理数据,且更特定来说,涉及使用图形处理单元(GPU)处理数据。
【背景技术】
[0002]图形处理单元(GPU)是用于在显示装置上处理并显示计算机化的图形的专用图形再现装置。以高度并行的结构来建构GPU,所述结构针对一系列复杂算法提供比典型通用中央处理单元(CPU)更有效的处理。举例来说,所述复杂算法可对应于二维(2D)或三维(3D)计算机化的图形的表示。
[0003]GPU可包含于图形装置内,例如移动无线电话、个人数字助理(PDA)、视频游戏装置、视频游戏控制台、视频会议单元、膝上型计算机、桌上型计算机、平板计算机、电视机顶盒、集成式电视图形装置、数字记录装置、数字媒体播放器、全球定位系统(GPS)装置、数码相机、汽车显示器等。在图形装置上执行的图形应用可通过调用应用程序编程接口(API)调用或指令(其又使用GPU来再现图像以进行显示),来描述或界定图形场景的内容。
[0004]GPU的再现引擎可根据即时再现模式或延迟再现模式而操作。当根据即时再现模式操作时,GPU的再现引擎直接向帧缓冲器再现图形数据。当根据延迟再现模式操作时,GPU的再现引擎执行平铺回合以将图形数据划分为多个瓦片,向本地瓦片缓冲器再现多个瓦片中的每一者,且将所再现的瓦片中的每一者从瓦片缓冲器读取到帧缓冲器。目前,即时再现模式最普遍用于电力和系统带宽不大受到关注的图形装置中,且延迟再现模式最普遍用于电力和系统带宽较为珍贵的移动装置中。

【发明内容】

[0005]本发明描述用于自动地选择再现模式以供图形处理单元(GPU)用来再现图形数据以进行显示的技术。更具体来说,所述技术包含评估与再现一个或一个以上再现单元的图形数据相关联的至少两个度量,且基于所述所评估的度量为当前再现单元自动地选择即时再现模式或延迟再现模式。再现单元可包括一组帧、一帧、一帧的一部分、与一帧相关联的多个再现目标、与一帧相关联的单一再现目标,或单一再现目标的一部分。当前再现单元可包括当前正被GPU再现的再现单元。用于自动地选择再现模式的技术可在图形数据中的每一再现边界处执行,即,在GPU完成再现前一再现单元且开始再现当前再现单元时。
[0006]最有效的再现模式可基于在再现某一图形数据时GPU的性能而变化。因此,所述选定的再现模式可为基于所评估的度量的经预测使用较少的电力和/或较少的系统带宽来再现图形数据的当前再现单元的所述再现模式中的所述一者。本发明的技术包含配置GPU以根据选定的再现模式而操作。在一些情况下,所述技术还可包含接收超驰自动地选择的再现模式的手动地选择的再现模式。当接收到手动地选择的再现模式时,GPU可经配置以根据手动地选择的再现模式而操作。
[0007]在一个实例中,本发明针对于一种处理图形数据的方法,其包括:评估与再现一个或一个以上再现单元的图形数据相关联的至少两个度量;基于所述所评估的度量而将用于当前再现单元的再现模式自动地选择为即时再现模式和延迟再现模式中的一者;以及配置图形处理单元(GPU)以根据所述选定的再现模式来再现当前再现单元的图形数据。
[0008]在另一实例中,本发明针对于一种用于处理图形数据的图形装置,其包括:存储器缓冲器,其存储与再现一个或一个以上再现单元的图形数据相关联的度量;以及一个或一个以上处理器,其评估所述度量中的至少两者,基于所述所评估的度量而将用于当前再现单元的再现模式自动地选择为即时再现模式和延迟再现模式中的一者,且配置图形处理单元(GPU)以根据所述选定的再现模式来再现当前再现单元的图形数据。
[0009]在进一步的实例中,本发明针对于一种用于处理图形数据的图形装置,其包括:用于评估与再现一个或一个以上再现单元的图形数据相关联的至少两个度量的装置;用于基于所述所评估的度量而将用于当前再现单元的再现模式自动地选择为即时再现模式和延迟再现模式中的一者的装置;以及用于配置图形处理单元(GPU)以根据所述选定的再现模式来再现当前再现单元的图形数据的装置。
[0010]在另一实例中,本发明针对于一种包括用于处理图形数据的指令的计算机可读媒体,所述指令在执行时致使一个或一个以上可编程处理器执行以下操作:评估与再现一个或一个以上再现单元的图形数据相关联的至少两个度量;基于所述所评估的度量而将用于当前再现单元的再现模式自动地选择为即时再现模式和延迟再现模式中的一者;以及配置图形处理单元(GPU)以根据所述选定的再现模式来再现当前再现单元的图形数据。
[0011]一个或一个以上实例的细节陈述于附图及以下描述中。其它特征、目标及优势将从描述及附图以及从权利要求书中显而易见。
【专利附图】

【附图说明】
[0012]图1是说明图形装置的方框图,所述图形装置包含经配置以自动地选择再现模式以供图形处理单元(GPU)使用的图形驱动器。
[0013]图2是更详细地说明由图形驱动器用来自动地选择再现模式以供GPU使用的图形装置的功能块的方框图。
[0014]图3是说明经配置以自动地选择再现模式以供GPU使用的图形驱动器的示范性功能块的方框图。
[0015]图4是说明自动地选择再现模式以供GPU使用的图形驱动器的实例操作的流程图。
[0016]图5是说明收集与再现一个或一个以上再现单元的图形数据相关联的度量的图形驱动器的实例操作的流程图。
[0017]图6是说明使用加权方案来评估度量的图形驱动器的实例操作的流程图。
【具体实施方式】
[0018]本发明描述用于自动地选择再现模式以供图形处理单元(GPU)用来再现图形数据以进行显示的技术。更具体来说,所述技术包含评估与再现一个或一个以上再现单元的图形数据相关联的至少两个度量,且基于所述所评估的度量为当前再现单元自动地选择即时再现模式或延迟再现模式。所述选定的再现模式可为基于所评估的度量的经预测使用较少的电力和/或较少的系统带宽来再现图形数据的当前再现单元的所述再现模式中的一者。再现单元可包括一组帧、一帧、一帧的一部分、与一帧相关联的多个再现目标、与一帧相关联的单一再现目标,或单一再现目标的一部分。当前再现单元可包括当前正被GPU再现的再现单元。用于自动地选择再现模式的技术可在图形数据中的每一再现边界处执行,即,在GPU完成再现前一再现单元且再开始再现再现时。
[0019]图1是说明图形装置2的方框图,所述图形装置包含经配置以自动地选择再现模式以供图形处理单元(GPU)6使用的图形驱动器10。根据本发明的技术,图形驱动器10可:评估与再现图形数据相关联的至少两个度量;基于所述所评估的度量而为当前再现单元自动地选择一再现模式;以及配置GPU6以根据所述选定的再现模式而操作。
[0020]图形装置2能够发射并接收图形数据、支持多种图形数据处理应用,以及输出经处理的图形数据以供呈现给用户。图形装置2的实例包含(但不限于)移动无线电话、个人数字助理(PDA)、视频游戏装置、视频游戏控制台、视频会议单元、膝上型计算机、桌上型计算机、平板计算机、电视机顶盒、集成式电视图形装置、数字记录装置、数字媒体播放器、全球定位系统(GPS)装置、数码相机、汽车显示器等。图形数据可包括静态图像数据、视频数据,或其它多媒体数据。在本发明中,可经常将图形数据描述为包含多个连续帧的视频数据。然而,无意限制可根据本发明的技术再现的图形数据的类型。
[0021]在图1中所说明的实例中,图形装置2包含具有图形驱动器10的中央处理单元(CPU)4、具有再现引擎12的GPU6、装置存储器8、收发器模块14、用户输入装置16和显示器18。在其它情况下,举例来说,当图形装置2是桌上型计算机时,显示器18和/或用户输入装置16可在图形装 置2的外部。CPU4和GPU6可包括数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA),或其它等效集成或离散逻辑电路。CPU4可能够控制GPU6。
[0022]图形装置2可在CPU4上执行一个或一个以上图形应用程序。图形应用程序的实例包含网络浏览器、电子邮件应用程序、电子数据表、视频游戏、计算机辅助设计(CAD)应用程序、数码相机应用程序、视频会议应用程序、模拟与视觉化工具、视频串流应用程序,或产生视觉输出以用于经由显示器18呈现给用户的其它应用程序。
[0023]CPU4通过调用图形应用程序的应用程序指令来执行图形应用程序,所述应用程序指令使用CPU4和/或GPU6来产生图像。在一些情况下,可从图形应用程序编程接口(API)调用产生应用程序指令。用于写入图形应用程序的图形API可包含开放式图形库(OpenGL? )、用于嵌入式系统的OpenGL? ( OpenGL^ ES),或OpenVG (向量图形)API。在所说明的实施例中,图形驱动器10在CPU4上运行。图形驱动器10可将应用程序指令或API调用转译为将在CPU4和/或GPU6上执行的命令。在一些情况下,GPU6可单独地执行一个或一个以上图形应用程序。在此情况下,GPU6还可执行其自身的图形驱动器。在其它实例中,可将图形驱动器10存储在装置存储器8中,使得CPU4或GPU6可加载图形驱动器10以供所述处理单元执行。
[0024]GPU6可根据所述图形应用程序执行由CPU4上的图形驱动器10发布的命令,以将图形数据再现为图像以经由显示器18呈现给用户。举例来说,GPU6可执行顶点着色、三角形光栅化、片段着色和像素混合中的一者或一者以上。GPU6可随后将所再现的图形数据存储在装置存储器8中的帧缓冲器中。可由GPU6基于每个再现单元来再现图形数据。如上文所描述,再现单元可包括一组帧、一帧、一帧的一部分、与一帧相关联的多个再现目标、与一帧相关联的单一再现目标,或单一再现目标的一部分。在一些情况下,帧可包含一个或一个以上再现目标。再现目标可包括存储于装置存储器8中的若干帧缓冲器,其各自保持帧的某一类型的图形数据,例如纹理数据、色彩数据和深度数据。GPU6可再现与帧相关联的再现目标中的每一者内的图形数据,且随后组合所再现的数据以供存储在装置存储器8中,且在显示器18上作为单一帧而呈现。
[0025]在所说明的实例中,GPU6包含再现引擎12,所述再现引擎可根据即时再现模式或延迟再现模式而操作以再现图形数据。当根据即时再现模式操作时,GPU6内的再现引擎12直接向装置存储器8中的帧缓冲器再现再现单元的图形数据。因此,再现引擎12作出对被再现到GPU6外部的装置存储器8的图形数据的所有读取和写入调用。此模式可在执行需要装置存储器8中的许多读取-修改-写入的某些图形操作(例如,像素混合和深度测试)时使用大量系统带宽和电力来再现图形数据。
[0026]当根据延迟再现模式操作时,GPU6内的再现引擎12可首先执行平铺回合以将当前再现单元划分为多个瓦片。针对所述多个瓦片中的每一者,再现引擎12随后向在本地位于GPU6上的瓦片缓冲器再现瓦片的图形数据,且在完成时将所再现的图形数据从瓦片缓冲器读取到装置存储器8中的帧缓冲器。因此,再现引擎12作出对被再现到GPU6上的瓦片缓冲器的图形数据的大多数读取和写入调用。此模式,即延迟再现,使用少量的电力且不使用系统带宽来执行瓦片缓冲器中的读取-修改-写入,但包含设置平铺回合以及再现再现单元的每一瓦片的额外开销成本。
[0027]常规上,膝上型或桌上型计算机或其中电力和带宽使用不受关注的另一类型的壁插式图形装置内的GPU将可能被设计成根据即时再现模式而操作。相比而言,移动无线电话或其中电力和带宽较珍贵的其它移动装置内的GPU将可能被设计成根据延迟再现模式而操作。然而,最有效的再现模式可基于在再现某一图形数据时GPU的性能而变化。
[0028]根据本发明中的技术,图形驱动器10可自动地选择再现模式以供GPU6用来再现图形数据以在显示器18上呈现给用户。更具体来说,图形驱动器10可评估与再现图形数据相关联的至少两个度量,且基于所述所评估的度量为当前再现单元自动地选择即时再现模式或延迟再现模式。所述度量可包含CPU4和GPU6在再现前一或当前再现单元的图形数据时的性能度量、电力度量,或其它度量。所述选定的再现模式可为基于所评估的度量的经预测使用较少的系统带宽和/或较少的电力来再现当前再现单元的图形数据的所述再现模式中的一者。在一些情况下,所述选定的再现模式还可为基于所评估的度量经预测允许CPU4和/或GPU6中的较高顶点处理量、减少图形驱动器10的开销,或另外改善性能和电力消耗的再现模式。
[0029]图形驱动器10可随后配置GPU6以根据选定的再现模式而操作。在一些情况下,图形驱动器10还可接收超驰自动地选择的再现模式的手动地选择的再现模式。举例来说,图形驱动器10可经由在CPU4上执行的图形API从开发者或其它用户接收手动地选择的再现模式。当接收到手动地选择的再现模式时,图形驱动器10可配置GPU6根据手动地选择的再现模式而操作。
[0030]本发明的技术(包含收集和评估度量、自动地选择再现模式以及配置GPU6)可在每一再现边界处执行。再现边界可包括再现单元之间的转变周期,例如在GPU6结束再现前一再现单元且开始再现当前再现单元时。一旦GPU6结束再现前一再现单元,GPU6便从接收前一再现单元的数据切换到接收待再现的当前再现单元的数据。那时,根据技术,图形驱动器10可基于所评估的度量为当前再现单元自动地选择再现模式。如果为当前再现单元选择的再现模式不同于用于前一再现单元的再现单元,那么图形驱动器10还可重新配置GPU6以根据新选择的再现模式而操作。CPU4可经由收发器模块14下载一个以上图形应用程序。另外,CPU4可经由收发器模块14根据图形应用程序而下载将由CPU4和/或GPU6处理的图形数据。收发器模块14可包含用以允许图形装置2与另一装置或网络之间的无线或有线通信的电路。收发器模块14可包含调制器、解调器、放大器以及用于有线或无线通信的其它此类电路。
[0031]CPU4可将用于图形应用程序中的每一者的应用程序指令存储在装置存储器8内。另外,装置存储器8可根据图形应用程序存储将由CPU4和/或GPU6处理的图形数据,且还可存储从CPU4和/或GPU6接收的经处理图形数据。举例来说,装置存储器8可将当前再现单元的所再现的图形数据存储在帧缓冲器中。作为另一实例,装置存储器8可存储与帧相关联的一个或一个以上再现目标,所述再现目标各自保持用于帧的某一类型的图形数据,例如纹理数据、色彩数据和深度数据。在一些情况下,装置存储器8还可包含桌上型计算机或显示器专用帧缓冲器,可将帧的所再现的图形数据复制到所述缓冲器中以供在显示器18上呈现。
[0032]装置存储器8可包括一个或一个以上计算机可读存储媒体。装置存储器8的实例包含(但不限于)随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM) ,CD-ROM或其它光盘存储装置、磁盘存储装置,或其它磁性存储装置、快闪存储器,或可用于携载或存储呈指令或数据结构的形式的所要的程序代码且可由计算机或处理器存取的任何其它媒体。
[0033]显示器18包括图形装置2的输出装置。作为一实例,显示器8可包括液晶显示器(LCD)、阴极射线管(CRT)显示器、等离子显示器,或另一类型的显示装置。在一些情况下,图形装置2可包含扬声器或其它类型的视频和音频输出装置。GPU6可提供经处理图形数据以供呈现给显示器18。举例来说,GPU6可将帧的所再现的图形数据从帧缓冲器复制到装置存储器8内的桌上型计算机或显示器专用帧缓冲器,以经由显示器18向用户呈现帧。
[0034]用户输入装置16包括用于图形装置2的一个或一个以上用户输入装置。举例来说,用户输入装置16可包含跟踪球、鼠标、键盘、麦克风和/或其它类型的输入装置。在一些实例中,用户输入装置16可包括触摸屏且可被并入作为显示器18的一部分。用户可经由用户输入装置16选择将由CPU4执行的一个或一个以上图形应用程序。在所说明的实例中,显示器18和用户输入装置16包含于图形装置2中。在其它实例中,显示器18和/或用户输入装置16可在图形装置2的外部。
[0035]图2是更详细地说明由图形驱动器10用来自动地选择再现模式以供GPU6使用的图形装置2的功能块的方框图。更具体来说,图2说明在图形驱动器10执行再现模式选择过程期间在CPU4、GPU6与装置存储器8之间的交互。
[0036]在图2的所说明的实例中,CPU4执行图形应用程序20、图形API22和图形驱动器
10。图形应用程序20可包含(例如)网络浏览器、电子邮件应用程序、电子数据表、视频游戏、计算机辅助设计(CAD)应用程序、数码相机应用程序、视频会议应用程序、模拟与视觉化工具、视频串流应用程序,或产生视觉输出的其它应用程序。[0037]CPU4可通过调用应用程序指令来执行图形应用程序20,所述应用程序指令使用CPU4和/或GPU6来产生图像。应用程序指令可存储在装置存储器8中。在一些情况下,可从图形API22进行的图形API调用中产生应用程序指令,所述图形API调用例如为对绘制与图像相关联的图元或三角形的调用。图形API22可包括开放式图形库(OpenGL?)、用于嵌入式系统的OpenGL? ( OpcnGLiiES),或OpenVG (向量图形)API中的一者。图形驱动器10可将来自图形API22的应用程序指令或API调用转译为将由CPU4和/或GPU6根据图形应用程序20执行的命令。
[0038]在图2的所说明的实例中,GPU6包含再现引擎12、瓦片缓冲器30和GPU性能计数器32。再现引擎12可包含用于处理图形数据以进行显示的一个或一个以上处理单元。举例来说,再现引擎12可包括顶点着色器、三角形光栅化器、片段着色器和/或像素混合器。GPU性能计数器32可包括记录与GPU6相关联的处理信息的硬件计数器,所述处理信息包含由GPU6在再现期间使用的系统带宽的量。
[0039]GPU6可根据所述图形应用程序执行由CPU4上的图形驱动器10发布的命令,以将图形数据再现为图像以供在显示器上呈现。举例来说,CPU6的再现引擎12可从装置存储器8接收图形数据,且执行顶点着色、三角形光栅化、片段着色和像素混合中的一者或一者以上。GPU6可随后最终将所再现的图形数据存储在装置存储器8中的帧缓冲器28中。可由再现引擎12基于每个再现单元来再现图形数据。举例来说,再现单元可包含一组帧、一帧、一帧的一部分、与一帧相关联的多个再现目标、与一帧相关联的单一再现目标,或单一再现目标的一部分。
[0040]在一些情况下,可针对一帧界定一个或一个以上再现目标26。再现目标26包括存储于装置存储器8中的若干帧缓冲器,其各自保持帧的某一类型的图形数据,例如纹理数据、色彩数据和深度数据。与给定帧相关联的再现目标26中的每一者内的图形数据可由再现引擎12单独地再现,且随后在装置存储器8中的帧缓冲器28中进行组合。在一些情况下,再现目标26可包含保持帧的同一类型的数据(例如,色彩数据)的多个再现目标。再现引擎12可同时再现多个再现目标中的图形数据。可针对图形数据的每一帧来界定不同数目的再现目标26。
[0041]GPU6的再现引擎12可根据即时再现模式或延迟再现模式而操作来再现图形数据。当根据即时再现模式操作时,GPU6内的再现引擎12直接向装置存储器8中的帧缓冲器28再现再现单元的图形数据。因此,再现引擎12作出对被再现到位于GPU6外部的装置存储器8的图形数据的所有读取和写入调用。
[0042]当根据延迟再现模式操作时,GPU6内的再现引擎12首先执行平铺回合以将再现单元划分为多个瓦片。针对所述多个瓦片中的每一者,再现引擎12随后向在本地位于GPU6上的瓦片缓冲器30再现瓦片的图形数据,且在完成时将所再现的图形数据从瓦片缓冲器30读取到装置存储器8中的帧缓冲器28。因此,再现引擎12作出对被再现到GPU6上的瓦片缓冲器30的图形数据的大多数读取和写入调用。在其中针对一帧界定一个或一个以上再现目标26的情况下,再现引擎12必须针对再现目标26中的每一者执行平铺回合,且随后再现与所述帧相关联的再现目标26中的每一者的每一瓦片。
[0043]瓦片缓冲器30是与GPU6 —起位于芯片上的少量的极高带宽存储器。然而,瓦片缓冲器30的大小太小而无法保持整个再现单元的图形数据,因此再现引擎12必须执行多个再现回合来再现整个再现单元。举例来说,再现引擎12可针对一帧的每一瓦片执行一个再现回合,或可针对与一帧相关联的再现目标26中的每一者的每一瓦片执行一个再现回合。在一些情况下,再现引擎12还可执行分格以确定再现单元的哪些图元在瓦片中的每一者内可见。如果不执行分格,那么GPU6的再现引擎12可使用光栅剪刀针对正再现的每一瓦片而绘制包含于再现单元中的所有图元或三角形。通过执行分格,再现引擎12可仅绘制再现单元中在正再现的给定瓦片内是可见的那些图元。
[0044]当图形数据表示具有需要许多读取-修改-写入功能的像素混合和深度测试的复杂图形场景时,延迟再现模式可使用较少的电力和系统带宽来再现图形数据。然而,延迟再现模式确实包含设置平铺回合以及再现再现单元的每一瓦片的图形数据的额外开销成本。当设置平铺回合以及再现每一再现单元的多个瓦片的开销成本不超驰延迟再现模式的带宽减小时,延迟再现模式可为最有效的再现模式。
[0045]相比而言,当图形数据表示简单的图形场景时(其中延迟再现模式不提供带宽减小,但却充当处理资源的汲取者),即时再现模式可使用较少的电力和系统带宽来再现图形数据。当设置平铺回合以及再现每一再现单元的多个瓦片的开销成本超驰延迟再现模式的任何带宽减小时,即时再现模式可为最有效的模式。
[0046]根据本发明的技术,图形驱动器10可基于哪一模式经预测使用最少量的系统带宽和/或电力来再现当前再现单元的图形数据来自动地选择即时再现模式或延迟再现模式以供GPU6使用。一股来说,图形驱动器10可:评估与再现图形数据相关联的至少两个度量;基于所述所评估的度量而选择即时再现模式或延迟再现模式;以及配置GPU6以根据所述选定的再现模式而操作。在下文更详细地描述自动再现模式选择过程。
[0047]在GPU6从前一再现单元切换到当前再现单元时,图形驱动器10可在图形数据中的再现边界处为当前再现单元选择再现模式。如上文所描述,再现单元可包含一组帧、一中贞、一巾贞的一部分、与一巾贞相关联的多个再现目标、与一巾贞相关联的单一再现目标,或单一再现目标的一部分。再现边界可包括再现单元之间的转变周期,例如在GPU6结束再现前一再现单元且开始再现当前再现单元时。一旦GPU6结束再现前一再现单元,GPU6便从接收前一再现单元的数据切换到接收待再现的当前再现单元的数据。那时,图形驱动器10可为当前再现单元自动地选择再现模式。
[0048]以此方式,在图形数据改变时,且在CPU4和/或GPU6在再现图形数据时的性能改变时,图形驱动器10可针对当前情形切换由GPU6使用的再现模式。举例来说,如果为当前再现单元选择的再现模式不同于用于前一再现单元的再现单元,那么图形驱动器10可重新配置GPU6以根据新选择的再现模式而操作。根据所述技术,图形驱动器10可针对与一帧相关联的单一或多个再现目标26中的每一者、针对图形数据的每一帧,或针对图形数据的每一预定义组的帧,来切换再现模式。
[0049]在给定再现边界处,图形驱动器10可收集与再现一个或一个以上再现单元的图形数据相关联的度量。所述度量可与CPU4和/或GPU6在再现前一再现单元和当前再现单元的图形数据时的性能相关联。在图形数据的处理期间,GPU6可在CPU4后面若干帧。因此,图形驱动器10可从GPU6收集与再现前一再现单元的图形数据相关联的度量,且从CPU4收集与再现当前再现单元的图形数据相关联的度量。
[0050]所述度量可包含再现单元中的顶点的数目、再现单元中的片段的数目、再现单元中的片段的位置、在再现期间使用的GPU带宽的量、在再现期间的GPU6的寄存器上的负载量、在再现期间的CPU4的寄存器上的负载量、针对一帧界定的再现目标26的数目、针对一帧界定的多个再现目标(MRT)的数目、再现目标26的尺寸(例如,高度、宽度、每像素的位)、是否针对再现单元启用深度测试、是否针对再现单元启用混合、是否针对单元启用模板测试、在GPU6上执行的应用程序的类型、对绘制再现单元的图元的图形API调用的数目,以及来自GPU性能计数器32的额外信息。另外,所述度量还可包含是否针对再现单元发生场景过度绘制、是否在再现期间在再现目标26中发生中间再现更新、是否使用变换反馈、是否从帧缓冲器28读取再现单元中的片段、用于再现单元的状态更新的数目,以及可指示中间帧解析的其它度量。
[0051]一股来说,图形驱动器10收集度量是相对廉价的,甚至基于每个帧或每个再现目标也是如此。然而,可较不频繁地收集来自GPU性能计数器32的信息,因为在一些硬件上,可能需要GPU6的性能暂停以读取GPU性能计数器32。图形驱动器10可随后将所收集的度量存储在度量缓冲器24中。参看图3和5更详细地描述收集度量的过程。
[0052]图形驱动器10接下来评估所述度量以预测即时再现模式和延迟再现模式中的哪一者将使用较少的电力和/或系统带宽来再现当前再现单元的图形数据。图形驱动器10评估所述度量中的至少两者。通过评估一个以上度量,图形驱动器10可获得与再现当前再现单元相关联的性能和电力约束的透彻理解,以便作出有效的再现模式选择。
[0053]举例来说,图形驱动器10可至少评估GPU带宽以及针对一帧界定的再现目标的数目的度量。如果图形驱动器10仅评估GPU带宽,那么其将无法考虑到在延迟再现模式中设置平铺回合以及再现再现单元的每一瓦片所需的处理资源。通过评估GPU带宽以及再现目标的数目两者,图形驱动器10可将带宽成本与用以再现当前再现单元的图形数据的开销成本进行比较,以预测最有效的再现模式以供GPU6使用。
[0054]图形驱动器10可将加权方案应用于至少两个度量。举例来说,图形驱动器10可执行将某些量的权重指派给所述度量中的两者或两者以上的算法。所述加权方案可将相等量的权重应用于所述度量中的两者或两者以上,或可将不同量的权重应用于所述度量中的每一者。在一些情况下,可将加权方案算法预编程到图形驱动器10中。在其它情况下,可由开发者经由图形API22来设定加权方案算法。以此方式,加权方案算法可基于待再现的图形数据的类型、系统要求以及CPU4和GPU6的性能或其它考虑因素而随时间变化。参看图3和6更详细地描述评估两个或两个以上度量的过程。
[0055]图形驱动器10随后基于所评估的度量自动地选择即时再现模式或延迟再现模式。更具体来说,图形驱动器10可选择经预测使用较少的电力和/或系统带宽来再现当前再现单元的图形数据的再现模式。在一些情况下,图形驱动器10可基于所评估的度量选择还经预测允许CPU4和/或GPU6中的较高顶点处理量、减少图形驱动器10的开销,或另外改善性能和电力消耗的再现模式。
[0056]在一些情况下,图形驱动器10还可从开发者或其它用户接收手动地选择的再现模式。举例来说,图形驱动器10可经由在CPU4上执行的图形API22来接收手动地选择的再现模式。在一些情况下,手动选择可包括对图形驱动器10的关于再现模式中的优选一者的指示或暗示。由图形驱动器10接收的手动地选择的再现模式可超驰自动地选择的再现模式。以此方式,开发者可能够控制由GPU6使用的再现模式,而不管哪一再现模式经预测在再现期间使用较少的电力和/或系统带宽。
[0057]不管再现模式是基于所评估的度量被自动地选择还是由用户手动地选择,图形驱动器10均配置GPU6以根据选定的再现模式来操作以再现当前再现单元的图形数据。配置GPU6可包括编程GPU6的寄存器以将从再现引擎12输出的所再现的图形数据直接发送到帧缓冲器28 (在即时再现模式的情况下)或发送到瓦片缓冲器30 (在延迟再现模式的情况下)。举例来说,当选择即时再现模式时,图形驱动器10可配置GPU6的再现引擎12将当前再现单元的图形数据直接再现到装置存储器8中的帧缓冲器28。相比而言,当选择延迟再现模式时,图形驱动器10可配置GPU6的再现引擎12以执行将当前再现单元划分为多个瓦片的平铺回合、将多个瓦片中的每一者的图形数据再现到瓦片缓冲器30,且将所再现的瓦片中的每一者从瓦片缓冲器读取到帧缓冲器28。
[0058]图形驱动器10可随后将当前再现单元的图形数据提供给GPU6的再现引擎12以根据选定的再现模式进行再现。当GPU6到达图形数据中的再现边界时,GPU6将切换到下一再现单元。如上文所描述,再现边界可包括再现单元之间的转变周期,例如一组帧、一帧、一帧的一部分、与一帧相关联的多个再现目标、与一帧相关联的单一再现目标,或单一再现目标的一部分。当GPU6切换到下一再现单元时,图形驱动器10再次执行上文所描述的过程以为现在的当前再现单元自动地选择再现模式。因此,可将不同的再现模式用于连续的再现单元。图3是说明经配置以自动地选择再现模式以供GPU6使用的图形驱动器10的示范性功能块的方框图。如上文所描述,图形驱动器10可将用于图形应用程序的应用程序指令或API调用转译为将由CPU4和/或GPU6执行的命令。举例来说,GPU6可响应于来自图形应用程序的命令而再现图形数据以准备用于显示的图像。为了在再现过程期间节省电力和系统带宽,图形驱动器10可基于所评估的度量而自动地选择即时再现模式或延迟再现模式以供GPU6使用。图形驱动器10可首先将度量收集并存储在度量缓冲器24中,且随后评估所述度量以便选择经预测使用较少的电力和/或系统带宽来再现图形数据的再现模式。
[0059]在图3的所说明的实例中,当由CPU4执行时,图形驱动器10包含度量收集单元40、度量评估单元42以及再现模式选择单元44。如上文所描述,度量缓冲器24可包括CPU4内的局部存储器缓冲器。在其它实例中,度量缓冲器24可包括位于CPU4外部的装置存储器8内的存储器缓冲器。
[0060]在所说明的实例中,度量缓冲器24包含GPU带宽46、再现目标的数目48、再现目标的尺寸49、GPU负载50、CPU负载52、顶点/片段的数目54、片段的位置54、深度测试/混合启用56、应用程序的类型57,以及API调用的数目58。在一些情况下,度量缓冲器24可包含与再现图形数据相关联的更多或更少的度量。举例来说,度量缓冲器24可包含从图2中的GPU6的GPU性能计数器32收集的额外信息。另外,度量缓冲器24还可包含关于以下各者的度量:是否针对再现单元发生场景过度绘制、是否在再现期间在再现目标26中发生中间再现更新、是否使用变换反馈、是否从帧缓冲器28读取再现单元中的片段、用于再现单元的状态更新的数目,以及可指示中间帧解析的其它度量。度量缓冲器24应包含至少两个度量,例如GPU带宽46和再现目标的数目48。
[0061]图形驱动器10可在图形数据内的每一再现边界处收集并评估所述度量以自动地选择再现模式以供GPU6使用。如上文所描述,再现边界可包括再现单元之间的转变周期,例如在GPU6结束再现前一再现单元且开始再现当前再现单元时。再现单元可包含一组帧、一中贞、一巾贞的一部分、与一巾贞相关联的多个再现目标、与一巾贞相关联的单一再现目标,或单一再现目标的一部分。在给定的再现边界处,在CPU4上运行的图形驱动器10执行度量收集单元40以收集与再现一个或一个以上再现单元的图形数据相关联的度量。举例来说,度量收集单元40可收集与再现前一再现单元和/或当前再现单元的图形数据相关联的度量。在图形数据的处理期间,GPU6可在CPU4后面若干帧。因此,度量收集单元40可从CPU4收集与再现当前再现单元的图形数据相关联的度量。同时,度量收集单元40可从GPU6收集与再现前一再现单元的图形数据相关联的度量。
[0062]作为一实例,度量收集单元40可从GPU6的GPU性能计数器32收集在再现前一再现单元的图形数据期间使用的GPU带宽46的量。在一些情况下,从GPU性能计数器32收集信息可能需要GPU6的性能暂停。频繁地暂停GPU6的性能可导致再现图形数据的性能成本上的不合意的增加。因此,度量收集单元40可不在每个再现边界处从GPU性能计数器32收集信息,尤其在再现边界出现在每一帧之间或在与一帧相关联的每一再现目标之间的情况下。在其它情况下,可基于从在CPU4上执行的图形应用程序20收集的前一或当前再现单元的顶点/片段54的数目来确定GPU带宽的量。由GPU6用来再现图形数据的大量系统带宽可指示GPU6正在即时再现模式中对装置存储器8作出大量的读取和/或写入请求。
[0063]度量收集单元40还可从在CPU4上执行的图形应用程序20收集针对一帧而界定的再现目标的数目48。如上文所描述,再现目标26包括存储于装置存储器8中的若干帧缓冲器,其各自保持相关联的帧的某一类型的图形数据,例如纹理数据、色彩数据和深度数据。为了再现帧,GPU6单独地再现与所述帧相关联的再现目标26中的每一者内的图形数据,且随后将所再现的图形数据在帧缓冲器28中进行组合。针对给定帧而界定的再现目标的数目越大,就需要越大数目的再现回合来完全再现所述帧以进行显示。在一些情况下,再现目标的数目48可包含再现目标26中所包含的多个再现目标的数目。如上文所描述,多个再现目标包括保持帧的同一类型的数据(例如,色彩数据)且可同时再现的帧缓冲器。
[0064]另外,度量收集单元40可从在CPU4上执行的图形应用程序20收集针对一帧而界定的再现目标的尺寸49。所述尺寸可包括针对给定帧而存储在装置存储器8中的再现目标26中的每一者的高度和宽度。所述尺寸还可包含再现目标26中的每一者的每个像素值的深度或位。针对给定帧而界定的大再现目标可指示所述帧包含可能需要许多读取-修改-写入操作的用于再现的复杂图形场景。
[0065]作为另一实例,度量收集单元40可收集在前一再现单元的图形数据的再现期间GPU6的寄存器上的GPU负载50的量。度量收集单元40还可收集在前一或当前再现单元的图形数据的再现期间CPU4的寄存器上的CPU负载52的量。GPU6和CPU4的负载量可指示在图形数据的再现期间可能发生任何性能瓶颈的地方。
[0066]度量收集单元40还可从在CPU4上执行的图形应用程序20收集前一或当前再现单元的顶点/片段的数目54。如上文所述,包含于给定帧中的顶点和/或片段的数目可用于确定将需要用来再现帧的图形数据的GPU带宽的量。另外,度量收集单元40可从在CPU4上执行的图形应用程序20收集前一或当前再现单元中的片段的位置55。片段的位置55可指示是否大量片段散布在简单的图形场景中的再现单元上,或群集在再现单元的一个区域中作为复杂的图形场景。
[0067]在进一步的实例中,度量收集单元40从在CPU4上执行的图形应用程序20收集前一或当前再现单元是否被启用深度测试/混合56。当针对给定再现单元启用并执行时,深度测试和像素混合的图形操作需要许多读取-修改-写入操作。在一些情况下,启用了深度测试/混合56还可指示是否启用了模板测试。
[0068]度量收集40还收集在CPU4和/或GPU6上针对前一或当前再现单元执行的应用程序的类型57。在CPU4和/或GPU6上执行的应用程序的类型57,即图形应用程序20,可指示针对再现产生的图形场景的一股复杂度水平。另外,度量收集单元40可从在CPU4上执行的图形API22收集针对前一或当前再现单元的API调用的数目58,例如对以图形数据绘制图元或三角形的调用。当给定的再现单元包含大量API调用时,可更有可能将在延迟再现模式中针对多个瓦片重新绘制大量图元。
[0069]一旦度量被收集且存储在度量缓冲器24中,图形驱动器10便执行度量评估单元42以评估所述度量中的至少两者以预测即时再现模式和延迟再现模式中的哪一者将使用较少的电力和/或系统带宽来再现当前再现单元的图形数据。度量评估单元42可将加权方案应用于存储在度量缓冲器24中的所收集的度量。举例来说,度量评估单元42可执行将某些量的权重指派给所述度量中的两者或两者以上的算法。所述加权方案可将相等量的权重应用于所述度量中的两者或两者以上,或可将不同量的权重应用于所述度量中的每一者。在一些情况下,可将加权方案算法预编程到图形驱动器10中。在其它情况下,可由开发者经由图形API22来设定加权方案算法。以此方式,加权方案算法可基于待再现的图形数据的类型、系统要求以及CPU4和GPU6的性能或其它考虑因素而随时间变化。
[0070]作为一个特定实例,度量评估单元42可将最大的权重应用于GPU带宽46和再现目标的数目48的度量。在一些情况下,度量评估单元42可将相等量的权重应用于GPU带宽46和再现目标的数目48。在其它情况下,度量评估单元42可将略微更大的权重应用于GPU带宽46和再现目标的数目48中的一者。
[0071]当GPU带宽46在再现期间较高时,其可指示GPU6的再现引擎12正对GPU6外部的装置存储器8执行大量的读取和/或写入请求。当再现引擎12正在即时再现模式中执行需要对装置存储器8的大量读取-修改-写入操作的色彩混合或深度测试操作时,此可发生。因此,当GPU带宽46的量较高时,切换到延迟再现模式可更有效,从而减少系统带宽使用。在延迟再现模式中,GPU6可使用很少的电力且不使用系统带宽来执行对在本地位于GPU6上的瓦片缓冲器30的读取和/或写入请求。以此方式,延迟再现模式将可能减少GPU6在当前再现单元的图形数据的再现期间所使用的系统带宽的量。
[0072]然而,度量评估不应仅依赖于一个度量。举例来说,仅依赖于GPU带宽46会无法考虑到设置平铺回合以将再现单元划分为若干瓦片且随后单独地再现每一瓦片所需的处理资源。替代地,度量评估单元42可针对再现当前再现单元中的图形数据将带宽成本与开销成本进行比较以预测最有效的再现模式来供GPU6使用。
[0073]为了确定开销成本,性能评估单元42可评估针对当前再现单元而界定的再现目标的数目48。如上文所描述,为了再现帧,GPU6单独地再现与所述帧相关联的再现目标中的每一者内的图形数据,且随后将所再现的图形数据在帧缓冲器28中进行组合。当针对给定帧而界定的再现目标的数目48较高时,需要更大数目的再现回合来完全再现所述帧以进行显示。因此,当再现目标的数目48较高时,切换到即时再现模式可更有效,从而通过消除针对每一再现目标设置平铺回合且再现与所述帧相关联的每一再现目标的每一瓦片的需要来减少开销成本。
[0074]在即时再现模式中,GPU6可将与所述帧相关联的每一再现目标中的图形数据直接再现到帧缓冲器28,而不需要针对每一再现目标执行单独的平铺回合和瓦片再现。以此方式,使用即时再现模式将可能减少CPU4和/或GPU6在当前再现单元的图形数据的再现期间所使用的处理资源的量。
[0075]因此,当GPU带宽46较高且再现目标的数目48较低时,度量评估单元42可预测延迟再现模式对于当前再现单元是最有效的。如上文描述,当图形数据表示具有需要许多读取-修改-写入功能的像素混合和深度测试的复杂图形场景时,延迟再现模式可使用较少的电力和系统带宽来再现再现单元的图形数据。当GPU带宽46较高但再现目标的数目48较低时,设置平铺回合以及再现每一再现目标的多个瓦片的开销成本不会超驰延迟再现模式的带宽减小。
[0076]另一方面,当GPU带宽46较低且再现目标的数目48较高时,度量评估单元42可预测即时再现模式对于当前再现单元是最有效的。如上文所描述,当图形数据表示简单的图形场景时(其中延迟再现模式不提供带宽减小,但却充当处理资源的汲取者),即时再现模式可使用较少的电力和系统带宽来再现再现单元的图形数据。当GPU带宽46较低但再现目标的数目48较高时,设置平铺回合以及再现每一再现目标的多个瓦片的开销成本会超驰延迟再现模式的任何带宽减小。
[0077]在一些情况下,基于GPU带宽46和再现目标的数目48,可能不立即看得出哪一再现模式将在再现期间使用较少的电力和/或系统带宽。举例来说,当GPU带宽46和再现目标的数目48两者都低或高时,延迟再现模式下的设置平铺回合以及瓦片再现的开销成本是否将超驰延迟再现模式的带宽减小可能不明显。在那些情况下,度量评估单元42可看向下一经加权度量以预测对于当前再现单元最有效的再现模式。
[0078]度量评估单元42可随后评估(例如)GPU负载50和CPU负载52以确定在再现期间可能发生任何瓶颈的地方。当CPU负载52较高时,其可指示归因于具有延迟再现模式的图形驱动器10中的额外开销成本而引起的CPU4中的瓶颈。在此情况下,使用即时再现模式可更有效,且将更多的处理负担转移到GPU6上。在其它实例中,性能评估单元42可评估API调用的数目58以确定再现单元的图元或三角形绘制的数目。当API调用的数目58较高时,例如多于每再现单元2,000个调用,使用即时再现模式可更有效,因为必须重新绘制再现单元的每一瓦片的大量图元的开销成本可超驰延迟再现模式的带宽减小。
[0079]—旦评估了度量,图形驱动器10便执行再现模式选择单元44以基于所评估的度量来选择即时再现模式或延迟再现模式。更具体来说,再现模式选择单元44可选择由度量评估单元42预测以使用较少的电力和/或系统带宽来再现当前再现单元的图形数据的再现模式。再现模式选择单元44可随后配置GPU6来根据选定的再现模式而操作,以再现当前再现单元的图形数据。配置GPU6可包括编程GPU6的寄存器以将从再现引擎12输出的所再现的图形数据直接发送到帧缓冲器28(在即时再现模式的情况下)或发送到瓦片缓冲器30 (在延迟再现模式的情况下)。
[0080]在一些情况下,图形驱动器10的再现模式选择单元还可经由图形API22从开发者或其它用户接收手动地选择或指示的再现模式。手动地选择的再现模式可超驰自动地选择的再现模式。当接收到手动地选择的再现模式时,再现模式选择单元44可配置GPU6根据手动地选择的再现模式而操作。以此方式,开发者可能够控制由GPU6使用的再现模式,而不管哪一再现模式经预测在再现期间使用较少的电力和/或系统带宽。
[0081]图4是说明自动地选择再现模式以供GPU6使用的图形驱动器10的实例操作的流程图。将参考来自图2的图形驱动器2来描述所说明的流程图。在图形应用程序20在CPU4上的执行期间,图形驱动器10可命令GPU6再现图形数据以产生图像以进行显示。图形驱动器10还可基于哪一模式经预测使用最少量的电力和/或系统带宽来再现图形数据而自动地选择即时再现模式或延迟再现模式以供GPU6使用。
[0082]图形数据可包括多个再现单元。图形数据的再现单元可包含一组帧、一帧、一帧的一部分、与一帧相关联的多个再现目标、与一帧相关联的单一再现目标,或单一再现目标的一部分。在GPU6从前一再现单元切换到当前再现单元时,图形驱动器10可在再现边界处为当前再现单元选择再现模式。
[0083]在给定再现边界处,在CPU4上运行的图形驱动器10收集与再现一个或一个以上再现单元的图形数据相关联的度量(60)。通常,图形驱动器10从GPU6收集与再现前一再现单元的图形数据相关联的度量,且从CPU4收集与再现当前再现单元的图形数据相关联的度量。图形驱动器10可随后将所收集的度量存储在度量缓冲器24中。在图5中更详细地描述收集度量的示范性操作。
[0084]图形驱动器10接下来使用加权方案来评估所述度量中的至少两者(62)。以此方式,图形驱动器10可预测即时再现模式和延迟再现模式中的哪一者将使用较少的电力和/或系统带宽来再现当前再现单元的图形数据。举例来说,图形驱动器10可将加权方案应用于至少GPU带宽以及针对一帧界定的再现目标的数目的度量。图形驱动器10可随后针对当前再现单元的图形数据来评估与设置延迟再现模式相关联的开销成本是否超驰延迟再现模式的带宽减小。在图6中更详细地描述评估度量的示范性操作。
[0085]一旦评估了度量,图形驱动器10便基于所述评估自动地选择即时再现模式或延迟再现模式(64)。更具体来说,再现模式选择单元44可选择经预测使用较少的电力和/或系统带宽来再现当前再现单元的图形数据的再现模式。
[0086]在一些情况下,图形驱动器10还可经由图形API22从开发者或其它用户接收手动地选择的再现模式(66的“是”分支)。由图形驱动器10接收的手动地选择的再现模式可超驰自动地选择的再现模式(68)。以此方式,开发者可能够控制由GPU6使用的再现模式,而不管哪一再现模式经预测在再现期间使用较少的电力和/或系统带宽。
[0087]不管再现模式是基于所评估的度量被自动地选择(66的“否”分支)还是由用户手动地选择出6、68的“是”分支),图形驱动器10均配置GPU6以根据选定的再现模式来操作以再现当前再现单元的图形数据(70)。配置GPU6可包括编程GPU6的寄存器以将从再现引擎12输出的所再现的图形数据直接发送到帧缓冲器28(在即时再现模式的情况下)或发送到瓦片缓冲器30 (在延迟再现模式的情况下)。
[0088]图形驱动器10可随后将当前再现单元的图形数据提供给GPU6的经配置以根据选定的再现模式而操作的再现引擎12(72)。直到GPU6到达图形数据中的再现边界(74的“否”分支),图形驱动器10才将继续将当前再现单元的图形数据提供给GPU6的再现引擎12(72)。一旦GPU6到达再现边界且从当前再现单元切换到后续再现单元(74的“是”分支),图形驱动器10便也切换到后续再现单元(76)。图形驱动器10随后针对后续再现单元执行上文所描述的自动再现模式选择过程。
[0089]图5是说明收集与再现一个或一个以上再现单元的图形数据相关联的度量的图形驱动器10的实例操作的流程图(来自图4的步骤60)。将参考来自图3的图形驱动器10的度量收集单元40来描述所说明的流程图。在给定的再现边界处,图形驱动器10执行度量收集单元40以收集与再现前一再现单元和/或当前再现单元的图形数据相关联的度量。举例来说,度量收集单元40可从CPU4收集与再现当前再现单元的图形数据相关联的度量,且从GPU6收集与再现前一再现单元的图形数据相关联的度量。
[0090]度量收集单元40可从GPU6的GPU性能计数器32收集在再现前一再现单元期间使用的GPU带宽46的量(80)。在一些情况下,度量收集单元40可不在每个再现边界处从GPU性能计数器32收集信息。可随后基于从在CPU4上执行的图形应用程序20收集的前一或当前再现单元的顶点/片段54的数目来确定GPU带宽的量(下文的步骤88)。由GPU6用来再现图形数据的大量带宽可指示GPU6正对装置存储器8作出大量的读取和/或写入请求。
[0091]度量收集单元40还可从在CPU4上执行的图形应用程序20收集针对与当前再现单元相关联的一帧而界定的再现目标的数目48 (82)。针对给定帧而界定的再现目标的数目越大,就需要越大数目的再现回合来完全再现所述帧以进行显示。度量收集单元40可从在CPU4上执行的图形应用程序20收集针对与当前再现单元相关联的一帧而界定的再现目标的尺寸49 (83)。所述尺寸可包括针对给定帧而存储在装置存储器8中的再现目标26中的每一者的高度、宽度和每像素的位。针对给定帧而界定的大再现目标可指示所述帧包含可需要许多读取-修改-写入操作的用于再现的复杂图形场景。
[0092]度量收集单元40可收集在前一再现单元的再现期间在GPU6的寄存器上的GPU负载50的量(84)。度量收集单元40还可收集在前一再现单元的再现期间在CPU4的寄存器上的CPU负载52的量(86)。GPU6和CPU4的负载量可指示在图形数据的再现期间可能发生任何性能瓶颈的地方。
[0093]度量收集单元40可从在CPU4上执行的图形应用程序20收集当前再现单元的顶点/片段的数目54(88)。如上文所述,包含于给定再现单元的图形数据中的顶点和/或片段的数目可用于确定将需要用来再现再现单元的图形数据的GPU带宽的量。度量收集单元40还可从在CPU4上执行的图形应用程序20收集当前再现单元中的片段的位置55 (89)。片段的位置可指示是否大量片段散布在简单的图形场景中的再现单元上,或群集在再现单元的一个区域中作为复杂的图形场景。
[0094]度量收集单元40可从在CPU4上执行的图形应用程序20收集针对当前再现单元是否启用了深度测试/混合56(90)。当针对给定再现单元启用并执行时,深度测试和像素混合的图形操作需要许多读取-修改-写入操作。度量收集40还可收集在CPU4和/或GPU6上针对当前再现单元执行的应用程序的类型57 (91)。在CPU4和/或GPU6上执行的应用程序的类型,即图形应用程序20,可指示针对再现产生的图形场景的一股复杂度水平。
[0095]另外,度量收集单元40可从在CPU4上执行的图形API22收集针对前一或当前再现单元的API调用的数目56,例如对以图形数据绘制图元或三角形的调用(92)。当给定的再现单元包含大量API调用时,可更有可能将需要在延迟再现模式中针对多个瓦片重新绘制大量图元。图形驱动器10的度量收集单元40可随后将所收集的度量存储在度量缓冲器24中。
[0096]图6是说明使用加权方案来评估度量的图形驱动器10的实例操作的流程图(来自图4的步骤62)。将参考来自图3的图形驱动器10的度量评估单元42来描述所说明的流程图。一旦度量被收集且存储在度量缓冲器24中,图形驱动器10便执行度量评估单元42以评估所述度量中的至少两者以预测即时再现模式和延迟再现模式中的哪一者将使用较少的电力和/或系统带宽来再现当前再现单元的图形数据。
[0097]度量评估单元42将加权方案应用于存储在度量缓冲器24中的所收集的度量
(94)。举例来说,度量评估单元42可执行将某些量的权重指派给所述度量中的两者或两者以上的算法。在所说明的实例操作中,度量评估42将最大的权重应用于GPU带宽46和再现目标的数目48的度量(96)。
[0098]当GPU带宽46较高且再现目标的数目48较低时(98的“是”分支),度量评估单元42可预测延迟再现模式对于当前再现单元是最有效的(100)。如上文描述,当图形数据表示具有需要许多读取-修改-写入功能的像素混合和深度测试的复杂图形场景时,延迟再现模式可使用较少的系统带宽和电力来再现再现单元的图形数据。当GPU带宽46较高但再现目标的数目48较低时,设置平铺回合以及再现每一再现目标的多个瓦片的开销成本不会超驰延迟再现模式的带宽减小。
[0099]当GPU带宽46较低且再现目标的数目48较高时(98的“否”分支以及102的“是”分支),度量评估单元42可预测即时再现模式对于当前再现单元是最有效的(104)。如上文所描述,当图形数据表示简单的图形场景时(其中延迟再现模式不提供带宽减小,但却充当处理资源的汲取者),即时再现模式可使用较少的系统带宽和电力来再现再现单元的图形数据。当GPU带宽46较低但再现目标的数目48较高时,设置平铺回合以及再现每一再现目标的多个瓦片的开销成本会超驰延迟再现模式的任何带宽减小。
[0100]当GPU带宽46较低且再现目标的数目48也较低时,或当GPU带宽46较高且再现目标的数目48也较高时(98的“否”分支以及102的“否”分支),度量评估单元42可看向下一经加权度量以预测对于当前再现单元最有效的再现模式(106)。举例来说,当GPU带宽46和再现目标的数目48两者都低或高时,延迟再现模式下的设置平铺回合以及瓦片再现的开销成本是否将超驰延迟再现模式的带宽减小可能不明显。在此情况下,当基于GPU带宽46和再现目标的数目48不立即看得出哪一再现模式将在再现期间使用较少的系统带宽和/或电力时,可使用任何额外的经加权度量。
[0101]图6的所说明的流程图仅是使用加权方案来评估度量的一个实例。在其它实例中,可将不同量的权重应用于不同度量。举例来说,两个或两个以上其它度量可被给予用于预测最有效的再现模式的最大权重,或所有度量可被给予相等权重。在又其它实例中,可使用不同的评估方案来预测最有效的再现模式。
[0102]在一个或一个以上实例中,所描述的功能可以硬件、软件、固件或其任何组合来实施。如果以软件实施,那么所述功能或操作可作为一个或一个以上指令或代码存储在非暂时性计算机可读媒体上且由基于硬件的处理单元执行。计算机可读媒体可包含计算机可读存储媒体(其对应于例如数据存储媒体等有形媒体)或通信媒体,通信媒体包含促进(例如)根据通信协议将计算机程序从一处传递到另一处的任何媒体。以此方式,计算机可读媒体一股可对应于(I)非暂时性的有形计算机可读存储媒体或(2)例如信号或载波等通信媒体。数据存储媒体可为可由一个或一个以上计算机或一个或一个以上处理器存取以检索指令、代码和/或数据结构来用于实施本发明中所描述的技术的任何可用媒体。计算机程序产品可包含计算机可读媒体。
[0103]举例来说且非限制,所述计算机可读媒体可包括非暂时性媒体,例如RAM、ROM、EEPROM、CD-ROM或其它光盘存储装置、磁盘存储装置或其它磁性存储装置,快闪存储器,或可用于携载或存储呈指令或数据结构的形式的所要程序代码且可由计算机存取的任何其它媒体。而且,恰当地将任何连接称作计算机可读媒体。举例来说,如果使用同轴电缆、光纤电缆、双绞线、数字订户线(DSL)或例如红外线、无线电及微波的无线技术从网站、服务器或其它远程源传输指令,则同轴电缆、光纤电缆、双绞线、DSL或例如红外线、无线电及微波的无线技术包含于媒体的定义中。然而,应理解,计算机可读存储媒体和数据存储媒体不包含连接、载波、信号或其它瞬时媒体,而是针对于非瞬时的、有形存储媒体。如本文中所使用,磁盘及光盘包含压缩光盘(CD)、激光光盘、光学光盘、数字多功能光盘(DVD)、软磁盘及蓝光光盘,其中磁盘通常磁性地再生数据,而光盘使用激光光学地再生数据。以上各者的组合也应包含在计算机可读媒体的范围内。
[0104]指令可由一个或一个以上处理器执行,例如,一个或一个以上DSP、通用微处理器、ASIC、FPGA或其它等效集成或离散逻辑电路。因此,如本文中所使用的术语“处理器”可指前述结构或适合于实施本文中所描述的技术的任一其它结构中的任一者。另外,在一些方面中,本文中所描述的功能性可提供于经配置以用于编码及解码的专用硬件模块和/或软件模块内,或并入组合式编解码器中。而且,可将所述技术完全实施于一个或一个以上电路或逻辑元件中。
[0105]本发明的技术可实施于广泛多种装置或设备中,包含无线手持机、集成电路(IC)或IC组(例如,芯片组)。本发明中描述各种组件、模块或单元来强调经配置以执行所揭示的技术的装置的若干功能性方面,但没有必要需要通过不同的硬件单元来实现。而是,如上文所描述,各种单元可联合合适的软件和/或固件而组合于编解码器硬件单元中或通过互操作的硬件单元的集合(包含如上文所描述的一个或一个以上处理器)来提供。
[0106]已描述了各种实例。这些及其它实例处于所附权利要求书的范围内。
【权利要求】
1.一种处理图形数据的方法,其包括: 评估与再现一个或一个以上再现单元的图形数据相关联的至少两个度量; 基于所述所评估的度量而将用于当前再现单元的再现模式自动地选择为即时再现模式和延迟再现模式中的一者;以及 配置图形处理单元GPU以根据所述选定的再现模式来再现所述当前再现单元的图形数据。
2.根据权利要求1所述的方法,其中所述再现单元中的每一者包括以下各者中的一者:一组帧、一帧、一帧的一部分、与一帧相关联的多个再现目标、与一帧相关联的单一再现目标,或与一帧相关联的单一再现目标的一部分。
3.根据权利要求1所述的方法,其进一步包括收集与再现前一再现单元和当前再现单元中的至少一者的图形数据相关联的度量。
4.根据权利要求1所述的方法,其中评估至少两个度量包括评估以下各者中的两者或两者以上:顶点的数目、片段的数目、所述片段的位置、GPU带宽的量、所述GPU上的负载量、中央处理单元CPU上的负载量、针对一帧界定的再现目标的数目、针对一帧界定的多个再现目标MRT的数目、深度测试启用、混合启用、模板测试启用、再现目标的尺寸、在所述GPU上执行的应用程序的类型、图形应用程序接口 API调用的数目,以及GPU硬件性能计数器信肩、O
5.根据权利要求1所述的方法,其中自动地选择再现模式包括在前一再现单元与所述当前再现单元之间的所述图形数据中的再现边界处自动地选择用于所述当前再现单元的所述再现模式。
6.根据权利要求1所述的方法,其进一步包括: 将所述当前再现单元的所述图形数据提供给所述GPU以进行再现;以及 在到达所述图形数据中的再现边界之后,即刻从所述当前再现单元切换到后续再现单元。
7.根据权利要求1所述的方法,其中评估所述度量中的至少两者包括将加权方案应用于所述至少两个度量。
8.根据权利要求1所述的方法,其中评估所述度量中的至少两者包括至少评估GPU带宽的量以及针对一帧而界定的再现目标的数目。
9.根据权利要求1所述的方法,其中评估所述度量中的至少两者包括预测所述即时再现模式和所述延迟再现模式中的哪一者将使用较少的电力和较少的系统带宽中的至少一者来再现所述当前再现单元的所述图形数据。
10.根据权利要求1所述的方法,其中自动地选择再现模式包括基于所述所评估的度量而自动地选择经预测使用较少的电力和较少的系统带宽中的至少一者来再现所述当前再现单元的所述图形数据的所述即时再现模式和所述延迟再现模式中的所述一者。
11.根据权利要求1所述的方法,其中配置GPU包括,当所述即时再现模式被选择为所述再现模式时,配置所述GPU的再现引擎以将所述当前再现单元的图形数据直接再现到帧缓冲器。
12.根据权利要求1所述的方法,其中配置GPU包括,当所述延迟再现模式被选择为所述再现模式时,配置所述GPU的再现引擎以执行将所述当前再现单元划分为多个瓦片的平铺回合、将所述多个瓦片中的每一者的图形数据再现到瓦片缓冲器,且将所述所再现的瓦片中的每一者从所述瓦片缓冲器读取到帧缓冲器。
13.根据权利要求1所述的方法,其进一步包括接收超驰所述自动地选择的再现模式的手动地选择的再现模式,其中配置GPU包括配置所述GPU以根据所述手动地选择的再现模式来再现所述当前再现单元的图形数据。
14.根据权利要求13所述的方法,其中接收手动地选择的再现模式包括执行图形应用程序编程接口 API以从用户接收所述手动地选择的再现模式。
15.一种用于处理图形数据的图形装置,其包括: 存储器缓冲器,其存储与再现一个或一个以上再现单元的图形数据相关联的度量;以及 一个或一个以上处理器,其评估所述度量中的至少两者、基于所述所评估的度量而将用于当前再现单元的再现模式自动地选择为即时再现模式和延迟再现模式中的一者,且配置图形处理单元GPU以根据所述选定的再现模式来再现所述当前再现单元的图形数据。
16.根据权利 要求15所述的图形装置,其中所述一个或一个以上处理器包括中央处理单元CPU和所述GPU中的一者或一者以上。
17.根据权利要求15所述的图形装置,其中所述再现单元中的每一者包括以下各者中的一者:一组帧、一帧、一帧的一部分、与一帧相关联的多个再现目标、与一帧相关联的单一再现目标,或与一帧相关联的单一再现目标的一部分。
18.根据权利要求15所述的图形装置,其中所述处理器收集与再现前一再现单元和当前再现单元中的至少一者的图形数据相关联的度量。
19.根据权利要求15所述的图形装置,其中所述度量包括以下各者中的两者或两者以上:顶点的数目、片段的数目、所述片段的位置、GPU带宽的量、所述GPU上的负载量、中央处理单元CPU上的负载量、针对一帧界定的再现目标的数目、针对一帧界定的多个再现目标MRT的数目、深度测试启用、混合启用、模板测试启用、再现目标的尺寸、在所述GPU上执行的应用程序的类型、图形应用程序接口 API调用的数目,以及GPU硬件性能计数器信息。
20.根据权利要求15所述的图形装置,其中所述处理器在所述前一再现单元与所述当前再现单元之间的所述图形数据中的再现边界处自动地选择用于所述当前再现单元的所述再现模式。
21.根据权利要求15所述的图形装置,其中所述处理器: 将所述当前再现单元的所述图形数据提供给所述GPU以进行再现;以及 在到达所述图形数据中的再现边界之后,即刻从所述当前再现单元切换到后续再现单J Li ο
22.根据权利要求15所述的图形装置,其中所述处理器通过将加权方案应用于所述度量中的至少两者而评估所述至少两个度量。
23.根据权利要求15所述的图形装置,其中所述处理器至少评估GPU带宽的量以及再现目标的数目。
24.根据权利要求15所述的图形装置,其中所述处理器评估所述度量中的至少两者以预测所述即时再现模式和所述延迟再现模式中的哪一者将使用较少的电力和较少的系统带宽中的至少一者来再现所述当前再现单元的所述图形数据。
25.根据权利要求15所述的图形装置,其中所述处理器基于所述所评估的度量而自动地选择经预测使用较少的电力和较少的系统带宽中的至少一者来再现所述当前再现单元的所述图形数据的所述即时再现模式和所述延迟再现模式中的所述一者。
26.根据权利要求15所述的图形装置,其中所述GPU包含再现引擎,且其中当所述即时再现模式被选择为所述再现模式时,所述处理器配置所述GPU的所述再现引擎以将所述当前再现单元的图形数据直接再现到帧缓冲器。
27.根据权利要求15所述的图形装置,其中所述GPU包含再现引擎,且其中当所述延迟再现模式被选择为所述再现模式时,所述处理器配置所述GPU的所述再现引擎以执行将所述当前再现单元划分为多个瓦片的平铺回合、将所述多个瓦片中的每一者的图形数据再现到瓦片缓冲器,且将所述所再现的瓦片中的每一者从所述瓦片缓冲器读取到帧缓冲器。
28.根据权利要求15所述的图形装置,其中所述处理器接收超驰所述自动地选择的再现模式的手动地选择的再现模式,且配置所述GPU以根据所述手动地选择的再现模式来再现所述当前再现单元的图形数据。
29.根据权利要求28所述的图形装置,其中所述处理器执行图形应用程序编程接口API以从用户接收所述手动地选择的再现模式。
30.一种用于处理图形数据的图形装置,其包括: 用于评估与再现一个或一个以上再现单元的图形数据相关联的至少两个度量的装置; 用于基于所述所评估的度量而将用于当前再现单元的再现模式自动地选择为即时再现模式和延迟再现模式中的一者的装置;以及 用于配置图形处理单元GPU以根据所述选定的再现模式来再现所述当前再现单元的图形数据的装置。
31.根据权利要求30所述的图形装置,其中所述再现单元中的每一者包括以下各者中的一者:一组帧、一帧、一帧的一部分、与一帧相关联的多个再现目标、与一帧相关联的单一再现目标,或与一帧相关联的单一再现目标的一部分。
32.根据权利要求30所述的图形装置,其进一步包括用于收集与再现前一再现单元和当前再现单元中的至少一者的图形数据相关联的度量的装置。
33.根据权利要求30所述的图形装置,其中所述度量包括以下各者中的两者或两者以上:顶点的数目、片段的数目、所述片段的位置、GPU带宽的量、所述GPU上的负载量、中央处理单元CPU上的负载量、针对一帧界定的再现目标的数目、针对一帧界定的多个再现目标MRT的数目、深度测试启用、混合启用、模板测试启用、再现目标的尺寸、在所述GPU上执行的应用程序的类型、图形应用程序接口 API调用的数目,以及GPU硬件性能计数器信息。
34.根据权利要求30所述的图形装置,其进一步包括用于在所述前一再现单元与所述当前再现单元之间的所述图形数据中的再现边界处自动地选择用于所述当前再现单元的所述再现模式的装置。
35.根据权利要求30所述的图形装置,其中所述用于评估所述度量中的至少两者的装置包括用于将加权方案应用于所述至少两个度量的装置。
36.根据权利要求30所述的图形装置,其中所述用于评估所述度量中的至少两者的装置包括用于预测所述即时再现模式和所述延迟再现模式中的哪一者将使用较少的电力和较少的系统带宽中的至少一者来再现所述当前再现单元的所述图形数据的装置。
37.根据权利要求30所述的图形装置,其进一步包括用于基于所述所评估的度量而自动地选择经预测使用较少的电力和较少的系统带宽中的至少一者来再现所述当前再现单元的所述图形数据的所述即时再现模式和所述延迟再现模式中的所述一者的装置。
38.根据权利要求30所述的图形装置,其进一步包括: 用于接收超驰所述自动地选择的再现模式的手动地选择的再现模式的装置;以及 用于配置所述GPU以根据所述手动地选择的再现模式来再现所述当前再现单元的图形数据的装置。
39.一种包括用于处理图形数据的指令的计算机可读媒体,所述指令在执行时致使一个或一个以上可编程处理器执行以下操作: 评估与再现一个或一个以上再现单元的图形数据相关联的至少两个度量; 基于所述所评估的度量而将用于当前再现单元的再现模式自动地选择为即时再现模式和延迟再现模式中的一者;以及 配置图形处理单元GPU以根据所述选定的再现模式来再现所述当前再现单元的图形数据。
40.根据权利要求39所述的计算机可读媒体,其中所述再现单元中的每一者包括以下各者中的一者:一组帧、一帧、一帧的一部分、与一帧相关联的多个再现目标、与一帧相关联的单一再现目标,或与一帧相关联的单一再现目标的一部分。
41.根据权利要求39所述的计算机可读媒体,其进一步包括致使所述可编程处理器收集与再现前一再现单元和 当前再现中的至少一者的图形数据相关联的度量的指令。
42.根据权利要求39所述的计算机可读媒体,其中所述指令致使所述可编程处理器评估以下各者中的两者或两者以上:顶点的数目、片段的数目、所述片段的位置、GPU带宽的量、所述GPU上的负载量、中央处理单元CPU上的负载量、针对一帧界定的再现目标的数目、针对一帧界定的多个再现目标MRT的数目、深度测试启用、混合启用、模板测试启用、再现目标的尺寸、在所述GPU上执行的应用程序的类型、图形应用程序接口 API调用的数目,以及GPU硬件性能计数器信息。
43.根据权利要求39所述的计算机可读媒体,其中所述指令致使所述可编程处理器在前一再现单元与所述当前再现单元之间的所述图形数据中的再现边界处自动地选择用于所述当前再现单元的所述再现模式。
44.根据权利要求39所述的计算机可读媒体,其中所述指令致使所述可编程处理器通过将加权方案应用于所述度量中的至少两者而评估所述至少两个度量。
45.根据权利要求39所述的计算机可读媒体,其中所述指令致使所述可编程处理器评估所述度量中的至少两者以预测所述即时再现模式和所述延迟再现模式中的哪一者将使用较少的电力和较少的系统带宽中的至少一者来再现所述当前再现单元的所述图形数据。
46.根据权利要求39所述的计算机可读媒体,其中所述指令致使所述可编程处理器基于所述所评估的度量而自动地选择经预测使用较少的电力和较少的系统带宽中的至少一者来再现所述当前再现单元的所述图形数据的所述即时再现模式和所述延迟再现模式中的所述一者。
47.根据权利要求39所述的计算机可读媒体,其进一步包括致使所述可编程处理器执行以下操作的指令: 接收超驰所述自动地选择的 再现模式的手动地选择的再现模式;以及 配置所述GPU以根据所述手动地选择的再现模式来再现所述当前再现单元的图形数据。
【文档编号】G06F3/06GK103946789SQ201280023062
【公开日】2014年7月23日 申请日期:2012年5月16日 优先权日:2011年5月16日
【发明者】莫里斯·里布尔, 科林·夏普, 杰弗里·莱格尔 申请人:高通股份有限公司

最新回复(0)