CN102105868B - 在图形图像的视觉创建期间的性能分析 - Google Patents

在图形图像的视觉创建期间的性能分析 Download PDF

Info

Publication number
CN102105868B
CN102105868B CN200980129094.XA CN200980129094A CN102105868B CN 102105868 B CN102105868 B CN 102105868B CN 200980129094 A CN200980129094 A CN 200980129094A CN 102105868 B CN102105868 B CN 102105868B
Authority
CN
China
Prior art keywords
graphics
command
graphics command
execution
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN200980129094.XA
Other languages
English (en)
Other versions
CN102105868A (zh
Inventor
巴巴科·埃尔米哈
詹姆斯·P·里茨
安格斯·多别
托马斯·福捷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US12/507,732 external-priority patent/US8587593B2/en
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN102105868A publication Critical patent/CN102105868A/zh
Application granted granted Critical
Publication of CN102105868B publication Critical patent/CN102105868B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3457Performance evaluation by simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/24Indexing scheme for image data processing or generation, in general involving graphical user interfaces [GUIs]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/28Indexing scheme for image data processing or generation, in general involving image processing hardware

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Software Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computer Graphics (AREA)
  • Debugging And Monitoring (AREA)
  • Processing Or Creating Images (AREA)
  • Stored Programmes (AREA)
  • User Interface Of Digital Computer (AREA)
  • Image Generation (AREA)

Abstract

大体来说,本发明涉及用于使用从图形装置接收的图形指令及状态信息来视觉地创建图形图像的技术。还可进行性能分析以识别在所述图形装置上的指令执行期间的潜在瓶颈。一种实例装置包括显示装置及一个或一个以上处理器。所述一个或一个以上处理器经配置以:从外部图形装置接收多个图形指令,其中所述图形指令由所述外部图形装置执行以显示图形图像;且从所述外部图形装置接收状态信息,其中所述状态信息是与所述图形指令在所述外部图形装置上的执行相关联。所述一个或一个以上处理器进一步经配置以根据所述图形指令及所述状态信息在所述显示装置上显示所述图形图像的表示。

Description

在图形图像的视觉创建期间的性能分析
根据35U.S.C.§119主张优先权
本专利申请案主张2008年7月25日申请的标题为“在图形图像的视觉创建期间的性能分析(PERFORMANCE ANALYSIS DURING VISUAL CREATION OF GRAPHICSIMAGES)”的第61/083,656号临时申请案的优先权,所述临时申请案已转让给本受让人且特此以引用的方式明确地并入本文中。
对共同待决的专利申请案的参考
本专利申请案与以下共同待决的美国专利申请案有关:
2008年7月25日申请的61/083,659,代理人案号为080969P1,其与本申请案同时申请,所述申请案已转让给本受让人,且以引用的方式明确地并入本文中;及
2008年7月25日申请的61/083,665,代理人案号为080971P1,其与本申请案同时申请,所述申请案已转让给本受让人,且以引用的方式明确地并入本文中。
技术领域
本发明涉及图形图像的显示。
背景技术
图形处理器广泛用于针对各种应用程序渲染两维(2D)及三维(3D)图像,所述应用程序例如为视频游戏、图形程序、计算机辅助设计(CAD)应用程序、模拟及可视化工具以及成像。显示处理器可用于显示图形处理器的经渲染输出以供经由显示装置呈现给用户。
(开放图形库)为定义可在撰写产生2D图形及3D图形的应用程序时使用的API(应用程序编程接口)的标准规范。例如Java等其它语言可经由其自己的标准过程定义到OpenGL API的系结。接口包括可用于根据简单基元绘制场景的多个函数调用或指令。图形处理器、多媒体处理器及甚至通用CPU可接着执行使用OpenGL函数调用撰写的应用程序。OpenGL ES(嵌入式系统)为OpenGL的变体,其经设计以用于例如移动无线电话、数字多媒体播放器、个人数字助理(PDA)或视频游戏控制台等嵌入式装置。
例如3D图形应用程序等图形应用程序可通过调用API或指令来描述或定义场景的内容,所述API或指令又使用基础图形硬件(例如,图形装置中的一个或一个以上处理器)来产生图像。图形硬件可经历经由这些API实行的一系列状态转变。用于每一API调用(例如,绘图调用或指令)的状态的整个集合可描述由硬件借以渲染图像的过程。
发明内容
大体来说,本发明涉及用于捕获及分析图形指令或调用流以及从例如移动装置等图形装置发送的状态信息的技术。可根据应用程序编程接口(API)指令产生或编译所述图形指令。所述图形指令及状态信息可经由通信媒体发射到例如个人计算机等应用程序计算装置,且用以在模拟环境内显示图形图像(例如,3D图像)。
所述所显示的图形图像可为显示于图形装置上的图像的表示。所述模拟环境能够重新创建图像或场景(其可包含一系列图像)。因为所述模拟环境可创建场景,如同其呈现于所述图形装置上,所以应用程序开发者可隔离其图形应用程序中的性能问题或瓶颈与原型修改,这可改进所述应用程序的总体性能。
在一个方面中,一种方法包含:从外部图形装置接收多个图形指令,其中所述图形指令由所述外部图形装置执行以显示图形图像;以及从所述外部图形装置接收状态信息,其中所述状态信息是与所述图形指令在所述外部图形装置上的执行相关联。所述方法进一步包括根据所述图形指令及所述状态信息显示所述图形图像的表示。在特定情况下,所述方法进一步包括针对所述图形图像的多个帧重复所述图形指令的接收、所述状态信息的接收及显示所述图形图像的所述表示。在特定情况下,所述方法进一步包括:从所述外部图形装置接收性能信息,其中所述性能信息是与所述图形指令在所述外部图形装置上的执行相关联;以及分析所述性能信息以识别在所述外部图形装置执行所述图形指令期间所述外部图形装置上的一个或一个以上性能问题。
本发明中所描述的技术可以硬件、软件、固件或其任何组合来实施。如果以软件来实施,则可在处理器中执行所述软件,所述处理器可指代一个或一个以上处理器,例如微处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或数字信号处理器(DSP),或其它等效集成或离散逻辑电路。包含用于执行所述技术的指令的软件最初可存储于计算机可读媒体中,且由处理器加载并执行。
因此,本发明还涵盖包含用于致使处理器执行如本发明中所描述的多种技术中的任一者的指令的计算机可读媒体。在一些情况下,所述计算机可读媒体可形成可出售给制造商及/或在装置中使用的计算机程序产品的一部分。所述计算机程序产品可包括所述计算机可读媒体,且在一些情况下,还可包括封装材料。
在附图及以下描述中阐述一个或一个以上方面的细节。其它特征、目标及优点将从所述描述及图式中以及从权利要求书中显而易见。
附图说明
图1为说明根据本发明的一个方面的图形装置的框图,所述图形装置可将图形指令以及状态及/或性能信息提供到应用程序计算装置。
图2为说明根据本发明的另一方面的图形装置的框图,所述图形装置可将图形指令以及状态及/或性能信息提供到应用程序计算装置。
图3为说明根据本发明的一个方面的图1中所展示的图形处理系统、图形驱动程序及应用程序计算装置的特定细节的框图。
图4为说明根据本发明的一个方面的可由图1中所展示的控制处理器、图形处理器、顶点处理器及显示处理器执行的操作的额外细节的流程图。
图5为说明根据本发明的一个方面的图3中所展示的图形驱动程序的额外细节的框图。
图6为根据本发明的一个方面的可由图1或图2中所展示的图形装置执行的方法的流程图。
图7为根据本发明的一个方面的可由图1或图2中所展示的应用程序计算装置执行的第一方法的流程图。
图8为根据本发明的一个方面的可由图1或图2中所展示的应用程序计算装置执行的第二方法的流程图。
图9为说明根据本发明的一个方面的耦合到用于在图形窗口中显示信息的显示装置的图形装置的实例的概念图。
图10为说明根据本发明的一个方面的耦合到在图形窗口内显示信息的显示装置的图形装置的另一实例的概念图。
图11为说明根据本发明的一个方面的可由图10的显示装置显示的统计及/或纹理信息的实例的图。
图12为说明根据本发明的一个方面的可在图10中所展示的图形装置上显示的超驰屏幕的实例的屏幕图。
图13为说明根据本发明的一个方面的可在图10中所展示的图形装置上显示的超驰信息的实例的屏幕图。
图14为说明根据本发明的一个方面的可在图10中所展示的图形装置上显示的纹理信息的实例的屏幕图。
图15为说明根据本发明的一个方面的可在图10中所展示的图形装置上显示的性能信息的实例的屏幕图。
具体实施方式
图1为说明根据本发明的一个方面的图形装置2的框图,所述图形装置2可将图形指令30以及状态及/或性能信息32提供到应用程序计算装置20。图形装置2可为独立装置或可为较大系统的部分。举例来说,图形装置2可包含无线通信装置(例如,无线移动手持机),或可为数码相机、视频相机、数字多媒体播放器、个人数字助理(PDA)、视频游戏控制台、其它视频装置或专用检视台(例如,电视)的部分。图形装置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。
还如图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上渲染或显示图形图像。
用于例如绘图调用等指令的状态的整个集合可描述由图形处理系统4借以渲染图像的过程。然而,已撰写应用程序指令21的应用程序开发者常常可能具有为了对描述或渲染所定义场景中的图像的替代方法进行调试或试验的目的而交互地检视或修改这些状态的有限能力。另外,不同硬件平台(例如,图2中所展示的图形处理系统17的平台)可具有这些状态及/或状态转变的不同硬件设计及实施方案。
因此,在一个方面中,应用程序开发者可使用图1中所展示的应用程序计算装置20来辅助处理对用于描述或渲染场景中的图像的替代方法的调试及试验。应用程序计算装置20耦合到图形装置2。举例来说,在一个方面中,应用程序计算装置20经由通用串行总线(USB)连接而耦合到图形装置2。在其它方面中,可使用其它类型的连接,例如无线或其它形式的有线连接。
应用程序计算装置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上的图形图像或场景。
模拟应用程序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的总体性能。
举例来说,应用程序开发者可在模拟应用程序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通过模拟应用程序28来处理以更新图像信息于显示装置24上的显示,且还将经更新的指令/信息35的视觉表示提供给应用程序开发者(其可包括再次使用指令映射信息31)。应用程序开发者可接着检视显示装置24上的经更新的图像信息以及经更新的指令/信息35的视觉表示,以确定性能问题是否已得到解决或缓和。应用程序开发者可使用迭代过程来对图形指令30或原型修改进行调试以改进图形应用程序30的总体性能。
图2为说明根据本发明的另一方面的图形装置52的框图,所述图形装置52可将图形指令80以及状态及/或性能信息82提供到应用程序计算装置20。在此方面中,图形装置52具有不同于图1中所展示的图形装置2的硬件设计及架构。然而,应用程序计算装置20仍能够与图形装置52交互且通过使用另一模拟应用程序29创建图像信息并显示图形装置52的性能信息。在图1中,模拟程序28经设计及定制以用于与图形装置2一起使用。在图2中,模拟程序29经设计及定制以用于与图形装置52一起使用。
如在图2中所展示,图形装置52包括图形处理系统54、显示装置56以及存储媒体58。与图形处理系统4(图1)不同,图形处理系统54不包括顶点处理器。图形处理系统54包括控制处理器60、图形处理器62、显示处理器66以及一个或一个以上缓冲器65。控制处理器60可控制图形处理器62及/或显示处理器66。控制处理器60、图形处理器62及显示处理器66中的每一者能够存取缓冲器65,缓冲器65可含有数据或指令。
类似于存储媒体8(图1),图形装置52的存储媒体58能够存储指令及驱动程序。如图2中所展示,存储媒体(包含存储器)包括应用程序指令71及一个或一个以上图形驱动程序68。应用程序指令71可包含用于图形应用程序的指令,且图形驱动程序68可包含用于在显示装置56上显示图像数据的指令及用于与应用程序计算装置20通信的指令。可将应用程序指令71及图形驱动程序68加载到图形处理系统54中的控制处理器60、图形处理器62及/或显示处理器66中且由所述处理器来执行。在一些情况下,可将应用程序指令71中的一者或一者以上及来自图形驱动程序68的一个或一个以上指令加载到缓冲器65中以用于在图形处理系统54内执行。
在应用程序指令71于图形处理系统54内执行期间,图形驱动程序68中的一者或一者以上还可在执行期间将图形指令80及状态及/或性能信息82发送到应用程序计算装置20。图形指令80可包含应用程序指令71的一部分或子集。状态/性能信息82可基于图形指令80在控制处理器60、图形处理器62及显示处理器66中的一者或一者以上内的执行。
可将模拟应用程序29加载到处理器22中的一者或一者以上中且由所述一者或一者以上来执行以处理图形指令80及状态/性能信息82。如上所述,模拟应用程序29可经特定设计以模拟图形装置52的操作。可通过创建及执行对应模拟应用程序来在应用程序计算装置20上模拟图形装置的各种类型的设计。
模拟应用程序29可致使处理器22根据所接收的图形指令80及状态/性能信息82在显示装置24上显示图形图像或场景的表示。此图像或场景可能最初已显示于图形装置52的显示装置56上,但其表示显示于显示装置24上。另外,模拟应用程序29可致使处理器22在显示装置24上显示状态/性能信息82的视觉表示。应用程序计算装置20还可使用指令映射信息33来在显示装置24中提供图形指令80的视觉表示。
应用程序开发者还可在模拟应用程序29的执行期间选择对图形指令80及/或状态/性能信息82作出一个或一个以上所请求修改84。任何此类所请求修改84可基于在图形指令80的执行或状态/性能信息82的分析期间所观测到的性能问题或瓶颈。可接着将这些所请求修改84从应用程序计算装置20发送到图形装置52,在图形装置52处这些所请求修改84可由图形驱动程序68中的一者或一者以上来处理。
在处理所请求修改84后,即刻由图形驱动程序68中的所述一者或一者以上将经更新的指令及/或信息85发送回到应用程序计算装置20。经更新的指令/信息85可包括经更新的图形指令、经更新的状态信息及/或经更新的性能信息。
经更新的指令/信息85通过模拟应用程序29来处理以更新图像信息于显示装置24上的显示,且还将经更新的指令/信息85的视觉表示提供给应用程序开发者。应用程序开发者可检视显示装置24上的经更新的图像信息以及经更新的指令/信息85的视觉表示,以确定性能问题是否已得到解决或缓和。应用程序开发者可使用迭代过程来对图形指令80或原型修改进行调试以改进图形应用程序80的总体性能。
图3为说明根据一个方面的图1中所展示的图形处理系统4、图形驱动程序18及应用程序计算装置20的特定细节的框图。在图3中,假定应用程序计算装置20耦合到装置2的图形处理系统4。然而,此仅是出于说明目的而展示的。在其它情形中,应用程序计算装置20可耦合到许多其它形式的图形处理系统及装置,例如装置52的图形处理系统54(图2)。
如图3中所展示,图形处理系统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中的哪些处理器可能为具有性能问题的处理器。
为了辅助识别性能瓶颈及潜在解决方案的问题,图形装置2的图形驱动程序18A可从图形处理系统4捕获或收集图形指令30且将其路由到应用程序计算装置20,如图3中所展示。图形驱动程序18A为图1中所展示的图形驱动程序18的部分。图形驱动程序18A可由控制处理器10、顶点处理器14、图形处理器12及显示处理器16中的一者或一者以上加载及执行。另外,图形驱动程序18A还可从控制处理器10、顶点处理器14、图形处理器12及显示处理器16中的一者或一者以上收集状态及/或性能信息32且还将此信息32路由到应用程序计算装置20。在一个方面中,当图形指令30包括可能已从OpenGL ES API指令产生或编译的二进制指令时,图形驱动程序18A可包含OpenGLES驱动程序。
各种形式的状态数据可包括在状态/性能信息32内。举例来说,状态数据可包括在图形指令30的执行期间使用或以其它方式与图形指令30相关联的图形数据。状态数据可与顶点阵列有关,例如位置、色彩、坐标、大小或权重数据。状态数据可进一步包括纹理状态数据、点状态数据、线状态数据、多边形状态数据、剔除状态数据、α测试状态数据、掺合状态数据、深度状态数据、模板状态数据或色彩状态数据。如先前所描述,状态数据可包括状态信息与实际数据两者。在一些情况下,状态数据可包含与一个或一个以上OpenGL权标相关联的数据。
各种形式的性能数据也可包括在状态/性能信息32内。大体来说,此性能数据可包括来自控制处理器10、顶点处理器14、图形处理器12及显示处理器16中的一者或一者以上的量度或硬件计数器数据。性能数据可包括帧率或周期数据。周期数据可包括用于造型、命令阵列、顶点及索引数据或其它操作的周期的数据。在各种方面中,各种形式的状态及性能数据可包括在由图形驱动程序18A从图形处理系统4收集的状态/性能信息32内。
如先前所描述,应用程序计算装置20可根据所接收的图形指令30及状态/性能信息32显示图形图像的表示。应用程序计算装置20还可显示状态/性能信息32的视觉表示。通过检视重新创建的图形图像及/或状态/性能信息32的视觉表示且与其交互,应用程序开发者可能够迅速地识别并解决在图形指令30的执行期间图形装置2的图形处理系统4内的性能问题。举例来说,应用程序开发者可能够识别处理器10、12、14及/或16中的哪些特定者可能具有性能问题。
在用于识别对任何所识别的性能问题的暂时解决方法或解决方案的尝试中,开发者可在应用程序计算装置20上起始一个或一个以上所请求修改34。举例来说,开发者可与重新创建的图像或状态/性能信息32的表示交互以创建所请求修改34。在一些情况下,如在下文更详细描述,开发者甚至可直接改变状态/性能信息32以产生所请求修改34。在特定情况下,所请求修改34可包括用于停用图形指令30中的一者或一者以上于图形装置2的图形处理系统4中的执行的一个或一个以上请求,或用于修改图形指令30中的一者或一者以上的请求。
将所请求修改34从应用程序计算装置20发送到图形驱动程序18A,图形驱动程序18A处置在操作期间针对图形装置2的请求。在许多情况下,所请求修改34可包括用于在图形指令30的执行期间修改在图形处理系统4内的处理器10、12、14或16中的一者或一者以上内的状态信息(其可包括数据)的请求。图形驱动程序18A可接着实施所请求修改34内所包括的图形处理系统4内的改变。这些改变可针对图形指令30的执行更改处理器10、12、14及/或16当中的执行流程。在特定情况下,图形指令30中的一者或一者以上可根据所请求修改34而在于图形处理系统4中执行期间停用。
图形驱动程序18A能够响应于所请求修改34的处理而将经更新的指令及/或信息35发送到应用程序计算装置20。经更新的指令/信息35可包括由图形驱动程序18A从图形处理系统4收集的经更新的状态信息,包括性能信息。经更新的指令/信息35还可包括经更新的图形指令。
应用程序计算装置20可使用经更新的指令/信息35来显示图形图像的经更新的表示以及经更新的指令/信息35的视觉表示。应用程序开发者接着可能够评估先前所识别的性能问题是否已得到解决或以其它方式得到处理。举例来说,应用程序开发者可能够分析经更新的图像以及经更新的指令/信息35的视觉表示,以确定特定纹理、多边形或其它特征是否已得到优化,或其它性能参数是否已得到改进。
以此方式,应用程序开发者可能够快速且有效地对模拟图形装置2上的图形处理系统4的操作的应用程序计算装置20上的环境内的图形指令30的执行进行调试或分析。开发者可迭代地与应用程序计算装置20上所显示的图像及状态/性能信息交互,以分析场景中的多个图形图像或多个图像帧以最大化图形指令30的执行性能。将在下文更详细呈现应用程序计算装置20上的所述交互及所显示信息的实例。
图4为说明根据一个方面的可由控制处理器10、图形处理器12、顶点处理器14及显示处理器16执行的操作的额外细节的流程图。图4还展示用于帧缓冲器存储100及显示102的操作。在一个方面中,控制处理器10、顶点处理器14、图形处理器12及/或显示处理器16执行由于图形指令30中的一者或一者以上的执行产生的各种操作。
如先前所描述,控制处理器10可控制穿过图形处理管线的数据或指令执行流程的一个或一个以上方面,且还可将几何形状信息提供到顶点处理器14。如图4中所展示,控制处理器10可在90处执行几何形状存储。在一些情况下,可由控制处理器10将用于一个或一个以上基元的几何形状信息存储于缓冲器15(图1)中。在一些情况下,可将几何形状信息存储于存储媒体8中。
顶点处理器14可接着在92处获得由控制处理器提供及/或存储于缓冲器15中的用于给定基元的几何形状信息以供处理。在特定情况下,顶点处理器14可管理几何形状信息的顶点变换。在特定情况下,顶点处理器14可对几何形状信息执行照明操作。
顶点处理器14可将其输出提供到图形处理器12,图形处理器12可在94处对数据执行渲染或光栅化操作。图形处理器12可将其输出提供到显示处理器16,显示处理器16以像素形式准备一个或一个以上图形图像以供显示。显示处理器16可在98处对像素数据执行各种操作,包括用于处理数据的各种片段的片段处理。在特定情况下,此可包括如此项技术中已知的深度测试、模板测试、掺合或纹理映射中的一者或一者以上。当执行纹理映射时,显示处理器16可在96处并入有纹理存储及过滤信息。在一些情况下,图形处理器16可对光栅化数据执行其它操作,例如着色或按比例缩放操作。
显示处理器16提供输出像素信息以供在100处存储到帧缓冲器中。在一些情况下,帧缓冲器可包括在缓冲器15(图1)内。在其它情况下,帧缓冲器可包括在存储媒体8内。帧缓冲器存储图像数据的一个或一个以上帧,图像数据的所述一个或一个以上帧可接着在102处显示,例如在显示装置6上显示。
如先前所描述,可由控制处理器10、顶点处理器14、图形处理器12及显示处理器16中的一者或一者以上来执行图形指令30。应用程序开发者通常可能并不很了解或不能很好地控制图形处理系统4内的哪些特定处理器执行图形指令30中的哪些指令。在特定情况下,控制处理器10、顶点处理器14、图形处理器12及显示处理器16中的一者或一者以上在图形指令30的执行期间可能具有性能问题,或充当处理管线内的潜在瓶颈。应用程序开发者可能常常难以查明瓶颈的位置,或如何最佳地解决或缓和此种瓶颈的影响。因此,在一个方面中,可将图形指令30及/或状态信息从图形装置2提供到外部计算装置(例如,应用程序计算装置20)。状态信息可包括来自控制处理器10、顶点处理器14、图形处理器12及显示处理器16中的一者或一者以上的关于在图形指令30的执行期间发生的各种操作(例如,图4中所展示的那些操作)的数据。应用程序计算装置20可创建图形图像,所述图形图像展示于装置2上,以便帮助以高效且有效的方式识别并解决瓶颈。
图5为说明根据一个方面的图3中所展示的图形驱动程序18A的额外细节的框图。如先前所描述,图形驱动程序18A可包含可在图形处理系统4内执行(例如,由控制处理器10、顶点处理器14、图形处理器12及显示处理器16中的一者或一者以上执行)的指令,且可为图形驱动程序18的部分。图形驱动程序18A的执行允许图形处理系统4与应用程序计算装置20通信。在一个方面中,图形驱动程序18A可包含可在图形处理系统54内执行的指令,且可为图形驱动程序68的部分。
图形驱动程序18A在执行时包括各种功能块,所述功能块在图5中展示为输送接口110、处理器使用模块112、硬件计数器模块114、可管理其它状态及/或性能数据的状态/性能数据模块116、API追踪模块118以及超驰模块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。
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。
图6为根据本发明的一个方面的可由图1中所展示的图形装置2或图2中所展示的图形装置52执行的方法的流程图。仅出于说明的目的,在随后描述中将假定,由图形装置2来执行图6的方法。
图形装置2可将多个图形指令发送到例如应用程序计算装置20等计算装置(121)。由图形装置2来执行例如图形指令30等图形指令以显示图形图像。图形指令30可包含根据应用程序编程接口(API)指令产生的二进制指令。在一个方面中,图形装置2可使用图形驱动程序18A的API追踪模块118(图5)发送图形指令30。图形装置2还将状态/性能信息32发送到应用程序计算装置20(122)。状态/性能信息32是与图形装置2对图形指令30的执行相关联。在一个方面中,图形装置2可使用图形驱动程序18A的状态/性能数据模块116发送状态/性能信息32。状态/性能信息32可包含来自图形装置2的执行图形指令30的处理器10、12、14或16中的一者或一者以上的状态信息或数据,且可包括图形数据。状态/性能信息32还可包含从这些处理器10、12、14或16中的一者或一者以上所搜集的性能量度。在这些情况下,图形装置2可使用图形驱动程序18A的处理器使用模块112及/或硬件计数器模块114发送状态/性能信息32。
图形装置2还能够从应用程序计算装置20接收一个或一个以上所请求修改34(123)。这些所请求修改34可致使图形装置2修改图形装置2对图形指令30的执行。所请求修改34可包括以下请求中的一者或一者以上:用于停用图形指令30中的一者或一者以上于图形装置2上的执行的请求、用于在图形装置2上修改图形指令30中的一者或一者以上的请求,或用于在图形装置2上修改状态信息的请求。在一个方面中,图形装置2可使用图形驱动程序18A的超驰模块120、API追踪模块118及/或状态/性能数据模块116接收所请求修改34。
在处理所请求修改34后,图形装置2即刻可基于所请求修改34而将经更新的指令及/或状态信息35发送到应用程序计算装置20(124)。在一个方面中,图形装置2可使用图形驱动程序18A的API追踪模块118及/或状态/性能数据模块116发送经更新的指令/信息35。
如果图形装置2尚未完成处理用于一个或一个以上图形图像或图像帧的信息(125),则图形装置可针对多个图像或一图形图像的多个帧重复图形指令30的发送、状态/性能信息32的发送、所请求修改34的接收以及经更新的指令/信息35的发送。在一些情况下,图形装置2可根据图形指令30及状态/性能信息32在显示装置6上显示一个或一个以上图形图像。
图7为根据一个方面的可由应用程序计算装置20通过模拟应用程序28(图1)或模拟应用程序29(图2)于处理器22上的执行来执行的方法的流程图。应用程序计算装置20从外部图形装置接收多个图形指令(例如,来自外部图形装置2的图形指令30)(130)。由图形装置2来执行图形指令30以在显示装置6上显示例如三维(3D)图形图像等一个或一个以上图形图像。在一个方面中,图形指令30包含在执行时渲染图形图像的调用流。在一个方面中,所述调用流包含根据应用程序编程接口(API)指令产生的二进制指令。
应用程序计算装置20可从图形装置2接收状态及/或性能信息32(132)。状态/性能信息32是与图形指令30于图形装置2上的执行相关联。状态/性能信息32可包括指示图形装置2在其渲染图形图像时的一个或一个以上状态的状态信息。状态信息可包括来自图形装置2的执行图形指令30的一个或一个以上处理器(例如,控制处理器10、图形处理器12、顶点处理器14及/或显示处理器16)的状态信息。状态/性能信息32在一些情况下可包括图形数据(例如,基元数据及/或光栅化数据)。
应用程序计算装置20可根据图形指令30及状态/性能信息32显示一个或一个以上图形图像的表示(134)。以此方式,应用程序计算装置20能够在模拟图形装置2的模拟环境内显示这些图形图像的表示。可经由模拟应用程序28于应用程序计算装置20的处理器22上的执行来提供所述模拟环境。
应用程序计算装置20在显示装置24上显示图形指令30及状态/性能信息32的至少一部分(136)。在一些情况下,当图形指令30包括二进制指令时,应用程序计算装置20显示图形指令30的视觉表示。如先前所描述,应用程序计算装置20可使用指令映射信息31来将图形指令30映射到指令30的表示。所述表示可包含可视觉地显示于显示装置24上的相关联的图形应用程序编程接口(API)指令。还可在显示装置24上显示状态/性能信息32的视觉表示。如果存在更多帧要处理(138),则可针对所述一个或一个以上图形图像的多个图像帧重复图形指令的接收(130)、状态信息的接收(132)、图形图像的表示的显示(134)以及指令及状态信息的显示(136)。以此方式,应用程序计算装置20能够在显示装置24上显示静态图形图像与移动图形图像(包括3D图像)两者。
在一个方面中,处理器22可执行模拟应用程序28以在显示装置24上显示导航控制器。用户(例如,应用程序开发者)可与显示于显示装置24上的图形用户接口内的所述导航控制器视觉交互。图形用户接口可接收来自应用程序开发者的用户输入以与导航控制器交互,以改变所述一个或一个以上所显示的图形图像的透视图。可接着基于到导航控制器的用户输入而将图形图像的经修改的透视图显示于图形用户接口中。
大体来说,在将所述一个或一个以上图形图像视觉地表示及显示于显示装置24上之后,模拟应用程序28(在于处理器22上执行期间)可接收用户输入以修改图形图像。举例来说,如将在下文进一步详细描述,应用程序计算装置20可接收用户输入,所述用户输入指定对由外部图形装置2(其中图形装置2相对于应用程序计算装置20来说为外部的)对图形指令30的执行的一个或一个以上所请求修改34。在接收到此用户输入后,应用程序计算装置20即刻将所请求修改34发送到图形装置2以供处理。图形装置2可接着处理所请求修改34,如先前所描述。在一个方面中,所请求修改34可包括以下请求中的至少一者:用于停用图形指令30中的一者或一者以上于图形装置2上的执行的请求、用于在图形装置2上修改图形指令30中的一者或一者以上的请求,以及用于在图形装置2上修改状态/性能信息32的请求。
应用程序计算装置20可随后从图形装置2接收多个经更新的图形指令及/或信息35。所述经更新的图形指令/信息35可与所请求修改34相关联。经更新的指令/信息35可包括与对由图形装置2对图形指令30的执行的所请求修改34相关联的经更新的状态信息。在接收到经更新的指令/信息35后,应用程序计算装置20即刻可根据经更新的指令/信息35显示所述一个或一个以上图形图像的经更新的版本。
图8为根据本发明的一个方面的可由应用程序计算装置20通过模拟应用程序28(图1)或模拟应用程序29(图2)于处理器22上的执行来执行的方法的流程图。在此方面中,应用程序计算装置20可从图形装置2接收图形指令30(150)。应用程序计算装置20还可从图形装置2接收状态及/或性能信息32(152)。在接收到图形指令30及状态/性能信息32后,应用程序计算装置20即刻可根据图形指令30及状态/性能信息32显示一个或一个以上图形图像的表示(154)。
在创建这些图像期间或在创建这些图像后,应用程序计算装置20可接收输入以识别一个或一个以上性能问题(156)。举例来说,在一些情况下,应用程序计算装置20可自动地接收来自模拟应用程序28的输入以基于图形指令30的执行及/或基于由图形装置2提供的状态/性能信息32的分析而识别图形指令30的执行中的潜在瓶颈。这些瓶颈可能与图形指令30于图形装置2的处理管线(例如,控制处理器10、图形处理器12、顶点处理器14及/或显示处理器16)内的执行相关联。在一些情况下,应用程序计算装置20可接收来自用户(例如,应用程序开发者)的指定或以其它方式识别在图形指令30于应用程序计算装置20上执行期间的一个或一个以上性能问题的输入,以创建图形图像。
在一个方面中,状态/性能信息32包括与图形指令30于图形装置2上的执行相关联的性能信息。应用程序计算装置20可分析所述性能信息以识别在图形装置2执行图形指令30期间图形装置2上的一个或一个以上性能问题。在一些情况下,所述性能信息可包括从可在图形装置2上执行图形指令30的处理器10、12、14或16中的一者或一者以上所搜集的性能量度。当应用程序计算装置20分析从图形装置2所接收的性能信息时,其可识别这些处理器10、12、14或16中的一者或一者以上中的减小的性能。
在识别到所述问题后,应用程序计算装置20可将对图形指令30的执行的一个或一个以上所请求修改34发送到图形装置2(158)。在一些情况下,应用程序计算装置20可接收指定所请求修改34中的一者或一者以上的用户输入。在一个方面中,所请求修改34可包括以下请求中的至少一者:用于停用图形指令30中的一者或一者以上在图形装置2上的执行的请求、用于在图形装置2上修改图形指令30中的一者或一者以上的请求,以及用于在图形装置2上修改状态/性能信息32的请求。
在图形装置2已处理所请求修改34(例如先前所描述)之后,应用程序计算装置20可从图形装置2接收多个经更新的指令及/或信息35(160)。经更新的指令/信息35可包括经更新的图形指令及/或经更新的性能信息。任何经更新的图形指令及/或性能信息可与对图形装置2对图形指令30的执行的所请求修改34相关联。应用程序计算装置20可接着根据所述经更新的图形指令及经更新的性能信息在显示装置24上显示所述一个或一个以上图形图像的经更新的表示。
应用程序计算装置20可接着分析所述经更新的性能信息以确定先前所识别的性能问题中的一者或一者以上是否已得到解决(162)。在一些情况下,应用程序计算装置20可能够自动地分析或处理经更新的指令/信息35以确定特定性能问题是否已得到解决或以其它方式得到缓和。在一些情况下,在应用程序开发者分析经更新的指令/信息35及/或审阅已显示于显示装置24上的图形图像的经更新的表示后,应用程序开发者即刻可能够经由用户输入向应用程序计算装置20指示特定性能问题已得到解决或以其它方式得到缓和。
应用程序计算装置20以迭代方式重复以下动作:识别现有性能问题,将所请求修改34发送到图形装置2,以及接收经更新的指令及/或信息35,直到所识别的性能问题已得到解决或以其它方式得到缓和为止。应用程序计算装置20还针对视觉地表示于显示装置24上的所述一个或一个以上图形图像的多个图像帧重复图8中所展示的动作(164)。以此方式,应用程序计算装置20能够在显示装置24上显示静态图形图像与移动图形图像(包括3D图像)两者。
图9为说明根据一个方面的耦合到用于在图形窗口203中显示信息的显示装置201的图形装置200的实例的概念图。如果(例如)图形装置200为图形装置2(图1)的部分,则显示装置201可为应用程序计算装置20中的图形装置24的部分。图形装置200能够显示3D图形图像202。显示装置201能够基于图形指令及从图形装置200发送的状态/性能信息而在窗口203内显示为图形图像202的表示的3D图形图像210。
显示装置201还可能够显示这些指令及状态/性能信息的视觉表示,以使得开发者可改变这些指令及信息以修改图形图像210或包括图形图像210的整个场景。显示装置201可包括在耦合到图形装置200且能够从图形装置200接收所述指令及状态/性能信息的任何类型的计算装置(未图示)内。出于简单的目的,在图10中所展示的概念图中已省去包括显示装置201的计算装置。
如先前所描述,图形装置200能够显示3D图形图像202(其在图9的实例中为立方体)。图形装置200还具有小键盘204。用户可与小键盘204交互以操纵图形装置200。小键盘204可包括若干个键及/或按钮。图形装置200能够经由连接器206将图形指令及状态/性能信息发送到包括图形装置201的装置(例如,应用程序计算装置20)。在一个方面中,连接器206包含通用串行总线(USB)连接器。在其它方面中,可使用不同形式的连接器,例如电气电子工程师协会(IEEE)1394连接器。在一些方面中,无线通信可替换连接器206。
如图9的实例中所展示,显示装置201可在图形用户接口内显示各种类型的信息。在此实例中,显示装置201在图形用户接口内显示图形窗口203。窗口203包括显示区域211、图形指令区域208以及状态/性能信息区域214。显示区域211包括3D图形图像210,其如先前所描述为3D图形图像202的表示。在此实例中,3D图形图像包含立方体。根据一个方面,显示于显示装置201上的信息包含显示于图形装置202上的信息的表示或模拟(用于调试及测试的目的)。
在图9的实例中,图形指令区域208包括已从图形装置200接收的一个或一个以上图形指令的视觉表示。如先前所描述,所述指令的视觉表示可包含所述指令的表示。举例来说,如果图形装置200发送二进制图形指令,则显示装置201可以另一形式显示所述二进制指令的表示,例如较高级应用程序编程接口(API)指令(例如,OpenGL指令)。可使用映射信息(例如,图1中所展示的映射信息31)来将所接收的二进制指令映射成可在图形指令区域208内显示的另一格式。
状态/性能信息区域214包括已从图形装置200接收的选定状态及/或性能信息的视觉表示。可使用所接收的图形指令及状态/性能信息来在显示区域内显示3D图形图像210。在一个方面中,图形装置200可利用实施状态/性能数据模块(例如,图5中所展示的状态/性能数据模块116)的图形驱动程序来提供各种状态及/或性能数据。所接收的状态/性能信息可包括图形数据(例如,基元数据及/或光栅化数据)。
窗口203还包括一个或一个以上选择器212A到212N。用户可选择这些选择器212A到212N中的任一者。如将在下文更详细描述,每一选择器212A到212N可与不同功能(例如,统计及导航功能)相关联。窗口203进一步包括选择器216A到216N及218A到218N,所述选择器中的每一者可供用户选择。如将在下文参看图10更详细描述,每一选择器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内作出调整以用于试验或试错调试的目的。用户可试验图形指令及状态/性能信息的各种不同形式或组合以识别显示于显示区域211内的图像或场景的改变。用户可使用由窗口203的内容提供的模拟环境来交互地检视并修改图形指令(其可为调用流的部分)以及由图形装置200提供的状态,而不必重新编译源代码且在图形装置200上重新执行所编译的代码。
在一些情况下,用户可操纵按钮212A到212N中的一者或一者以上以操纵图形导航控制器(例如,图形相机),以修改图形图像210的透视图。可将所述操纵捕获为接着发送回到图形装置200的所请求修改。接着使用由图形装置200提供的经更新的指令/信息来修改图形图像210的透视图。
在一些情况下,可在窗口203的区域214中作为可修改的实体提供各种纹理及/或状态信息。另外,用户甚至可选择(例如)显示区域211内的图形图像210的像素,以便识别图形指令区域208内的一个或一个以上对应指令。以此方式,用户可有效地向后操演到用于渲染或创建所述像素或图形图像210的其它部分的渲染指令或调用。因为图形装置201可在窗口203中创建图像210,完全如同其呈现于图形装置200上,所以用户能够迅速地隔离其应用程序中的问题(所述应用程序可基于显示于图形指令区域208中的各种图形指令),且将状态/性能区域214内的任何状态修改成原型新效应。
图10为说明根据一个方面的耦合到在图形窗口220内显示信息的显示装置201的图形装置200的另一实例的概念图。在此方面中,窗口220包括各种指令信息以及量度信息。
举例来说,在图形指令区域208内,展示各种图形指令242。图形指令242可为由图形装置200提供的图形指令的子集。举例来说,如果图形装置200为图形装置2的部分,则图形指令242可为图形指令30的子集。在一些情况下,可使用映射信息(例如,图1中所展示的映射信息31或图2中所展示的映射信息33)来将从图形装置200所接收的传入指令映射到这些指令的视觉表示,这些指令的视觉表示经实质化为显示于图形指令区域208内的指令242。举例来说,如果所接收的指令处于二进制形式,则指令242可包含用于产生呈二进制形式的指令的API指令。
如图10的实例中所展示,图形指令242包括高级指令与低级指令两者。用户(例如,应用程序开发者)可使用滚动条244来检视指令242的整个集合。特定高级指令可包括一个或一个以上低级指令(例如,较低级API指令)。应用程序开发者在一些情况下可选择(例如,例如通过点击)特定高级指令以便检视为相关联的高级指令的部分或由相关联的高级指令执行的任何低级指令。如先前所描述,使用所接收的图形指令(例如,指令242)来产生图形图像202的表示,所述表示包含展示于窗口220的显示区域211中的图形图像210。
在图10中在状态/性能信息区域214的下方展示各种选择按钮。这些选择按钮包括纹理按钮236、超驰按钮238以及量度按钮240。在图10的实例中,应用程序开发者已选择量度按钮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的图形驱动程序(例如,图5中所展示的图形驱动程序18)来提供可显示于窗口220内的量度数据。此图形驱动程序可实施硬件计数器模块(例如,图5的硬件计数器模块114)及/或处理器使用模块(例如,图5的处理器使用模块112)以提供可接着作为量度数据显示于窗口220内的各种数据。
开发者在一些情况下还可选择纹理按钮236。在选择后,即刻可由图形装置201来显示与图形图像210有关的各种形式的纹理信息。举例来说,纹理信息可显示于窗口220内,例如显示于状态/性能信息区域214内。在一些情况下,纹理信息可显示于额外(例如,弹出)窗口(未图示)内。开发者可检视所显示的纹理信息,但在一些情况下还可修改纹理信息。在这些情况下,可将对纹理信息的任何修改作为所请求修改传播回到图形装置200。在从图形装置200接收到经更新的指令/信息后,即刻可在显示区域211内显示对图形图像210的改变。图11包括可在选择纹理按钮236后即刻被显示的特定纹理信息。
开发者在一些情况下还可选择超驰按钮238。在选择超驰按钮238之后,可显示(例如,在窗口220或另一窗口内)可由开发者修改或超驰的特定信息(例如,指令及/或状态信息)。任何修改或超驰可包括在发送到图形装置200的一个或一个以上所请求修改内。在一个方面中,图形装置200可实施例如图形驱动程序18A(图5)等图形驱动程序,以处理任何所请求修改。举例来说,图形装置200可使用超驰模块120来处理包含一个或一个以上超驰的所述所请求修改。
在一些情况下,开发者可超驰展示于图形指令区域208内的图形指令242中的一者或一者以上。在这些情况下,开发者可键入或以其它方式在图形指令区域208内输入信息以修改或超驰图形指令242中的一者或一者以上。可接着将这些修改发送到图形装置200,图形装置200将提供经更新的指令/信息以更新图形图像210于显示区域211内的显示。开发者可改变(例如)图形指令242的参数、排序、类型等以超驰由指令242提供的一个或一个以上功能。在一个方面中,可使用映射信息31(图1)或映射信息33(图2)来将对图形指令242的改变映射或转换成可接着提供到图形装置200的另一格式的对应指令(例如,二进制指令)。
在一些情况下,开发者还可选择超驰按钮238以超驰与图形装置200实施的处理管线相关联的一个或一个以上功能。图12展示可在选择超驰按钮238后即刻被显示给开发者的超驰屏幕的实例。
窗口220进一步包括选择按钮230及232。选择按钮230为统计按钮,且选择按钮232为导航按钮。开发者可选择统计按钮230以检视与图形图像210的显示相关联的统计信息。此统计信息可包含一个或一个以上曲线图、表格,或其它形式的统计信息。图11提供可在用户选择统计按钮230后即刻被显示的特定统计及纹理信息的实例。开发者可检视统计信息以获得与图形图像210的显示相关联的各种性能或其它相关问题的较佳理解。
开发者可选择导航按钮232以在显示区域211内导航,且甚至可能改变显示区域211内的图形图像210的透视图。举例来说,在选择导航按钮232后,即刻可显示3D图形相机或导航控制器。开发者可与所述控制器交互以导航到显示区域211内的任何区域。开发者还可使用所述控制器来(例如)通过使图形图像210旋转或放大/缩小而改变图形图像210的透视图。
在一个方面中,可将经由导航按钮232的选择及与图形导航控制器的交互进行的任何开发者起始的改变作为所请求修改(例如,图1中所展示的所请求修改84的部分)传播回到图形装置200。可接着使用接着由图形装置200提供的经更新的指令/信息来更新图形图像210的显示(例如,透视图)。另外,经更新的指令可显示于图形指令区域208内。经更新的状态/性能信息还可显示于状态/性能信息区域214内。
因此,开发者可有效且高效地确定用于渲染及显示图形图像210的替代透视、定向、视图等可如何影响图形装置200的性能及状态。这对于开发者优化用于在显示于显示装置201上的模拟环境中创建及渲染图形图像210的图形指令242且有效地优化显示于图形装置200上的图形图像202可为非常有用的。在一个方面中,还可将基于窗口220内的开发者起始的选择及控制的图形图像210的位置、透视、定向等的任何改变视为在测试过程期间对可显示于图形装置200上的图形图像202的改变。
通过与图形用户接口内的图形窗口220的交互,应用程序开发者可试图识别在图形指令242的执行期间的性能问题及/或瓶颈,图形指令242为由图形装置200执行以创建图形图像202的图形指令的视觉表示。基于由图形装置200接收的图形指令242及状态/性能数据将图形图像202的表示(即,图形图像210)显示于显示区域211内。通过检视图形指令242、图形图像210及状态/性能信息以及基于对这些中的一者或一者以上的用户起始的修改的效应,应用程序开发者可交互地且动态地进行试错或调试过程以优化指令于图形装置200上的执行,且消除或缓和指令执行期间的任何性能问题(例如,瓶颈)。
图11为说明根据一个方面的可由图10的显示装置201显示的统计及/或纹理信息250的实例的图。举例来说,可在用户选择纹理按钮236后即刻显示统计/纹理信息250的一个或一个以上部分。还可在用户选择统计按钮230后即刻显示统计/纹理信息250的一个或一个以上部分。
图11中所展示的统计/纹理信息250包括各自可具有一个或一个以上值的若干个实例统计及/或纹理字段。举例来说,信息250包括用于渲染及显示图形图像210可能需要的渲染调用的数目(与图形指令242相关联)的值。因为窗口220中所展示的数据是基于图形装置200的模拟,所以渲染调用的数目可有效地指示在图形装置200上渲染及显示图形图像202可能需要的调用的数目。渲染调用可与图形指令242中的一者或一者以上(例如,一个或一个以上高级指令及/或低级指令)相关联。
统计/纹理信息250还包括每渲染调用的平均纹理改变及每渲染调用的平均状态改变的值。这些值可向开发者提供关于可影响总体性能的纹理及/或状态改变的数目的信息。
对于图形图像210中的图像数据的特定帧,统计/纹理信息250可包括经渲染以创建图像数据的所述帧的基元的顶点数目及三角形数目的值。另外,还显示每渲染调用的平均三角形数及每渲染调用的平均顶点数的值。这些值对于应用程序开发者估计通过图形指令实施的渲染调用的效率可为有帮助的。
统计/纹理信息250还包括纹理大小信息。如图11的底部附近处所展示,信息250可提供一个或一个以上纹理大小的值(例如,64×64、64×128、128×128、256×256),其指示用于图形图像210的每一纹理大小的数字。
另外,统计/纹理信息250还包括与渲染性能及效率有关的各种值。举例来说,信息250包括用于图形图像210的优化纹理的百分比的值。在一些情况下,包括显示装置201的计算装置(例如,应用程序计算装置20)可基于图形指令及/或从图形装置200所接收的状态/性能信息而计算此值。应用程序开发者可能通常想要此百分比值尽可能高。如果此百分比值低于所要值,则开发者可操纵或改变图形指令、状态信息、性能信息或窗口220内的其它参数以将一个或一个以上所请求修改提供到图形装置200。在从图形装置200接收到经更新的指令/信息后,即刻可针对优化纹理的百分比显示经更新的值。开发者可(例如)在调试或试错会话期间继续此过程,以优化提供于窗口220中的模拟环境内的纹理。开发者可能够以有效且高效的方式进行此操作,而不必重新编译任何代码/指令。
统计/纹理信息250进一步包括经编索引及条带化的顶点的百分比的值。这些值可指示用于图形图像210的渲染及显示的优化三角形的百分比。应用程序开发者可能通常想要经编索引及条带化的顶点的百分比值尽可能高。如果所述百分比值低于所要值,则开发者可操纵或改变图形指令、状态信息、性能信息或窗口220内的其它参数以将一个或一个以上所请求修改提供到图形装置200。在从图形装置200接收到经更新的指令/信息后,即刻可针对这些百分比值显示经更新的值。开发者可继续此过程以获得优化数目的三角形,而不必重新编译任何代码/指令或对图形装置200进行耗时或冗长的调试操作。
图12为说明根据本发明的一个方面的可在图10中所展示的图形装置201上显示的超驰屏幕260的屏幕图。应用程序开发者可检视超驰屏幕260且作出对显示于超驰屏幕260内的信息的一个或一个以上选择以超驰由图形装置200提供的一个或一个以上功能,进而更改图形装置200上的指令执行的流程。
在一些情况下,可在用户选择超驰按钮238后即刻显示超驰屏幕260。超驰屏幕260可作为屏幕220的部分来显示,或可作为单独窗口(例如,弹出窗口)来显示。超驰屏幕260展示可由图形装置200实施的图形处理管线的视觉表示。在一个方面中,图形装置200可包含图1中所展示的图形装置2,在所述情况下,图形装置200可包括控制处理器、顶点处理器、图形处理器及显示处理器。因此,超驰屏幕260中所展示的图形处理管线的视觉表示可包括控制处理器图标262、顶点处理器图标264、图形处理器图标266以及显示处理器图标268。
每一图标262、264、266及268是与图形装置200内的对应处理器相关联。这些图标可包含图形图标、文本图标或其它形式的图标。应用程序开发者可(例如)通过在超驰屏幕260内点击图标来选择图标262、264、266或268中的一者或一者以上。在选择图标(例如,图形处理器图标266)后,超驰屏幕260即刻显示与图标266相关联的对应菜单271(例如,下拉式菜单)。
在图12的实例中,菜单271包括四个可选择的选项:选项270(用于停用α/透明度操作)、选项272(用于停用掺合操作)、选项274(用于停用Z拒绝操作)以及选项276(用于停用深度测试操作)。与选项270、272、274及276相关联的操作中的每一者对应于可由图形装置200内的图形处理器执行的操作。
图12展示已针对用于停用α(透明度)操作的选项270作出用户选择。在用户选择选项270后,即刻可将所请求修改发送到图形装置200以停用α操作。如果图形装置200实施图5中所展示的图形驱动程序18A,则图形装置200可使用超驰模块120来处理所请求修改或超驰。超驰模块120可接着将超驰请求发送到对应图形处理器(例如,图1中所展示的图形处理器12)以停用α操作。
类似地,应用程序编程员可选择选项272以停用图形处理器上的掺合操作。开发者可选择选项274以停用Z拒绝操作。开发者可选择选项276以停用与图形处理器内的深度测试有关的操作。
在图12的实例中,开发者可(例如)通过停用可能先前已启用的一个或一个以上操作来超驰与图形装置200的图形处理器相关联的一个或一个以上功能。在一些情况下,开发者可使用类似于菜单271的另一菜单来重新启用先前停用的任何操作,例如α、掺合、Z拒绝及/或深度测试操作。
因此,开发者可连续地且迭代地超驰或改变图形处理器的各种功能及操作,且接着确定所述改变如何影响性能。举例来说,开发者可通过选择菜单选项270来停用α操作,且接着检视在停用所述操作后即刻由图形装置200提供的经更新的状态/性能信息,以确定任何先前的性能问题(例如,与图形装置200的图形处理器有关的那些性能问题)是否已得到解决或缓和。开发者还可审阅统计信息(例如,图11中所展示的实例信息的类型),以基于α操作的停用来评估性能的改变或可能的改进。另外,可在停用α操作后即刻在窗口220(图10)中显示图形图像210的经更新的版本及经更新的指令242。
当然,在其它情形中,应用程序开发者可停用或启用与图形处理器相关联的其它功能。另外,开发者可停用或启用与图形装置200中的其它处理器(例如,控制处理器、顶点处理器及/或显示处理器)相关联的功能。举例来说,开发者可选择控制处理器图标262以检视类似于菜单271的菜单,所述菜单可包括用于停用或启用与控制处理器(例如,图1中所展示的控制处理器10)相关联的一个或一个以上功能的一个或一个以上可选择的选项。可将对这些功能的任何改变提供为发送到图形装置200以供(例如)超驰模块120处理的一个或一个以上所请求修改。可接着由图形装置200提供经更新的指令及/或其它信息(例如,状态及/或性能信息)以更新窗口220中所展示的信息,使得开发者可确定与控制处理器有关的任何性能问题或瓶颈是否已得到解决或以其它方式得到缓和。
图13为说明根据本发明的一个方面的可在图10中所展示的图形装置201上显示的超驰信息的实例的屏幕图。在此方面中,超驰信息展示于图形窗口280内。图形图像210展示于显示区域211内。如先前所描述,用户可请求一个或一个以上超驰以修改图形图像210于显示区域211内的显示。在一种情形中,用户可选择超驰按钮238(图10)来作出一个或一个以上超驰选择。图13展示可在用户选择超驰按钮238后即刻被显示于窗口280内的超驰信息的实例。
图13展示三个实例超驰:超驰A、超驰B、超驰C。这三个实例超驰中的每一者可对应于任何超驰功能,例如停用功能、启用功能或其类似者(包括图12中所展示的那些功能)。另外,这三个实例超驰中的每一者可与一个或一个以上处理器的功能性相关联。因此,用户可选择所述超驰中的一者或一者以上以更改一个或一个以上处理器的行为,以便启用或停用这些处理器的特定操作。
每一超驰(超驰A、超驰B及超驰C)可具有可由用户选择或以其它方式配置的对应参数或选项。举例来说,超驰A具有超驰参数282A,超驰B具有超驰参数282B,且超驰C具有超驰参数282C。用户可通过修改对应参数而定制所述超驰中的每一者。举例来说,如果超驰A对应于用于停用掺合的超驰,则用户可选择或改变超驰参数282A以修改或定制用于停用掺合的超驰功能性。超驰参数282A还可包括一个或一个以上处理器的识别。举例来说,如果用户希望停用一图形处理器上的掺合,则超驰参数282A可包括所述图形处理器的识别。
可将用户所请求的任何超驰包括在发送回到图形装置的所请求修改34内。图形装置可接着处理所述所请求修改34,如先前所描述,且提供经更新的指令/信息35。经更新的指令/信息35可用于更新图形图像210于显示区域211内的显示。
图14为说明根据本发明的一个方面的可在图10中所展示的图形装置201上显示的纹理信息的实例的屏幕图。在此方面中,纹理信息展示于图形窗口290内。图形图像210展示于显示区域211内。用户可修改图形图像210的一个或一个以上纹理,所述一个或一个以上纹理可接着展示于显示区域211内。
举例来说,在图14中,用户可选择纹理294、296及/或298中的任一者。在图14中,假定用户已选择纹理294,如图所示。可在窗口290内显示及选择任何数目的不同纹理,且仅出于说明的目的而展示图14中所显示的纹理。
在用户选择纹理294后,选定纹理294的放大表示即刻展示于纹理区域300中。用户可接着将纹理294应用于图形图像210的一个或一个以上部分。在一种情形中,用户可将纹理294从纹理区域300拖曳到显示区域211中且将所述纹理应用于图形图像210的所要部分。在图14的实例中,用户已将纹理294应用于图形图像210的所指示部分。以此方式,用户可选择一个或一个以上纹理(例如,纹理294、296、298)中的任一者且将所述纹理应用于图形图像210,且还检视显示区域211内的图形图像210的对应改变。
可将由用户选定或应用的任何纹理包括在发送回到图形装置的所请求修改34内。图形装置可接着处理所述所请求修改34,如先前所描述,且提供经更新的指令/信息35。经更新的指令/信息35可用于更新图形图像210于显示区域211内的显示。
图15为说明根据本发明的一个方面的可在图10中所展示的图形装置201上显示的性能信息的实例的屏幕图。在此方面中,性能信息展示于图形窗口302内。在图15的实例中,由性能曲线304表示性能信息。曲线304沿着横轴展示时间,且沿着纵轴展示处理器使用百分比(%)。处理器使用百分比可对应于图形处理系统内的一个或一个以上处理器(例如,控制处理器、显示处理器、顶点处理器及/或图形处理器)的百分比使用。
通过连续地监视性能曲线304,用户可能够评估所请求修改34内的对图形装置所进行的或发送回到图形装置的任何改变的有效性。举例来说,用户可更新图形指令,更新状态/性能信息,修改图形图像的透视图,起始一个或一个以上超驰,改变纹理,或进行其它修改以尝试解决或以其它方式缓和在图形应用程序的执行期间所观测到的任何性能问题或瓶颈。特定改变可通过减小百分比使用(或处理器利用)来改进性能,而其它改变可增加处理器利用。为了帮助识别对图形应用程序的最佳或合意的解决方案或改变(例如,导致较低或减小的处理器利用的那些解决方案或改变),用户可连续地监视性能曲线304以查明任何所实施的改变(例如,所请求修改34内所包括的那些改变)随时间的效应。
本发明中所描述的技术可实施于通用微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它等效逻辑装置内。因此,如本文中所使用的术语“处理器”或“控制器”可指代上述结构中的任何一者或一者以上或适合于实施本文中所描述的技术的任何其它结构。
本文中所说明的各种组件可通过硬件、软件、固件或其任何组合的任何合适组合来实现。在图式中,各种组件经描绘为单独单元或模块。然而,参看这些图式所描述的各种组件的全部或若干者可集成为共用硬件及/或软件内的组合单元或模块。因此,将特征表示为组件、单元或模块既定突出显示特定功能特征以易于说明,且未必需要通过单独硬件或软件组件来实现所述特征。在一些情况下,各种单元可实施为由一个或一个以上处理器执行的可编程处理程序。
本文中作为模块、装置或组件而描述的任何特征(包括图形装置100及/或其组成组件)可共同实施于集成式逻辑装置中或单独实施为离散但可互操作的逻辑装置。在各种方面中,所述组件可至少部分地形成为可统称为集成电路装置(例如,集成电路芯片或芯片组)的一个或一个以上集成电路装置。所述电路可提供于单一集成电路芯片装置中或多个可互操作的集成电路芯片装置中,且可用于多种图像、显示、音频或其它多媒体应用程序及装置中的任一者中。在一些方面中,举例来说,所述组件可形成移动装置(例如,无线通信装置手持机)的部分。
如果以软件来实施,则可至少部分地通过计算机可读数据存储媒体来实现所述技术,所述计算机可读数据存储媒体包含具有在由一个或一个以上处理器执行时执行上文所描述的方法中的一者或一者以上的指令的代码。计算机可读媒体可形成计算机程序产品的部分,所述计算机程序产品可包括封装材料。计算机可读媒体可包含例如同步动态随机存取存储器(SDRAM)等随机存取存储器(RAM)、只读存储器(ROM)、非易失性随机存取存储器(NVRAM)、电可擦除可编程只读存储器(EEPROM)、嵌入式动态随机存取存储器(eDRAM)、静态随机存取存储器(SRAM)、快闪存储器、磁性或光学数据存储媒体。
另外或替代地,所述技术可至少部分地通过计算机可读通信媒体来实现,所述计算机可读通信媒体以指令或数据结构的形式载运或传送代码且可由一个或一个以上处理器来存取、读取及/或执行。可将任何连接适当地称为计算机可读媒体。举例来说,如果使用同轴电缆、光纤电缆、双绞线、数字订户线(DSL)或例如红外线、无线电及微波等无线技术而从网站、服务器或其它远程源发射软件,则同轴电缆、光纤电缆、双绞线、DSL或例如红外线、无线电及微波等无线技术包括在媒体的定义中。上述各项的组合也应包括在计算机可读媒体的范围内。所利用的任何软件可由一个或一个以上处理器来执行,例如一个或一个以上DSP、通用微处理器、ASIC、FPGA或其它等效集成或离散逻辑电路。
在本发明中已描述了各种方面。这些及其它方面属于所附权利要求书的范围内。

Claims (40)

1.一种用于显示图形图像的方法,其包含:
由计算装置接收从外部图形装置发送的图形指令,其中所述图形指令由所述外部图形装置执行以显示图形图像;
由所述计算装置接收从所述外部图形装置发送的状态信息,其中所述状态信息是与所述图形指令在所述外部图形装置上的执行相关联;
由所述计算装置执行模拟应用程序,所述模拟应用程序提供模拟环境以模拟所述外部图形装置;及
由所述计算装置在所述模拟应用程序的执行期间在所述模拟环境内根据所述图形指令及所述状态信息显示所述图形图像的表示。
2.根据权利要求1所述的方法,其进一步包含:
针对所述图形图像的多个帧重复所述图形指令的所述接收、所述状态信息的所述接收及所述图形图像的所述表示的所述显示。
3.根据权利要求1所述的方法,其中所述状态信息指示在所述外部图形装置渲染所述图形图像时所述外部图形装置的一个或一个以上状态。
4.根据权利要求1所述的方法,其中所述状态信息包含来自所述外部图形装置的执行所述图形指令的一个或一个以上处理器的状态信息。
5.根据权利要求1所述的方法,其中所述状态信息包含与所述图形指令在所述外部图形装置上的执行相关联的数据。
6.根据权利要求1所述的方法,其进一步包含:
经由所述计算装置所提供的图形用户接口接收用户输入,所述用户输入指定对所述外部图形装置对所述图形指令的所述执行的所请求修改;及
将所述所请求修改发送到所述外部图形装置以供处理。
7.根据权利要求6所述的方法,其进一步包含:
从所述外部图形装置接收多个经更新的图形指令,其中所述经更新的图形指令是与对所述外部图形装置对所述图形指令的所述执行的所述所请求修改相关联;
从所述外部图形装置接收经更新的状态信息,其中所述经更新的状态信息是与对所述外部图形装置对所述图形指令的所述执行的所述所请求修改相关联;及
根据所述经更新的图形指令及所述经更新的状态信息显示所述图形图像的经更新的版本。
8.根据权利要求6所述的方法,其中所述所请求修改包含以下请求中的至少一者:用于停用所述图形指令中的一者或一者以上在所述外部图形装置上的执行的请求、用于在所述外部图形装置上修改所述图形指令中的一者或一者以上的请求,以及用于在所述外部图形装置上修改所述状态信息的请求。
9.根据权利要求1所述的方法,其进一步包含:
显示所述图形指令的视觉表示;及
显示所述状态信息的视觉表示。
10.根据权利要求9所述的方法,其中显示所述图形指令的所述视觉表示包含:
将所述图形指令映射到相关联的图形应用程序编程接口API指令;及
显示所述图形API指令。
11.根据权利要求1所述的方法,其进一步包含:
由所述计算装置提供图形用户接口,所述图形用户接口允许用户修改所述图形指令的视觉表示及所述状态信息的视觉表示中的至少一者。
12.根据权利要求1所述的方法,其中所述图形指令包含根据应用程序编程接口API指令所产生的二进制指令。
13.根据权利要求1所述的方法,其进一步包含:
显示导航控制器;
接收用户输入以与所述导航控制器交互;及
基于所述用户输入而显示所述图形图像的经修改的透视图。
14.根据权利要求1所述的方法,其进一步包含:
接收用户输入以修改所述图形图像;及
根据所述用户输入显示所述图形图像的经修改的版本。
15.根据权利要求1所述的方法,其进一步包含:
从所述外部图形装置接收性能信息,其中所述性能信息是与所述图形指令在所述外部图形装置上的执行相关联;及
分析所述性能信息以识别在所述外部图形装置执行所述图形指令期间所述外部图形装置上的一个或一个以上性能问题。
16.根据权利要求15所述的方法,其中所述性能信息包含从在所述外部图形装置上执行所述图形指令的一个或一个以上处理器所搜集的性能量度。
17.根据权利要求16所述的方法,其中分析所述性能信息包含识别在所述图形指令的执行期间所述外部图形装置的所述处理器中的一者或一者以上中的减小的性能。
18.根据权利要求15所述的方法,其进一步包含:
经由所述计算装置所提供的图形用户接口接收用户输入,所述用户输入指定对所述外部图形装置对所述图形指令的所述执行的所请求修改;
将所述所请求修改发送到所述外部图形装置以供处理;
从所述外部图形装置接收多个经更新的图形指令,其中所述经更新的图形指令是与对所述外部图形装置对所述图形指令的所述执行的所述所请求修改相关联;
从所述外部图形装置接收经更新的性能信息,其中所述经更新的性能信息是与对所述外部图形装置对所述图形指令的所述执行的所述所请求修改相关联;及
分析所述经更新的性能信息以确定所述性能问题中的一者或一者以上是否已得到解决。
19.根据权利要求18所述的方法,其中所述所请求修改包含以下请求中的至少一者:用于停用所述图形指令中的一者或一者以上在所述外部图形装置上的执行的请求、用于在所述外部图形装置上修改所述图形指令中的一者或一者以上的请求,以及用于在所述外部图形装置上修改所述状态信息的请求。
20.根据权利要求18所述的方法,其进一步包含:
根据所述经更新的图形指令及所述经更新的性能信息显示所述图形图像的经更新的表示。
21.一种用于显示图形图像的装置,其包含:
用于接收从外部图形装置发送的图形指令的装置,其中所述图形指令由所述外部图形装置执行以显示图形图像;
用于接收从所述外部图形装置发送的状态信息的装置,其中所述状态信息是与所述图形指令在所述外部图形装置上的执行相关联;
用于执行模拟应用程序的装置,所述模拟应用程序提供模拟环境以模拟所述外部图形装置;
用于在所述模拟应用程序的执行期间在所述模拟环境内根据所述图形指令及所述状态信息显示所述图形图像的表示的装置。
22.根据权利要求21所述的装置,其进一步包含:
用于针对所述图形图像的多个帧重复所述用于接收所述图形指令的装置、所述用于接收所述状态信息的装置及所述用于显示所述图形图像的装置的装置。
23.根据权利要求21所述的装置,其中所述状态信息指示在所述外部图形装置渲染所述图形图像时所述外部图形装置的一个或一个以上状态。
24.根据权利要求21所述的装置,其中所述状态信息包含来自所述外部图形装置的执行所述图形指令的一个或一个以上处理器的状态信息。
25.根据权利要求21所述的装置,其中所述状态信息包含与所述图形指令在所述外部图形装置上的执行相关联的数据。
26.根据权利要求21所述的装置,其进一步包含:
用于经由图形用户接口接收用户输入的装置,所述用户输入指定对所述外部图形装置对所述图形指令的所述执行的所请求修改;及
用于将所述所请求修改发送到所述外部图形装置以供处理的装置。
27.根据权利要求26所述的装置,其进一步包含:
用于从所述外部图形装置接收多个经更新的图形指令的装置,其中所述经更新的图形指令是与对所述外部图形装置对所述图形指令的所述执行的所述所请求修改相关联;
用于从所述外部图形装置接收经更新的状态信息的装置,其中所述经更新的状态信息是与对所述外部图形装置对所述图形指令的所述执行的所述所请求修改相关联;及
用于根据所述经更新的图形指令及所述经更新的状态信息显示所述图形图像的经更新的版本的装置。
28.根据权利要求26所述的装置,其中所述所请求修改包含以下请求中的至少一者:用于停用所述图形指令中的一者或一者以上在所述外部图形装置上的执行的请求、用于在所述外部图形装置上修改所述图形指令中的一者或一者以上的请求,以及用于在所述外部图形装置上修改所述状态信息的请求。
29.根据权利要求21所述的装置,其进一步包含:
用于显示所述图形指令的视觉表示的装置;及
用于显示所述状态信息的视觉表示的装置。
30.根据权利要求29所述的装置,其中显示所述图形指令的所述视觉表示包含:
用于将所述图形指令映射到相关联的图形应用程序编程接口API指令的装置;及
用于显示所述图形API指令的装置。
31.根据权利要求21所述的装置,其进一步包含:
用于提供图形用户接口的装置,所述图形用户接口允许用户修改所述图形指令的视觉表示及所述状态信息的视觉表示中的至少一者。
32.根据权利要求21所述的装置,其中所述图形指令包含根据应用程序编程接口API指令所产生的二进制指令。
33.根据权利要求21所述的装置,其进一步包含:
用于显示导航控制器的装置;
用于接收用户输入以与所述导航控制器交互的装置;及
用于基于所述用户输入而显示所述图形图像的经修改的透视图的装置。
34.根据权利要求21所述的装置,其进一步包含:
用于接收用户输入以修改所述图形图像的装置;及
用于根据所述用户输入显示所述图形图像的经修改的版本的装置。
35.根据权利要求21所述的装置,其进一步包含:
用于从所述外部图形装置接收性能信息,其中所述性能信息是与所述图形指令在所述外部图形装置上的执行相关联的装置;及
用于分析所述性能信息以识别在所述外部图形装置执行所述图形指令期间所述外部图形装置上的一个或一个以上性能问题的装置。
36.根据权利要求35所述的装置,其中所述性能信息包含从在所述外部图形装置上执行所述图形指令的一个或一个以上处理器所搜集的性能量度。
37.根据权利要求36所述的装置,其中分析所述性能信息包含识别在所述图形指令的执行期间所述外部图形装置的所述处理器中的一者或一者以上中的减小的性能。
38.根据权利要求35所述的装置,其进一步包含:
用于经由图形用户接口接收用户输入的装置,所述用户输入指定对所述外部图形装置对所述图形指令的所述执行的所请求修改;
用于将所述所请求修改发送到所述外部图形装置以供处理的装置;
用于从所述外部图形装置接收多个经更新的图形指令的装置,其中所述经更新的图形指令是与对所述外部图形装置对所述图形指令的所述执行的所述所请求修改相关联;
用于从所述外部图形装置接收经更新的性能信息的装置,其中所述经更新的性能信息是与对所述外部图形装置对所述图形指令的所述执行的所述所请求修改相关联;及
用于分析所述经更新的性能信息以确定所述性能问题中的一者或一者以上是否已得到解决的装置。
39.根据权利要求38所述的装置,其中所述所请求修改包含以下请求中的至少一者:用于停用所述图形指令中的一者或一者以上在所述外部图形装置上的执行的请求、用于在所述外部图形装置上修改所述图形指令中的一者或一者以上的请求,以及用于在所述外部图形装置上修改所述状态信息的请求。
40.根据权利要求38所述的装置,其进一步包含:
用于根据所述经更新的图形指令及所述经更新的性能信息显示所述图形图像的经更新的表示的装置。
CN200980129094.XA 2008-07-25 2009-07-24 在图形图像的视觉创建期间的性能分析 Expired - Fee Related CN102105868B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US8365608P 2008-07-25 2008-07-25
US61/083,656 2008-07-25
US12/507,732 US8587593B2 (en) 2008-07-25 2009-07-22 Performance analysis during visual creation of graphics images
US12/507,732 2009-07-22
PCT/US2009/051771 WO2010011979A2 (en) 2008-07-25 2009-07-24 Performance analysis during visual creation of graphics images

Publications (2)

Publication Number Publication Date
CN102105868A CN102105868A (zh) 2011-06-22
CN102105868B true CN102105868B (zh) 2015-03-04

Family

ID=41146500

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200980129094.XA Expired - Fee Related CN102105868B (zh) 2008-07-25 2009-07-24 在图形图像的视觉创建期间的性能分析

Country Status (7)

Country Link
EP (1) EP2321730B1 (zh)
JP (1) JP5450624B2 (zh)
KR (2) KR101431311B1 (zh)
CN (1) CN102105868B (zh)
CA (1) CA2730291A1 (zh)
TW (1) TW201015485A (zh)
WO (1) WO2010011979A2 (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8786634B2 (en) * 2011-06-04 2014-07-22 Apple Inc. Adaptive use of wireless display
CN103064644B (zh) * 2011-10-21 2016-03-02 联想(北京)有限公司 一种图像显示方法、显卡及电子设备
CN103713891B (zh) * 2012-10-09 2017-11-24 阿里巴巴集团控股有限公司 一种在移动设备上进行图形渲染的方法和装置
EP2745892B1 (en) * 2012-12-21 2018-12-12 Dassault Systèmes Partition of a 3D scene into a plurality of zones processed by a computing resource
CN103974062B (zh) * 2013-06-24 2018-10-26 福州瑞芯微电子股份有限公司 图像显示装置、图像显示系统和图像显示方法
WO2016095091A1 (en) * 2014-12-15 2016-06-23 Intel Corporation Instrumentation of graphics instructions
KR102644276B1 (ko) 2016-10-10 2024-03-06 삼성전자주식회사 그래픽 처리 장치 및 방법

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1270366A (zh) * 1999-03-31 2000-10-18 国际商业机器公司 使用捕捉的图形硬件指令的图形渲染方法和系统
US7095416B1 (en) * 2003-09-22 2006-08-22 Microsoft Corporation Facilitating performance analysis for processing

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000020354A (ja) * 1998-07-07 2000-01-21 Hitachi Ltd 実行ステップ数の編集装置
JP2001191274A (ja) * 1999-12-30 2001-07-17 Sony Corp データ保持装置、ロボット装置、変更装置及び変更方法
US8589142B2 (en) * 2005-06-29 2013-11-19 Qualcomm Incorporated Visual debugging system for 3D user interface program
US7478187B2 (en) * 2006-03-28 2009-01-13 Dell Products L.P. System and method for information handling system hot insertion of external graphics

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1270366A (zh) * 1999-03-31 2000-10-18 国际商业机器公司 使用捕捉的图形硬件指令的图形渲染方法和系统
US7095416B1 (en) * 2003-09-22 2006-08-22 Microsoft Corporation Facilitating performance analysis for processing

Also Published As

Publication number Publication date
EP2321730B1 (en) 2018-04-11
JP2011529235A (ja) 2011-12-01
JP5450624B2 (ja) 2014-03-26
KR101431311B1 (ko) 2014-09-19
TW201015485A (en) 2010-04-16
CA2730291A1 (en) 2010-01-28
KR20110050482A (ko) 2011-05-13
CN102105868A (zh) 2011-06-22
WO2010011979A3 (en) 2010-04-15
WO2010011979A2 (en) 2010-01-28
KR20130043241A (ko) 2013-04-29
EP2321730A2 (en) 2011-05-18

Similar Documents

Publication Publication Date Title
CN102449665B (zh) 显示经渲染的图形元素的性能度量的视觉表示
US8587593B2 (en) Performance analysis during visual creation of graphics images
CN102105868B (zh) 在图形图像的视觉创建期间的性能分析
CN102089786B (zh) 在性能分析期间将图形指令映射到相关联的图形数据的方法和设备
CN102663799B (zh) 用于利用创作系统创建可播放场景的方法和装置
JP2022019748A (ja) 複合現実において動的仮想コンテンツを生成するデバイスおよび方法
CN101784980A (zh) 遥控操作装置及遥控操作方法
JP5242788B2 (ja) グラフィックス・イメージングのためのパーティション・ベースのパフォーマンス解析
WO2024139387A1 (zh) 一种数字孪生体的加载方法及相关装置
CN117788609A (zh) 界面图元的拾取方法、装置、设备及存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20150304

Termination date: 20180724