首页> 中国专利> 在性能分析期间将图形指令映射到相关联的图形数据

在性能分析期间将图形指令映射到相关联的图形数据

摘要

大体来说,本发明涉及用于通过允许应用程序开发者和/或图形设计员识别哪些图形指令和相关联的图形数据(例如,多边形数据、纹理数据)可能与所识别的性能问题相关联来优化例如三维(3D)场景等图形场景的技术。一种实例方法包含:从外部装置接收映射信息,其中所述映射信息包括用于将所述图形指令映射到用于在所述图形指令的执行期间再现一个或一个以上图形图像的基元图形数据的信息;以及识别与所述图形指令内的至少一个图形指令的执行相关联的性能问题。所述方法进一步包含使用所述映射信息来基于所述至少一个图形指令的执行识别所述基元图形数据的与所述性能问题相关联的一部分。

著录项

  • 公开/公告号CN102089786A

    专利类型发明专利

  • 公开/公告日2011-06-08

    原文格式PDF

  • 申请/专利权人 高通股份有限公司;

    申请/专利号CN200980127471.6

  • 申请日2009-07-24

  • 分类号G06T15/00;

  • 代理机构北京律盟知识产权代理有限责任公司;

  • 代理人宋献涛

  • 地址 美国加利福尼亚州

  • 入库时间 2023-12-18 02:39:01

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-07-12

    未缴年费专利权终止 IPC(主分类):G06T15/00 授权公告日:20140430 终止日期:20180724 申请日:20090724

    专利权的终止

  • 2014-04-30

    授权

    授权

  • 2011-07-20

    实质审查的生效 IPC(主分类):G06T15/00 申请日:20090724

    实质审查的生效

  • 2011-06-08

    公开

    公开

说明书

根据35U.S.C.§119主张优先权

本专利申请案主张2008年7月25日申请的题目为“在性能分析期间将图形指令映射到相关联的图形数据(MAPPING GRAPHICS INSTRUCTIONS TO ASSOCIATEDGRAPHICS DATA DURING PERFORMANCE ANALYSIS)”的第61/083,665号临时申请案的优先权,且所述临时申请案转让给本受让人并在此以引用的方式明确地并入本文中。

共同待决专利申请案的参考

本专利申请案与以下共同待决美国专利申请案相关:

2008年7月25日申请的61/083,656,代理人案号080967P1,与本申请案同时申请,其转让给本受让人且以引用的方式明确地并入本文中;以及

2008年7月25日申请的61/083,659,代理人案号080969P1,与本申请案同时申请,其转让给本受让人且以引用的方式明确地并入本文中。

技术领域

本发明涉及图形图像的显示。

背景技术

图形处理器广泛用于再现用于各种应用的二维(2D)和三维(3D)图像,所述应用例如视频游戏、图形程序、计算机辅助设计(CAD)应用程序、模拟和视觉化工具,以及成像。显示处理器可用于显示图形处理器的经再现的输出以供经由显示装置呈现给用户。

(开放图形库)是定义可在编写产生2D图形和3D图形的应用程序时使用的API(应用编程接口)的标准规范。例如Java等其它语言可经由其自身的标准处理而定义到OpenGL API的系结。接口包括可用于由简单基元绘制场景的多个函数呼叫或指令。图形处理器、多媒体处理器和甚至通用CPU可接着执行使用OpenGL函数呼叫编写的应用程序。OpenGL ES(嵌入式系统)为OpenGL的变体,其经设计以用于例如移动无线电话、数字多媒体播放器、个人数字助理(PDA)或视频游戏控制台等嵌入式装置。

例如3D图形应用程序等图形应用程序可通过调用API或指令来描述或定义场景的内容,所述API或指令又使用基础图形硬件(例如,图形装置中的一个或一个以上处理器)来产生图像。图形硬件可能经历经由这些API实行的一系列状态转变。用于每一API呼叫(例如,绘制呼叫或指令)的状态的整个集合可描述由硬件借以由一个或一个以上图形基元(例如,一个或一个以上三角形)再现图像的过程。

图形设计员(graphics artist)常常可通过创建各种图形基元而定义场景的一个或一个以上部分。举例来说,图形设计员可使用数字内容创建(DCC)工具来产生包含场景的组成部分的三维(3D)基元多边形和/或纹理数据。可接着将此数据并入于图形应用程序中且在硬件图形装置的内容处理管线内进行处理以便创建或再现待显示给用户的最终图形图像数据。在许多情形下,不同设计员可定义场景的不同部分,可能接着需要将所述不同部分组合成单一图形应用程序,且这些设计员也可彼此独立地工作。另外,当对基元多边形和/或纹理数据作出修改时,设计员可能频繁地需要与图形应用程序的开发者通信和与其一起工作。

发明内容

大体来说,本发明涉及用于通过允许应用程序开发者和/或图形设计员识别哪些图形指令和相关联的图形数据(例如,多边形数据、纹理数据)可能与所识别的性能问题相关联来优化例如三维(3D)场景等图形场景的技术。因此,应用程序开发者可能不需要在目标装置(例如,移动装置、图形装置)上使用试错过程来确定应用程序内的场景的导致性能问题的部分,或手动地将此信息传送给一个或一个以上设计员以解决所述问题。实际上,开发者可使用模拟环境来识别性能问题,且所述模拟环境能够自动地识别可能已导致这些问题的相关联的图形数据。可将所识别的性能问题和/或相关联的图形数据传送给开发者和对应设计员以用于解决。设计员还可能够在其远程计算装置上直接检视所传送的信息。

在一个方面中,一种方法包含:从外部装置接收映射信息,其中所述映射信息包括用于将图形指令映射到用于在所述图形指令的执行期间再现一个或一个以上图形图像的基元图形数据的信息;以及识别与所述图形指令内的至少一个图形指令的执行相关联的性能问题。所述方法进一步包含使用所述映射信息来基于所述至少一个图形指令的执行识别所述基元图形数据的与所述性能问题相关联的一部分。

在一个方面中,一种计算机可读媒体包含用于致使一个或一个以上处理器进行以下操作的计算机可执行指令:从外部装置接收图形指令;从所述外部装置接收映射信息,其中所述映射信息包括用于将所述图形指令映射到用于在所述图形指令的执行期间再现一个或一个以上图形图像的基元图形数据的信息;识别与所述图形指令内的至少一个图形指令的执行相关联的性能问题;以及使用所述映射信息来基于所述至少一个图形指令的执行识别所述基元图形数据的与所述性能问题相关联的一部分。

在一个方面中,一种装置包含显示装置和一个或一个以上处理器。所述一个或一个以上处理器经配置以:从外部装置接收图形指令;从所述外部装置接收映射信息,其中所述映射信息包括用于将所述图形指令映射到用于在所述图形指令的执行期间再现一个或一个以上图形图像的基元图形数据的信息;识别与所述图形指令内的至少一个图形指令的执行相关联的性能问题;以及使用所述映射信息来基于所述至少一个图形指令的执行识别所述基元图形数据的与所述性能问题相关联的一部分。

本发明中所描述的技术可以硬件、软件、固件,或其任何组合来实施。如果以软件来实施,那么可在处理器中执行所述软件,所述处理器可指一个或一个以上处理器,例如微处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或数字信号处理器(DSP),或其它等效集成逻辑电路或离散逻辑电路。最初可将包含用于执行所述技术的指令的软件存储于计算机可读媒体中且由处理器来加载并执行。

因此,本发明还涵盖包含用于致使处理器执行如本发明中所描述的多种技术中的任一者的指令的计算机可读媒体。在一些状况下,所述计算机可读媒体可形成可出售给制造商和/或用于装置中的计算机程序产品的一部分。所述计算机程序产品可包括所述计算机可读媒体,且在一些状况下,还可包括封装材料。

在下文的附图和描述中阐述一个或一个以上方面的细节。其它特征、目的和优点将从所述描述和图式以及权利要求书而显而易见。

附图说明

图1为说明根据本发明的一个方面的图形装置的框图,所述图形装置可将图形指令、状态和/或性能信息以及映射和/或分割信息提供到应用程序计算装置。

图2为说明根据本发明的一个方面的图1中所展示的图形处理系统和应用程序计算装置的特定细节的框图。

图3为说明根据本发明的一个方面的图2中所展示的图形驱动程序的额外细节的框图。

图4A为说明根据本发明的一个方面的耦合到一个或一个以上额外应用程序计算装置的图1中所展示的图形装置和应用程序计算装置的框图。

图4B为说明根据本发明的一个方面的图4A中所展示的所述额外应用程序计算装置中的一者的额外细节的框图。

图5为说明根据本发明的一个方面的个别图形指令与图形数据之间的示范性映射的概念图。

图6为根据本发明的一个方面的可由图1中所展示的应用程序计算装置或由图4A中所展示的应用程序计算装置中的任一者执行的第一方法的流程图。

图7为根据本发明的一个方面的可由图1中所展示的应用程序计算装置或由图4A中所展示的应用程序计算装置中的任一者执行的第二方法的流程图。

图8为说明根据本发明的一个方面的耦合到用于在图形窗口中显示信息的显示装置的图形装置的一实例的概念图。

图9为说明根据本发明的一个方面的耦合到在图形窗口内显示信息的显示装置的图形装置的另一实例的概念图。

图10为说明根据本发明的一个方面的可横跨由显示装置提供的屏幕区的四个分割区的图形数据的一实例的概念图。

图11为说明根据本发明的一个方面的可由显示装置提供的屏幕区270内的纹理信息的概念图。

具体实施方式

图1为说明根据本发明的一个方面的图形装置2的框图,所述图形装置2可将图形指令30、状态和/或性能信息32和映射/分割信息33提供到应用程序计算装置20。图形装置2可为独立装置或可为较大系统的一部分。举例来说,图形装置2可为无线通信装置(例如,无线移动手持机)的一部分,或可为数码相机、视频相机、数字多媒体播放器、个人数字助理(PDA)、视频游戏控制台、其它视频装置或专用检视站(viewing station)(例如,电视)的一部分。图形装置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中,图形处理系统4既耦合到存储媒体8又耦合到显示装置6。存储媒体8可包括能够存储指令和/或数据的任何永久或易失性存储器,例如,同步动态随机存取存储器(SDRAM)、只读存储器(ROM)、非易失性随机存取存储器(NVRAM)、嵌入式动态随机存取存储器(eDRAM)、静态随机存取存储器(SRAM)或快闪存储器。显示装置6可为用于显示目的的能够显示图像数据的任何装置,例如,LCD(液晶显示器)、等离子显示装置,或其它电视(TV)显示装置。

顶点处理器14能够管理顶点信息并处理顶点变换。在一个方面中,顶点处理器14可包含数字信号处理器(DSP)。图形处理器12可为用以再现、操纵和显示计算机化图形的专用图形再现装置。图形处理器12可实施与各种复杂图形有关的算法。举例来说,复杂算法可对应于二维或三维计算机化图形的表示。图形处理器12可实施若干所谓的“基元”图形操作(例如,形成点、线和三角形或其它多边形表面),以在例如显示装置6等显示器上创建复杂的三维图像。

