显示经渲染的图形元素的性能度量的视觉表示的制作方法

文档序号:6349335阅读:169来源:国知局
专利名称:显示经渲染的图形元素的性能度量的视觉表示的制作方法
技术领域
本发明涉及图形图像的显示。
背景技术
对于各种应用(例如,视频游戏、图形程序、计算机辅助设计(CAD)应用、模拟与可视化工具及成像)来说,图形处理器广泛用以渲染二维(2D)及三维(3D)图像。显示处理器可用以经由显示装置来显示图形处理器的经渲染输出以呈现给用户。图形应用程序(例如,3D图形应用程序)可通过调用应用编程接口(API)调用或指令来描述或定义场景的内容,所述API调用又使用基础图形硬件(例如,图形装置中的一个或一个以上处理器)来产生图像。图形硬件可经历经由对这些API的调用而实行的一系列状态转变。每一 API调用(例如,绘制调用或指令)的状态或状态转变的全集可描述藉以由硬件渲染所述图像的过程。在嵌入式经硬件加速的图形应用程序的开发过程中,常难以量化关于如何由图形处理单元(GPU)硬件装置处理个别图形元素(例如,网格、多边形或其它图形图元)的许多方面。GPU处理的此些方面(例如,专用于所述元素的时钟循环的数目、在其渲染过程中发生的暂停、所消耗的存储器带宽等)构成对于应用程序开发人员来说极有价值的信息。

发明内容
本发明描述用于提供性能分析应用程序的各种技术,所述性能分析应用程序可用以显示经渲染的图形元素的性能度量的视觉表示。在一些情况下,所述分析应用程序可由撰写用于利用特定应用编程接口(API)(例如开放图形库(OpenGL )、用于嵌入式系统的 OpenGL (OpenGL ES)或OpenVG(向量图形)API)的平台的多媒体应用程序的开发人员使用。所述分析应用程序可允许应用程序开发人员使对由图形处理硬件渲染的个别2D或3D 元件进行的处理的较大一组性质可视化。从此过程收集到的信息可帮助所述开发人员较有效地调谐所开发的应用程序的设计或性能特性,以便在目标硬件平台上较有效率地运行。在一些例子中,所述分析应用程序可使得能够针对在图形场景中渲染的每一个别图形元素而从例如移动装置或其它装置等目标装置捕捉性能测量结果的一个或一个以上大集合。所述目标装置可为所述图形应用程序意在在其上操作的装置或装置类别。所述应用程序可允许开发人员基于所接收到的性能数据而在开发装置上以图形方式可视化性能度量。所述开发装置可包含收集所述性能数据的实际装置,或单独装置(例如,充当所述实际装置的仿真器或模拟器的个人计算机)。一种实例方法包含接收由图形处理单元提供的性能信息,其中所述性能信息已由所述图形处理单元结合用于渲染图形场景的个别图形元素而测量;及基于所述性能信息来计算所述图形元素的性能度量的值,其中每一所计算的值与所述图形元素中的至少一者相关联。所述方法进一步包含基于所述图形元素的所述性能度量的所述所计算值来将图形识别符指派给所述图形元素,其中所述图形识别符中的一者被指派给所述图形元素中的每一者;及根据指派给所述图形元素的所述图形识别符来在渲染所述图形场景时显示所述图形元素。一种实例装置包括显示装置及一个或一个以上处理器。所述一个或一个以上处理器经配置以接收由图形处理单元提供的性能信息,其中所述性能信息已由所述图形处理单元结合用于渲染图形场景的个别图形元素而测量;且基于所述性能信息来计算所述图形元素的性能度量的值,其中每一所计算的值与所述图形元素中的至少一者相关联。所述一个或一个以上处理器经进一步配置以基于所述图形元素的所述性能度量的所述所计算值来将图形识别符指派给所述图形元素,其中所述图形识别符中的一者被指派给所述图形元素中的每一者;且根据指派给所述图形元素的所述图形识别符来在渲染所述图形场景时在所述显示装置上显示所述图形元素。一种实例计算机可读存储媒体包括用于致使一个或一个以上可编程处理器进行以下操作的指令接收由图形装置的图形处理单元提供的性能信息,其中所述性能信息已由所述图形处理单元结合用于渲染图形场景的个别图形元素而测量;及基于所述性能信息来计算所述图形元素的性能度量的值,其中每一所计算的值与所述图形元素中的至少一者相关联。所述计算机可读存储媒体进一步包括用以进行以下操作的指令基于所述图形元素的所述性能度量的所述所计算值来将图形识别符指派给所述图形元素,其中所述图形识别符中的一者被指派给所述图形元素中的每一者;及根据指派给所述图形元素的所述图形识别符来在渲染所述图形场景时显示所述图形元素。可以硬件、软件、固件或其任何组合来实施本发明中所描述的所述技术。如果以软件来实施,那么可在处理器中执行所述软件,所述处理器可指一个或一个以上处理器,例如微处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、或数字信号处理器(DSP),或其它等效集成或离散逻辑电路。包含用以执行所述技术的指令的软件可最初存储在计算机可读媒体中且由处理器执行。因此,本发明还涵盖包含用以致使处理器执行如本发明中所描述的多种技术中的任一者的指令的计算机可读媒体。在一些情况下,所述计算机可读媒体可形成计算机程序产品的部分,所述计算机程序产品可销售给制造商及/或用于装置中。所述计算机程序产品可包括所述计算机可读媒体,且在一些情况下,还可包括封装材料。在附图及下文描述中陈述一个或一个以上方面的细节。其它特征、目标及优点将从所述描述及所述图式且从所附权利要求书显而易见。