图形处理器12可实行存储于存储媒体8中的指令。存储媒体8能够存储用于应用程序(例如,图形或视频应用程序)的应用程序指令21以及一个或一个以上图形驱动程序18。应用程序指令21可从存储媒体8加载到图形处理系统4中以供执行。举例来说,控制处理器10、图形处理器12和显示处理器16中的一者或一者以上可执行指令21。在一个方面中,应用程序指令21可包含以空中方式动态地下载到存储媒体8中的一个或一个以上可下载模块。在一个方面中,应用程序指令21可包含从由应用程序开发者创建的应用编程接口(API)指令产生或编译的二进制指令的呼叫流。

图形驱动程序18还可从存储媒体8加载到图形处理系统4中以供执行。举例来说,控制处理器10、图形处理器12和显示处理器16中的一者或一者以上可执行来自图形驱动程序18的某些指令。在一个实例方面中,由图形处理器12加载并执行图形驱动程序18。将在下文进一步详细描述图形驱动程序18。

存储媒体8还包括图形数据映射信息23。图形数据映射信息23包括用于将应用程序指令21中的一者或一者以上映射到可在应用程序指令21的执行期间再现的基元图形数据的信息。可存储于存储媒体8和/或缓冲器15中的图形数据可包括一个或一个以上基元(例如,多边形),且还可包括纹理数据。图形数据映射信息23可维护待再现的个别基元到应用程序指令21内的个别指令的映射。在已在这些个别指令的执行期间再现所述基元之后,映射信息23提供从这些指令返回到原始图形数据的映射,所述原始图形数据用于再现最终显示于图形装置6上的一个或一个以上图像。将在下文进一步详细描述图形数据映射信息。

还如图1中所展示,图形处理系统4包括一个或一个以上缓冲器15。控制处理器10、图形处理器12、顶点处理器14和/或显示处理器16每一者能够存取缓冲器15,且可将数据存储于缓冲器15中或从缓冲器15检索数据。缓冲器15可包含高速缓冲存储器,且可能够存储数据与指令两者。举例来说,缓冲器15可包括已从存储媒体8加载到图形处理系统4中的应用程序指令21中的一者或一者以上或来自图形驱动程序18的一个或一个以上指令。缓冲器15和/或存储媒体8还可含有在指令执行期间使用的图形数据。

应用程序指令21在某些状况下可包括用于图形应用程序(例如,3D图形应用程序)的指令。应用程序指令21可包含描述或定义包括一个或一个以上图形图像的图形场景的内容的指令。当将应用程序指令21加载到图形处理系统4中且由图形处理系统4执行时,图形处理系统4可经历一系列状态转变。还可在应用程序指令21的执行期间执行图形驱动程序18内的一个或一个以上指令以在显示装置6上再现或显示图形图像。

在一个方面中,可在应用程序指令21的执行期间获得图形数据映射信息23,且接着将其存储于存储媒体8内。应用程序指令21可包括到图形对象(graphics object)的一个或一个以上系结。每一系结在应用程序指令21中的一者或一者以上与表示基元图形数据(例如,多边形数据、纹理数据)的个别图形对象之间创建链接。系结到指令集的基元图形数据用于在此指令集的执行期间再现图形图像数据。可在图形数据映射信息23内识别、提取和包括所述指令集与相关联的图形数据之间的系结,以在此指令集与相关联的图形数据之间创建映射。

用于例如绘图呼叫等指令的状态的整个集合可描述由图形处理系统4借以再现图像的过程。然而,已编写应用程序指令21的应用程序开发者常常可能具有为了对描述或再现所定义场景中的图像的替代方法进行调试或实验的目的而交互地检视或修改这些状态的有限能力。另外,不同硬件平台可能具有这些状态和/或状态转变的不同硬件设计和实施方案。

另外,基于方格化(binning)的图形硬件(例如,处理器10、12、14和16中的一者或一者以上)常常可使用以下过程来实施:将预定用于再现的个别基元群集成矩形形状的方格化分割区或方格,以便划分显示于显示装置6的屏幕上的图像场景。硬件可基于显示装置6的屏幕大小或分辨率约束或基于与再现操作相关联的存储媒体8的存储器限制而进行此操作。在再现基元片段之前,可由处理器10、12、14或16中的一者或一者以上沿着分割区的边缘将可能横跨多个方格化分割区的基元划分成多个片段。可接着分别再现每一分割区中的基元片段。方格化分割区通常可视硬件架构而在数目上变化,且可具有各种大小和形状。举例来说,方格化分割区可包括多个(例如,四个、八个)矩形形状的分割区。

因此,可将可横跨(例如)两个方格化分割区的个别基元划分成两个片段,且可接着独立地再现这两个片段中的每一者。然而,可能接着需要在将图形图像显示于显示装置6的屏幕上之前在图像数据帧内重组由这些片段中的每一者产生的图形图像。因此,划分横跨多个方格化分割区的个别基元可具有潜在的处理额外开销,且引起总性能。

在一个方面中,应用程序开发者可使用图1中所展示的应用程序计算装置20来辅助处理对用于描述或再现场景中的图像的替代方法的调试和实验。应用程序计算装置20包括一个或一个以上处理器22、一显示装置24,和一存储媒体26(其可包含存储器)。根据一个方面,处理器22可包括控制处理器、图形处理器、顶点处理器和显示处理器中的一者或一者以上。存储媒体26可包括能够存储指令和/或数据的任何永久或易失性存储器,例如,同步动态随机存取存储器(SDRAM)、只读存储器(ROM)、非易失性随机存取存储器(NVRAM)、静态随机存取存储器(SRAM)或快闪存储器。显示装置24可为用于显示目的的能够显示图像数据的任何装置,例如,LCD(液晶显示器)、等离子显示装置,或其它电视(TV)显示装置。

应用程序计算装置20能够俘获和分析图形指令30连同从图形装置2发送的状态和/或性能信息32。在一个方面中,图形驱动程序18经配置以将图形指令30和状态/性能信息32发送到应用程序计算装置20。图形指令30可包括应用程序指令21中的一者或一者以上,且状态/性能信息32可在图形指令30在图形处理系统4内的执行期间产生或俘获。

状态/性能信息32包括关于在指令执行期间图形处理系统4的状态和/或性能的信息,且将在下文更详细地描述。状态/性能信息32可包括可与图形指令30一起使用或以其它方式与图形指令30相关联的图形数据(例如,基元和/或光栅化图形数据)。图形处理系统4可执行图形指令30以在显示装置6上显示图像或图像场景。应用程序计算装置20能够使用图形指令30连同状态/性能信息32来重新创建还展示于图形装置2的显示装置6上的图形图像或场景。

图形装置2还可将映射和/或分割信息33发送到应用程序计算装置20。在一个方面中,图形驱动程序18经配置以将映射/分割信息33发送到应用程序计算装置20。映射/分割信息33可包括图形数据映射信息23的一个或一个以上部分,图形数据映射信息23包括用于将图形数据映射到图形指令30内的个别指令的信息。举例来说,映射/分割信息33可包括用于将一个或一个以上基元(例如,多边形)或纹理数据映射到图形指令30内的个别指令的信息。

映射/分割信息33还可包括由图形装置2产生和提供的分割信息。此分割信息在一些状况下可由处理器10、12、14和16中的一者或一者以上(例如,控制处理器10)来产生和提供。分割信息可包括识别可在图形处理系统4内使用以将图形数据再现成一个或一个以上图形图像且将此类图像显示于显示装置6上的方格化分割区或方格的数目、类型、大小和/或形状的信息。如先前所描述,图形装置2可在再现操作期间基于(例如)缓冲器15和/或存储媒体8的存储器大小限制将显示装置6的屏幕空间或大小分割成分割区。分割信息提供关于所创建和使用的分割区的信息。

模拟应用程序28可由应用程序计算装置20的处理器22执行以在接收到图形指令30和状态/性能信息32后即刻重新创建图形图像或场景,并在显示装置24上显示所述图像或图像场景。模拟应用程序28可包含含有若干应用程序指令的软件模块。模拟应用程序28存储于存储媒体26中,且可由处理器22加载和执行。可将模拟应用程序28预先加载到存储媒体26中,且可定制模拟应用程序28以与图形装置2一起操作。在一个方面中,模拟应用程序28模拟图形装置2的硬件操作。可将模拟应用程序28的不同版本存储于存储媒体26中且由处理器22来执行以用于具有不同硬件设计的不同图形装置。在一些状况下,还可将结合模拟应用程序28使用的软件库存储于存储媒体26内。在一个方面中,模拟应用程序28可为一般应用程序,且特定硬件或图形装置模拟功能性可包括在可在执行期间与模拟应用程序28链接的每一单独库内。

在一个方面中,可在显示装置24上将状态/性能信息32的视觉表示显示给应用程序开发者。另外,还可显示图形指令30的视觉表示。因为在许多状况下,图形指令30可包含二进制指令,所以应用程序计算装置20可使用指令映射信息31来在显示装置24上产生图形指令30的视觉表示。指令映射信息31存储于存储媒体26内且可加载到处理器22中以便显示图形指令30的视觉表示。

在一个方面中,指令映射信息31可包括(例如)查找表内的用于将图形指令30映射到先前在产生图形指令30时可能已编译的对应API指令的映射信息。应用程序开发者可编写使用API指令的程序,但这些API指令通常编译成例如图形指令30(其包括在应用程序指令21内)等二进制指令以用于在图形装置2上执行。可将图形指令30内的一个或一个以上指令映射到个别API指令。可接着在显示装置24上将经映射的API指令显示给应用程序开发者以提供实际上正执行的图形指令30的视觉表示。

在一个方面中,例如应用程序开发者等用户可能希望改变图形指令30中的一者或一者以上以确定(例如)此类改变对性能的影响。在此方面中,用户可改变图形指令30的视觉表示。可接着使用映射信息31来将图形指令30的视觉表示内的这些改变映射到二进制指令,如将在下文更详细描述,所述二进制指令可接着在所请求修改34内提供回到图形装置2。

如上所述,显示于应用程序计算装置20的显示装置24上的图形图像可为显示于图形装置2上的图像的表示。因为模拟应用程序28可使用图形指令30和状态/性能信息32来重新创建图像或场景(完全如同其呈现于图形装置2上),所以使用应用程序计算装置20的应用程序开发者可能够在图形应用程序30的执行期间迅速地识别潜在的性能问题或瓶颈,和甚至原型修改以改进图形应用程序30的总体性能。

存储媒体26还包括图形数据映射模块25。图形数据映射模块25可由处理器22来执行。图形数据映射模块25接收并处理映射/分割信息33以将图形指令30内的个别指令映射到特定基元图形数据(例如,多边形或纹理数据)。此图形数据可包括在状态/性能信息32内。在图形指令30的执行期间,模拟应用程序28可确定特定指令集可能正引起性能问题或瓶颈。这些问题或瓶颈可基于(例如)过高的处理器使用或利用。图形数据映射模块25可接着使用映射/分割信息33来将此特定指令集映射到图形数据的可用于在这些指令的执行期间再现图像数据的一部分。图形数据的此部分可能与所识别的性能问题相关联。

应用程序计算装置20可(例如)通过在显示装置24上显示此信息来识别或显示所述特定指令集和/或图形数据的所述部分。以此方式,应用程序计算装置20能够自动地识别和显示基元图形数据的可能为在图形指令30的执行期间的一个或一个以上性能问题的原因的选定部分。应用程序开发者可接着能够更容易且有效地处理或解决这些问题。另外,应用程序计算装置20可能够自动地将性能和/或映射信息发送到由图形设计员使用的一个或一个以上外部装置(如将在下文更详细地描述),以使得这些设计员可能够容易地存取其可能够使用以解决性能问题的性能和图形数据信息。

在不使用映射信息的情况下,可能原本难以识别关于与执行期间的特定问题相关联的特定图形指令的原始基元图形数据(例如,由图形设计员创建的数据)的部分,因为此类问题可能更通常在图形指令执行后已将图形数据再现成输出图像数据之后被识别。映射信息提供返回到原始图形数据的映射,所述原始图形数据可为在指令执行后的任何此类稍后所识别的问题的原因。这些问题可能涉及(例如)由过多纹理、过多多边形等引起的某些性能问题。在获悉由原始图形数据引起的潜在问题后,应用程序开发者或设计员即刻可选择对原始图形数据中的纹理或多边形作出某些修改(例如,移动多边形,添加或移除纹理,重新布置多边形)。

应用程序开发者可在模拟应用程序28在应用程序计算装置20上的执行和经重新创建的图像在显示装置24上的显示期间选择对图形指令30和/或状态/性能信息32作出一个或一个以上所请求修改34。任何此类所请求修改34可基于在图形指令30的执行或状态/性能信息32的分析期间所观测到的性能问题或瓶颈。可接着将这些所请求修改34从应用程序计算装置20发送到图形装置2,在图形装置2处,所述所请求修改34由图形处理系统4来处理。在一个方面中,在图形处理系统4内执行图形驱动程序18中的一者或一者以上以处理所请求修改34。所请求修改34在一些状况下可包括经修改的指令。在一些状况下,所请求修改可包括经修改的状态和/或性能信息。

在处理所请求修改34后,即刻(例如)通过图形驱动程序18中的一者或一者以上将经更新的指令和/或信息35发送回到应用程序计算装置20。经更新的指令/信息35可包括用于基于由图形装置2处理的所请求修改34而执行的经更新的图形指令。经更新的指令/信息35还可包括基于由图形装置2处理的所请求修改34的经更新的状态和/或性能信息。在一些状况下,经更新的指令/信息35还可包括来自图形数据映射信息23的经更新的映射信息。

经更新的指令/信息35通过模拟应用程序28来处理以更新经重新创建的图像信息在显示装置24上的显示,且还将经更新的指令/信息35的视觉表示提供给应用程序开发者(其可包括再次使用指令映射信息31)。应用程序开发者可接着检视显示装置24上的经更新的图像信息以及经更新的指令/信息35的视觉表示,以确定性能问题是否已得到解决或缓和。应用程序开发者可使用迭代过程来对图形指令30或原型修改进行调试以改进图形应用程序30的总体性能。

在一个方面中,应用程序计算装置20使用映射/分割信息23来显示覆盖显示于显示装置24上的图形图像的分割区的视觉的图形表示。这些分割区在图形上划分包含显示装置24上的这些图像的场景。举例来说,模拟应用程序28可使用分割模块27来处理映射/分割信息33以在显示装置24的屏幕上创建这些分割区(例如,多个矩形形状分割区)的图形表示。分割模块27可从存储媒体26加载且由处理器22来执行。当执行时,分割模块27还可分析一个或一个以上图形图像的可包括在状态/性能信息32内的图形数据,以确定所述图形数据的哪些部分与所述分割区中的多者相关联。举例来说,如将在下文更详细描述,分割模块27可分析用于创建用于显示于显示装置24上的图形图像的一个或一个以上多边形,且确定这些多边形中的哪些者可能横跨多个分割区。

存储媒体26进一步包括也可由处理器22来执行的导航模块29。模拟应用程序28在执行期间可使用导航模块29在显示装置上显示导航控制器。用户(例如,应用程序开发者)可与此导航控制器交互作用以检视显示于显示装置24上的场景内的图形图像的经修改的透视图。分割模块27可接着显示覆盖所述图形图像的经修改透视图的分割区的图形表示以在图形上划分所述经修改的场景。分割模块27还可接着分析用于在所述经修改的透视图中创建图形图像的一个或一个以上多边形,以确定所述多边形中的哪些者可能横跨多个分割区。

图2为说明根据一个方面的图1中所展示的图形处理系统4和应用程序计算装置20的某些细节的框图。在图2中,假定应用程序计算装置20耦合到装置2的图形处理系统4。然而,这仅出于说明目的而展示。在其它情况下,应用程序计算装置20可耦合到许多其它形式的图形处理系统和装置。

如图2中所展示,图形处理系统4包括四个可编程处理器:控制处理器10、顶点处理器14、图形处理器12,和显示处理器16,所述处理器也展示于图1中。控制处理器10可控制顶点处理器14、图形处理器12或显示处理器16中的任一者。在许多状况下,这些处理器10、12、14和16可为系统4内的图形处理管线的一部分。

控制处理器10可控制穿过所述管线的数据或指令执行的流程的一个或一个以上方面,且还可将用于图形图像的几何形状信息提供到顶点处理器14。顶点处理器14可管理可根据多个顶点以基元几何形状形式描述或定义的图形图像的顶点变换或几何形状处理。顶点处理器14可将其输出提供到图形处理器12,图形处理器12可对图形图像执行再现或光栅化操作。图形处理器12可将其输出提供到显示处理器16,显示处理器16以像素形式制备图形图像以供显示。图形处理器12还可对像素数据执行各种操作,例如加阴影或按比例缩放。

常常,可在图形指令30的执行期间在此处理管线中处理图形图像数据,图形指令30可为应用程序指令21(图1)的一部分。因此,可由控制处理器10、顶点处理器14、图形处理器12和显示处理器16中的一者或一者以上来执行图形指令30。应用程序开发者通常可能并不很了解或不能很好地控制图形处理系统4内的哪些特定处理器执行图形指令30中的哪些者。在一些状况下,控制处理器10、顶点处理器14、图形处理器12和显示处理器16中的一者或一者以上在图形指令30的执行期间可能具有性能问题,或充当处理管线内的潜在的瓶颈。在这些状况下,图形处理系统4内的总体性能可能恶化,且应用程序开发者可能希望对图形指令30作出改变以改进性能。然而,开发者可能未必知晓处理器10、12、14或16中的哪些者可能为具有性能问题的处理器。

特定来说,基于方格化的操作常常可产生某些性能问题,在基于方格化的操作中,在再现之前跨越多个方格化分割区划分基元图形数据。举例来说,如果多边形(例如,图10的实例中所展示的三角形266)横跨两个不同分割区(例如,图10中所展示的分割区256和258),那么可将所述多边形划分成两个组成片段(每一分割区一个片段),且接着可将这两个组成片段独立地再现成包含像素数据的单独图形图像。可能接着需要在显示之前组合这两个单独图形图像以便创建三角形266的视觉表示。针对三角形266的所述两个片段的独立再现操作连同针对两个相关图形图像的组合操作可能引起性能额外开销。

为了辅助识别性能瓶颈和潜在解决方法的问题,图形装置2的图形驱动程序18A可从图形处理系统4俘获或收集图形指令30且将其路由到应用程序计算装置20,如图2中所展示。图形驱动程序18A为图1中所展示的图形驱动程序18的一部分。图形驱动程序18A可由控制处理器10、顶点处理器14、图形处理器12和显示处理器16中的一者或一者以上来加载和执行。另外,图形驱动程序18A还可从控制处理器10、顶点处理器14、图形处理器12和显示处理器16中的一者或一者以上收集状态和/或性能信息32且也将此信息32路由到应用程序计算装置20。在一个方面中,当图形指令30包括可能已从OpenGL ES API指令产生或编译的二进制指令时,图形驱动程序18A可包含OpenGL ES驱动程序。

各种形式的状态数据可包括在状态/性能信息32内。举例来说,状态数据可包括在图形指令30的执行期间使用或以其它方式与图形指令30相关联的图形数据。状态数据可与顶点阵列有关,例如位置、颜色、坐标、大小或重量数据。状态数据可进一步包括纹理状态数据、点状态数据、线状态数据、多边形状态数据、剔除(culling)状态数据、α测试(alpha test)状态数据、掺合状态数据、深度状态数据、模版状态数据,或颜色状态数据。如先前所描述,状态数据可包括状态信息与实际数据两者。在一些状况下,状态数据可包含与一个或一个以上OpenGL令牌相关联的数据。

各种形式的性能数据还可包括在状态/性能信息32内。大体来说,此性能数据可包括来自控制处理器10、顶点处理器14、图形处理器12和显示处理器16中的一者或一者以上的度量或硬件计数器数据。性能数据可包括帧速率或循环数据。循环数据可包括用于造型(profiling)、命令阵列、顶点和索引数据或其它操作的循环的数据。在各个方面中,各种形式的状态和性能数据可包括在由图形驱动程序18A从图形处理系统4收集的状态/性能信息32内。

如先前所描述,应用程序计算装置20可根据所接收的图形指令30和状态/性能信息32显示图形图像的表示。应用程序计算装置20还可显示状态/性能信息32的视觉表示。通过检视重新创建的图形图像和/或状态/性能信息32的视觉表示且与其交互作用,应用程序开发者可能够在图形指令30的执行期间迅速地识别并解决图形装置2的图形处理系统4内的性能问题。举例来说,应用程序开发者可能够识别处理器10、12、14和/或16中的哪些特定者可能具有性能问题。

另外,图形驱动程序18A还将映射和/或分割信息33提供到应用程序计算装置20。如先前参看图1所描述,分割模块27可处理所接收的映射/分割信息33以在显示装置24上显示覆盖场景中的图形图像的分割区的图形表示,以便在图形上划分所述场景。分割模块27还可使用映射/分割信息33来分析可包括在状态/性能信息32内的图形数据,以确定所述数据的哪些部分与所述分割区中的多者相关联。