图1为说明图形装置的实例的框图,所述图形装置可将图形命令连同状态及/或性能信息提供给执行性能分析应用程序的应用程序计算装置。图2为说明图形装置的另一实例的框图,所述图形装置可直接实施或执行性能分析应用程序。图3为说明根据一个实例的图1中所展示的图形处理系统的额外细节的框图。
8
图4为说明根据一个实例的可由图1中所展示的控制处理器、图形处理器、顶点处理器及显示处理器执行的操作的额外细节的流程图。图5为说明根据一个实例的图3中所展示的图形驱动器的额外细节的框图。图6为可由图1或图2中所展示的图形装置执行的实例方法的流程图。图7为可由例如图3及图5中所展示的图形驱动器等图形驱动器执行的实例方法的流程图。图8为可由例如图1或图2中所展示的性能分析应用程序等性能分析应用程序执行的实例方法的流程图。图9为说明可由例如图1或图2中所展示的性能分析应用程序等性能分析应用程序显示的信息的实例的概念图。图10为说明可由例如图1或图2中所展示的性能分析应用程序等性能分析应用程序显示的信息的另一实例的概念图。图11为说明包括若干个别渲染的元素的图形场景的实例屏幕图。图12为说明与图11的图形场景相同但个别渲染元素是根据所指派的图形识别符 (例如,色彩、着色及/或交叉影线识别符)而显示的图形场景的实例屏幕图。
具体实施例方式图1为说明根据本发明一个方面的图形装置2的框图,所述图形装置2可将图形命令30连同状态及/或性能信息32提供给执行性能分析应用程序的应用程序计算装置 20。图形装置2可为独立装置,或可为较大系统的部分。举例来说,图形装置2可形成无线通信装置(例如,无线移动通信手持机)的部分,或可为数字相机、视频相机、数字多媒体播放器、个人数字助理(PDA)、视频游戏控制台、其它视频装置或专用检视站(例如,电视机) 的部分。图形装置2可包含计算装置,且还可为个人计算机或膝上型装置的部分。图形装置2还可包括于可用于上文所描述的装置中的一些或全部中的一个或一个以上集成电路、 或芯片/芯片组中。图1展示正在与图形装置2分离且不同的装置20中执行性能分析应用程序观的实例。在其它情况下,例如在图2中所展示的实例中,还可在图形装置内直接执行或实施性能分析应用程序,如参看图2更详细地描述。在一些情况下,图形装置2可能够执行或实施各种应用程序,例如图形应用程序、 视频应用程序、音频应用程序及/或其它多媒体应用程序。举例来说,图形装置2可用于图形应用程序、视频游戏应用程序、视频播放应用程序、数字相机应用程序、即时消息接发应用程序、视频电话会议应用程序、移动应用程序或视频流式传输应用程序。图形装置2可能够处理多种不同数据类型及格式。举例来说,如下文将更详细地描述,图形装置2可处理静态图像数据、移动图像(视频)数据或其它多媒体数据。图像数据可包括计算机产生的图形数据。在图1的实例中,图形装置2包括图形处理系统4、存储媒体8 (其包含存储器)及显示装置6。处理器10、12、14及16可包括于图形处理系统4内。处理器10为控制处理器或通用处理器。处理器12为图形处理器,处理器14为顶点处理器,且处理器16为显示处理器。 控制处理器10可能够控制图形处理单元12、顶点处理器14及/或显示处理器16。在一个实例中,图形处理系统4可包括其它处理器,包括其它媒体处理器(例如,音频引擎)。在一些情况下,当图形装置2不提供顶点处理能力时(例如,在图形装置2不实施针对OpenVG 的处理的情况下),图形处理系统4可不包括顶点处理器14。在图形装置2中,图形处理系统4既耦合到存储媒体8,也耦合到显示装置6。存储媒体8可包括能够存储指令及/或数据的任何永久或易失性存储器。存储媒体8可包含同步动态随机存取存储器(SDRAM)、只读存储器(ROM)、非易失性随机存取存储器(NVRAM)、 嵌入式动态随机存取存储器(eDRAM)、静态随机存取存储器(SRAM)或快闪存储器。显示装置6可为能够为了显示目的而显示图像数据的任何装置,例如LCD (液晶显示器)、等离子体显示装置或其它显示装置。顶点处理器14能够管理顶点信息且处理顶点变换。在一个实例中,顶点处理器14 可包含数字信号处理器(DSP)。图形处理单元12可为用以渲染、操纵且显示计算机化图形的专用图形渲染装置。图形处理单元12可实施各种复杂的图形相关算法。举例来说,复杂算法可对应于二维或三维计算机化图形的表示。图形处理单元12可实施若干所谓的“图元”图形操作(例如,形成点、线及三角形或其它多边形表面),以在例如显示装置6等显示器上创建复杂的三维图像。图形处理单元12可执行存储于存储媒体8中的命令。存储媒体8能够存储用于应用程序(例如,图形或视频应用程序)的应用程序指令(application instruction) 21, 以及一个或一个以上图形驱动器18。可将应用程序指令21从存储媒体8加载到图形处理系统4中以供执行。举例来说,控制处理器10、图形处理单元12及显示处理器16中的一者或一者以上可执行指令21。在一个实例中,应用程序指令21可包含一个或一个以上可下载模块,所述一个或一个以上可下载模块以无线方式动态地下载到存储媒体8中。在一个实例中,应用程序指令21可包含二进制指令的调用流,所述二进制指令是从应用程序开发人员所创建的应用编程接口(API)指令产生或编译。还可将图形驱动器18从存储媒体8加载到图形处理系统4中以供执行。举例来说,控制处理器10、图形处理单元12及显示处理器16中的一者或一者以上可执行来自图形驱动器18的特定指令。在一个实例方面中,图形驱动器18由图形处理单元12加载并执行。将在下文中进一步详细描述图形驱动器18。还如图1中所展示,图形处理系统4包括一个或一个以上缓冲器15。控制处理器 10、图形处理单元12、顶点处理器14及/或显示处理器16各自具有对缓冲器15的存取权, 且可将数据存储于缓冲器15中或从缓冲器15检索数据。缓冲器15可包含高速缓存存储器,且可能够存储数据及指令两者。举例来说,缓冲器15可包括应用程序指令21中的一者或一者以上或来自图形驱动器18的一个或一个以上指令,所述指令已从存储媒体8加载到图形处理系统4中。缓冲器15及/或存储媒体8还可含有在指令执行期间使用的图形数据。在特定情况下,应用程序指令21可包括用于图形应用程序(例如,3D图形应用程序)的指令。应用程序指令21可包含描述或定义包括一个或一个以上图形对象的图形场景的内容的指令。当应用程序指令21加载到图形处理系统4中且由图形处理系统4执行时,图形处理系统4可经历一系列状态转变。在执行应用程序指令21期间,还可执行图形驱动器18内的一个或一个以上指令以在显示装置6上渲染图形元素或显示经渲染的图形元素。可在执行特定绘制命令期间渲染每一个别元素,此举致使经渲染的元素绘制于显示器上。指令(例如,绘制调用)的状态的全集可描述图形处理系统4内的绘制调用(或命令)藉以渲染元素的过程。然而,已撰写应用程序指令21的应用程序开发人员为了实现使用描述或渲染所定义场景中的元素的替代方法进行调试或实验的目的而互动地检视或修改这些状态的能力可常为有限的。另外,不同的硬件平台可具有不同的硬件设计及对这些状态及/或状态转变的实施。因此,在一个实例中,应用程序开发人员可使用应用程序计算装置20(图1中所展示)来辅助使用用于描述或渲染场景中的图像的替代方法来进行调试及实验的处理。应用程序计算装置20耦合到图形装置2。举例来说,在一个实例中,应用程序计算装置20经由通用串行总线(USB)连接而耦合到图形装置2。在其它方面中,可使用其它类型的连接,例如无线连接或其它形式的有线连接。应用程序计算装置20包括一个或一个以上处理器22、显示装置M及存储媒体 26。根据一个方面,处理器22可包括控制处理器、图形处理器、顶点处理器及显示处理器中的一者或一者以上。存储媒体26可包括能够存储指令及/或数据的任何永久或易失性存储器。存储媒体26可包含同步动态随机存取存储器(SDRAM)、只读存储器(ROM)、非易失性随机存取存储器(NVRAM)、静态随机存取存储器(SRAM)或快闪存储器。显示装置M可为能够为了显示目的而显示图像数据的任何装置,例如LCD(液晶显示器)、等离子体显示装置或其它显示装置。在特定应用程序(例如,嵌入式经硬件加速图形应用程序)的开发过程中,常难以或不可能量化如何由图形装置2上的图形处理单元12处理个别图形元素(例如,网格、多边形或其它图形图元)的许多方面。图形处理的此些方面(例如,专用于图形处理单元12 中的元素的时钟循环的数目、在其渲染过程中发生的暂停、所消耗的存储器带宽等)可包含对于应用程序开发人员来说极有价值的信息,然而其在实际应用程序开发期间通常难以获得。在未对图形处理单元12的详细活动作出深入洞察的情况下,开发人员可能错失优化的机会、误导调谐努力及/或被迫降级视觉质量以便满足性能目标及计划表。因此,如图1中所展示,应用程序计算装置20能够捕捉并分析从图形装置2发送的图形命令30连同状态及/或性能信息32。在一个实例中,图形驱动器18经配置以将图形命令30及状态/性能信息32发送到应用程序计算装置20。图形命令30可包括应用程序指令21中的一者或一者以上,且状态/性能信息32可在于图形处理系统4内执行或实施图形命令30期间产生或捕捉。状态/性能信息32包括关于在指令执行或实施期间的图形处理系统4的状态及性能的信息,且将在下文中更详细地描述。状态/性能信息32可包括可结合图形命令30使用(或以其它方式与图形命令30相关联)的图形数据(例如,图元及/或经栅格化的图形数据)。图形处理系统4可执行图形命令30以在显示装置6上显示图像,或经渲染的图形元素的场景。应用程序计算装置20能够使用图形命令30连同状态/性能信息32来创建图形图像或场景,在一些情况下,所述图形图像或场景还可展示于图形装置2的显示装置6 上。性能分析应用程序观可由应用程序计算装置20的处理器22执行以在接收到图
11形命令30及状态/性能信息32后即刻创建经渲染元素的图形图像或场景,且在显示装置 24上显示经渲染元素。性能分析应用程序观可包含含有若干应用程序指令的软件模块。 性能分析应用程序观存储于存储媒体26中,且可由处理器22加载并执行。性能分析应用程序观可预先加载到存储媒体沈中,且可经定制以与图形装置2 —起操作。在一个实例中,性能分析应用程序观模拟图形装置2的硬件操作,且提供可表示状态/性能信息32的一个或一个以上方面的图形信息。不同版本的性能分析应用程序观可存储于存储媒体沈中且由处理器22执行, 以用于具有不同硬件设计的不同图形装置。在一些情况下,软件库也可存储于存储媒体26 内,其与性能分析应用程序观结合使用。在一个实例中,性能分析应用程序观可为通用应用程序,且特定硬件或图形装置模拟功能性可包括于在执行期间可与性能分析应用程序观链接的每一单独库内。举例来说,第一库可提供用于第一特定类型的图形装置(例如,包含于第一类型的无线通信手持机内的图形装置)的模拟功能性,而第二不同库可提供用于第二不同类型的图形装置(其具有与第一图形装置不同的硬件架构)的模拟功能性。这些库中的每一者可存储于存储媒体26内,且在执行期间可单独地与性能分析应用程序观链接以模拟第一或第二图形装置。因此,性能分析应用程序观(或此应用程序在执行后的不同版本)能够在应用程序计算装置20上模拟各种不同类型的图形装置。在一个实例中,可在应用程序计算装置20的显示装置M上向应用程序开发人员显示状态/性能信息32的视觉表示。另外,还可显示图形命令30的视觉表示。因为在许多情况下,图形命令30可包含二进制指令,所以应用程序计算装置20可使用性能分析应用程序31来在显示装置M上产生图形命令30的视觉表示。性能分析应用程序31存储于存储媒体沈内且可加载到处理器22中以便显示图形命令30的视觉表示。在一个实例中,性能分析应用程序31可提供用以将图形命令30映射到对应的API 指令的功能性,在产生图形命令30时可能已预先编译所述API指令。应用程序开发人员可撰写使用API指令的程序,但这些API指令通常编译成二进制指令(例如,图形命令30)以用于在图形装置2上执行。图形命令30内的一个或一个以上指令可映射到个别API指令。可接着在显示装置M上向应用程序开发人员显示所映射的API指令,以提供实际正执行的图形命令30的视觉表示。在一些情况下,性能分析应用程序观可利用映射信息以便执行此映射。此映射信息可存储于(例如)存储媒体26内。在一些情况下,可从图形装置2提供映射信息,且在其它情况下,还可在应用程序计算装置20上预先编程映射信息。在一个实例中,用户(例如,应用程序开发人员)可希望改变所述图形命令30中的一者或一者以上以确定(例如)此些改变对性能的效应。在此些情况下,如下文将更详细地描述,应用程序计算装置20可任选地将所请求的修改34(例如,对待执行的命令的修改)提供给图形装置2。如上文所描述,显示于显示装置M上的图形图像或集合或经渲染元素也可显示于图形装置2上。因为性能分析应用程序观可使用图形命令30及状态/性能信息32来创建经渲染的图形元素的场景(正如呈现于图形装置2上一样),所以使用应用程序计算装置20的应用程序开发人员可能够在执行图形应用程序30期间快速地识别潜在的性能问题
12或瓶颈,且甚至原型化修改,以改进图形应用程序30的整体性能。举例来说,在于应用程序计算装置20上执行性能分析应用程序观及于显示装置 24上显示图像期间,应用程序开发人员可任选地选择对图形命令30及/或状态/性能信息 32作出一个或一个以上所请求的修改34。在执行图形命令30或分析状态/性能信息32 期间,任何此些所请求的修改34可基于观察到的性能问题或瓶颈。可接着将这些所请求的修改34从应用程序计算装置20发送到图形装置2,在所述图形装置2处由图形处理系统4 处理所述所请求的修改。在一个实例中,在图形处理系统4内执行图形驱动器18中的一者或一者以上以处理所请求的修改34。在一些情况下,所请求的修改34可包括经修改的命令。在一些情况下,所请求的修改可包括经修改的状态及/或性能信息。在处理所请求的修改34后,(例如)图形驱动器18中的一者或一者以上即刻将经更新的指令及/或信息35发送回到应用程序计算装置20。经更新的命令/信息35可包括基于由图形装置2处理的所请求的修改34的用于执行的经更新图形指令。经更新的命令/信息35还可包括基于由图形装置2处理的所请求的修改34的经更新的状态及/或性能信息。经更新的命令/信息35由性能分析应用程序观处理以更新图像信息或经渲染的图形元素在显示装置M上的显示,且还可向应用程序开发人员提供经更新的命令/信息35 的视觉表示,此举可包括再次使用性能分析应用程序31。应用程序开发人员可接着检视显示装置M上的经更新的图像信息,以及经更新的命令/信息35的视觉表示,以确定是否已解决或减轻性能问题。应用程序开发人员可使用反复过程来调试图形命令30或原型化修改以改进图形应用程序30的整体性能。因此,性能剖析应用程序28可由撰写用于利用特定API (例如,OpenGL 、OpenGL ES或OpenVG API)的嵌入式平台的多媒体应用程序的内容开发人员(例如,视频游戏开发人员)用作应用程序开发工具。使用性能分析应用程序观可允许应用程序开发人员测量并可视化由图形处理单元12的图形处理硬件对个别2D或3D元素进行的处理的性质的较大集合。从此过程收集到的信息可帮助所述开发人员较有效地调谐所述应用程序的设计或性能特性,以便在目标硬件平台(例如,由图1中的图形装置2提供的平台)上较高效地运行。性能分析应用程序观使得能够针对每个别经渲染元素(例如,每绘制命令、每图形图元、每顶点、每像素片段)而从图形装置2捕捉性能测量结果的一个或一个以上大集合。性能分析应用程序观可允许开发人员基于从图形装置2接收到的性能测量结果(例如,状态/性能信息32)而在开发装置(例如,应用程序计算装置20)上以图形方式可视化性能度量。在一些情况下,每一绘制命令能够在执行期间渲染一个或一个以上图形图元、顶点、像素片段或其任何部分/组合。举例来说,当图形处理单元12执行包括于应用程序指令21内的绘制命令时,图形驱动器18中的一者或一者以上可获得图形处理单元12(其涵盖由图形处理单元12执行的工作)的一个或一个以上计数器的值,以便执行所述绘制命令。这些计数器中的一者或一者以上可包含低级硬件计数器,可对所述低级硬件计数器进行取样,且将其与来自图形处理单元12或图形处理系统4的其它组件的其它计数器或测量结果聚集,使得性能分析应用程序28可计算高级性能度量。所述计数器值可包括于发送到应用程序计算装置20的状态/性能信息32内。状态/性能信息32可进一步包括性能分析应用程序观所需的数据,以在仿真环境中重新创建图形命令30,包括功能调用参数、渲染状态、几何数据、纹理、着色器寸。在本发明的一个方面中,性能分析应用程序观在执行期间可接收已由图形处理单元12提供的性能信息(例如,包括于状态/性能信息32内)。已由图形处理单元12测量到的所述性能信息与用于渲染图形场景的个别图形元素关联。举例来说,所述图形元素可为用以渲染图形场景的绘制命令(例如,包括于应用程序指令21内的命令)。在一些情况下,所述图形元素可包含图形图元、顶点及/或像素片段。在接收到性能信息后,性能分析应用程序观可即刻基于所述性能信息而计算所述图形元素的性能度量的值,其中每一所计算的值与所述图形元素中的至少一者相关联。 举例来说,如下文将进一步描述,指定性能度量可包含高级性能测量结果,例如每时钟循环撰写的像素的度量、每顶点发出的着色器指令的度量及/或每秒执行的存储器写入的次数的度量(仅举几例)。如下文还将进一步描述,性能分析应用程序观可基于图形元素的性能度量的所计算值而将图形识别符(例如,色彩、着色/交叉影线识别符、其它图形识别符)指派给所述图形元素中的每一者,且可处理所述图形元素以渲染图形场景以用于(例如)在显示装置24上显示的目的。可将所述图形识别符中的一者指派给所述图形元素中的每一者。以此方式,性能分析应用程序观能够在处理所述图形元素期间(例如,在执行绘制命令期间) 显示经渲染的图形元素,且根据指派给所述图形元素的图形识别符而在视觉上显示此些元
ο在许多情况下,显示此信息可辅助应用程序开发人员直接地且精确地测量由图形处理单元12对个别图形元素(例如,2D或3D对象)进行的处理的性质的大集合,且容易地在显示装置M上检视此些测量结果的表示。所显示的信息还可帮助开发人员较有效地调谐应用程序指令21的设计或性能特性,以在由图形装置2提供的目标硬件平台上较高效地运行。举例来说,开发人员可调谐应用程序的各种方面以确定在检查到显示装置M上的经渲染元素的性能度量的经更新视觉表示后,任何改变是否可即刻改进所执行的应用程序的一个或一个以上性能特性。开发人员还可利用性能分析应用程序观来修改所述命令中的一者或一者以上,所述命令包括于从应用程序计算装置20发送到图形装置2的所请求的修改34内,如上文所描述。在接收到经更新的命令/信息35后,可接着将经渲染元素的性能度量的经更新显示提供于显示装置M上。图2为说明图形装置50的另一实例的框图,所述图形装置50可直接实施或执行性能分析应用程序70。类似于图1中所展示的图形装置2,图形装置50包括图形处理系统 52,所述图形处理系统52耦合到显示装置72及存储媒体(例如,存储器)64。图形装置50 可类似于图形装置2而起作用,且还可包含计算装置。图形处理系统52包括控制处理器54、图形处理单元56、一个或一个以上缓冲器 58、任选顶点处理器60及显示处理器62。当系统52提供顶点处理操作时,图形处理系统 52包括顶点处理器60。类似于图1中所展示的存储媒体8,存储媒体64包括应用程序指令66及图形驱动器68。然而,不同于存储媒体8,存储媒体64包括性能分析应用程序70,所述性能分析应用程序70可加载到图形处理系统52中的处理器/单元中的一者或一者以上中,且由所述处理器/单元中的一者或一者以上执行。性能分析应用程序70可类似于图1中所展示的性能分析应用程序观而操作。然而,在图2的实例中,实际上在装置内执行应用程序指令66的同一装置(即,图形装置50) 还执行性能分析应用程序70。因此,不需要或在图2的实例中未展示单独的应用程序计算
直ο图2的图形装置50可具有各种操作模式。举例来说,在主模式下,图形处理系统 52可在主操作模式下执行或实施应用程序指令66及/或图形驱动器68,而不使用性能分析应用程序70。然而,在不同模式(例如,测试、仿真/模拟)模式下,图形处理系统52可进一步执行或实施性能分析应用程序70。开发人员可能够直接在显示装置72中检视性能分析应用程序70的结果及输出。因此,性能分析应用程序70可由撰写用于利用特定API (例如,OpenGL 、OpenGL ES或OpenVG API)的嵌入式平台的多媒体应用程序的内容开发人员(例如,视频游戏开发人员)用作应用程序开发工具。使用性能分析应用程序70可允许应用程序开发人员直接在显示装置72上测量并可视化由图形处理单元56的图形处理硬件对个别2D或3D元素进行的处理的性质的大集合。从此过程收集到的信息可帮助所述开发人员较有效地调谐所述应用程序的设计或性能特性,以便在目标硬件平台(例如,由图2中的图形装置50提供的平台)上较高效地运行。性能分析应用程序70使得能够针对每个别经渲染元素(例如,每绘制命令、每图形图元、每顶点、每像素片段)而从图形装置50捕捉性能测量结果的一个或一个以上大集合。性能分析应用程序70可允许开发人员基于从图形处理单元56接收到的性能测量结果来直接在图形装置50上以图形方式可视化性能度量,而不需要另一单独的应用程序计算
直ο在一个方面中,在实施或执行性能分析应用程序70期间,传出的像素片段可直接从性能计数器数据(例如,由图形处理单元56提供的性能计数器数据)获得其值。在一些情况下,由图形处理系统52实施(例如,由图形处理单元56及/或显示处理器62实施) 的片段着色器引擎可通过使特殊寄存器暴露于着色器代码而能够存取一个或一个以上性能计数器。像素片段值可基于特殊寄存器中的数据,或从特殊寄存器中的数据得出。因为多个像素片段可位于同一屏幕坐标处,所以图形处理系统52中的混合硬件可在帧缓冲器上累加或组合那些像素片段。因此,通过使用混合以基于所述计数器(例如,图形处理单元 56的计数器)中的一者或一者以上的值而组合所述像素片段中的多者,可确定指派给所述像素片段的图形识别符(例如,色彩、交叉影线/着色图案)。图3为说明根据一个实例的图1中所展示的图形处理系统4、图形驱动器18及应用程序计算装置20的特定细节的框图。在图3中,假定应用程序计算装置20耦合到图形装置2的图形处理系统4。然而,这仅仅是为了实现说目而展示。在其它情形下,可直接在 (例如,在图2的实例中的)装置内实施性能分析应用程序。如图3中所展示,图形处理系统4包括还展示于图1中的四个可编程处理器控制处理器10、任选顶点处理器14、图形处理单元12及显示处理器16。控制处理器10可控制顶点处理器14、图形处理单元12或显示处理器16中的任一者。在许多情况下,这些处理器 10、12、14及16可为系统4内的图形处理管线的部分。控制处理器10可控制穿经所述管线的数据或指令执行的流程的一个或一个以上方面,且还可将图形图像的几何信息提供给顶点处理器14。任选顶点处理器14可管理所述图形图像的顶点变换或几何处理,这可根据呈图元几何形式的多个顶点来加以描述或定义。在被利用时,顶点处理器14可将其输出提供给图形处理单元12,所述图形处理单元12 可对所述图形图像执行渲染或栅格化操作。图形处理单元12可将其输出提供给显示处理器16,所述显示处理器16以像素形式准备图形图像以供显示。图形处理单元12还可对像素数据执行各种操作,例如着色或按比例缩放。通常,可在执行图形命令30期间在此处理管线中处理图形图像数据,所述图形命令30可为应用程序指令21 (图1)的部分。因此,图形命令30可由控制处理器10、顶点处理器14、图形处理单元12及显示处理器16中的一者或一者以上执行。应用程序开发人员通常可能不太了解或不能控制图形处理系统4内的哪些特定处理器执行图形命令30中的哪些图形命令。在一些情况下,在执行图形命令30期间,控制处理器10、顶点处理器14、图形处理单元12及显示处理器16中的一者或一者以上可能具有性能问题,或成为处理管线内的潜在瓶颈。在这些情况下,图形处理系统4内的整体性能可恶化,且应用程序开发人员可希望对图形命令30进行改变以改进性能。然而,开发人员可能未必知晓处理器10、12、14 或16中的哪些处理器可能为具有性能问题的处理器。为了辅助解决识别性能瓶颈及潜在解决方案的难题,如图3中所展示,图形装置2 的图形驱动器18A可从图形处理系统4捕捉或收集图形命令30,且将其路由到应用程序计算装置20。图形驱动器18A为图1中所展示的图形驱动器18的部分。可由控制处理器10、 顶点处理器14、图形处理单元12及显示处理器16中的一者或一者以上加载并执行图形驱动器ISA0另外,图形驱动器18A还可从控制处理器10、顶点处理器14、图形处理单元12及显示处理器16中的一者或一者以上收集状态及/或性能信息32,且还将此信息32路由到应用程序计算装置20。在一个实例中,当图形命令30包括可能已从OpenGL ES API指令产生或编译的二进制指令时,图形驱动器18A可包含OpenGL ES驱动器。各种形式的状态数据可包括于状态/性能信息32内。举例来说,状态数据可包括在执行图形命令30期间使用或以其它方式与图形命令30相关联的图形数据。状态数据可与顶点阵列有关,例如位置、色彩、坐标、大小或权重数据。状态数据可进一步包括纹理状态数据、点状态数据、线状态数据、多边形状态数据、拣选状态数据、α测试状态数据、混合状态数据、深度状态数据、模版状态数据或色彩状态数据。如先前所描述,状态数据可包括状态信息及实际数据两者。在一些情况下,状态数据可包含与一个或一个以上OpenGL令牌相关联的数据。各种形式的性能数据还可包括于状态/性能信息32内。一般来说,此性能数据可包括来自控制处理器10、顶点处理器14、图形处理单元12及显示处理器16中的一者或一者以上的度量或硬件计数器数据。所述性能数据可包括帧率或循环数据。循环数据可包括用于剖析、命令阵列、顶点及索引数据或其它操作的循环的数据。在各种方面中,各种形式的状态及性能数据可包括于由图形驱动器18Α从图形处理系统4收集的状态/性能信息32 内。在一些实例中,性能数据还可包含由图形处理单元12提供的计数器数据。
16
如先前所描述,应用程序计算装置20可根据所接收到的图形命令30及状态/性能信息32来显示图形图像的表示。应用程序计算装置20还可显示状态/性能信息32的视觉表示。通过检视重新创建的图形图像及/或状态/性能信息32的视觉表示且与其互动,应用程序开发人员可能够在执行图形命令30期间快速地识别并解决图形装置2的图形处理系统4内的性能问题。举例来说,应用程序开发人员可能够识别处理器10、12、14及/ 或16中的哪些特定者可能具有性能问题。性能分析应用程序观可由应用程序开发人员用作应用程序开发工具。在一些实例中,使用性能分析应用程序观可允许应用程序开发人员测量并可视化由图形处理单元 12的图形处理硬件对个别2D或3D元素进行的处理的性质的大集合。性能分析应用程序观使得能够针对每个别经渲染元素(例如,每绘制命令、每图形图元、每顶点、每像素片段) 而捕捉图形处理系统4的性能测量结果的一个或一个以上大集合。性能分析应用程序观可允许开发人员基于从图形处理系统4接收到的性能测量结果而在开发装置(例如,应用程序计算装置20)上以图形方式可视化性能度量。从此过程收集到的信息可帮助所述开发人员较有效地调谐所述应用程序的设计或性能特性,以便在目标硬件平台(例如,由图形处理系统4提供的平台)上较高效地运行。在试图识别任何所识别性能问题的变通方案或解决方案时,开发人员可在应用程序计算装置20上起始一个或一个以上所请求的修改34。举例来说,开发人员可与重新创建的图像或状态/性能信息32的表示互动以产生所请求的修改34。在一些情况下,如下文更详细地描述,开发人员甚至可直接改变状态/性能信息32以产生所请求的修改34。在特定情况下,所请求的修改34可包括用以停用图形命令30中的一者或一者以上在图形装置 2的图形处理系统4中的执行的一个或一个以上请求,或用以修改图形命令30中的一者或一者以上的请求。将所请求的修改34从应用程序计算装置20发送到图形驱动器18A,所述图形驱动器18A在操作期间处置对图形装置2的请求。在许多情况下,所请求的修改34可包括用以在执行图形命令30期间在图形处理系统4内的处理器10、12、14或16中的一者或一者以上内修改状态信息的请求,所述状态信息可包括数据。图形驱动器18A可接着在图形处理系统4内实施包括于所请求的修改34内的改变。这些改变可更改处理器10、12、14及/ 或16之间的用于执行图形命令30的执行流程。在特定情况下,可在于图形处理系统4中的执行期间根据所请求的修改34来停用图形命令30中的一者或一者以上。图形驱动器18A能够响应于对所请求的修改34的处理而将经更新的指令及/或信息35发送到应用程序计算装置20。经更新的命令/信息35可包括由图形驱动器18A从图形处理系统4收集的经更新的状态信息(包括性能信息)。经更新的命令/信息35还可包括经更新的图形指令。应用程序计算装置20可经由执行或实施性能分析应用程序观而使用经更新的命令/信息35来显示图形图像的经更新表示,以及经更新的命令/信息35的视觉表示。性能分析应用程序观可基于从图形驱动器18A接收到的经更新的命令/信息35而更新图形场景的基于经渲染元素的性能度量的图形表示。应用程序开发人员可接着能够评估先前识别的性能问题是否已被解决或以其它方式处理。举例来说,应用程序开发人员可能够分析经更新的图像以及经更新的命令/信息35的视觉表示,以确定特定纹理、多边形或其它特征是否已被优化,或其它性能参数是否已被改进。以此方式,应用程序开发人员可能够快速地且有效地调试或分析图形命令30在应用程序计算装置20上的环境内的执行,所述环境模拟图形处理系统4在图形装置2上的操作。开发人员可反复地与应用程序计算装置20上所显示的图像及状态/性能信息互动, 以分析场景或多个图像帧中的多个图形图像,从而最大化图形命令30的执行性能。图4为说明根据一个方面的可由控制处理器10、图形处理单元12、顶点处理器14 及显示处理器16执行的操作的额外细节的流程图。图4还展示帧缓冲存储装置100及显示器6的操作。在一个实例中,控制处理器10、顶点处理器14、图形处理单元12及/或显示处理器16因图形命令30中的一者或一者以上的执行而执行各种操作。如先前所捕述,控制处理器10可控制穿经图形处理管线的数据或指令执行流程的一个或一个以上方面,且还可将几何信息提供给顶点处理器14。如图4中所展示,控制处理器10可在90处执行几何存储。在一些情况下,一个或一个以上图元的几何信息可由控制处理器10存储于缓冲器15 (图1)中。在一些情况下,几何信息可存储于存储媒体8中。顶点处理器14(在用于图形装置内的情况下)可接着获得由控制处理器提供及/ 或存储于缓冲器15中以用于在92处处理的给定图元的几何信息。在特定情况下,顶点处理器14可管理所述几何信息的顶点变换。在特定情况下,顶点处理器14可对所述几何信息执行点亮操作(lighting operation)。顶点处理器14可将其输出提供给图形处理单元12,图形处理单元12可在94处对数据执行渲染或栅格化操作。图形处理单元12可将其输出提供给显示处理器16,显示处理器16以像素形式准备一个或一个以上图形图像以供显示。在98处,显示处理器16可对像素数据执行各种操作,包括用以处理所述数据的各种片段的片段处理。在特定情况下,如此项技术中已知,这可包括深度测试、模版测试、混合或纹理映射中的一者或一者以上。在执行纹理映射时,显示处理器16可在96处并入有纹理存储及过滤信息。在一些情况下,图形处理器16可对经栅格化的数据执行其它操作,例如着色或按比例缩放操作。显示处理器16提供输出像素信息以用于在100处存储到帧缓冲器中。在一些情况下,所述帧缓冲器可包括于缓冲器15 (图1)内。在其它情况下,所述帧缓冲器可包括于存储媒体8内。所述帧缓冲器将图像数据的一个或一个以上帧存储于(例如)显示装置6 上,所述图像数据可接着显示于显示装置6上。如先前所描述,图形命令30可由控制处理器10、顶点处理器14、图形处理单元12 及显示处理器16中的一者或一者以上执行。应用程序开发人员通常可能不太了解或不能控制图形处理系统4内的哪些特定处理器执行图形命令30中的哪些图形命令。在特定情况下,在执行图形命令30期间,控制处理器10、顶点处理器14、图形处理单元12及显示处理器16中的一者或一者以上可能具有性能问题,或成为处理管线内的潜在瓶颈。对于应用程序开发人员来说,可能常难以查明瓶颈的位置,或如何最佳地解决或减轻此瓶颈的效应。因此,在一个实例中,可将图形命令30及/或状态信息从图形装置2 提供给外部计算装置(例如,应用程序计算装置20)。所述状态信息可包括来自控制处理器 10、顶点处理器14、图形处理单元12及显示处理器16中的一者或一者以上的数据,所述数据是关于在执行图形命令30期间发生的各种操作(例如,图4中所展示的操作)。应用程序计算装置20可创建展示于装置2上的图形图像,以便帮助以高效且有效的方式识别并解
18决瓶颈。图5为说明根据一个实例的图3中所展示的图形驱动器18A的额外细节的框图。 如先前所描述,图形驱动器18A可包含可在图形处理系统4内(例如)由控制处理器10、顶点处理器14、图形处理单元12及显示处理器16中的一者或一者以上执行的指令。图形驱动器18A的执行允许图形处理系统4与应用程序计算装置20通信。在一个实例中,图形驱动器18A可包含可在图形处理单元12内执行的指令,且可允许各种状态及性能信息由图形处理系统4提供给性能分析应用程序观。图形驱动器18A在执行时可包括各种功能块,所述功能块在图5中展示为以下实例输送接口 110、处理器使用模块112、硬件计数器模块114、可管理其它状态及/或性能数据的状态/性能数据模块116、API踪迹模块118及超驰模块120。图形驱动器18A使用输送接口模块110来与应用程序计算装置20的性能分析应用程序观通信。处理器使用模块112收集并维持控制处理器10、顶点处理器14、图形处理单元12 及显示处理器16中的一者或一者以上的处理器使用信息。所述处理器使用信息可包括处理器循环及/或性能信息。循环数据可包括用于剖析、命令阵列、顶点及索引数据或其它操作的循环的数据。处理器使用模块112可接着经由输送接口模块110将此处理器使用信息提供给应用程序计算装置20。在一些情况下,处理器使用模块112以异步方式在其接收到此信息时将所述信息提供给装置20。在其它情况下,处理器使用模块112可在接收到来自性能分析应用程序观的请求之即刻提供所述信息。硬件计数器模块114收集并维持在由控制处理器10、图形处理单元12、顶点处理器14或显示处理器16中的一者或一者以上执行指令期间的各种硬件计数器。所述计数器可跟踪关于图形处理系统4内的指令执行的各种状态指示符及/或度量。硬件计数器模块 114可异步地或应请求而将信息提供给装置20。明确地说,硬件计数器模块114可从图形处理单元12捕捉各种计数器值,且将此些值作为与由图形处理单元12进行的对命令的执行相关联的性能信息而提供给性能分析应用程序观。状态/性能数据模块116收集并维持图形处理系统4中的控制处理器10、图形处理单元12、顶点处理器14及显示处理器16中的一者或一者以上的其它状态及/或性能数据。举例来说,在一些情况下,所述状态数据可包含图形数据。状态数据可包括与顶点阵列有关的数据(例如,位置、色彩、坐标、大小或权重数据)。状态数据可进一步包括纹理状态数据、点状态数据、线状态数据、多边形状态数据、拣选状态数据、α测试状态数据、混合状态数据、深度状态数据、模版状态数据或色彩状态数据。性能数据可包括各种其它度量或循环数据。状态/性能数据模块116可异步地或应请求而将信息提供给性能分析应用程序 28。API踪迹模块118管理图形指令的流程及/或踪迹,所述图形指令由图形处理系统 4执行且经由输送接口模块110而输送到性能分析应用程序观。如先前所描述,图形装置 2将图形命令30的复本提供给装置20,所述图形命令30由图形处理系统4在其处理管线中执行。API踪迹模块118管理这些图形命令30的捕捉及输送。API踪迹模块118还可提供结合性能分析应用程序31 (图1)使用的特定信息,以将图形命令30映射到图形命令30 的视觉表示,例如可能已用以产生图形命令30的API指令。在一个实例中,从图形装置2发送到应用程序计算装置20的状态/性能信息
1932 (例如,图1)可包括由处理器使用模块112、硬件计数器模块114及/或状态/性能数据模块116提供的数据或信息中的任一者。在一个实例中,从图形装置2发送到应用程序计算装置20的图形命令30 (例如,图1)可包括由API踪迹模块118提供的信息。超驰模块120允许图形驱动器18A改变(或超驰)图形处理系统4内的特定指令的执行。如先前所描述,性能分析应用程序观可将一个或一个以上所请求的修改(例如, 修改34)发送到图形装置2。在特定情况下,所请求的修改34可包括用以停用图形命令30 中的一者或一者以上在图形处理系统4中的执行的一个或一个以上请求,或用以修改图形命令30中的一者或一者以上的请求。在一些情况下,所请求的修改34可包括用以改变状态/性能信息32的请求。超驰模块120可接受并处理所请求的修改34。举例来说,超驰模块120可从性能分析应用程序观接收用以修改图形命令30中的一者或一者以上的任何请求,连同用以修改状态/性能信息32的任何请求,且将此些请求发送到图形处理系统4。控制处理器10、 图形处理单元12、顶点处理器14及显示处理器16中的一者或一者以上可接着处理这些请求,且产生经更新的命令/信息35。如先前所描述,超驰模块120可接着将经更新的命令/ 信息35发送到性能分析应用程序观以供处理。以此方式,图形驱动器18A在图形处理系统4与应用程序计算装置20的性能分析应用程序观之间提供接口。图形驱动器18A能够将图形指令及状态/性能信息32提供给性能分析应用程序观,且还能够从性能分析应用程序观接收所请求的修改34。在处理此些所请求的修改34之后,图形驱动器18A随后能够将经更新的命令/信息35提供回到性能分析应用程序28。图6为根据本发明的一个方面的可由图1中所展示的应用程序计算装置20或图 2中所展示的图形装置50执行的方法的流程图。仅出于说明的目的,在后续描述中将假定图6的方法由性能分析应用程序执行,例如由应用程序计算装置20的性能分析应用程序观(图1)或性能分析应用程序70(图幻执行。性能分析应用程序可接收由图形处理单元(例如,图形装置2的图形处理单元12) 提供的性能信息,其中所述性能信息已由图形处理单元结合用于渲染图形场景的个别图形元素而测量(130)。举例来说,所述性能信息可为图1中所展示的提供给应用程序计算装置20的状态/性能信息32的部分。所述性能信息可与包括于图形命令30内的特定绘制命令的执行相关联。图形命令30可包含从API指令产生的二进制指令。在一些实例中,性能信息可包含由图形处理单元收集的性能计数器数据。举例来说,所述性能计数器数据可包括当正逐个绘制命令地执行绘制命令时所拣选或剪辑的图形图元的数目的计数器值。还可收集各种其它形式的性能计数器数据。还可收集各种其它形式的性能计数器数据,包括(但不限于)以下各项每帧、绘制命令、图元、顶点或片段的硬件时钟循环的数目;针对每帧、绘制命令、图元、顶点或片段,图形装置(例如,图形装置2) 的一个或一个以上子组件内的闲置或暂停循环的数目;等等。性能分析应用程序可接着基于所述性能信息来计算所述图形元素的性能度量的值(132)。每一所计算的值与所述图形元素中的至少一者相关联。所述性能分析应用程序可计算任何数目个不同性能度量的值。实例性能度量可包括(例如)每时钟循环撰写的像素的数目、每顶点发出的着色器指令的数目、每秒执行的存储器写入的次数等。所述性能分析应用程序可基于所接收到的性能信息来计算这些度量的值。性能分析应用程序可基于图形元素的性能度量的所计算值来将图形识别符指派给所述图形元素(134),其中所述图形识别符中的一者被指派给所述图形元素中的每一者。 性能分析应用程序可接着根据指派给所述个别图形元素的图形识别符而在渲染图形场景时(例如,在显示装置对上)显示所述图形元素(136)。性能信息可包含由图形处理单元针对所述图形元素中的每一者收集并提供的一个或一个以上计数器的值。所述图形元素中的每一者可包含用于渲染图形场景的一个或一个以上绘制命令、图形图元、顶点、像素片段等。在一些例子中,性能剖析应用程序还可显示可选择性能度量的表示,且接收所述可选择性能度量中的一者的用户选择作为指定性能度量。以此方式,用户可从可用的可选择度量列表指定所述性能度量,以便检视经渲染的图形元素的所要性能数据。在一些实例中,性能分析应用程序可基于所述图形元素的性能度量的所计算值来确定所述性能度量的值的范围。性能剖析应用程序可接着基于所述图形元素的性能度量的所计算值在所述值范围内的位置来将图形识别符(例如,色彩、着色识别符、交叉影线识别符)指派给所述图形元素。如上文所注明,指派给所述图形元素的图形识别符可包含色彩。在这些情况下,性能分析应用程序可根据指派给所述图形元素的色彩来显示个别图形元素,其中所述色彩中的一者被指派给所述图形元素中的每一者。举例来说,在处理所述图形元素后,性能分析应用程序可即刻将第一色彩指派给第一经渲染元素(例如,每绘制命令、每图形图元、每顶点、每像素片段)以供显示,将第二(不同)色彩指派给第二经渲染元素以供显示,等等。以此方式,性能分析应用程序可在每元素基础上以易于理解的格式显示性能信息。应用程序开发人员可快速地检视此信息以识别用于渲染场景的所述图形元素的性能特性,这可帮助开发人员进行应用程序开发、调试、优化及/或应用程序开发期间的其它功能。指派给所述图形元素的图形识别符可包含其它形式的识别符,而不是色彩。举例来说,可使用着色及/或交叉影线图案或识别符。在一些实例中,性能分析应用程序可根据指派给所述图形元素的着色/交叉影线识别符来显示个别图形元素,其中所述识别符中的一者被指派给所述图形元素中的每一者。举例来说,在处理所述图形后,性能分析应用程序可即刻将第一交叉影线图案或识别符指派给第一经渲染元素(例如,每绘制命令、每图形图元、每顶点、每像素片段)以供显示,将第二(不同)交叉影线图案或识别符指派给第二经渲染元素以供显示,等等。在一些情况下,图6中所展示的动作可由单个装置实施,例如由图2中所展示的图形装置50实施。在一些情况下,图6的动作可由一个或一个以上物理上不同的装置来实施, 例如图1中所展示的图形装置2及/或应用程序计算装置20。如图2的实例中所展示,在一些替代实例中,可在图形装置内(例如,在图形装置 50内)直接执行或实施性能分析应用程序。在这些特定实例中,接收性能信息可包括接收由图形处理单元针对所述图形元素中的每一者收集并提供的一个或一个以上计数器的值, 其中所述图形元素包含像素片段。将图形识别符指派给所述图形元素可包括通过使用混合 (例如,图形处理系统内的混合硬件)以基于所述一个或一个以上计数器的值而组合所述像素片段中的多者来确定所述图形识别符。
另外,对于图2中所展示的实例装置,图6的方法可包括由图形装置50 (例如,由装置的图形驱动器,例如图3及图5中所展示的图形驱动器18A)执行的其它动作。如将参看图8进一步详细地描述,举例来说,在由图形处理单元处理所述图形元素中的至少一者之前,所述图形处理单元可确定所述图形处理单元的至少一个计数器(例如,经拣选/剪辑的图元的数目的计数器)的至少一第一值。在由所述图形处理单元处理所述至少一个图形元素之后,图形处理单元可接着确定所述图形处理单元的所述至少一个计数器的至少一第二值。所述图形处理单元可基于所述图形处理单元的所述至少一个器计数的至少所述第一值与第二值之间的差来确定所述至少一个图形元素的性能信息。以此方式,所述性能信息包含基于图形元素的实际处理的计数器值的差值(delta),藉此提供针对这些元素的处理的性能相关信息。图7为可由例如图3及图5中所展示的图形驱动器18A或图2中所展示的图形驱动器68中的一者的图形驱动器执行的实例方法的流程图。在此实例中,仅出于说明的目的,假定图形元素包含个别绘制命令。然而,在其它实例中,图形元素可包含其它元素,例如图形图元、顶点,或像素片段。最初,图形驱动器可截获特定绘制命令(150),所述绘制命令可包括于一组指令 (例如,图1的指令21,图2的指令66)内。图形驱动器可在所述命令被图形处理单元执行之前截获所述命令。在截获所述命令之后,图形驱动器可检查以查看任何每元素(例如,每绘制命令、 每图形图元、每顶点、每像素片段)性能数据收集是否已由性能分析应用程序(例如,图1 的性能分析应用程序观,图2的性能分析应用程序70)启用(IM)。因此,假定每一绘制命令可渲染一特定元素,性能分析应用程序具有动态地启用或停用此数据收集的能力,所述数据收集是在每命令基础上由图形驱动器进行。在不需要每元素性能信息的特定情况下,性能分析应用程序可停用数据收集功能性。在这些情况下(即,1 的“否”分支),图形驱动器可驱动由图形处理单元进行的绘制命令的执行(152),且接着将用于所述绘制命令的命令数据发射到性能分析应用程序(166)。 假定未启用由图形驱动器进行的此数据收集,性能分析应用程序可接着仿真(或模拟)所述命令的执行,但不可显示每元素性能度量。在一些任选情况下,图形驱动器可将图形处理单元的当前计数器值提供给所述分析应用程序,但此些值可包含对应计数器的当前总值, 而不是与经执行以渲染个别图形元素的个别绘制命令相关联的值。然而,如果启用此每元素数据收集(即,154的“是”分支),那么图形驱动器可在所述图形命令的执行之前对图形处理单元(GPU)的所有经启用的计数器的当前值进行取样(156)。可启用所述计数器中的一者或一者以上以用于数据收集。在一些情况下,图形装置可启用或停用所述计数器,而在一些例子中,性能分析应用程序可基于用户的一个或一个以上选择而启用或停用所述计数器。举例来说,如果应用程序开发人员对在任何时间点检视一个或一个以上指定度量的性能度量信息感兴趣,那么性能分析应用程序可提供用以启用来自图形处理单元的那些计数器的数据收集的请求,所述计数器用于确定或计算指定的所要度量。然而,所述分析应用程序可停用任何其它计数器的数据收集,以致力于减轻或减小处理开销。接下来,图形驱动器驱动由图形处理单元对绘制命令的执行(158),且接着再次对
22图形处理单元的所有经启用的计数器的值进行取样(160)。在图7的实例中,假定对GPU计数器进行取样及执行绘制命令为同步操作。在此实例中,图形驱动器可查询含有所述计数器值的一个或一个以上硬件寄存器(其由图形处理单元暴露)。可接着将那些值立即传回到图形驱动器。在其它实例中,特定GPU架构可准许图形驱动器作出对GPU计数器进行取样的“管线式”请求,且接着在完成所述取样时,所述图形驱动器可随后由图形处理单元通知或中断。在这些例子中,计数器数据的实际收集或取样(156、160)可能推迟直到所述绘制命令执行之后的某一时间为止。对于经启用的每一 GPU计数器,将第一经取样值从所述经启用的GPU计数器的对应第二经取样值减去(162)。因此,对于经启用的每一特定GPU计数器,图形驱动器计算与所述特定GPU计数器相关的差值或差异值以便执行单个绘制命令,所述差值或差异值表示由图形处理单元执行的工作。因此,如果在执行所述绘制命令之前特定GPU计数器的值为五,且在执行所述绘制命令之后所述值变为八,那么此计数器的差值三与所述特定绘制命令的执行相关联。图形驱动器可接着将与所述绘制命令相关联的命令数据以及经启用的GPU计数器的差值发射到性能分析应用程序(164),使得所述分析应用程序可在仿真环境中重新创建绘制命令,且基于所述绘制命令的执行而显示个别元素的所计算的性能度量的图形表示。所述命令数据可包括函数调用参数、渲染状态、几何数据、纹理、着色器等。在将数据发射到性能分析应用程序之后,图形驱动器可接着针对一个或一个以上其它绘制命令而重复图7中所展示的各种动作。在这样做时,图形驱动器能够将状态及性能信息连同所述绘制命令提供给性能分析应用程序,使得所述分析应用程序可在每元素基础上重新创建绘制命令且显示所计算的度量的图形表示。图12展示这些图形表示的一个实例。在图7的实例中,仅出于说明的目的,已假定图形元素包含个别绘制命令。然而, 在其它实例中,图形元素可包含其它元素,例如图形图元、顶点或像素片段。在这些实例中, 图形驱动器能够基于这些图形元素的处理而收集GPU计数器数据(包括差值/差异数据)。 举例来说,在150处,图形驱动器可截获像素片段,而不是截获绘制命令。在156处,图形驱动器可对在处理所述像素片段之前的所有经启用的GPU计数器进行取样,且在160处,图形驱动器可对在处理所述像素片段之后的所有经启用的GPU计数器进行取样。图形驱动器接着能够将GPU计数器数据作为基于每像素片段的性能信息而发射到性能分析应用程序。图8为可由例如图1的性能分析应用程序观或图2的性能分析应用程序70等性能分析应用程序执行的实例方法的流程图。所述性能分析应用程序可接收由图形驱动器提供的数据,例如如图7中所展示而发射的数据。所述性能分析应用程序可在从所述图形驱动器接收到传入发射数据后即刻缓冲此数据(170)。所述传入数据可包含针对图形元素的数据(例如,绘制命令、绘制命令数据、图元数据、顶点数据、像素片段数据)及GPU计数器数据,以及状态/性能信息(例如,状态/性能信息32)。如先前关于图7所描述,所述GPU 计数器数据可包含基于每元素的任何给定GPU计数器的差值,所述差值与图形元素的个别处理相关联。性能分析应用程序可接着检查以查看其是否已从图形驱动器接收到动画的全帧,
23即,是否已到达一帧的末尾(172)。如果未到达(即,172的“否”分支),那么所述分析应用程序将继续缓冲传入数据,直到其已到达特定帧的末尾为止。如果已到达帧的末尾(即, 172的“是”分支),那么对于每一所接收到的图形元素及相关联的GPU计数器数据,所述性能分析应用程序使用所接收到的GPU计数器值来计算一个或一个以上指定性能度量的值 (174)。性能分析应用程序可接着正规化每一性能度量的与所述命令相关联的所计算值, 且接着将每一值映射到一组识别符内的图形识别符(例如,映射到色彩范围内的色彩,映射到识别符范围或群组内的着色/交叉影线识别符)(176)。举例来说,性能分析应用程序可计算跨越所有图形元素的每一指定性能度量的最小值及最大值,从而形成所捕捉的帧内的每一性能度量(例如,每时钟循环撰写的像素、每顶点发出的着色器指令、每秒执行的存储器写入,仅举几例)的范围。对于每一性能度量,可接着将数值范围映射到图形识别符 (例如,色彩、定界符、着色、交叉影线或其它材料性质)的型谱或群组。性能分析应用程序接着使用对应命令的所计算值在此度量的值的范围内的位置来将图形识别符指派给每一图形元素。举例来说,性能分析应用程序可从图形驱动器接收三个不同图形元素的GPU计数器数据。性能分析应用程序可计算所述三个元素中的每一者的特定度量的值。举例来说, 第一图形元素可基于此元素的GPU计数器数据而具有所计算度量值三;第二图形元素可具有所计算度量值五;且第三图形元素可具有所计算度量值七。因此,此度量的值的范围跨度可为从三到七。对于此特定度量,有可能较高值指示一个或一个以上潜在的性能问题(例如,较高次数的存储器写入)。在此特定实例中,性能分析应用程序可针对这些值创建图形识别符的型谱或范围。举例来说,黄色可与度量值三相关联;蓝色可与度量值五相关联;且红色可与度量值七相关联。基于这些色彩指定,性能分析应用程序可接着将黄色指派给第一图形元素,将蓝色指派给第二图形元素,且将红色指派给第三图形元素。如图8中所展示,性能分析应用程序可基于指派给这些元素的图形识别符而修改每一图形元素的着色或其它材料性质以在视觉上表示待渲染的任何元素(例如,色彩或色调、着色/交叉影线)(178),且可接着使用装置仿真器来处理所述图形元素(180)。以此方式,通过处理每一所捕捉的图形元素(例如,执行每一绘制命令、处理每一图元/顶点/像素片段)而在经耦合以用于所述分析应用程序的装置仿真器中重新创建并显示所捕捉的帧,其中根据所计算的性能度量的对应值而适当地识别(例如,上色)个别元素(例如,每绘制命令、每图形图元、每顶点、每像素片段)。因此,继续上文的实例,性能分析应用程序可处理第一图形元素,且使用黄色在视觉上显示此元素的渲染。所述分析应用程序可处理第二图形元素,且使用蓝色在视觉上显示此元素的渲染。最后,所述分析应用程序可处理第三图形元素,且使用红色在视觉上显示此元素的渲染。在此实例中,对于特定度量,有可能较高值指示一个或一个以上潜在的性能问题 (例如,较高次数的存储器写入)。因为较高度量值是与红色相关联,所以应用程序开发人员能够快速地检视在处理第一、第二及第三图形元素后即刻渲染的所述元素的视觉表示。 涂以红色的所述经渲染的元素可具有潜在的性能含义。开发人员可接着(例如,在命令窗内,如图9到图12所展示)选择这些元素或以其它方式识别红色图形元素,且可接着评估是否可大体地对所述命令或对所述程序进行优化。如上文所注明,在不同的实例中可使用除色彩以外的各种其它形式的图形识别符。以此方式,在仿真环境中,开发人员能够快速地检视经渲染的元素的图形显示,且基于其显示方式来识别可能具有性能含义的特定元素。在一些情况下,开发人员可识别致使对这些元素进行渲染的对应绘制命令,且调谐或以其它方式修改应用程序以进行优化。在处理所述图形元素后,性能分析应用程序可即刻针对多个不同帧而重复170、 172、174、176、178及180。在上文的实例中,性能分析应用程序利用不同色彩来区分经渲染的元素。在其它情况下,可代替色彩或结合色彩来使用各种其它形式的图形识别符。举例来说,性能分析应用程序可基于这些元素的特定度量的所计算值来将着色或交叉影线性质或识别符指派给不同图形元素。一般来说,性能分析应用程序可将图形识别符指派给所处理的各种不同图形元素。图9为说明可由例如图1或图2中所展示的性能分析应用程序等性能分析应用程序显示于显示装置201上的信息的实例的概念图。显示装置201能够基于从图形装置(例如,图1或图2中所展示的图形装置中的一者)发送的图形命令及状态/性能信息而在窗口 203内显示2D或3D图形图像210。所述图形图像210可包含已在执行所述图形命令(包括绘制命令)期间渲染的一个或一个以上元素。显示装置201还可能够显示所述指令及状态/性能信息的视觉表示,使得开发人员可改变这些指令及信息来修改图形图像210或包括图形图像210的整个场景。如图9的实例中所展示,显示装置201可在图形用户接口内显示各种类型的信息。在此实例中,显示装置201在所述图形用户接口内显示图形窗口 203。窗口 203包括显示区211、图形命令区 208及状态/性能信息区214。显示区211包括图形图像210。在此实例中,图形图像210 包含立方体。在图9的实例中,图形命令区208包括一个或一个以上图形命令(包括绘制命令) 的视觉表示,所述一个或一个以上图形命令已由分析应用程序接收,且当前正被执行或已执行。此些命令的视觉表示可包含此些命令的表示。举例来说,当所述分析应用程序接收二进制图形命令时,显示装置201可以另一形式显示此些二进制指令的表示,例如较高级应用编程接口(API)指令(例如,OpenGL指令)。可使用映射信息(例如,与性能分析应用程序一起本地存储或由图形装置提供的映射信息)来将所接收到的二进制命令映射成可在图形命令区208内显示的另一格式。状态/性能信息区214包括已由性能分析应用程序接收的选定状态及/或性能信息的视觉表示。所接收的图形命令及状态/性能信息可用以在显示区内显示图形图像210。窗口 203还包括一个或一个以上选择器212A到212N。用户(例如,应用程序开发人员)可选择这些选择器212A到212N中的任一者。如下文将更详细地描述,每一选择器 212A到212N可与不同的功能(例如,统计功能及导航功能)相关联。窗口 203进一步包括选择器216A到216N及218A到218N,其中的每一者可由用户选择。如下文将参看图10 更详细地描述,每一选择器216A到216N及218A到218N也可与不同的功能(例如,度量功能、超驰功能及/或纹理功能)相关联。用户(例如,应用程序开发人员)可改变窗口 203内所显示的信息。举例来说,所述用户可修改图形命令区208内所显示的指令中的一者或一者以上,或状态/性能信息区 214内的状态/性能信息中的任一者。可接着将窗口 203内的由用户起始的任何改变作为所请求的修改(例如,图1中所展示的所请求的修改34)发送回到图形装置或发送回图形装置内。图形装置可接着处理这些修改,且提供经更新的指令及/或信息,所述经更新的指令及/或信息可接着显示于图形命令区208及/或状态/性能信息区214内。所述经更新的指令及/或信息还可用以在显示区211内显示图形图像210的经修改的版本。在一个实例中,可由包括显示装置201的装置来分析可显示于区214内的状态及 /或性能信息,以在执行图形命令期间识别潜在瓶颈,所述装置可为图形装置(图幻或单独的应用程序计算装置(图1)。最后,用户(例如,应用程序开发人员)可希望在调试过程期间检视呈现于窗口 203中的信息以优化所述命令的执行。经由状态及/或性能信息的分析,可在窗口 203中(例如,在一个或一个以上子窗口或弹出窗口内,或在窗口 203的区 214内)显示潜在的瓶颈及可能的变通方案。在一个实例中,窗口 203可显示关于在从图形装置200接收到的图形指令的调用流中遭遇的瓶颈的报告,且还可显示可能的变通方案。在一些情况下,这些可能的变通方案可作为“若则”情形呈现给用户。举例来说,渲染调用流中的未经优化的三角形列表可呈现为一种可能情形,而经由三角带优化框架来预处理所述列表可呈现为第二种可能情形。用户可选择这些可能的变通方案情形中的任一者作为所请求的修改,且接着将所述所请求的修改发射回到图形装置,在所述图形装置处可测量由修改产生的性能。图形装置接着发送经更新的命令/信息,所述经更新的命令/信息可呈现于图形命令区208及/或状态/性能信息区214内。用户可接着检视结果,且比较各种潜在变通方案的结果以识别最佳解决方案。用户可使用此过程来快速地识别可采用的一系列步骤, 以便从其应用程序移除瓶颈。用户可反复地继续在窗口 203内作出调整以实现实验或试误调试的目的。用户可实验各种不同形式或组合的图形命令及状态/性能信息,以识别显示区211内所显示的图像或场景的改变。用户可使用由窗口 203的内容提供的模拟环境来互动地检视并修改图形命令(其可为调用流的部分)及由图形装置提供的状态,而无需重新编译源代码及在图形装置上重新执行经编译的代码。在一些情况下,用户可操纵按钮212A到212N中的一者或一者以上以操纵图形导航控制器(例如,图形相机),从而修改图形图像210的透视图。此操纵可被捕捉为所请求的修改,所述所请求的修改接着被发送回到图形装置200。接着使用由图形装置提供的经更新的命令/信息来修改图形图像210的透视图。在一些情况下,可在窗口 203的区214中提供各种纹理及/或状态信息作为可修改实体。另外,用户甚至可选择(例如)显示区211内的图形图像210的像素,使得图形命令区208内的一个或一个以上对应指令被识别。以此方式,用户可有效地反向研究用以渲染或创建图形图像210的所述像素或其它部分的渲染指令或调用。因为图形装置200可在窗口 203中创建图像210(正如其呈现于图形装置200上一样),所以用户能够快速地隔离其应用程序中的问题(其可基于图形命令区208中所显示的各种图形指令),且修改状态/ 性能区214内的任何状态以原型化新效果。
显示区211内所显示的信息可允许应用程序开发人员测量并可视化由图形装置的图形处理单元对个别2D或3D元素进行的处理的性质的大集合。性能分析应用程序可使得能够针对图像210内的每一个别经渲染元素(例如,每绘制命令、每图形图元、每顶点、每像素片段)而捕捉性能测量结果的一个或一个以上大集合。从此过程收集到的信息可帮助所述开发人员较有效地调谐所述应用程序的设计或性能特性,以便在目标硬件平台上较高效地运行。举例来说,如上文所注明,显示区211内所渲染的图像210的每一元素(例如,每绘制命令、每图形图元、每顶点、每像素片段)可被指派有基于经执行以渲染所述元素的绘制命令的指定性能度量的所计算度量值的图形识别符。所述所计算的度量值是基于由性能分析应用程序接收的性能信息。因为图像210的每一元素是根据其被指派的图形识别符 (例如,色彩、着色、交叉影线)而显示(如先前所描述且参看图12进一步描述),所以开发人员能够快速地识别在根据给定应用程序中已提供的特定绘制命令来渲染所述元素的过程中的性能问题或影响。图10为说明可由例如图1或图2中所展示的性能分析应用程序等性能分析应用程序显示的信息的另一实例的概念图。在此实例中,显示于图形装置内的窗口 220包括各种指令信息以及度量信息。举例来说,在图形命令区208内,展示各种图形命令对2。图形命令242可为由图形装置提供的图形命令的子集。如图10的实例中所展示,图形命令242包括高级指令及低级指令两者。用户(例如,应用程序开发人员)可使用滚动条244来检视指令242的全集。特定高级指令可包括一个或一个以上低级指令,例如较低级API指令。在一些情况下,应用程序开发人员可在特定高级指令上选择(例如,通过点击),以便检视任何低级指令,所述低级指令为相关联的高级指令的部分,或由相关联的高级指令执行。在一些实例中,开发人员能够检视区208内的命令,所述命令经执行以渲染图像 210的图形元素。在一些情况下,如果使用图形识别符或性质(例如,基于所计算的性能度量值的色彩)展示图像210的特定元素,那么用户可能够选择此些元素,且从图形命令区 208内的显示确定已执行哪一(哪些)命令以渲染选定的元素。在一些情况下,区208内的所述命令本身可与同图像210的经渲染元素相同的图形识别符相关联,使得用户可将特定命令与经渲染的元素相关联。以此方式,用户能够更好地理解哪些命令与图像210中的哪些经渲染的元素相关联。在图10中的状态/性能信息区214下方展示各种选择按钮。这些选择按钮包括纹理按钮236、超驰按钮238及度量按钮M0。在图10的实例中,应用程序开发人员已选择度量按钮M0。在选择此按钮后,可即刻显示各种度量选项。举例来说,一个或一个以上度量按钮234A到234N可显示于状态/性能区214上方。每一度量按钮234A到234N可与一特定度量相关联。在一些情况下,这些度量中的一者或一者以上可为预先定义或预先配置的度量类型,且在一些情况下,应用程序开发人员可选择或定制所述度量中的一者或一者以上。实例度量可包括(例如)以下各项中的任何一者或一者以上每秒的帧、%忙碌(对于一个或一个以上处理器)、总线忙碌、存储器忙碌、顶点忙碌、每秒的顶点、每秒的三角形、 每秒的像素时钟、每秒的片段、每顶点发出的着色器指令等。应用程序开发人员可选择度量按钮234A到234N中的任一者来检视关于选定度量的额外细节。通过选择度量按钮234A到234N中的一者,开发人员能够选择或指定特定性能度量,针对所述特定性能度量来计算特定命令的度量值。举例来说,在从包括图形处理单元的图形装置接收到绘制命令及性能信息的群组后,性能分析应用程序(例如,图1及图2中所展示的性能分析应用程序)能够基于接收的性能信息(例如,用于图形处理单元的计数器) 来计算所述命令的指定度量的度量值。所述指定度量可基于对度量按钮234A到234N中的一者的选择。举例来说,如果度量按钮234A与每秒的帧的数目相关联,那么应用程序开发人员可选择度量按钮234A来检视关于图形图像210的每秒的帧数(其与性能有关)的额外细节,或选择图形图像210的部分。在一些情况下,开发人员可选择度量按钮234A,或将度量按钮234A拖曳到状态/性能信息区214中。关于每秒的帧数的详细信息可显示于状态/ 性能信息区214内。开发人员还可将度量按钮234A拖曳到显示区211中,或针对度量按钮 234A的应用而选择图形图像210的一部分。举例来说,开发人员可在选择度量按钮234A之后选择图形图像210的一部分,且接着针对所述选定部分的每秒的帧数的详细信息可显示于状态/性能信息区214内。以此方式,基于度量按钮234A到234N中的一者或一者以上的选择及甚至图形图像210或其一部分的可能选择,开发人员可检视任何数目个不同度量类型的性能数据。在一个实例中,可由图形装置的图形驱动器(例如,图5中所展示的图形驱动器 18A)提供可显示于窗口 220内的度量数据。此图形驱动器可实施硬件计数器模块(例如, 图5的硬件计数器模块114)及/或处理器使用模块(例如,图5的处理器使用模块112) 以提供各种数据,所述数据可接着作为度量数据而显示于窗口 220内。在一些情况下,开发人员还可选择纹理按钮236。在选择后,图形装置可即刻显示与图形图像210有关的各种形式的纹理信息。举例来说,纹理信息可显示于窗口 220内, 例如状态/性能信息区214内。在一些情况下,所述纹理信息可显示于额外(弹出)窗口 (未图示)内。开发人员可检视所显示的纹理信息,但在一些情况下还可修改所述纹理信息。在这些情况下,可将对所述纹理信息作出的任何修改作为所请求的修改传播回到图形装置。在从图形装置接收到经更新的命令/信息后,对图形图像210的改变可即刻显示于显示区211内。在一些情况下,开发人员还可选择超驰按钮238。在选择超驰按钮238后,可即刻 (例如,在窗口 220或另一窗口内)显示例如指令及/或状态信息等特定信息,所述信息可由开发人员修改或超驰。任何修改或超驰可包括于发送到图形装置的一个或一个以上所请求的修改内。在一个实例中,图形装置可实施图形驱动器(例如,图形驱动器18A(图5)) 来处理任何所请求的修改。举例来说,图形装置可使用超驰模块120来处理包含一个或一个以上超驰的此些所请求的修改。在一些情况下,开发人员可超驰展示于图形命令区208内的一个或一个以上图形命令M2。在这些情况下,开发人员可在图形命令区208内键入或以其它方式输入信息,以修改或超驰图形命令M2中的一者或一者以上。可接着将这些修改发送到图形装置,所述图形装置将提供经更新的命令/信息以更新图形图像210在显示区211内的显示。举例来说,开发人员可改变图形命令242的参数、排序、类型等,以超驰由指令242提供的一个或一
28个以上功能。窗口 220进一步包括选择按钮230及232。选择按钮230为统计按钮,且选择按钮 232为导航按钮。开发人员可选择统计按钮230来检视与图形图像210的显示相关联的统计信息。此统计信息可包含一个或一个以上图表、表格或其它形式的统计信息。开发人员可检视统计信息以获得对与图形图像210的显示相关联的各种性能或其它相关问题的较
佳理解。开发人员可选择导航按钮232来在显示区211内导航,且甚至有可能改变图形图像210在显示区211内的透视图。举例来说,在选择导航按钮232后,可即刻显示3D图形相机或导航控制器。开发人员可与所述控制器互动以导航到显示区211内的任何区。开发人员还可使用所述控制器来改变图形图像210的透视图(例如,通过旋转图形图像210或放大/缩小)。在一个实例中,经由选择导航按钮232及与图形导航控制器互动而产生的由开发人员起始的任何改变可作为所请求的修改(例如,图1中所展示的所请求的修改84的部分)而传播回到图形装置。可接着使用接着由所述图形装置提供的经更新的命令/信息来更新图形图像210的显示(例如,透视图)。另外,经更新的指令可显示于图形命令区208 内。经更新的状态/性能信息还可显示于状态/性能信息区214内。因此,开发人员可有效地且高效地确定用于渲染并显示图形图像210的替代透视图、定向、视图等可如何影响图形装置的性能及状态。这可在显示于显示装置201上的模拟环境中优化用以创建并渲染图形图像210的图形命令242且有效地优化显示于图形装置上的图形图像方面对开发人员非常有用。图11为说明包括若干个别地渲染的元素304(例如,星形)、306 (例如,圆形)、 308(例如,立方体)的图形场景的实例屏幕图。一般来说,图形元素可包含一个或一个以上绘制命令、图元、顶点、像素/像素片段等。实例图形场景展示(例如)可从应用程序(例如,视频游戏应用程序)捕捉的动画的帧。图形场景展示于窗口 300内,在一些情况下,窗口 300可包括于窗口 203(图9)或窗口 220(图10)内。因此,在这些情况下,可在由性能分析应用程序(例如,图1或图2中所展示的性能分析应用程序)处理图形元素(例如,绘制命令)期间渲染所述图形场景。然而,在图11的图中,性能分析应用程序尚未使用图形识别符来渲染图形元素 304、306、308,所述图形识别符表示与所述图形元素相关联的性能度量值。在此实例中,假定性能分析应用程序未计算每元素性能度量,可不启用每元素数据收集(参见(例如)图 7中的154的“否”分支),使得经渲染的元素显示而不具有任何额外的图形识别符或特性 (例如,色彩、交叉影线、着色)。窗口 300在显示区(例如,图9及图10的显示区211)内显示图形元素304、306、 308。图形元素304为所述场景内的星形;图形元素306为所述场景内的圆形;图形元素308 为立方体。窗口 300进一步包括图形命令区302(例如,图9及图10的图形命令区208)。在图11的实例中,可显示各种不同的高级命令及/或低级命令(例如,“命令1”、“命令2”、 “命令3”),例如图10的区208内所展示的命令。在一些情况下,由应用程序执行以在所述场景中绘制所述图形元素的OpenGL ES API调用的列表可展示于图形命令区302中。这些
29OpenGL ES API调用可包含绘制调用,所述绘制调用在由性能分析应用程序执行时渲染所展示的场景的各种图形元素。在一个特定实例中,每一绘制调用可包含“glDrawElements” 调用,其中对“glDrawElements”的每一调用对应于所述场景中的个别经渲染对象。经渲染的元素可包含对象(例如,图11中所展示的各种对象)或其任何部分(例如,图元、顶点、像素片段、其组合)。在一些情况下,经渲染的元素可包含显示于图形场景内的个别图元/顶点/像素/片段等。在这些情况下,特定绘制命令在执行后可即刻渲染这些图元/顶点/像素/片段等中的一者或一者以上。图11还展示能够显示状态信息(例如,状态调用)的区314。各种不同的OpenGL 状态调用可展示于此区中。在调用区302中所展示的任一特定绘制命令之前,性能分析应用程序可调用这些状态调用中的一者或一者以上。所述状态调用可经调用以设置执行所述绘制命令中的一个或一个以上可能所需的各种状态参数。图12为说明与图11的图形场景相同但根据所指派的图形识别符(例如,色彩、着色、交叉影线)显示了经个别渲染的元素的图形场景的实例屏幕图。在此特定实例中,已启用每元素渲染及数据收集(例如,图7中的154的“是”分支)。除了现根据所捕捉的性能数据以图形方式呈现图11的场景以外,图12展示与图11中的场景相同的场景。性能分析应用程序已针对区302中所展示的绘制命令中的每一者而从图形处理单元收集性能数据,且已基于所收集的性能数据而计算指定性能度量的值。性能分析应用程序还已基于所述指定性能度量的对应所计算值而将图形识别符(例如,色彩、着色识别符、交叉影线识别符)指派给所述图形元素中的每一者,且显示根据指派给所述图形元素的图形识别符而渲染的个别图形元素304、306、308。一般来说,图形元素可包含在渲染所显示的场景期间加以处理或执行的一个或一个以上绘制命令、图元、顶点、像素/像素片段等。性能分析应用程序可针对若干不同性能度量而计算每一命令的此些度量值。在图12的实例中,在度量区320中展示实例性能度量“度量1”。举例来说,“度量1”可包含经着色片段或时钟的性能度量。“度量1”为当前指定的性能度量,针对所述指定性能度量而计算所述图形元素的度量值,以用于使用特定图形识别符来显示经渲染的元
O在所述图形识别符包含交叉影线识别符(如图12的实例中所展示)的情况下,如果特定元素的指定性能度量具有较高度量值,从而意味着绘制所述元素可在计算方面代价较大(例如,需要较多处理、较高带宽),那么性能分析应用程序可使用交叉影线识别符(例如,图案)来渲染此些元素。如果其它元素具有较低度量值,从而意味着绘制所述元素可在计算方面代价较小,那么性能分析应用程序可使用另一交叉影线识别符(例如,图案)来渲染所述元素。在另一实例中,在图形识别符包含色彩而非交叉影线识别符的情况下,如果经渲染的元素的指定性能度量具有较高度量值,从而意味着绘制所述元素可在计算方面代价较大(例如,需要较多处理、较高带宽),那么性能分析应用程序可以一种色彩(例如,红色) 来上色这些元素。如果经渲染的元素具有较低度量值,从而意味着绘制所述元素可在计算方面代价较小,那么性能分析应用程序可以另一色彩(例如,绿色)来上色所述元素。以此方式来可视化度量数据可允许游戏开发人员(例如)快速地调查装置如何渲染特定场景。在图12的场景中,元素306在色彩上可最红,或具有特定交叉影线图案,从而意味着其在图形处理单元上耗费最多的时钟循环来渲染。经渲染的元素可包含对象,例如图12中所展示的各种对象。在一些情况下,经渲染的元素可包含显示于图形场景内的个别图元、顶点、像素/像素片段等。在此些情况下, 可使用与特定度量值相关联的图形识别符(例如,色彩、着色、交叉影线识别符)来显示图形场景内的元素(而非较大对象),所述度量值是基于在渲染所述场景期间对所述元素的处理。因此,用户能够在每元素基础上(例如,每绘制命令、每图形图元、每顶点、每像素片段)检视性能度量数据,且评估渲染哪些元素在计算方面代价较大。区320展示与特定命令相关联的个别水平条形图。每一条形图包含对应命令的所计算度量值的表示。举例来说,“命令1”具有“度量1”的特定所计算度量值,且区320中的对应条形图提供此值的图形表示。如图所示,绘制命令“命令1”、“命令2”及“命令3”中的每一者包括其度量“度量1” (例如,经着色片段度量、时钟度量)的对应度量值的条形图表
7J\ ο还可根据已由性能分析应用程序指派给对应命令的图形识别符来显示所述个别条形图中的每一者。因此,如果图形命令“命令1”已被指派“度量1”的特定交叉影线识别符(例如,图案),进而指示对于此度量来说执行此命令可在计算方面代价大,那么还可使用相同的交叉影线识别符来显示或表示在区320中针对“命令1”的对应条形图(例如,位于“命令1”的右侧)。以此方式,用户能够将特定命令与对应的度量值相关联。假定在此实例中还使用同一交叉影线识别符来显示或表示元素308,那么用户能够确定哪一经渲染的元素经渲染或以其它方式与特定命令(例如,“命令1”)相关联,且接着能够基于其相关联的识别符而快速地识别在计算方面代价大的那些元素/命令。在一些情况下,用户可点击或选择所述条形图来检视所计算的度量的数值。在图12的实例中,“命令1”可经执行以渲染元素308,“命令2”可经执行以渲染元素304,且“命令3”可经执行以渲染元素306。如由区320中针对“度量1”的对应条形图所展示,在给定对应条形图的长度的情况下,相比于“命令2” (针对对应元素304),渲染 “命令1” (针对对应元素308)可在计算方面代价较大。相比于“命令3” (针对对应元素 306),渲染“命令2” (针对对应元素304)可在计算方面代价较大。本发明中所描述的技术可实施于通用微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它等效逻辑装置内。因此,如本文中所使用的术语“处理器”或“控制器”可指前述结构或适合于实施本文中所描述的技术的任何其它结构中的任何一者或一者以上。本文中所说明的各种组件可由硬件、软件、固件或其任何组合的任何合适组合来实现。在图中,将各种组件描绘为单独的单元或模块。然而,参看这些图而描述的各种组件中的全部或若干组件可集成为共用硬件及/或软件内的组合式单元或模块。因此,将特征表示为组件、单元或模块意在为了易于说明而醒目提示特定功能特征,且未必要求由单独硬件或软件组件来实现此些特征。在一些情况下,各种单元可实施为由一个或一个以上处理器执行的可编程进程。在本文中描述为模块、装置或组件的任何特征(包括图形装置100及/或其构成组件)可一起实施于集成逻辑装置中,或单独地作为离散但可共同操作的逻辑装置而实施。在各种方面中,此些元素可至少部分地形成为一个或一个以上集成电路装置,所述一个
31或一个以上集成电路装置可统称为集成电路装置,例如集成电路芯片或芯片组。此电路可提供于单个集成电路芯片装置中或多个可共同操作的集成电路芯片装置中,且可用于多种图像、显示、音频或其它多媒体应用及装置中的任一者中。在一些方面中,举例来说,此些组件可形成例如无线通信装置手持机等移动装置的部分。如果以软件来实施,那么所述技术可至少部分地由包含具有指令的代码的计算机可读数据存储媒体来实现,所述指令在由一个或一个以上处理器执行时执行上文所描述的方法中的一者或一者以上。计算机可读媒体可形成计算机程序产品(其可包括封装材料) 的部分。计算机可读媒体可包含例如同步动态随机存取存储器(SDRAM)等随机存取存储器(RAM)、只读存储器(ROM)、非易失性随机存取存储器(NVRAM)、电可擦除可编程只读存储器(EEPROM)、嵌入式动态随机存取存储器(eDRAM)、静态随机存取存储器(SRAM)、快闪存储器、磁性或光学数据存储媒体。所述技术另外或替代地可至少部分地由计算机可读通信媒体实现,所述媒体运载或传达呈指令或数据结构形式的代码,且可由一个或一个以上处理器存取、读取及/或执行。严格地说,可将任何连接均称为计算机可读媒体。举例来说,如果使用同轴电缆、光纤缆线、双绞线、数字订户线(DSL)或例如红外线、无线电及微波等无线技术从网站、服务器或其它远程源传输软件,那么同轴电缆、光纤缆线、双绞线、DSL或例如红外线、无线电及微波等无线技术包括于媒体的定义中。以上各项的组合也应包括在计算机可读媒体的范围内。所利用的任何软件可由一个或一个以上处理器(例如,一个或一个以上DSP、通用微处理器、ASIC、FPGA或其它等效集成或离散逻辑电路)执行。已在本发明中描述各种方面。这些及其它方面在所附权利要求书的范围内。
权利要求
1.一种方法,其包含接收由图形处理单元提供的性能信息,其中所述图形处理单元已结合用于渲染图形场景的个别图形元素测量了所述性能信息;通过计算装置基于所述性能信息来计算所述图形元素的性能度量的值,其中每一所计算值与所述图形元素中的至少一者相关联;基于所述图形元素的所述性能度量的所述所计算值来将图形识别符指派给所述图形元素,其中将所述图形识别符中的一者指派给所述图形元素中的每一者;及在渲染所述图形场景时,根据指派给所述图形元素的所述图形识别符来显示所述图形元素。
2.根据权利要求1所述的方法,其中接收所述性能信息包含接收由所述图形处理单元针对所述图形元素中的每一者而收集并提供的一个或一个以上计数器的值。
3.根据权利要求1所述的方法,其中所述图形元素中的每一者包含用于渲染所述图形场景的一个或一个以上绘制命令、一图形图元、一顶点,或一像素片段。
4.根据权利要求1所述的方法,其进一步包含 显示可选择性能度量的表示;及接收所述可选择性能度量中的一者的用户选择作为所述性能度量。
5.根据权利要求1所述的方法,其进一步包含基于所述图形元素的所述性能度量的所述所计算值来确定所述性能度量的值的范围, 其中将所述图形识别符指派给所述图形元素包含基于所述图形元素的所述性能度量的所述所计算值在值的所述范围内的位置来将所述图形识别符指派给所述图形元素。
6.根据权利要求1所述的方法,其中将图形识别符指派给所述绘制命令包含基于所述图形元素的所述性能度量的所述所计算值来将色彩指派给所述图形元素,且其中将所述色彩中的一者指派给所述图形元素中的每一者。
7.根据权利要求6所述的方法,其中显示所述图形元素包含根据指派给所述图形元素的所述色彩来显示所述个别图形元素。
8.根据权利要求1所述的方法,其中将所述图形处理单元包括于所述计算装置内。
9.根据权利要求8所述的方法,其中接收所述性能信息包含接收由所述图形处理单元针对所述图形元素中的每一者收集并提供的一个或一个以上计数器的值,其中所述图形元素包含像素片段,且其中将所述图形识别符指派给所述图形元素包含通过使用混合基于所述一个或一个以上计数器的所述值而组合所述像素片段中的多个像素片段来确定所述图形识别符。
10.根据权利要求1所述的方法,其中将所述图形处理单元包括于物理上与所述计算装置不同的移动装置内。
11.根据权利要求1所述的方法,其进一步包含在通过所述图形处理单元处理所述图形元素中的至少一者之前,确定所述图形处理单元的至少一个计数器的至少第一值;在通过所述图形处理单元处理所述至少一个图形元素之后,确定所述图形处理单元的所述至少一个计数器的至少第二值;及基于所述图形处理单元的所述至少一个计数器的至少所述第一与第二值之间的差来确定所述至少一个图形元素的所述性能信息。
12.一种装置,其包含显示装置;及一个或一个以上处理器,其耦合到所述显示装置,其中所述一个或一个以上处理器经配置以接收由图形处理单元提供的性能信息,其中所述图形处理单元已结合用于渲染图形场景的个别图形元素测量了所述性能信息;基于所述性能信息来计算所述图形元素的性能度量的值,其中每一所计算值与所述图形元素中的至少一者相关联;基于所述图形元素的所述性能度量的所述所计算值来将图形识别符指派给所述图形元素,其中将所述图形识别符中的一者指派给所述图形元素中的每一者;且当在所述显示装置上渲染所述图形场景时,根据指派给所述图形元素的所述图形识别符来显示所述图形元素。
13.根据权利要求12所述的装置,其中所述一个或一个以上处理器经配置以至少通过接收由所述图形处理单元针对所述图形元素中的每一者而收集并提供的一个或一个以上计数器的值来接收所述性能信息。
14.根据权利要求12所述的装置,其中所述图形元素中的每一者包含用于渲染所述图形场景的一个或一个以上绘制命令、一图形图元、一顶点,或一像素片段。
15.根据权利要求12所述的装置,其中所述一个或一个以上处理器经进一步配置以 在所述显示装置上显示可选择性能度量的表示;且接收所述可选择性能度量中的一者的用户选择作为所述性能度量。
16.根据权利要求12所述的装置,其中所述一个或一个以上处理器经进一步配置以基于所述图形元素的所述性能度量的所述所计算值来确定所述性能度量的值的范围,其中将所述图形识别符指派给所述图形元素包含基于所述图形元素的所述性能度量的所述所计算值在值的所述范围内的位置来将所述图形识别符指派给所述图形元素。
17.根据权利要求12所述的装置,其中所述一个或一个以上处理器经配置以至少通过基于所述图形元素的所述性能度量的所述所计算值来将色彩指派给所述图形元素而将图形识别符指派给所述绘制命令,且其中将所述色彩中的一者指派给所述图形元素中的每一者ο
18.根据权利要求17所述的装置,其中所述一个或一个以上处理器经配置以至少通过根据指派给所述图形元素的所述色彩来显示所述个别图形元素而显示所述图形元素。
19.根据权利要求12所述的装置,其中所述图形处理单元包括于所述装置内。
20.根据权利要求19所述的装置,其中所述性能信息包含由所述图形处理单元针对所述图形元素中的每一者而收集并提供的一个或一个以上计数器的值,其中所述图形元素包含像素片段,且其中所述一个或一个以上处理器经配置以至少通过使用所述装置中的混合硬件基于所述一个或一个以上计数器的所述值而组合所述像素片段中的多个像素片段来确定所述图形识别符而将所述图形识别符指派给所述图形元素。
21.根据权利要求12所述的装置,其中所述图形处理单元包括于另一物理上不同的装置内。
22.根据权利要求12所述的装置,其中所述一个或一个以上处理器经进一步配置以 在通过所述图形处理单元处理所述图形元素中的至少一者之前,确定所述图形处理单元的至少一个计数器的至少第一值;在通过所述图形处理单元处理所述至少一个图形元素之后,确定所述图形处理单元的所述至少一个计数器的至少第二值;且基于所述图形处理单元的所述至少一个计数器的至少所述第一与第二值之间的差来确定所述至少一个图形元素的所述性能信息。
23.根据权利要求12所述的装置,其中所述装置包含无线通信装置手持机。
24.根据权利要求12所述的装置,其中所述装置包含一个或一个以上集成电路装置。
25.一种装置,其包含用于接收由图形处理单元提供的性能信息的装置,其中所述图形处理单元已结合用于渲染图形场景的个别图形元素测量了所述性能信息;用于基于所述性能信息来计算所述图形元素的性能度量的值的装置,其中每一所计算值与所述图形元素中的至少一者相关联;用于基于所述图形元素的所述性能度量的所述所计算值来将图形识别符指派给所述图形元素的装置,其中将所述图形识别符中的一者指派给所述图形元素中的每一者;及用于在渲染所述图形场景时根据指派给所述图形元素的所述图形识别符来显示所述图形元素的装置。
26.根据权利要求25所述的装置,其中所述用于接收所述性能信息的装置包含用于接收由所述图形处理单元针对所述图形元素中的每一者而收集并提供的一个或一个以上计数器的值的装置。
27.根据权利要求25所述的装置,其中所述图形元素中的每一者包含用于渲染所述图形场景的一个或一个以上绘制命令、一图形图元、一顶点,或一像素片段。
28.根据权利要求25所述的装置,其进一步包含用于显示可选择性能度量的表示的装置;及用于接收所述可选择性能度量中的一者的用户选择作为所述性能度量的装置。
29.根据权利要求25所述的装置,其进一步包含用于基于所述图形元素的所述性能度量的所述所计算值来确定所述性能度量的值的范围的装置,其中所述用于将所述图形识别符指派给所述图形元素的装置包含用于基于所述图形元素的所述性能度量的所述所计算值在值的所述范围内的位置来将所述图形识别符指派给所述图形元素的装置。
30.根据权利要求25所述的装置,其中用于将图形识别符指派给所述绘制命令的装置包含用于基于所述图形元素的所述性能度量的所述所计算值来将色彩指派给所述图形元素的装置,且其中将所述色彩中的一者指派给所述图形元素中的每一者。
31.根据权利要求30所述的装置,其中所述用于显示所述图形元素的装置包含用于根据指派给所述图形元素的所述色彩来显示所述个别图形元素的装置。
32.根据权利要求25所述的装置,其中所述用于接收所述性能信息的装置包含用于接收由所述图形处理单元针对所述图形元素中的每一者而收集并提供的一个或一个以上计数器的值的装置,其中所述图形元素包含像素片段,且其中所述用于将所述图形识别符指派给所述图形元素的装置包含用于通过使用混合基于所述一个或一个以上计数器的所述值而组合所述像素片段中的多个像素片段来确定所述图形识别符的装置。
33.根据权利要求25所述的装置,其进一步包含用于在通过所述图形处理单元处理所述图形元素中的至少一者之前确定所述图形处理单元的至少一个计数器的至少第一值的装置;用于在通过所述图形处理单元处理所述至少一个图形元素之后确定所述图形处理单元的所述至少一个计数器的至少第二值的装置;及用于基于所述图形处理单元的所述至少一个计数器的至少所述第一与第二值之间的差来确定所述至少一个图形元素的所述性能信息的装置。
34.一种计算机可读存储媒体,其包含用于致使一个或一个以上可编程处理器进行以下动作的指令接收由图形处理单元提供的性能信息,其中所述图形处理单元已结合用于渲染图形场景的个别图形元素测量了所述性能信息;基于所述性能信息来计算所述图形元素的性能度量的值,其中每一所计算值与所述图形元素中的至少一者相关联;基于所述图形元素的所述性能度量的所述所计算值来将图形识别符指派给所述图形元素,其中将所述图形识别符中的一者指派给所述图形元素中的每一者;及在渲染所述图形场景时根据指派给所述图形元素的所述图形识别符来显示所述图形元素。
35.根据权利要求34所述的计算机可读存储媒体,其中所述用以接收所述性能信息的指令包含用以接收由所述图形处理单元针对所述图形元素中的每一者而收集并提供的一个或一个以上计数器的值的指令。
36.根据权利要求34所述的计算机可读存储媒体,其中所述图形元素中的每一者包含用于渲染所述图形场景的一个或一个以上绘制命令、一图形图元、一顶点,或一像素片段。
37.根据权利要求34所述的计算机可读存储媒体,其进一步包含用以进行以下动作的指令显示可选择性能度量的表示;及接收所述可选择性能度量中的一者的用户选择作为所述性能度量。
38.根据权利要求34所述的计算机可读存储媒体,其进一步包含用以进行以下动作的指令基于所述图形元素的所述性能度量的所述所计算值来确定所述性能度量的值的范围,其中所述用以将所述图形识别符指派给所述图形元素的指令包含用以基于所述图形元素的所述性能度量的所述所计算值在值的所述范围内的位置来将所述图形识别符指派给所述图形元素的指令。
39.根据权利要求34所述的计算机可读存储媒体,其中用以将图形识别符指派给所述绘制命令的指令包含用以基于所述图形元素的所述性能度量的所述所计算值来将色彩指派给所述图形元素的指令,且其中将所述色彩中的一者指派给所述图形元素中的每一者。
40.根据权利要求39所述的计算机可读存储媒体,其中所述用以显示所述图形元素的指令包含用以根据指派给所述图形元素的所述色彩来显示所述个别图形元素的指令。
41.根据权利要求34所述的计算机可读存储媒体,其中所述用以接收所述性能信息的指令包含用以接收由所述图形处理单元针对所述图形元素中的每一者而收集并提供的一个或一个以上计数器的值的指令,其中所述图形元素包含像素片段,且其中所述用以将所述图形识别符指派给所述图形元素的指令包含用以通过使用混合基于所述一个或一个以上计数器的所述值而组合所述像素片段中的多个像素片段来确定所述图形识别符的指令。
42.根据权利要求34所述的计算机可读存储媒体,其进一步包含用以进行以下动作的指令在通过所述图形处理单元处理所述图形元素中的至少一者之前,确定所述图形处理单元的至少一个计数器的至少第一值;在通过所述图形处理单元处理所述至少一个图形元素之后,确定所述图形处理单元的所述至少一个计数器的至少第二值;及基于所述图形处理单元的所述至少一个计数器的至少所述第一与第二值之间的差来确定所述至少一个图形元素的所述性能信息。
全文摘要
本发明描述用于显示经渲染的图形元素的性能度量的视觉表示的各种技术。一种实例方法包含接收由图形处理单元提供的性能信息,其中所述图形处理单元已结合用于渲染图形场景的个别图形元素测量了所述性能信息;及基于所述性能信息来计算所述图形元素的性能度量的值,其中每一所计算值与所述图形元素中的至少一者相关联。所述方法进一步包含基于所述图形元素的所述性能度量的所述所计算值来将图形识别符指派给所述图形元素,其中将所述图形识别符中的一者指派给所述图形元素中的每一者;及在渲染所述图形场景时根据指派给所述图形元素的所述图形识别符来显示所述图形元素。
文档编号G06T15/00GK102449665SQ201080023211
公开日2012年5月9日 申请日期2010年6月2日 优先权日2009年6月2日
发明者巴巴克·埃尔米, 詹姆斯·P·里茨 申请人:高通股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1