另外,映射/分割信息33可包括将可用于产生一个或一个以上图形图像的图形数据映射到图形指令30内的所识别的指令的映射信息。举例来说,映射/分割信息33可包括用于将图形指令30中的一者或一者以上映射到基元图形数据(例如,多边形或纹理数据)的一部分的信息。如果确定所识别的性能问题与这些一个或一个以上指令相关联,那么可使用所述映射信息来确定在所述一个或一个以上指令的执行期间图形数据的可能也与此性能问题相关联的部分。通常,这些一个或一个以上指令在执行后即刻将图形数据的所述部分再现成图像数据。因此,在完成再现且显示图像数据之后,在不使用此映射信息的情况下可能难以识别与问题相关联的原始图形数据。

在识别对任何所识别的性能问题的暂时解决方案(workaround)或解决方法的尝试中,开发者可在应用程序计算装置20上起始一个或一个以上所请求修改34。举例来说,开发者可与重新创建的图像或状态/性能信息32的表示交互作用以创建所请求修改34。在一些状况下,如在下文更详细描述,开发者甚至可直接改变状态/性能信息32以产生所请求修改34。在某些状况下,所请求修改34可包括用于停用图形指令30中的一者或一者以上在图形装置2的图形处理系统4中的执行的一个或一个以上请求,或可包括用于修改图形指令30中的一者或一者以上的请求。

在一些状况下,用户可与显示于显示装置24上的导航控制器交互作用以请求显示图形场景的经修改的透视图。导航模块29可管理此导航控制器的显示和与此导航控制器的交互作用。由用户经由用户接口输入的任何请求可包括于所请求修改34中。

将所请求修改34从应用程序计算装置20发送到图形驱动程序18A,图形驱动程序18A处置在操作期间针对图形装置2的请求。在许多状况下,所请求修改34可包括用于修改在图形指令30的执行期间在图形处理系统4内的处理器10、12、14或16中的一者或一者以上内的状态信息(其可包括数据)的请求。图形驱动程序18A可接着实施所请求修改34内所包括的图形处理系统4内的改变。这些改变可变更处理器10、12、14和/或16间执行图形指令30的执行流程。在某些状况下,图形指令30中的一者或一者以上可根据所请求修改34而在在图形处理系统4中执行期间停用。

图形驱动程序18A能够响应于所请求修改34的处理而将经更新的指令和/或信息35发送到应用程序计算装置20。经更新的指令/信息35可包括由图形驱动程序18A从图形处理系统4收集的经更新的状态信息,包括性能信息。经更新的指令/信息35可包括经更新的图形指令和/或图形数据。在一些状况下,经更新的指令/信息35还可包括来自图形数据映射信息23的用于将经更新的指令映射到原始(基元)图形数据的经更新的映射信息。

应用程序计算装置20可使用经更新的指令/信息35来显示图形图像的经更新的表示,以及经更新的指令/信息35的视觉表示。应用程序开发者接着可能够评估先前所识别的性能问题是否已得到解决或以其它方式得到处理。举例来说,应用程序开发者可能够分析经更新的图像以及经更新的指令/信息35的视觉表示,以确定某些纹理、多边形或其它特征是否已得以优化,或其它性能参数是否已得到改进。

经更新的指令/信息35还可包括经更新的映射和/或分割信息,例如也包括在指令/信息35内的图形数据到指令的经更新的映射。如果由于经更新的指令/信息35而使得场景的经更新的透视图显示于显示装置24上,那么分割模块27可显示覆盖所述经修改的透视图且在图形上划分所述经修改的场景的分割区的图形表示。分割模块27还可分析用于所述经修改的透视图的图形数据(其也可包括在经更新的指令/信息35内),以确定所述图形数据的哪些部分与所述分割区中的多者相关联。

以此方式,应用程序开发者可能够快速且有效地对模拟图形装置2上的图形处理系统4的操作的应用程序计算装置20上的环境内的图形指令30的执行进行调试或分析。开发者可迭代地与应用程序计算装置20上所显示的图像和状态/性能信息交互作用,以分析场景或多个图像帧中的多个图形图像以最大化图形指令30的执行性能。将在下文更详细呈现应用程序计算装置20上的此交互作用和所显示信息的实例。

图3为说明根据一个方面的图2中所展示的图形驱动程序18A的额外细节的框图。如先前所描述,图形驱动程序18A可包含可在图形处理系统4内执行(例如,由控制处理器10、顶点处理器14、图形处理器12和显示处理器16中的一者或一者以上执行)且可为图形驱动程序18的一部分的指令。图形驱动程序18A的执行允许图形处理系统4与应用程序计算装置20通信。在一个方面中,图形驱动程序18A可包含可在图形处理系统54内执行且可为图形驱动程序68的一部分的指令。

图形驱动程序18A在执行时包括各种功能块,所述功能块在图3中展示为输送接口110、处理器使用模块112、硬件计数器模块114、可管理其它状态和/或性能数据的状态/性能数据模块116、API迹线模块118,和越权控制(override)模块120。图形驱动程序18A使用输送接口模块110来与应用程序计算装置20通信。

处理器使用模块112收集并维护用于控制处理器10、顶点处理器14、图形处理器12和显示处理器16中的一者或一者以上的处理器使用信息。处理器使用信息可包括处理循环和/或性能信息。循环数据可包括用于造型、命令阵列、顶点和索引数据或其它操作的循环的数据。处理器使用模块112可接着经由输送接口模块110将此处理器使用信息提供到应用程序计算装置20。在一些状况下,当处理器使用模块112接收到此信息时,其以非同步方式将此信息提供到装置20。在其它状况下,处理器使用模块112可在接收到来自装置20的请求后即刻提供所述信息。

硬件计数器模块114收集并维护在指令由控制处理器10、图形处理器12、顶点处理器14或显示处理器16中的一者或一者以上执行期间的各种硬件计数器。计数器可追踪关于图形处理系统4内的指令执行的各种状态指示符和/或度量。硬件计数器模块114可非同步地将信息提供到装置20或在请求后即刻将信息提供到装置20。

状态/性能数据模块116收集并维护用于图形处理系统4中的控制处理器10、图形处理器12、顶点处理器14和显示处理器16中的一者或一者以上的其它状态和/或性能数据。举例来说,状态数据在一些状况下可包含图形数据。状态数据可包括与顶点阵列有关的数据,例如位置、颜色、坐标、大小或重量数据。状态数据可进一步包括纹理状态数据、点状态数据、线状态数据、多边形状态数据、剔除状态数据、α测试状态数据、掺合状态数据、深度状态数据、模版状态数据,或颜色状态数据。性能数据可包括各种其它度量或循环数据。状态/性能数据模块116可非同步地将信息提供到装置20或在请求后即刻将信息提供到装置20。

映射/分割模块117从控制处理器10、图形处理器12、顶点处理器14和显示处理器16中的一者或一者以上收集映射和/或分割信息33,且还可从图形数据映射信息23(图1)收集信息。映射信息可包括用于将经再现以产生用于显示的图形图像的图形数据的经识别的部分映射到图形指令30中的一者或一者以上的信息。此映射信息可有助于将个别指令映射回到用于再现输出图像的原始图形数据。分割信息可包括识别在再现之前当将图形数据分裂开成为组成片段时在图形处理系统4内所创建和使用的分割区的数目、类型、大小、形状等的信息。映射/分割模块117可将映射/分割信息33提供到应用程序计算装置20。

API迹线模块118管理由图形处理系统4执行且经由输送接口模块110输送到应用程序计算装置20的图形指令的流程和/或迹线。如先前所描述,图形装置2将由图形处理系统4在其处理管线中执行的图形指令30的副本提供到装置20。API迹线模块118管理这些图形指令30的俘获和输送。API迹线模块118还可提供与用于将图形指令30映射到图形指令30的视觉表示的指令映射信息31(图1)一起使用的某些信息,例如可能已用于产生图形指令30的API指令。

越权控制模块120允许图形驱动程序18A改变或越权控制图形处理系统4内的某些指令的执行。如先前所描述,应用程序计算装置20可将一个或一个以上所请求修改(例如,修改34)发送到图形装置2。在某些状况下,所请求修改34可包括用于停用图形指令30中的一者或一者以上在图形处理系统4中的执行的一个或一个以上请求,或用于修改图形指令30中的一者或一者以上的请求。在一些状况下,所请求修改34可包括用于改变状态/性能信息32的请求。

越权控制模块120可接受并处理所请求修改34。举例来说,越权控制模块120可从装置20接收用于修改图形指令30中的一者或一者以上的任何请求,连同用于修改状态/性能信息32的任何请求,且将此类请求发送到图形处理系统4。控制处理器10、图形处理器12、顶点处理器14和显示处理器16中的一者或一者以上可接着处理这些请求并产生经更新的指令/信息35。越权控制模块120可接着将经更新的指令/信息35发送到应用程序计算装置20以供处理,如先前所描述。

以此方式,图形驱动程序18A在图形装置2与应用程序计算装置20之间提供接口。图形驱动程序18A能够将图形指令和状态/性能信息32提供到应用程序计算装置20,且还从应用程序计算装置20接收所请求修改34。在处理此类所请求修改34之后,图形驱动程序18A随后能够将经更新的指令/信息35提供回到应用程序计算装置20。

图4A为说明根据一个方面的耦合到一个或一个以上额外应用程序计算装置40A-40N的图1中所展示的图形装置2和应用程序计算装置20的框图。在此方面中,图形装置2耦合到应用程序计算装置20,如图1中所展示,且应用程序计算装置20可由应用程序开发者使用。如先前所描述,图形装置2可向应用程序计算装置20发送图形指令、状态/性能信息,和映射/分割信息。应用程序计算装置20可向图形装置2发送一个或一个以上所请求修改。

另外,应用程序计算装置20耦合到一个或一个以上额外应用程序计算装置40A-40N。应用程序计算装置40A-40N可由创建可用于在用于图形应用程序的图形指令的执行期间再现输出图形图像数据的基元图形数据的图形设计员使用。每一设计员可独立于其它设计员工作,且因此应用程序计算装置40A-40N可包含定位于相异位置中的独立装置。

举例来说,应用程序计算装置40A可由位于加拿大的设计员使用。应用程序计算装置40N可由位于美国(例如,芝加哥)的设计员使用。在此实例中,应用程序计算装置20可能够(例如)经由无线或网络连接(例如,因特网连接)与应用程序计算装置40A和40N中的任一者或两者通信。在许多状况下,应用程序计算装置20与应用程序计算装置40A-40N可包含个人计算装置,且这些装置可经由网络连接(例如,安全网络连接)通信。在某些状况下,应用程序计算装置20可与图形装置2位于同一地点,但可距应用程序计算装置40A-40N遥远地定位。举例来说,如果应用程序计算装置40A定位于加拿大且应用程序计算装置40N定位于芝加哥,那么应用程序计算装置20和图形装置2可定位于加利福尼亚。

因为使用计算装置20的应用程序开发者可能未与使用计算装置40A-40N的设计员位于同一地点,所以应用程序开发者可能并不总是容易地与这些设计员交互作用或通信。特定来说,如果使用计算装置20的应用程序开发者识别到在图形指令的执行期间的一个或一个以上性能问题,那么开发者可能并不总是容易地将这些问题传送给设计员,或为设计员提供关于由这些设计员创建的图形数据的可能引起性能问题的部分的特定信息。根据本发明的各个方面,计算装置20能够自动地将此信息提供到计算装置40A-40N,以使得设计员能够查核性能信息,且还能够迅速地识别其已创建的图形数据的可能为性能问题的来源的部分。这些设计员还可能够对图形数据作出改变,且确定这些改变可如何影响性能或解决任何性能问题。

如图4A中所展示,计算装置20能够将图形指令、状态/性能信息和映射/分割信息发送到计算装置40A-40N中的每一者。举例来说,计算装置20可将图形指令30(图1)、状态/性能信息32和映射/分割信息33发送到计算装置40A-40N(其先前从图形装置2所接收的内容)。每一计算装置40A-40N可能够使用所接收的指令和信息来创建经再现的图像数据的视觉表示,且还显示状态和性能信息。在一些状况下,每一计算装置40A-40N可显示覆盖图形场景的图形分割区的表示,以使得设计员能够检视所述分割区的显示,和此类分割区如何划分所述场景。另外,每一计算装置40A-40N还可分析所接收的信息以将与任何所识别的性能问题相关联的图形指令映射到由对应设计员创建的原始基元图形数据的特定部分。以此方式,设计员能够基于指令执行查核性能信息,且还迅速地识别由设计员创建的图形数据的哪些部分与特定性能问题相关联或可能为特定性能问题的原因。性能问题可能涉及某些纹理的大小、某些多边形的大小、掺合的量等。

任何个别设计员可能希望对图形数据的这些所识别的部分作出一个或一个以上修改。举例来说,如果所识别的性能问题涉及纹理的大小,那么设计员可能希望调整所述纹理。如果另一所识别的性能问题涉及特定多边形的大小,那么设计员可选择分裂所述多边形,删除所述多边形,或移动所述多边形以试图处理、解决或以其它方式缓和所述性能问题。可将任何改变发送回到应用程序计算装置20,所述应用程序计算装置20可接着将此类改变包括在发送回到图形装置2以供处理(例如,先前所描述)的所请求修改34内。

在从图形装置2接收到经更新的指令/信息35后,计算装置20即刻可分析此信息,且还可将经更新的指令/信息提供到发送所请求修改的远程计算装置(例如,装置40A)。经更新的指令/信息可包括经更新的映射信息。在此实例中,计算装置20和/或40A可使用或分析经更新的指令/信息来确定性能问题是否已得到解决或以其它方式得到缓和。在一些状况下,计算装置20可向计算装置40A发送关于性能问题是否已得到解决的指示。以此方式,设计员可通过自动地从计算装置20和图形装置2接收数据而确定对原始图形数据的任何所请求改变是否可能已以高效的方式解决性能问题。如果所述性能问题尚未得到缓和或完全解决,那么经更新的指令/信息可包括可用于识别图形数据的与未解决的问题相关联的特定部分的经更新的映射信息,以使得设计员可试图继续以迭代方式对图形数据作出修改以解决所述问题。

图4B为说明根据一个方面的图4A中所展示的所述额外应用程序计算装置40A中的一者的额外细节的框图。在一些状况下,图4A中所展示的计算装置40A-40N中的每一者可具有类似于图4B中所展示的计算装置的设计。

在图4B的实例中,可由图形设计员使用的应用程序计算装置40A具有类似于图1中所展示的应用程序计算装置20的设计。在一些状况下,计算装置40A可包含个人计算装置,例如膝上型或桌上型计算机。设计员可使用计算装置40A来创建可并入于图形应用程序中的图形场景(例如,3D场景)中的原始基元图形数据(例如,多边形和/或纹理数据)。

如图4B中所展示,计算装置40A包括一个或一个以上处理器122和一显示装置124。显示装置124可为用于显示目的的能够显示图像数据的任何装置,例如,LCD(液晶显示器)、等离子显示装置,或其它电视(TV)显示装置。计算装置40A还包括可包含存储器的存储媒体126。存储媒体126可包括能够存储指令和/或数据的任何永久或易失性存储器,例如,同步动态随机存取存储器(SDRAM)、只读存储器(ROM)、非易失性随机存取存储器(NVRAM)、嵌入式动态随机存取存储器(eDRAM)、静态随机存取存储器(SRAM)或快闪存储器。

存储媒体126可包括DCC(数字内容创建)应用程序127,其在由处理器122执行时允许设计员创建显示于显示装置124上的图形数据。存储媒体126还包括模拟应用程序128、分割模块130、图形数据映射模块132、导航模块134,和指令映射信息136。这些模块和数据存储库类似于模拟应用程序28(图1)、分割模块27、图形数据映射模块25、导航模块29,和指令映射信息31。因此,当处理图形指令、状态/性能信息和映射/分割信息时以及当创建所请求修改时,计算装置40A可以类似于计算装置20的方式起作用。在计算装置40A中,这些功能还可并入于DCC应用程序127中,以使得设计员可结合用于创建和修改图形数据的DCC工具的使用检视图形和性能信息,以及作出所请求修改。因此,如果设计员在DCC工具内对图形数据作出任何改变,那么可将这些改变作为发送回到计算装置20的所请求修改处理。

图5为说明根据一个方面的个别图形指令与图形数据之间的示范性映射的概念图。在图5的实例中,假定所指示的图形指令30A-30N为图1中所展示的图形指令30的一部分。在一个方面中,可将图5中所展示的示范性映射俘获为图形装置2的图形数据映射信息23内的映射信息。

如图5中所展示,个别图形指令30A-30G可与图形数据140相关联,且借此映射到图形数据140。举例来说,图形指令30A-30G可系结到图形应用程序内的图形数据140,且可包含在执行后即刻将图形数据140再现成图像数据的绘图指令。在一些状况下,图形数据映射信息23可包括将图形指令30A-30G映射到图形数据140的信息。在图5的实例中,图形数据140包含包括多边形(例如,三角形)数据142和纹理数据144的基元图形数据。纹理数据144可包括用于多边形数据142内所定义的多边形的纹理。多边形数据142和纹理数据144可包含包括在图形场景(例如,3D图形场景)内的图形数据140的组成部分。

如从图5中所展示的概念图显而易见,应用程序计算装置20和/或应用程序计算装置40A-40N可使用映射信息将图形指令30A-30G映射到图形数据140。因此,例如,如果图形指令30A-30G与用于再现图像数据的指令执行期间的特定性能问题相关联,那么映射信息将图形数据140识别为也可能与所述性能问题相关联或为所述性能问题的原因的原始基元图形数据。如果(例如)性能问题涉及过度纹理化或大小过大的多边形,那么图形数据140可能为过度纹理化(例如,在纹理数据144内)或大小过大的多边形(例如,在多边形数据142内)的原因。已创建或产生图形数据140的设计员可能够查核性能问题,以及所识别的图形数据140,以便(例如)通过调整纹理数据144或改变多边形数据142内的一个或一个以上多边形的大小来解决所述问题。

图5还展示图形指令30H-30N映射到与图形数据140分离的图形数据146。图形指令30H-30N因此与包括在图形数据146内的多边形数据148和纹理数据150相关联。

图6为根据一个方面的可由应用程序计算装置20(图1)或由应用程序计算装置40A-40N(图4A)中的任一者执行的第一方法的流程图。仅出于说明的目的,将假定所述方法由应用程序计算装置20来执行。

应用程序计算装置20可从外部装置(例如,图形装置2)接收图形指令30(170)。由图形装置2来执行图形指令30以由基元图形数据再现图像数据且在显示装置6上显示例如三维(3D)图形图像等一个或一个以上图形图像。在一个方面中,图形指令30包含在执行时再现图形图像的呼叫流。在一个方面中,所述呼叫流包含从应用编程接口(API)指令产生的二进制指令。

计算装置20还可从图形装置2接收映射/分割信息33,映射/分割信息33包括用于将图形指令30映射到用于在图形指令30的执行期间再现图形图像的基元图形数据的信息(172)。基元图形数据可包含包括图形场景的组成区段的多边形数据和纹理数据中的至少一者。

映射信息可包含将图形指令30内的至少一个图形指令映射到基元图形数据的用于在所述至少一个图形指令的执行期间再现一个或一个以上图形图像的一部分的信息。计算装置20可从图形装置2接收状态/性能信息32(174)。状态/性能信息32与图形指令30在图形装置2上的执行相关联。状态/性能信息32可包括与图形指令30中的至少一者的执行和基元图形数据的一部分相关联的性能信息。

状态/性能信息32还可包括指示图形装置2在其再现图形图像时的一个或一个以上状态的状态信息。所述状态信息可包括来自图形装置2的执行图形指令30的一个或一个以上处理器(例如,控制处理器10、图形处理器12、顶点处理器14,和/或显示处理器16)的状态信息。在一些状况下,状态信息可包含基元图形数据,例如由图形装置2中的图形处理器12使用以再现图形图像数据的基元多边形数据。

计算装置20可在图形场景中基于图形指令30和状态/性能信息32显示一个或一个以上图形图像的表示。以此方式,计算装置20能够在模拟图形装置2的模拟环境内显示这些图形图像的表示。可经由模拟应用程序28在计算装置20的处理器22上的执行来提供所述模拟环境。

计算装置20可识别与图形指令30中的至少一者的执行相关联的性能问题(176)。此性能问题可能与(例如)由过大的多边形、过度纹理化、过度掺合等引起的增加的处理器利用相关联。当在一些状况下基元图形数据的部分包含一个或一个以上多边形时,计算装置20可使用所接收的映射信息来基于如通过映射信息指定的相关联的图形指令30中的至少一者的执行识别与所述性能问题相关联的所述一个或一个以上多边形。在一些状况下,计算装置20可分析从图形装置2所接收的任何性能信息,以识别与基元图形数据的所述部分相关联的性能问题。

计算装置20可接着使用所述映射信息来基于所述至少一个图形指令的执行识别基元图形数据的与所述性能问题相关联的一部分(178)。另外,计算装置20可基于指令30内的至少一个图形指令和任何所接收的状态信息在显示装置24上显示图形数据的与所述性能问题相关联的所述部分的表示(180)。

在一个方面中,计算装置20可使用导航模块29(图1)来在显示装置24上显示导航控制器。用户可经由屏幕上图形用户接口与所显示的所述导航控制器交互作用。此图形用户接口可接收用户输入以与所述导航控制器交互作用。计算装置20可基于所述用户输入在显示装置24上显示基元图形数据的所述部分的所述表示的经修改的透视图。

可针对多个图像或图像帧重复以下操作(182):图形指令的接收(170)、映射信息的接收(172)、性能信息的接收(174)、性能问题的识别(176)、识别图形数据的一部分(178),和显示(180)。当图形图像改变时,或当在多个帧中展示所述图像的替代透视图时,用户(例如,应用程序开发者)可连续地查明与所述图像相关联的图形数据与指令执行期间的任何所识别的性能问题之间的关系。用户可接着采取适当动作以试图缓和或解决这些问题。

图7为根据一个方面的可由应用程序计算装置20(图1)或由应用程序计算装置40A-40N(图4A)中的任一者执行的第二方法的流程图。仅出于说明的目的,将假定图7中所展示的方法由应用程序计算装置40A来执行。

如图7中所展示,应用程序计算装置40A可从外部装置(例如,应用程序计算装置20)接收图形指令(184)。计算装置20可基于其从图形装置2接收的图形指令30将这些指令发送到计算装置40A。

计算装置40A还可从计算装置20接收映射信息以将从计算装置20所接收的指令映射到图形数据(例如,多边形数据或纹理数据)(186)。计算装置20可基于其从图形装置2接收的映射/分割信息33将此映射信息发送到计算装置40A。

在接收到图形指令和映射信息后,计算装置40A即刻可使用所接收的映射信息来识别图形数据的与性能问题相关联的一部分(188)。计算装置40A可基于所接收的图形指令和/或从计算装置20所接收的其它信息(例如,状态/性能信息或分割信息)识别性能问题。在一个方面中,当计算装置20可基于图形指令30、状态/性能信息32和/或映射/分割信息33识别性能问题时,计算装置20可向计算装置40A发送与基元图形数据的所述部分相关联的性能问题的指示。

计算装置40A可(例如)从使用计算装置40A的设计员接收指定对基元图形数据的所述部分的所请求修改的用户输入(190)。计算装置40A可将所述所请求修改发送到计算装置20以供处理(192)。在接收到所请求修改后,计算装置20即刻可将所述所请求修改包括在其发送到图形装置2的所请求修改34内。在计算装置20从图形装置2接收到经更新的指令/信息35(其可包括与所述所请求修改相关联的经更新的性能信息)之后,计算装置20可将经更新的指令/信息提供到计算装置40A。

计算装置40A可接收经更新的指令/信息(其可包括经更新的性能信息)以确定性能问题是否已得到解决(194)。经更新的性能信息与先前由计算装置40A发送到计算装置20的所请求修改相关联。计算装置20和计算装置40A中的任一者或两者可分析所述经更新的性能信息以确定性能问题是否已得到解决。在一些状况下,计算装置20可向计算装置40A发送指示问题是否已得到解决的指示。

由计算装置20发送且由计算装置40A接收的经更新的指令/信息可包括与所请求修改相关联的至少一个经更新的图形指令。另外,经更新的指令/信息还可包括经更新的映射信息,其包括用于将所述至少一个经更新的图形指令映射到基元图形数据的与所述至少一个经更新的图形指令的执行相关联的第二部分的经更新的信息。以此方式,设计员可能够识别值得注意的基元图形数据的所述第二部分,所述第二部分可不同于所述第一部分。基元图形数据的所述第二部分在一些状况下可与待由设计员处理的相同或不同性能问题相关联。

在一个方面中,计算装置40A可基于所述至少一个图形指令在显示装置124上显示基元图形数据的与性能问题相关联的所述部分的表示,且还可显示覆盖基元图形数据的所述部分的分割区的表示。计算装置40A在一些状况下可使用其从计算装置20接收的分份信息(portioning information)以便显示所述分割区的表示。计算装置40A可分析基元图形数据的所述部分以确定基元图形数据的所述部分是否与所述分割区中的多者相关联。

在一些状况下,基元图形数据的所述部分可包括多个三角形,且计算装置40A可确定所述三角形中的哪些者横跨所述分割区中的所述多者。计算装置40A可在显示装置124上显示横跨所述分割区中的所述多者的所述三角形的图形表示。

可针对多个图像或图像帧重复以下操作(196):图形指令的接收(184)、映射信息的接收(186)、图形数据的一部分的识别(188)、接收用户输入(190)、所请求修改的发送(192),和接收经更新的信息(194)。当图形图像改变时,或当在多个帧中展示所述图像的替代透视图时,用户(例如,设计员)可连续地查明与所述图像相关联的图形数据与指令执行期间的任何所识别的性能问题之间的关系。用户可接着采取适当动作以试图缓和或解决这些问题。

图8为说明根据一个方面的耦合到用于在图形窗口203中显示信息的显示装置201的图形装置200的一实例的概念图。如果(例如)图形装置200为图形装置2(图1)的一部分,那么显示装置201可为应用程序计算装置20中的图形装置24的一部分。图形装置200能够显示3D图形图像202。显示装置201能够基于图形指令和从图形装置200所发送的状态/性能信息在窗口203内显示为图形图像202的重新创建的3D图形图像210。显示装置201还能够显示这些指令和状态/性能信息的视觉表示,以使得开发者可改变这些指令和信息以修改图形图像210或包括图形图像210的整个场景。显示装置201可包括在耦合到图形装置200且能够从图形装置200接收此类指令和状态/性能信息的任何类型的计算装置(未展示)内。(出于简单的目的,在图9中所展示的概念图中省略包括显示装置201的计算装置。)

如先前所描述,图形装置200能够显示3D图形图像202(其在图8的实例中为立方体)。图形装置200还具有小键盘204。用户可与小键盘204交互作用以操纵图形装置200。小键盘204可包括若干个键和/或按钮。图形装置200能够经由连接器206将图形指令和状态/性能信息发送到包括图形装置201的装置(例如,应用程序计算装置20)。在一个方面中,连接器206包含通用串列总线(USB)连接器。在其它方面中,可使用不同形式的连接器。在一些方面中,无线通信可替换连接器206。

如图8的实例中所展示,显示装置201可在图形用户接口内显示各种类型的信息。在此实例中,显示装置201在图形用户接口内显示图形窗口203。窗口203包括显示区211、图形指令区208,和状态/性能信息区214。显示区211包括3D图形图像210,其如先前所描述为3D图形图像202的重新创建。在此实例中,3D图形图像包含立方体。根据一个方面,显示于显示装置201上的信息包含显示于图形装置202上的信息的表示或模拟(用于调试和测试的目的)。

图形指令区208包括已从图形装置200接收的一个或一个以上图形指令的视觉表示。如先前所描述,此类指令的视觉表示可包含此类指令的表示。举例来说,如果图形装置200发送二进制图形指令,那么显示装置201可以另一形式显示此类二进制指令的表示,例如较高阶应用编程接口(API)指令(例如,OpenGL指令)。可使用映射信息(例如,图1中所展示的映射信息31)来将所接收的二进制指令映射成可在图形指令区208内显示的另一格式。

状态/性能信息区214包括已从图形装置200接收的状态和/或性能信息的视觉表示。可使用所接收的图形指令和状态/性能信息来在显示区内显示3D图形图像210。在一个方面中,图形装置200可利用实施状态/性能数据模块(例如,图3中所展示的状态/性能数据模块116)的图形驱动程序来提供各种状态和/或性能数据。所接收的状态/性能信息可包括图形数据(例如,基元数据和/或光栅化数据)。

窗口203还包括一个或一个以上选择器212A-212N。用户可选择这些选择器212A-212N中的任一者。如将在下文更详细描述,每一选择器212A-212N可与不同功能(例如,统计和导航功能)相关联。窗口203进一步包括选择器216A-216N和218A-218N,所述选择器中的每一者可供用户选择。如将在下文参看图9更详细描述,每一选择器216A-216N和218A-218N还可与不同功能(例如,度量功能、越权控制功能,和/或纹理功能)相关联。

用户(例如,应用程序开发者)可改变显示于窗口203内的信息。举例来说,用户可修改显示于图形指令区208内的指令中的一者或一者以上,或状态/性能信息区214内的状态/性能信息中的任一者。

可接着将窗口203内由用户起始的任何改变作为所请求修改发送回到图形装置200。图形装置200可接着处理这些修改,且提供可接着显示于图形指令区208和/或状态/性能信息区214内的经更新的指令和/或信息。还可使用所述经更新的指令和/或信息在显示区211内显示3D图形图像210的经修改的版本。

在一个方面中,可由包括显示装置201的计算装置(例如,图1中所展示的应用程序计算装置20)来分析可显示于区214内的状态和/或性能信息以识别在图形指令在图形装置200上的执行期间的潜在瓶颈。最终,用户(例如,应用程序开发者)可能希望在调试过程期间检视窗口203中所呈现的信息以优化图形指令在图形装置200上的执行。如先前所描述,可能在图形装置200中的图形处理管线内的任何处引入瓶颈,且应用程序开发者可能难以隔离此类瓶颈以用于性能优化。经由状态和/或性能信息的分析,可在窗口203中(例如,在一个或一个以上子窗口或弹出窗口内,或在窗口203的区214内)显示潜在瓶颈和可能的暂时解决方案。

在一个方面中,窗口203可显示关于从图形装置200所接收的图形指令的呼叫流中所遭遇的瓶颈的报告,且还可显示可能的暂时解决方案。在一些状况下,可将这些可能的暂时解决方案作为“如果-那么”情况呈现给用户。举例来说,再现呼叫流中的非优化三角形列表可作为一个可能的情况呈现,而贯穿三角形条带优化框架预先处理所述列表可作为第二可能情况呈现。用户可选择这些可能的暂时解决方案情况中的任一者作为所请求修改,且接着将所述所请求修改发射回到图形装置200,在图形装置200处可测量性能。图形装置200接着发送可呈现于图形指令区208和/或状态/性能信息区214内的经更新的指令/信息。用户可接着检视结果,且比较不同潜在暂时解决方案的结果以识别最佳解决方法。用户可使用此过程来迅速地识别可采取以便从其应用程序移除瓶颈的一系列步骤。

在一个方面中,窗口203可显示用于与性能问题相关联的图形数据的信息。举例来说,包括显示装置201的计算装置(例如,应用程序计算装置20)可从图形装置200接收映射信息,所述映射信息包括用于将图形指令映射到用于在指令的执行期间再现图形图像210的基元图形数据的信息。所述计算装置可识别与所述图形指令中的至少一者的执行相关联的性能问题,且使用所述映射信息来识别所述图形数据的与所述性能问题相关联的一部分。性能问题在一些状况下可涉及某些纹理的大小、某些多边形的大小、掺合的量等。图形数据的所述部分可包含可能与所述性能问题的原因有关的多边形或纹理数据。图形装置201可在窗口203内显示图形数据的所述部分的表示以突出显示哪一部分与所述所识别的性能问题有关。举例来说,在一个方面中,如果图形数据的所述部分为用于再现图形图像210的一部分,那么图形装置201可在显示区211内显示图形图像210,以指示为图像210的来源的图形数据与所述所识别的性能问题相关联。

应用程序开发者可选择对图形数据的所述部分或相关联的图像210作出修改以尝试缓和或解决所述性能问题。举例来说,开发者可修改指令区208中所展示的指令、状态/性能信息区214中所展示的信息或图像210的透视图中的一者或一者以上。在一些状况下,开发者可修改与图像210相关联的纹理,或可修改与图像210相关联的多边形数据。将这些所请求修改发送到图形装置200,图形装置200处理所请求修改且发送回经更新的指令/信息(包括经更新的映射和/或性能信息)。图形装置201可接着显示与同图像210相关联的图形数据有关的经更新的信息,且在显示区211内显示图像210的经更新的视图以提供关于性能问题是否已得到解决的指示。

用户可迭代地继续在窗口203内作出调整以用于实验或试/错(trial/error)调试的目的。用户可实验图形指令和状态/性能信息的不同形式或组合以识别显示于显示区211内的图像或场景的改变。用户可使用由窗口203的内容提供的模拟环境来迭代地检视并修改图形指令(其可为呼叫流的一部分),和由图形装置200提供的状态,而不必重新编译任何源代码且在图形装置200上重新执行所编译的代码。

在一些状况下,用户可操纵按钮212A-212N中的一者或一者以上以操纵图形导航控制器(例如,图形相机),以修改图形图像210的透视图。可将此操纵俘获为接着发送回到图形装置200的所请求修改。接着使用由图形装置200提供的经更新的指令/信息来修改图形图像210的透视图。

在一些状况下,可在窗口203的区214中作为可修改的实体提供各种纹理和/或状态信息。另外,用户甚至可选择(例如)显示区211内的图形图像210的像素,以便识别图形指令区208内的一个或一个以上对应指令。以此方式,用户可有效地向后操演(drillbackwards)到用于再现或创建所述像素或图形图像210的其它部分的再现指令或呼叫。因为图形装置201可在窗口203中重新创建图像210(完全如同其呈现于图形装置200上),所以用户能够迅速地隔离其应用程序中的问题(所述应用程序可基于显示于图形指令区208中的各种图形指令),且将状态/性能区214内的任何状态修改成原型新效应。

在一个方面中,显示装置201还能够显示分割信息,以及可横跨多个分割区的多边形数据。举例来说,应用程序开发者可选择一按钮(例如,按钮212A-212N中的一者),以使得显示装置201在显示区211中显示覆盖图像210且在图形上划分场景的分割区(例如,矩形形状分割区)的图形表示。在一些状况下,当装置200为图形装置2的一部分时,所显示的分割区可基于所接收的映射/分割信息33(图1)。包括显示装置201的装置还可分析用于图形图像210的图形数据(例如,多边形数据)以确定所述图形数据的哪些部分与所述分割区中的多者相关联。举例来说,如果使用多个多边形来再现图形图像210,那么装置可分析所述多边形以确定这些多边形中的哪些者横跨多个分割区。

图9为说明根据一个方面的耦合到在图形窗口220内显示信息的显示装置201的图形装置200的另一实例的概念图。在此方面中,窗口220包括各种指令信息以及度量信息。

举例来说,在图形指令区208内,展示各种图形指令242。图形指令242可为由图形装置200提供的图形指令的子集。举例来说,如果图形装置200为图形装置2的一部分,那么图形指令242可为图形指令30的子集。在一些状况下,可使用映射信息(例如,图1中所展示的映射信息31)来将从图形装置200所接收的传入的指令映射到这些指令的视觉表示,这些指令的视觉表示经实质化为显示于图形指令区208内的指令242。举例来说,如果所接收的指令呈二进制形式,那么指令242可包含用于产生二进制形式的指令的API指令。

如图9的实例中所展示,图形指令242包括高阶指令与低阶指令两者。用户(例如,应用程序开发者)可使用滚动条244来检视指令242的整个集合。某些高阶指令可包括一个或一个以上低阶指令(例如,较低阶API指令)。应用程序开发者在一些状况下可选择(例如,例如通过点击)特定高阶指令以便检视为相关联的高阶指令的一部分或由相关联的高阶指令执行的任何低阶指令。如先前所描述,使用所接收的图形指令(例如,指令242)来产生图形图像202的表示,所述表示包含展示于窗口220的显示区211中的图形图像210。映射信息可将指令242中的任何一者或一者以上映射到图形数据的可能与一个或一个以上性能问题相关联或为一个或一个以上性能问题的潜在原因的部分。

在图9中的状态/性能信息区214的下方展示各种选择按钮。这些选择按钮包括纹理按钮236、越权控制按钮238,和度量按钮240。在图9的实例中,应用程序开发者已选择度量按钮240。在选择此按钮后,即刻可显示各种度量选项。举例来说,可在状态/性能区214的上方显示一个或一个以上度量按钮234A-234N。每一度量按钮234A-234N可与特定度量相关联。在一些状况下,这些度量中的一者或一者以上可为预定义或预配置的度量类型,且在一些状况下,应用程序开发者可选择或定制所述度量中的一者或一者以上。实例度量可包括(例如)以下中的任何一者或一者以上:每秒帧数、忙碌百分比(%)(针对一个或一个以上处理器)、与总线或存储器的使用的量相关联的度量、每秒顶点数、每秒三角形数、每秒像素时钟数、每秒片段数等。应用程序开发者可选择度量按钮234A-234N中的任一者以检视关于选定度量的额外细节。

举例来说,如果度量按钮234A与每秒帧数相关联,那么应用程序开发者可选择度量按钮234A以检视关于图形图像210的每秒帧数(与性能有关)的额外细节,或选择图形图像210的部分。开发者在一些状况下可选择度量按钮234A,或将度量按钮234A拖曳到状态/性能信息区214中。关于每秒帧数的详细信息可显示于状态/性能信息区214内。开发者还可将度量按钮234A拖曳到显示区211中,或选择图形图像210的一部分以用于应用度量按钮234A。举例来说,开发者可在选择度量按钮234A之后选择图形图像210的一部分,且接着关于所述选定部分的每秒帧数的详细信息可显示于状态/性能信息区214内。以此方式,开发者可基于度量按钮234A-234N中的一者或一者以上的选择和甚至图形图像210(或其一部分)的可能选择来检视针对任何数目的不同度量类型的性能数据。

在一个方面中,可由图形装置200的图形驱动程序(例如,图3中所展示的图形驱动程序18)来提供可显示于窗口220内的度量数据。此图形驱动程序可实施硬件计数器模块(例如,图3的硬件计数器模块114)和/或处理器使用模块(例如,图3的处理器使用模块112)以提供可接着作为度量数据显示于窗口220内的各种数据。

开发者在一些状况下还可选择纹理按钮236。在选择后,即刻可由图形装置201来显示与图形图像210有关的各种形式的纹理信息。举例来说,纹理信息可显示于窗口220内,例如,显示于状态/性能信息区214内。在一些状况下,纹理信息可显示于额外(例如,弹出)窗口(未展示)内。开发者可检视所显示的纹理信息,但在一些状况下还可修改纹理信息。在这些状况下,可将对纹理信息的任何修改作为所请求修改传播回到图形装置200。在从图形装置200接收到经更新的指令/信息后,即刻可在显示区211内显示对图形图像210的改变。图11包括可在选择纹理按钮236后即刻被显示的某些纹理信息。

如果所接收的映射信息已识别到用于产生图像210的图形数据与指令242(或用于指令242的二进制源指令)中的一者或一者以上的执行期间的性能问题相关联,那么开发者可能需要修改与此图形数据相关联的纹理信息。如果用于在指令执行期间再现图像210的源图形数据(其可包括多边形和纹理数据)为性能问题的潜在来源,那么开发者可能希望修改纹理数据和/或多边形数据。

开发者在一些状况下还可选择越权控制按钮238。在选择越权控制按钮238之后,可显示(例如,在窗口220或另一窗口内)可由开发者修改或越权控制的某些信息(例如,指令和/或状态信息)。任何修改或越权控制可包括在发送到图形装置200的一个或一个以上所请求修改内。在一个方面中,图形装置200可实施例如图形驱动程序18A(图3)等图形驱动程序,以处理任何所请求修改。举例来说,图形装置200可使用越权控制模块120来处理包含一个或一个以上越权控制的此类所请求修改。

在一些状况下,开发者可越权控制展示于图形指令区208内的图形指令242中的一者或一者以上。在这些状况下,开发者可键入或以其它方式在图形指令区208内输入信息以修改或越权控制图形指令242中的一者或一者以上。可接着将这些修改发送到图形装置200,图形装置200将提供经更新的指令/信息以更新图形图像210在显示区211内的显示。开发者可改变(例如)图形指令242的参数、排序、类型等以越权控制由指令242提供的一个或一个以上功能。在一个方面中,可使用映射信息31(图1)来将对图形指令242的改变映射或转换成可接着提供到图形装置200的另一格式的对应指令(例如,二进制指令)。

在一些状况下,开发者还可选择越权控制按钮238以越权控制与由图形装置200实施的处理管线相关联的一个或一个以上功能。图12展示可在选择越权控制按钮238后即刻被显示给开发者的越权控制屏幕的一实例。

窗口220进一步包括选择按钮231和232。选择按钮231为分割按钮,且选择按钮232为导航按钮。开发者可选择分割按钮231以检视覆盖图形图像210且在图形上划分显示于显示区211中的场景的分割区(例如,矩形形状分割区)的图形表示。在用户选择分割按钮231后,所述图形分割区即刻可显示于显示区211中。

显示区211或单独的显示区或窗口还可基于对图形图像210的图形数据的分析(所述分析确定所述数据的哪些部分与多个分割区相关联)来显示信息。举例来说,显示区211或单独的显示区或窗口可结合分割区的图形表示显示用于再现图形图像210的哪些多边形横跨多个分割区。在一些状况下,可对于横跨多个分割区的每一多边形(例如,三角形)显示图形指示(例如,颜色)。

举例来说,在一个方面中,可显示“热图”,其中以特定颜色显示每一三角形。不横跨多个分割区的三角形可以一种颜色(例如,蓝色)来显示。横跨多个分割区(例如,两个到三个分割区)的三角形可以第二颜色(例如,紫色)来显示。横跨三个以上分割区的三角形可以第三颜色(例如,红色)来突出地显示。因此,在此实例中,应用程序开发者可迅速地确定哪些三角形横跨多个分割区,和哪些三角形比其它三角形横跨更多分割区。开发者可能够使用此信息来确定如何重新配置、重新定义或以其它方式重构横跨多个分割区的三角形以减小产生图形图像210时的性能(例如,再现)额外开销。

开发者还可选择导航按钮232以在显示区211内导航,且甚至可能改变显示区211内的图形图像210的透视图。举例来说,在选择导航按钮232后,即刻可显示3D图形相机或导航控制器。开发者可与所述控制器交互作用以导航到显示区211内的任何区。开发者还可使用所述控制器来(例如)通过使图形图像210旋转或将图形图像210放大/缩小来改变图形图像210的透视图。

在一个方面中,可将经由导航按钮232的选择和与图形导航控制器的交互作用进行的任何开发者起始的改变作为所请求修改(例如,图1中所展示的所请求修改84的一部分)传播回到图形装置200。可接着使用接着由图形装置200提供的经更新的指令/信息来更新图形图像210的显示(例如,透视图)。另外,经更新的指令可显示于图形指令区208内。经更新的状态/性能信息可显示于状态/性能信息区214内。

在一个方面中,图形分割区可显示和覆盖于图形图像210的经修改的透视图上。另外,可分析经更新的指令/信息内所含有的针对图形图像210的经修改的透视图的图形数据以确定所述数据的哪些部分与多个分割区相关联。

因此,开发者可有效且高效地确定用于再现和显示图形图像210的替代透视、定向、视图等可如何影响图形装置200的性能和状态。这对于开发者优化用于在显示于显示装置201上的模拟环境中创建和再现图形图像210的图形指令242且有效地优化显示于图形装置200上的图形图像202可能是非常有用的。在一个方面中,还可将基于窗口220内的开发者起始的选择和控制的图形图像210的位置、透视、定向等的任何改变视为在测试过程期间对可显示于图形装置200上的图形图像202的改变。

经由与图形用户接口内的图形窗口220的交互作用,应用程序开发者可试图识别在图形指令242的执行期间的性能问题和/或瓶颈,图形指令242为由图形装置200执行以创建图形图像202的图形指令的视觉表示。基于由图形装置200接收的图形指令242和状态/性能数据将图形图像202的表示(即,图形图像210)显示于显示区211内。通过检视图形指令242、图形图像210和状态/性能信息以及基于对这些中的一者或一者以上的用户起始的修改的效应,应用程序开发者可交互地且动态地进行试错或调试过程以优化指令在图形装置200上的执行,且消除或缓和指令执行期间的任何性能问题(例如,瓶颈)。

另外,包括若干个不同图形分割区的图形场景的视觉表示可允许开发者识别所述图形场景的展现归因于可与屏幕分割相关联的成本的减小的性能的部分。开发者可查核分割和相关联的分析信息以研究所述场景的替代组成以帮助减小这些成本和/或相关的性能额外开销。另外,开发者可识别图形数据的可能与性能问题相关联的特定部分。这可允许开发者进行专注的努力来修改图形数据以试图解决这些问题。

图10为说明可横跨由显示装置(例如,图形装置2(图1)的显示装置6、应用程序计算装置20的显示装置24、应用程序计算装置40A(图4B)的显示装置124,或显示装置201(图8和图9))提供的屏幕区250的四个分割区的图形数据的一实例的概念图。仅出于说明的目的,将假定在以下描述中,图10中所展示的数据基于从图形装置2所接收的图形指令30和状态/性能信息32且还基于从图形装置2所接收的映射/分割信息33而以图形展示于应用程序计算装置20的显示装置24上。状态/性能信息32可包括用于多边形(即,几何形状)260、262、264和266的图形数据,且映射/分割信息33可包括用于分割区252、254、256和258的信息。举例来说,由应用程序计算装置20接收的映射/分割信息33可指示图形装置2在再现图形数据时使用由252、254、256和258表示的四个相异分割区。

在图10的实例中,实施四个方格化分割区252、254、256和258。这些分割区表示可显示于显示装置24上的屏幕区250内的四个对应区。如在所述图中可见,多边形260和262每一者通过定义以完全定位或位于对应分割区内。多边形260定位于分割区252内,且多边形262定位于分割区254内。当再现图形数据时,图形处理器12(例如)可分别地且在独立再现操作期间再现分割区252、254、256和258中的每一者内的数据。因为多边形260完全处于分割区252内,所以在与分割区252相关联的再现操作期间可将多边形260再现为完整几何形状。同样,因为多边形262完全处于分割区254内,所以在与分割区254相关联的再现操作期间可将多边形262再现为完整几何形状。

另一方面,多边形264和266横跨多个分割区。多边形264横跨所有四个分割区252、254、256和258,而多边形266横跨两个分割区256和258。为了再现多边形264,图形处理器12可将多边形264分裂成四个组成片段。图形处理器12可接着在独立再现操作期间独立地再现这些片段。在已独立地再现这些片段之后,显示处理器16可能需要组合针对这些片段中的每一者的经再现的图像以便显示多边形264的准确的图形表示。这些单独再现和组合操作可能引起性能额外开销。

当应用程序开发者检视显示于屏幕区250内的信息时,开发者能够获知可通过硬件分裂哪些多边形(因为所述多边形横跨多个分割区)且还能够获知此类分割区定位于何处。开发者可能够使用此信息来确定当定义场景时某些图形数据在图形应用程序内的优化配置或位置。在一些状况下,屏幕区250可突出显示或以其它方式识别基元图形数据的与指令执行期间的一个或一个以上性能问题相关联的特定部分。

举例来说,可将多边形264和266突出显示或以其它方式突出地显示于屏幕区250内,以向用户指示图形数据的这些特定部分(即,这些特定多边形)与由这些特定多边形横跨多个分割区的事实引起的潜在性能问题相关联。如上所述,可出于再现的目的分裂这些多边形,且接着可重组所述经再现的片段。这些各种步骤可能引起可通过移动多边形、分解多边形或甚至删除多变形而最小化或缓和的性能额外开销。

举例来说,在查核图10中所呈现的信息后,开发者即刻可确定重新布置或重新配置多边形264和266,以使得其不横跨多个分割区。因为向开发者呈现了覆盖屏幕区250内的图形图像的分割区的表示,所以当由图形装置2来定义这些分割区时,且因为所述图形数据的特定部分可得到识别或突出显示,所以开发者可更好地理解如何定义、配置或定位多边形264和266使得其不横跨多个分割区,或使得其仅横跨最小数目的分割区。在一些状况下,开发者可确定将多边形重新定义为子多边形,以使得其可能不需要在再现之后由显示处理器16进行组合。举例来说,开发者可在应用程序指令21的经修改的版本中将多边形266重新定义为两个单独多边形266A和266B。如果起初分别定义这些多边形,那么可能接着不需要在显示之前组合这些多边形的经再现的版本,这可减小性能额外开销。

图11为说明可由显示装置(例如,图形装置2(图1)的显示装置6、应用程序计算装置20的显示装置24、应用程序计算装置40A(图4B)的显示装置124,或显示装置201(图8和图9))提供的屏幕区270内的纹理信息的概念图。仅出于说明的目的,将假定在以下描述中,图11中所展示的数据以图形展示于应用程序计算装置40A的显示装置124上。

图11的屏幕区270展示定义三维立方体的基元图形数据的图形表示(类似于图9中所展示的图形图像210)。所述基元图形数据可包括多边形数据(包含用于定义所述立方体的几何形状的多个多边形),且可进一步包括定义所述立方体的一个或一个以上纹理的纹理数据。在各种状况下,纹理可为所述立方体添加细节,但在某些状况下,其可为某些性能问题或额外开销的原因。举例来说,大量纹理或复杂纹理的再现可能引起增加的处理循环或额外开销。在这些状况下,对于应用程序开发者或设计员来说,意识到任何性能问题以及意识到图形数据的与这些问题相关联的任何部分可能是有帮助的。

在图11中,假定纹理272与所识别的性能问题相关联。举例来说,纹理272可为大的或复杂的纹理。计算装置40A可从计算装置20接收映射信息,所述映射信息将纹理272映射到在执行时再现纹理272且由于此执行而与所识别的性能问题相关联的图形指令。在接收到此映射信息后,计算装置40A即刻可显示图形数据(即,纹理272)的此部分的表示,以使得设计员能够识别与所述性能问题相关联或潜在地为所述性能问题的原因的特定纹理272。设计员可接着试图调整纹理272以缓和或解决所述性能问题。

在一个方面中,设计员可使用计算装置40A的DCC应用程序127来(例如)在屏幕区270内创建与图11中所展示的立方体相关联的基元图形数据。在此方面中,在接收到映射信息后,DCC应用程序127即刻能够直接识别处于DCC应用程序127内的纹理272,使得设计员能够检视和改变图形数据(例如,纹理272)的与所识别的性能问题相关联的部分。

本发明中所描述的技术可实施于通用微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它等效逻辑装置内。因此,如本文中所使用的术语“处理器”或“控制器”可指代上述结构中的任一者或适合于实施本文中所描述的技术的任何其它结构。

本文中所说明的各种组件可通过硬件、软件、固件或其任何组合的任何合适组合来实现。在图中,各种组件描绘为单独单元或模块。然而,参看这些图所描述的各种组件的全部或若干者可集成为共同硬件和/或软件内的组合单元或模块。因此,作为组件、单元或模块的特征的表示希望突出显示特定功能特征以易于说明,且未必需要通过单独硬件或软件组件来实现此类特征。在一些状况下,各种单元可实施为由一个或一个以上处理器执行的可编程处理。

本文中描述为模块、装置或组件的任何特征(包括图形装置100和/或其组成组件)可共同实施于集成式逻辑装置中或单独实施为离散但可交互操作的逻辑装置。在各个方面中,此类组件可至少部分地形成为可统称为集成电路装置(例如,集成电路芯片或芯片组)的一个或一个以上集成电路装置。此类电路可提供于单一集成电路芯片装置中或多个、可交互操作的集成电路芯片装置中,且可用于多种图像、显示器、音频或其它多媒体应用程序和装置中的任一者中。在一些方面中,举例来说,此类组件可形成移动装置(例如,无线通信装置手持机)的一部分。

如果以软件来实施,那么可至少部分地通过计算机可读媒体来实现所述技术,所述计算机可读媒体包含具有在由一个或一个以上处理器执行时执行上文所描述的方法中的一者或一者以上的指令的代码。计算机可读媒体可形成计算机程序产品的一部分,所述计算机程序产品可包括封装材料。计算机可读媒体可包含例如同步动态随机存取存储器(SDRAM)等随机存取存储器(RAM)、只读存储器(ROM)、非易失性随机存取存储器(NVRAM)、电可擦除可编程只读存储器(EEPROM)、嵌入式动态随机存取存储器(eDRAM)、静态随机存取存储器(SRAM)、快闪存储器、磁性或光学数据存储媒体。

另外或作为替代,所述技术可至少部分地通过计算机可读通信媒体来实现,所述计算机可读通信媒体以指令或数据结构的形式载运或传送代码且可由一个或一个以上处理器来存取、读取和/或执行。可将任何连接适当地称为计算机可读媒体。举例来说,如果使用同轴电缆、光纤电缆、双绞线、数字订户线(DSL)或例如红外线、无线电和微波等无线技术而从网站、服务器或其它远程源发射软件,那么同轴电缆、光纤电缆、双绞线、DSL或例如红外线、无线电和微波等无线技术包括在媒体的定义中。上述内容的组合也应包括在计算机可读媒体的范围内。所利用的任何软件可由一个或一个以上处理器来执行,例如一个或一个以上DSP、通用微处理器、ASIC、FPGA或其它等效集成逻辑电路或离散逻辑电路。

本文中已描述各个方面。这些和其它方面在所附权利要求书的范围内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号