CN101360007B - 用于远程图形装置的分析和性能调整的客户端服务器系统 - Google Patents
用于远程图形装置的分析和性能调整的客户端服务器系统 Download PDFInfo
- Publication number
- CN101360007B CN101360007B CN2008101312109A CN200810131210A CN101360007B CN 101360007 B CN101360007 B CN 101360007B CN 2008101312109 A CN2008101312109 A CN 2008101312109A CN 200810131210 A CN200810131210 A CN 200810131210A CN 101360007 B CN101360007 B CN 101360007B
- Authority
- CN
- China
- Prior art keywords
- application program
- destination apparatus
- computer system
- host computer
- graphics application
- 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
Links
- 238000004891 communication Methods 0.000 claims abstract description 32
- 238000000034 method Methods 0.000 claims description 28
- 230000005540 biological transmission Effects 0.000 claims description 11
- 238000012545 processing Methods 0.000 claims description 6
- 238000011161 development Methods 0.000 claims description 4
- 238000011056 performance test Methods 0.000 claims 4
- 238000011156 evaluation Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 230000000007 visual effect Effects 0.000 description 6
- 230000008859 change Effects 0.000 description 5
- 238000004040 coloring Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 238000012544 monitoring process Methods 0.000 description 5
- 238000009877 rendering Methods 0.000 description 5
- 238000012360 testing method Methods 0.000 description 5
- 230000003993 interaction Effects 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 3
- 238000001914 filtration Methods 0.000 description 3
- 238000005286 illumination Methods 0.000 description 3
- 238000002955 isolation Methods 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000002474 experimental method Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 241000196324 Embryophyta Species 0.000 description 1
- 241000169594 Paropsia Species 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000003745 diagnosis Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000001915 proofreading effect Effects 0.000 description 1
- 238000004064 recycling Methods 0.000 description 1
- 238000003860 storage Methods 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
- Processing Or Creating Images (AREA)
- Image Processing (AREA)
Abstract
本发明的实施例提供用于对在远程装置上运行的图形应用程序进行性能分析和调试的数据通信协议和客户端服务器结构。所述远程装置可以是手持型视频游戏控制台、移动电话或收敛装置,但也可以是个人计算机系统。图形应用程序调试器可包含主机组件和目标组件。所述主机组件在主机系统上执行,且向开发者呈现调试界面。所述目标组件可记录与所述目标装置上的图形管线的性能有关的数据,且通过通信链路将此数据传输回到所述主机系统。可包含所述目标组件作为图形装置驱动器的装有仪表的版本的一部分。
Description
技术领域
本发明的实施例大体上涉及计算机图形,且更具体地说,涉及用于对在远程装置上执行的图形应用程序进行分析和性能调整的通信协议和客户端服务器系统。
背景技术
术语渲染指代由计算机软件和硬件执行以形成用于描绘物体或场景的计算机产生图像的过程。通常,图形硬件包含图形管线,其经配置以通过对指定用于每一帧的一组图元(graphics primitive)执行物体几何形状、顶点和光栅操作而产生连续帧。图形管线通常是高度可配置的。举例来说,图形管线可配置有(并不限于)不同着色器程序、照明常数和纹理映射。硬件驱动器在一块特定图形硬件与图形API所提供的呼叫(call)之间提供接口。为了形成帧,图形应用程序调用由图形API所提供的“绘制”呼叫。广泛使用的图形API包含由克罗诺斯集团(Khronos group)配销的OpenGLAPI和由微软(Microsoft)配销的Direct3DAPI。
用于调试图形应用程序的典型循环包含编译和运行所述应用程序。当应用程序正在运行时,开发者在由硬件和软件渲染的帧中寻找任何异常或视觉假象。视觉假象可包含帧的具有与开发者所希望的外观不同的外观的元素,且非视觉异常包含图形应用程序的不良性能,例如较低的帧渲染率。这些问题可能会由于(但不限于)应用程序设定了错误的渲染状态、使用了非最优纹理或错误的纹理,或使用了供应给绘制呼叫的错误参数而发生。
应用程序开发者通常执行简单的实验来诊断和解决这些类型的视觉假象和性能问题。举例来说,开发者可通过调校程序源代码、调节渲染状态,或改变图形管线的参数来对图形应用程序进行实验。开发者接着运行所述应用程序以观察结果。尽管此方法可能有效,但其通常变成较麻烦的过程。此外,当试图诊断和校正关于特定目标平台(例如,嵌入型或手持型装置(例如,手持型视频游戏控制台、移动电话或收敛装置))的问题时,此过程甚至可能会变得更复杂,因为必须将图形应用程序部署到目标装置。
为了解决由纯专门方法所导致的这些问题,可利用图形应用程序调试器。然而,这些应用程序通常与图形应用程序在同一系统上执行。然而,对于手持型装置上的图形应用程序来说,由于这些装置的屏幕尺寸的缘故,此方法充其量是不实用的。举例来说,当前可用的大多数手持型视频游戏装置包含320×240或640×480像素的屏幕分辨率。因此,屏幕显示器可能过小,以致无法向开发者提供有用的调试界面。此外,手持型装置可能不具有与图形应用程序并排运行图形应用程序调试器所要求的处理能力(或多任务能力)。
如上文说明,此项技术中仍需要用于远程图形装置的分析和性能调整的客户端服务器系统。
发明内容
本发明的实施例提供用于对在远程装置上运行的图形应用程序进行性能分析和调试的数据通信协议和客户端服务器结构。远程装置可以是手持型视频游戏控制台、移动电话或收敛装置(convergence device),但也可以是个人计算机系统。在一个实施例中,图形应用程序调试器可包含主机组件和目标组件。主机组件在主机系统上执行,且向开发者呈现调试界面。所述界面可提供与目标装置上的图形应用程序和图形管线的执行状态和性能有关的数据集合。
本发明的一个实施例陈述用于调试和性能调整经配置以在目标装置上执行的图形应用程序的方法。所述方法大体上包含:在目标装置与执行图形应用程序调试器的主机组件的主机系统之间建立通信链路;以及调用目标装置上的图形应用程序。所述图形应用程序经配置以调用由装有仪表的驱动器(instrumented driver)针对目标装置上所存在的图形管线而提供的图形命令于,且所述装有仪表的驱动器包含图形应用程序调试器的目标组件,其经配置以记录与在目标装置上执行图形应用程序有关的数据。所述方法还包含确定目标组件的第一操作状态,且基于目标组件的第一操作状态,通过通信链路将与在目标装置上执行图形应用程序有关的数据的一部分传输到主机组件。
附图说明
以可更详细地了解本发明的上述特征的方式,可参考实施例更具体地描述上文简要概述的本发明,随附图式中说明了所述实施例中的一些实施例。然而,应注意,随附图式仅说明本发明的典型实施例,且因此,不应被视为限制本发明的范围,因为本发明可承认其它同等有效的实施例。
图1为根据本发明一个实施例的用于分析在远程装置上执行的图形应用程序的客户端服务器环境的概念性图解。
图2为说明根据本发明一个实施例的供主机系统用来调试和调整在远程装置上运行的图形应用程序的通信协议的状态图。
图3说明根据本发明一个实施例的执行图形应用程序的目标系统的通信协议的状态图,所述图形应用程序由在主机系统上运行的图形应用程序调试器来调试。
图4为说明根据本发明一个实施例的供主机系统调试和调整在远程图形装置上运行的图形应用程序的方法的流程图。
图5到图7为根据本发明一个实施例的在主机系统上运行的图形应用程序调试器的用户界面的概念性图解,所述主机系统用来调试和调整在目标装置上运行的图形应用程序。
具体实施方式
本发明的实施例提供用于对在远程装置上运行的图形应用程序进行性能分析和调试的数据通信协议和客户端服务器结构。所述远程装置可以是手持型视频游戏控制台、移动电话或收敛装置,但也可以是个人计算机系统。在一个实施例中,图形应用程序调试器可包含主机组件和目标组件。主机组件在主机系统上执行,且向开发者呈现调试界面。所述界面可提供与目标装置上的图形应用程序和图形管线的执行状态和性能有关的数据集合。
在目标装置上运行的目标组件可记录与图形管线的性能有关的数据,且通过通信链路将此数据传输回到主机系统。举例来说,目标装置可包含图形装置驱动器的装有仪表的版本,其经配置以与图形应用程序调试器的主机组件通信。在一个实施例中,可在图形应用程序在目标装置上执行的任何时间,在主机系统与目标装置之间建立连接。一旦建立所述连接,开发者就可在主机装置上观看与目标装置上的图形管线的状态和应用程序的性能有关的信息流。此外,开发者可与用户界面互动,以便在实时流模式与调试模式和性能分析模式之间转换。
接着,可使用性能工具、图形和实验来向下钻取(drill down)和密切审查在渲染给定帧时图形管线中已发生的情况。开发者可使用调试和性能分析模式来检查和评估由目标装置上的图形管线所渲染的帧的多个方面。通过使用此信息,开发者可通过识别图形管线中的最慢进程和调试功能问题来改进图形应用程序的性能。因此,有利的是,通过提供用于分析和性能调整的客户端服务器系统,本发明的实施例允许开发者隔离和优化目标装置上的图形管线的性能瓶颈。
图1为根据本发明一个实施例的用于分析在远程装置上执行的图形应用程序的客户端服务器环境100的概念性图解。包括图1中所说明的客户端服务器环境100以代表现有计算机系统,例如,台式计算机、服务器计算机、笔记型计算机、平板计算机、手持型装置等。然而,本文中所描述的软件应用程序并不局限于任何特定的计算系统或装置,且可适合于在新型计算系统变得可用时利用新型计算系统。所属领域的技术人员将认识到,图1中所展示的组件被简化,以便突出本发明的方面,且典型主机系统105和目标装置125可包含多种额外组件。
另外,系统100中所说明的软件应用程序可经实施以在单个计算机系统上或在通过计算机网络(例如,局域网,或例如因特网的大型广域网)进行通信的分布式系统上执行。而且,可将本发明的实施例提供为存储在计算机可读媒体上的应用程序,所述计算机可读媒体例如是CD-ROM、DVD-ROM、快闪存储器模块,或其它有形存储媒体。
如图所示,客户端服务器环境100包含主机系统105、具有显示器屏幕130的目标装置125和通信链路120。主机系统105是计算机系统,其经配置以执行图形应用程序调试器的主机组件1101。用户界面115可向开发者提供例如窗口、菜单按钮、功能区(ribbon)、对话框等图形元素的任何组合,所述图形元素用来分析和调试在目标装置125上运行的图形应用程序160。用户界面115可允许开发者起始调试会话并执行多种调试功能。在一个实施例中,用户界面115可显示在目标装置125上渲染的帧的图像,以及图形、图、表的半透明覆盖,所述图形、图、表呈现与在目标装置125上运行的图形应用程序160的性能有关的数据。
主机系统105可经配置以通过通信链路120与目标装置125通信。举例来说,主机系统105可经配置以通过TCP/IP网络与目标装置125通信,或可具有例如USB、火线(Firewire)或串行连接的直接连接。当然,可使用其它网络协议和/或连接标准。此外,目标装置和主机系统可以是同一机器,在这种状况下,通信链路可以是过程间消息传递系统(inter-process messaging system)。在一个实施例中,主机系统105使用通信协议来与目标装置125进行多种调试交易。交易可包含从主机系统105发送到目标装置125的命令,以便控制图形处理单元140或图形管线145的配置或状态。举例来说,通过通信链路120发送的命令可允许开发者改变图形应用程序160的动画速度、选择个别动画帧来进行详细评估,剔除掉指定批次的图元,临时更改或停用图形API的状态元素(例如,照明)。其它交易可包含使性能计数器和图形数据从目标装置125流到主机系统105(作为实时流模式的一部分),以及将动画帧的管线状态和帧数据从目标装置125发送到主机系统105(作为调试或性能分析模式的一部分)。
目标装置125可以是任何类型的经配置以执行图形应用程序160的装置。目标装置125的实例包含手持型视频游戏控制台、手持型媒体播放器、移动电话或将这些类型的装置组合在单个实体封装中的收敛装置。当然,目标装置125也可以是个人计算机系统。目标装置125也可以是具有原型装置的所有硬件组件的开发板(development board)。如图所示,目标装置105包含显示器屏幕130、帧缓冲器135、图形处理单元(GPU)140、装有仪表的驱动器150、CPU 155和图形应用程序160。
图形应用程序160代表在CPU 155上执行的软件应用程序。举例来说,图形应用程序160可以是在手持型游戏装置上运行的视频游戏。中央处理器(CPU)155是执行图形应用程序160的处理器。在一个实施例中,图形应用程序160可调用经配置以执行具体图形渲染任务的功能,所述任务通常由图形API(例如,OpenGL API)定义。由图形API定义的一个众所周知的图形任务是对“绘制”操作的呼叫。当图形应用程序160调用由图形API所提供的功能(例如,绘制呼叫)时,装有仪表的驱动器150可经配置以执行GPU 140上的命令。更具体地说,装有仪表的驱动器150可针对目标装置125的具体图形硬件而实施由图形API提供的标准化接口的功能性。
作为说明,装有仪表的图形驱动器150包含图形应用程序调试器的目标组件1102。在一个实施例中,目标组件1102提供主机组件1101的配对物。除了实施图形API的功能以外,装有仪表的驱动器150可包含用于监视和记录与GPU 140的具体组件有关的性能和状态数据的代码指令。举例来说,装有仪表的驱动器150可包含用于输出关于图形管线145的操作的状态数据和性能信息的代码指令。
图形管线145可提供经配置以执行3D图形功能的着色单元集合。如所已知,这通常包含用于计算(但不限于)照明效果、物体变换和3D运动的功能。可存在于图形管线145上的常见着色器单元包含顶点着色器单元、几何形状着色器单元、像素着色器单元和光栅操作单元。如所已知,图形管线的着色单元可经配置以从一组图元开始连续地处理图形数据,且最终确定显示器屏幕130上的每一图素(即,每一像素)的色彩和强度值。通常,计算像素值并将其存储在帧缓冲器135中,直到产生完整图像并将其输出到显示器屏幕130为止。
图2说明根据本发明一个实施例的供执行图形应用程序的目标装置使用的通信协议的状态图200,所述图形应用程序由在主机系统上运行的图形应用程序调试器来调试。如图所示,状态图200包含目标装置状态205到250的集合,和由链接状态205到250的定向箭头所表示的状态之间的一组转换。侦听状态205对应于图形应用程序可在目标装置上运行,但目标装置与运行图形调试应用程序的主机系统之间当前未建立连接的状态。在此状态下,装有仪表的驱动器可侦听来自主机系统的命令。目标装置可在从主机系统接收到关于建立连接的命令时从状态205转换到建立连接状态210。在状态210下,目标装置可与主机系统进行“握手”操作。举例来说,在一个实施例中,目标装置可通过通信链路发送四字节(或其它大小)值,以便识别目标装置的类型、图形管线的容量、在目标装置上运行的装有仪表的驱动器的版本,和其它相似类型的信息。目标装置可保持在状态210,直到从主机系统接收到响应消息从而完成“握手”为止。如果发生错误,那么目标装置可转换到异常恢复状态215,且接着返回到状态205和210中的一者。
一旦在目标装置与主机系统之间建立了连接,目标装置就可转换到实时应用程序监视状态225。当在状态225下时,目标装置可使用GPU和图形管线来执行图形应用程序并渲染帧。同时,包含在装有仪表的驱动器中的图形应用程序调试器的目标组件可记录与GPU和图形管线有关的性能和状态数据。在一个实施例中,装有仪表的驱动器可经配置以通过与主机系统建立的通信链路来传输性能数据。通常,当在状态225下时,开发者与在目标装置上运行的图形应用程序互动,直到识别出展现不良性能或不需要的视觉假象的帧为止。此时,开发者可将目标装置的状态从状态225转换到初始化帧-调试状态(initialize frame-debug state)220或初始化性能-勾勒状态(initializeperformance-profiling state)230。
在帧-调试状态220下,装有仪表的驱动器可经配置以挂起在目标装置上运行的应用程序和在图形管线上执行的处理。目标装置可响应于从主机系统接收到关于转换到状态220的命令而转换到状态220。目标装置可从状态220转换到发送帧状态240,在所述发送帧状态240下,装有仪表的驱动器将关于选定帧的信息传输到在主机系统上运行的图形应用程序调试器。举例来说,装有仪表的驱动器可传输纹理缓冲器的内容、过滤参数的值、供应到用以绘制帧的绘制呼叫的参数、供应到图形管线的几何形状和顶点数据等。一旦被传输,开发者就可检查和评估与应用程序被挂起的选定帧有关的多种元素。
在性能-勾勒状态230下,装有仪表的驱动器也可挂起在目标装置上运行的应用程序。目标装置可从状态230转换到发送帧状态245,在所述发送帧状态245下,装有仪表的驱动器执行一系列测试,以便针对当前帧中的每一绘制呼叫而询问各种驱动器和GPU性能计数器,且将此信息传输到在主机系统上运行的图形应用程序调试器。
在传输帧调试数据或性能勾勒数据之后,目标装置可从状态240和245转换到闲置状态250。目标装置可保持在此状态,直到从在主机系统上运行的图形应用程序调试器接收到关于转换回到初始化帧-调试状态220、实时应用程序监视状态225或初始化性能-勾勒状态230中的一者的命令为止。
图3说明根据本发明一个实施例的供主机系统使用的通信协议的状态图300,所述主机系统经配置以调试和调整在远程装置上运行的图形应用程序。从主机系统的角度来看,状态图300对应于状态图200。主机系统发送由目标装置接收的命令,且主机系统接收由目标装置发送的响应和数据。如图所示,状态图300包含主机系统状态305到350的集合,和由定向箭头表示的状态305到350之间的一组转换。打开连接状态305对应于主机系统将命令发送到目标装置(所述目标装置接着处于侦听状态205)的状态。主机系统装置可从状态305转换到建立连接状态310。在此状态下,主机系统可参与上文所提到的“握手”操作的主机系统部分。举例来说,在一个实施例中,主机系统可通过通信链路发送四字节(或其它大小)值,以便向目标装置提供与在主机系统上运行的图形应用程序调试器的能力有关的信息。如果发生错误,那么主机系统可转换到异常恢复状态315,并返回到状态305和310中的一者。
一旦在目标装置与主机系统建立了连接,主机系统就可转换到性能数据接收状态325(对应于目标装置的实时监视状态225)。当在状态325下时,主机系统可通过通信链路接收与目标装置的性能有关的数据。主机系统可用突出应用程序性能的不同方面的图形、图或表的任何组合来将此数据呈现给开发者。在一个实施例中,主机系统上的图形应用程序调试器可使用时序图来展示花在针对每一帧的各种任务上的时间量。此信息可包含(例如)每帧的毫秒数、CPU或GPU处于闲置的时间百分比、存储器使用率、绘制呼叫的数目、开销以及图形管线的着色单元为现用或闲置的时间量等。通常,当在状态325下时,开发者可与在目标装置上运行的图形应用程序互动,直到识别出展现不良性能或不需要的视觉假象的帧为止。
在状态320(对应于目标装置的状态220和240)下,主机系统可从目标装置接收用于选定帧的调试信息。举例来说,如所提到,装有仪表的驱动器可向主机系统发送纹理缓冲器的内容、过滤参数的值、供应到用以绘制帧的绘制呼叫的参数、供应到图形管线的几何形状和顶点数据等。一旦被传输,开发者就可使用在主机系统上运行的图形应用程序调试器来评估选定帧的元素。
在状态330(对应于目标装置的状态230和245)下,主机系统可从目标装置接收与目标装置的经勾勒的性能特征有关的勾勒信息。在接收到帧调试数据或性能勾勒数据之后,主机系统可从状态320和330转换到闲置状态350。在状态350下,通信链路保持为已建立和可用,但不再有命令从主机系统发送到目标装置。主机系统可保持在状态350,直到开发者使用图形应用程序调试器来发送关于转换回到状态320、325和330中的一者的命令为止。
图4为说明根据本发明一个实施例的供主机系统调试和调整在远程图形装置上运行的图形应用程序的方法400的流程图。所属领域的技术人员将了解,尽管结合图1的系统来描述所述方法,但经配置以便以任何次序执行方法400的步骤的任何系统都在本发明的范围内。
在步骤405处,开发者可起始主机系统上的调试应用程序。一旦被起始,在步骤410处,调试应用程序就可开始与目标装置建立连接。举例来说,主机系统上的调试应用程序可通过通信链路发送关于开始上文提到的“握手”过程并等待来自目标装置的响应的命令。在步骤415处,开发者可起始目标装置上的图形应用程序。
在建立了连接的情况下,可使用在主机系统上运行的图形调试应用程序来调试在目标装置上运行的应用程序。因此,在步骤420处,包含步骤420到460的回路开始,其中目标装置的装有仪表的驱动器基于开发者所选择的操作模式而将关于正被调试的应用程序的数据发送到主机系统。在步骤420处,目标装置识别调试器的操作模式。在一个实施例中,当最初起始时,图形调试应用程序在实时流模式下开始,直到开发者转换到另一模式为止。在步骤430处,如果实时监视模式是现用的,那么在步骤435处,当图形应用程序在目标装置上执行时,装有仪表的驱动器传输管线状态数据。举例来说,如所陈述,装有仪表的驱动器可将关于每帧的毫秒数、CPU或GPU处于闲置的时间百分比、存储器使用率、绘制呼叫的数目、开销,和图形管线的着色单元处于现用或闲置的时间量等的数据发送到主机系统。主机系统接收此信息,且可显示突出应用程序性能的不同方面的图形、图或表的任何组合。另外,当在实时监视模式下时,开发者可能能够控制在目标装置上运行的图形应用程序的一些方面。举例来说,开发者可改变图形应用程序的动画速度,临时更改或停用图形API的状态元素(例如,照明)等。
在步骤460处,一旦开发者对帧进行识别以便详细评估,开发者就可使用图形应用程序调试器来将模式改变命令发送到目标装置。方法400接着返回到步骤420,在步骤420中,目标装置识别调试器的操作模式。
在步骤440处,如果帧-调试模式是现用的,那么目标装置上的装有仪表的驱动器可产生当前选定帧的帧数据并将其发送到主机系统。如所陈述,在帧-调试模式下,装有仪表的驱动器可传输纹理缓冲器的内容、过滤参数的值、供应到用以绘制帧的绘制呼叫的参数、供应到图形管线的几何形状和顶点数据、帧缓冲器内容等。
或者,在步骤450处,如果开发者已选择了勾勒模式,那么在步骤455处,目标装置上的装有仪表的驱动器可产生当前选定帧的勾勒数据并将其发送到主机系统。如所陈述,在性能勾勒模式下,装有仪表的驱动器可执行一系列测试,以便询问图形管线的性能。方法400可从步骤435、445和455转换到步骤460,直到检测到后续模式改变为止。
图5到图7为根据本发明一个实施例的在主机系统上运行的图形应用程序调试器的用户界面的概念性图解,所述主机系统用来调试和调整在目标装置上运行的图形应用程序。更具体地说,图5说明在主机系统上运行的图形应用程序调试器的实时监视模式(图3的状态325)的界面的示范性视图。如图所示,界面500包括状态框505,其指示在特定类型的目标装置上运行的图形应用程序的名称。状态框500还指示连接已建立,且图形应用程序调试器当前处于实时监视模式。可使用按钮集合510来增加或减小目标装置上的动画速度,暂停目标装置上的渲染,或转换到其它模式。
同样如图所示,时序图515和条形图520呈现目标装置上的图形管线的性能的视觉指示。作为说明,时序图510展示CPU和GPU利用的时序图以及帧渲染率。条形图520提供关于目标装置上正使用多少视频存储器和系统存储器的指示。当然,时序图515和条形图520的内容提供可将何种信息从目标装置传送并呈现在界面500上的实例,且可在界面500上呈现由目标装置执行的实时渲染的其它方面。另外,界面500可允许开发者修改目标装置的渲染状态,以便隔离图形管线的部分,或评估渲染性能的不同方面。举例来说,开发者可通过强制GPU使用2×2纹理来测试纹理带宽瓶颈,通过使用1×1剪取矩形(scissor rectangle)剪裁所有光栅化和像素处理来隔离顶点单元,或通过将关于告知装有仪表的驱动器忽略所有绘制呼叫的命令发送到装有仪表的驱动器来评估驱动器开销。当然,可使用其它调试技术。
如所描述,开发者可与在目标装置上运行的图形应用程序互动,直到识别出展现不良性能或不需要的视觉假象的帧为止。当识别出此类帧时,开发者可使图形应用程序调试器转换到调试模式,如上文所描述。
图6说明在主机系统上运行的图形应用程序调试器的帧-调试模式(图3的状态320)的界面的示范性视图。如图所示,界面600包含纹理显示区605、渲染帧显示区610、滑动条615以及按钮620和625。渲染帧显示区610展示当执行每一绘制呼叫时渲染帧的状态。可使用滑动条615来步进通过用来形成所述帧的每一绘制呼叫。对于给定的绘制呼叫来说,基于滑动条615的位置而确定,纹理显示区605可显示目标装置上的针对特定绘制呼叫而设置的纹理单元的内容。可使用按钮620和625来转换到其它调试模式。当然,界面600提供图形应用程序调试器上的界面的实例,且布局和内容可适合于适应开发者在特定状况下的需要。
图7说明在主机系统上运行的图形应用程序调试器的性能-勾勒模式(图3的状态330)的界面700的示范性视图。如所陈述,当主机系统使目标装置转换到勾勒模式时,装有仪表的驱动器执行一系列测试,以便针对当前帧中的每一绘制呼叫而询问各种驱动器和GPU性能计数器。在一个实施例中,可将此信息传输到主机系统,以便在图形应用程序调试器所提供的界面上显示。
作为说明,界面700展示在装有仪表的驱动器执行一系列测试,以便针对当前帧中的每一绘制呼叫而询问各种驱动器和GPU性能计数器之后,从装有仪表的驱动器获得的数据。如图所示,界面700由渲染帧显示区710、滑动条715、单元利用率图720以及按钮725和730组成。渲染帧显示区710展示当执行每一绘制呼叫时渲染帧的状态。滑动条715允许开发者有效地导航通过选定帧的绘制呼叫。作为说明,单元利用率图720展示图形管线的主要单元的单元利用率条,所述主要单元在此情况下是几何形状着色器单元、顶点着色器单元和光栅操作单元。如图所示,对于每一此类单元来说,最长的条表示所述单元对于作为整体的所述帧的利用率。接下来的条展示所述单元对于相关绘制呼叫群组的利用率。举例来说,可针对利用失色着色器程序(shame shaderprogram)、光栅操作状态和渲染目标的所有绘制呼叫,对性能数据进行分组。每一单元的最短的条表示所述单元对当前绘制呼叫的利用率,如滑动条715所指定。可使用按钮725和730来转换到其它调试模式。当然,界面700提供图形应用程序调试器上的界面的实例,且布局和内容可适合于适应开发者在特定状况下的需要。举例来说,其它性能视觉化可包含绘制呼叫持续时间、双速度z和模板使用率、像素计数等。
本发明的实施例提供用于对在远程装置上运行的图形应用程序进行性能分析和调试的数据通信协议和客户端服务器结构。有利的是,通过提供用于分析和性能调整的客户端服务器系统,本发明的实施例允许开发者隔离并优化目标装置上的图形管线的性能瓶颈。
虽然上文是针对本发明的实施例的,但可在不脱离本发明的基本范围的情况下,设计本发明的其它和进一步实施例,且本发明的范围由所附权利要求书来确定。
Claims (16)
1.一种用于对经配置以在目标装置上执行的图形应用程序进行调试和性能调整的方法,其包括:
在所述目标装置与执行图形应用程序调试器的主机组件的主机系统之间建立通信链路;
调用所述目标装置上的所述图形应用程序,其中所述图形应用程序经配置以调用由装有仪表的驱动器所提供的图形命令,所述装有仪表的驱动器被提供给存在于所述目标装置上的图形管线,且其中所述装有仪表的驱动器包含所述图形应用程序调试器的目标组件,其经配置以记录与在所述目标装置上所述图形应用程序的所述执行有关的性能和状态数据;
确定所述目标组件的第一操作状态;以及
基于所述目标组件的所述第一操作状态,通过所述通信链路将与在所述目标装置上所述图形应用程序的所述执行有关的所述经记录的数据的一部分传输到所述主机组件。
2.根据权利要求1所述的方法,其进一步包括:
由所述主机系统接收所述经记录的性能和状态数据,以及
基于所述第一操作状态,在所述主机系统上产生用户界面显示区。
3.根据权利要求1所述的方法,其中所述通信链路是TCP/IP网络连接、USB连接、火线连接或进程间消息传递系统中的一者。
4.根据权利要求1所述的方法,其中所述目标装置是手持型视频游戏装置、手持型媒体播放器、移动电话、含有原型装置的开发板、个人计算机系统,或提供其组合的收敛装置中的一者。
5.根据权利要求1所述的方法,其中所述第一操作状态是实时性能模式,且其中,当所述图形应用程序渲染帧时,记录由在所述目标装置上的所述图形管线渲染的每一帧的所述性能和状态数据。
6.根据权利要求1所述的方法,其中所述第一操作状态是帧-调试模式,且其中所述装有仪表的驱动器经配置以挂起在所述目标装置上运行的应用程序和在所述图形管线上执行的处理,以及,所述装有仪表的驱动器将关于选定帧的信息传输到在所述主机系统上运行的所述图形应用程序调试器。
7.根据权利要求1所述的方法,其中所述第一操作状态是性能-勾勒模式,且其中所述装有仪表的驱动器经配置以针对由所述图形管线渲染的选定帧而执行多个性能测试,且将所述性能测试的结果传输到在所述主机系统上运行的所述图形应用程序调试器。
8.根据权利要求1所述的方法,其中所述主机系统经配置以通过经由所述通信链路发送命令,来使所述目标组件的所述第一操作状态转换到第二操作状态。
9.一种用于对经配置以在目标装置上执行的图形应用程序进行调试和性能调整的系统,其包括:
主机系统和目标装置;
在目标装置与主机系统之间的通信链路,其中所述主机系统执行图形应用程序调试器的主机组件;以及
在所述目标装置上的装有仪表的驱动器,其中所述装有仪表的驱动器被提供给存在于所述目标装置上的图形管线,且其中所述装有仪表的驱动器包含所述图形应用程序调试器的目标组件,其中所述图形应用程序经配置以调用由所述装有仪表的驱动器所提供的图形命令,所述装有仪表的驱动器用于存在于所述目标装置上的图形管线,且其中所述图形应用程序调试器的所述目标组件进一步经配置以:
记录与所述在所述目标装置上执行所述图形应用程序有关的性能和状态数据;
确定所述目标组件的第一操作状态,以及
基于所述目标组件的所述第一操作状态,通过所述通信链路将与在所述目标装置上所述图形应用程序的执行有关的所述经记录的数据的一部分传输到所述主机组件。
10.根据权利要求9所述的系统,其中所述主机系统经配置以:
接收所述经记录的性能和状态数据,以及
基于所述第一操作状态,在所述主机系统上产生用户界面显示区。
11.根据权利要求9所述的系统,其中所述通信链路是TCP/IP网络连接、USB连接、火线连接或进程间消息传递系统中的一者。
12.根据权利要求9所述的系统,其中所述目标装置是手持型视频游戏装置、手持型媒体播放器、移动电话、含有原型装置的开发板、个人计算机系统,或提供其组合的收敛装置中的一者。
13.根据权利要求9所述的系统,其中所述第一操作状态是实时性能模式,且其中,当所述图形应用程序渲染帧时,记录由在所述目标装置上的所述图形管线渲染的每一帧的所述性能和状态数据。
14.根据权利要求9所述的系统,其中所述第一操作状态是帧-调试模式,且其中,所述装有仪表的驱动器经配置以挂起在所述目标装置上运行的应用程序和在所述图形管线上执行的处理,以及,所述装有仪表的驱动器将关于选定帧的信息传输到在所述主机系统上运行的所述图形应用程序调试器。
15.根据权利要求9所述的系统,其中所述第一操作状态是性能-勾勒模式,且其中所述装有仪表的驱动器经配置以针对由所述图形管线所渲染的选定帧而执行多个性能测试,且将所述性能测试的结果传输到在所述主机系统上运行的所述图形应用程序调试器。
16.根据权利要求9所述的系统,其中所述主机系统经配置以通过经由所述通信链路发送命令,来使所述目标组件的所述第一操作状态转换到第二操作状态。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/830,721 | 2007-07-30 | ||
US11/830,721 US7992137B2 (en) | 2007-07-30 | 2007-07-30 | Client server system for analysis and performance tuning of remote graphics devices |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101360007A CN101360007A (zh) | 2009-02-04 |
CN101360007B true CN101360007B (zh) | 2011-10-05 |
Family
ID=40332353
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008101312109A Expired - Fee Related CN101360007B (zh) | 2007-07-30 | 2008-07-30 | 用于远程图形装置的分析和性能调整的客户端服务器系统 |
Country Status (4)
Country | Link |
---|---|
US (1) | US7992137B2 (zh) |
JP (2) | JP2009070371A (zh) |
CN (1) | CN101360007B (zh) |
TW (1) | TWI425351B (zh) |
Families Citing this family (36)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8737832B1 (en) | 2006-02-10 | 2014-05-27 | Nvidia Corporation | Flicker band automated detection system and method |
US8594441B1 (en) | 2006-09-12 | 2013-11-26 | Nvidia Corporation | Compressing image-based data using luminance |
US20080235667A1 (en) * | 2007-03-13 | 2008-09-25 | Steve Nelson | Application Software Flight Recorder Test Server |
US8724895B2 (en) | 2007-07-23 | 2014-05-13 | Nvidia Corporation | Techniques for reducing color artifacts in digital images |
US9035957B1 (en) * | 2007-08-15 | 2015-05-19 | Nvidia Corporation | Pipeline debug statistics system and method |
US20090066702A1 (en) * | 2007-09-06 | 2009-03-12 | Luc Dion | Development Tool for Animated Graphics Application |
US9177368B2 (en) * | 2007-12-17 | 2015-11-03 | Nvidia Corporation | Image distortion correction |
US8780128B2 (en) | 2007-12-17 | 2014-07-15 | Nvidia Corporation | Contiguously packed data |
US8698908B2 (en) | 2008-02-11 | 2014-04-15 | Nvidia Corporation | Efficient method for reducing noise and blur in a composite still image from a rolling shutter camera |
US9379156B2 (en) | 2008-04-10 | 2016-06-28 | Nvidia Corporation | Per-channel image intensity correction |
US8749662B2 (en) | 2009-04-16 | 2014-06-10 | Nvidia Corporation | System and method for lens shading image correction |
US20100332987A1 (en) * | 2009-06-26 | 2010-12-30 | Cormack Christopher J | Graphics analysis techniques |
US8581916B2 (en) * | 2009-06-26 | 2013-11-12 | Intel Corporation | Graphics analysis techniques |
US8624907B2 (en) * | 2009-06-26 | 2014-01-07 | Intel Corporation | Graphics analysis techniques |
US9165029B2 (en) * | 2011-04-12 | 2015-10-20 | Microsoft Technology Licensing, Llc | Navigating performance data from different subsystems |
CN102129408B (zh) * | 2011-04-14 | 2013-09-25 | 电子科技大学 | 一种基于记录回放技术的嵌入式软件调试装置和方法 |
US8902248B1 (en) * | 2011-07-14 | 2014-12-02 | Vmware, Inc. | Method and system for measuring display performance of a remote application |
CN103246598A (zh) * | 2012-02-09 | 2013-08-14 | 广州博纳信息技术有限公司 | 软件测评远程测试方法 |
US9075913B2 (en) * | 2012-02-27 | 2015-07-07 | Qualcomm Incorporated | Validation of applications for graphics processing unit |
US9183012B2 (en) * | 2012-06-22 | 2015-11-10 | Microsoft Technology Licensing, Llc | Adaptive rendering based on runtime capability check |
CN103514926B (zh) * | 2012-06-29 | 2017-07-21 | 富泰华工业(深圳)有限公司 | 测试系统及测试方法 |
US9519568B2 (en) * | 2012-12-31 | 2016-12-13 | Nvidia Corporation | System and method for debugging an executing general-purpose computing on graphics processing units (GPGPU) application |
US9298681B2 (en) * | 2013-01-03 | 2016-03-29 | International Business Machines Corporation | Dynamic webpage change animation |
US9674265B2 (en) | 2013-11-04 | 2017-06-06 | Vmware, Inc. | Filtering unnecessary display updates for a networked client |
WO2015080691A1 (en) | 2013-11-26 | 2015-06-04 | Hewlett-Packard Development Company, L.P. | Recommending application modifications using image area counts |
US9674518B2 (en) | 2013-12-20 | 2017-06-06 | Vmware, Inc. | Measuring remote video display with embedded pixels |
US10437694B2 (en) * | 2014-02-21 | 2019-10-08 | Rolf Segger | Real time terminal for debugging embedded computing systems |
US9934122B2 (en) * | 2014-07-09 | 2018-04-03 | Microsoft Technology Licensing, Llc | Extracting rich performance analysis from simple time measurements |
US9639396B2 (en) * | 2014-09-16 | 2017-05-02 | Nxp Usa, Inc. | Starvation control in a data processing system |
CN104375938B (zh) * | 2014-11-20 | 2017-09-05 | 工业和信息化部电信研究院 | 安卓应用程序的动态行为监测方法及系统 |
US9990211B2 (en) | 2016-06-15 | 2018-06-05 | Vmware, Inc. | Tracking window position in a VDI environment |
CN107861814B (zh) * | 2017-10-31 | 2023-01-06 | Oppo广东移动通信有限公司 | 资源配置方法及设备 |
CN110704296B (zh) * | 2018-07-10 | 2023-03-10 | 阿里巴巴集团控股有限公司 | 一种调用方法及装置 |
JP7371430B2 (ja) * | 2019-10-09 | 2023-10-31 | 株式会社リコー | 情報処理装置およびプログラム |
CN114745257B (zh) * | 2022-03-28 | 2024-01-09 | 杭州义益钛迪信息技术有限公司 | 数据帧调试方法、装置、设备及存储介质 |
CN117274033B (zh) * | 2023-11-20 | 2024-03-26 | 芯瞳半导体技术(山东)有限公司 | 图形驱动调试方法、装置、存储介质及电子设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1118473A (zh) * | 1994-06-30 | 1996-03-13 | 坦德姆计算机公司 | 计算机程序中错误的诊断和改正工具及方法 |
CN1567854A (zh) * | 2003-06-12 | 2005-01-19 | 上海电气(集团)总公司研究中心 | 数字式自动测试系统 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5596714A (en) * | 1994-07-11 | 1997-01-21 | Pure Atria Corporation | Method for simultaneously testing multiple graphic user interface programs |
JPH10210419A (ja) * | 1997-01-23 | 1998-08-07 | Matsushita Electric Ind Co Ltd | ビデオサーバ装置、端末装置及びデータ送信方法 |
US6246415B1 (en) * | 1998-04-30 | 2001-06-12 | Silicon Graphics, Inc. | Method and apparatus for culling polygons |
US6467052B1 (en) * | 1999-06-03 | 2002-10-15 | Microsoft Corporation | Method and apparatus for analyzing performance of data processing system |
JP2001148892A (ja) * | 1999-11-22 | 2001-05-29 | Matsushita Electric Ind Co Ltd | ネットワーク制御装置、ネットワーク端末およびコントロール端末 |
US6825844B2 (en) * | 2001-01-16 | 2004-11-30 | Microsoft Corp | System and method for optimizing a graphics intensive software program for the user's graphics hardware |
US7600222B2 (en) * | 2002-01-04 | 2009-10-06 | Microsoft Corporation | Systems and methods for managing drivers in a computing system |
JP4127053B2 (ja) * | 2003-01-10 | 2008-07-30 | ソニー株式会社 | 電子機器制御システム及び電子機器制御方法 |
JP2004318522A (ja) * | 2003-04-16 | 2004-11-11 | Seiko Epson Corp | ドライバ実行状態監視システム、ドライバ実行状態監視方法およびドライバ実行状態監視プログラム |
US7417632B2 (en) * | 2004-12-02 | 2008-08-26 | Sap Ag | Automatic testing of graphics programs |
US7493520B2 (en) * | 2005-06-07 | 2009-02-17 | Microsoft Corporation | System and method for validating the graphical output of an updated software module |
US8607151B2 (en) * | 2006-08-01 | 2013-12-10 | Nvidia Corporation | Method and system for debugging a graphics pipeline subunit |
-
2007
- 2007-07-30 US US11/830,721 patent/US7992137B2/en active Active
-
2008
- 2008-07-25 TW TW097128252A patent/TWI425351B/zh active
- 2008-07-30 CN CN2008101312109A patent/CN101360007B/zh not_active Expired - Fee Related
- 2008-07-30 JP JP2008196576A patent/JP2009070371A/ja active Pending
-
2012
- 2012-01-26 JP JP2012014440A patent/JP5246896B2/ja active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1118473A (zh) * | 1994-06-30 | 1996-03-13 | 坦德姆计算机公司 | 计算机程序中错误的诊断和改正工具及方法 |
CN1567854A (zh) * | 2003-06-12 | 2005-01-19 | 上海电气(集团)总公司研究中心 | 数字式自动测试系统 |
Also Published As
Publication number | Publication date |
---|---|
JP2009070371A (ja) | 2009-04-02 |
US7992137B2 (en) | 2011-08-02 |
JP2012094182A (ja) | 2012-05-17 |
US20090037774A1 (en) | 2009-02-05 |
TWI425351B (zh) | 2014-02-01 |
CN101360007A (zh) | 2009-02-04 |
TW201005509A (en) | 2010-02-01 |
JP5246896B2 (ja) | 2013-07-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101360007B (zh) | 用于远程图形装置的分析和性能调整的客户端服务器系统 | |
US4903218A (en) | Console emulation for a graphics workstation | |
US8006232B1 (en) | Serialization of function calls to a graphics API for debugging a remote device | |
CN102449665B (zh) | 显示经渲染的图形元素的性能度量的视觉表示 | |
NO328438B1 (no) | Systemer og fremgangsmater for a frembringe mellomliggende mal i et grafikksystem | |
EP1084489A1 (en) | Method of using video reflection in providing input data to a computer system | |
WO2008020297A2 (en) | Systems, methods, and apparatus for recording of graphical display | |
US7982741B2 (en) | Shared graphics infrastructure | |
CN110187314A (zh) | 雷达一次信息显示方法及系统 | |
CN112215932A (zh) | 粒子动画处理方法、装置、存储介质及计算机设备 | |
CN111444095A (zh) | 移动设备的测试平台系统和测试方法 | |
JPH10105435A (ja) | ソフトウェア・ライブラリのオペレーションに関する情報を提供する方法 | |
CN113835703B (zh) | 一种web前端绘制自动驾驶监控可视化地图的方法 | |
CN108335342A (zh) | 在web浏览器上进行多人绘画的方法、设备和计算机程序产品 | |
CN107066253A (zh) | 用于映射终端的方法、装置及电子设备 | |
CN111274152B (zh) | 应用程序测试方法、装置、设备及存储介质 | |
JP2006350675A (ja) | ソフトウェアテスト装置 | |
CN113204479A (zh) | 机器人可视化调试系统及方法 | |
Boochs et al. | An object-oriented stereo system for 3D-measurements | |
US11966278B2 (en) | System and method for logging visible errors in a videogame | |
Montagnat et al. | 3D objects visualization for remote interactive medical applications | |
CN118708490A (zh) | 在线远程调试车机的方法、装置、电子设备和存储介质 | |
KR101307192B1 (ko) | 3차원 전자 판서 시스템 | |
CN118581606A (zh) | 异纤探测设备及其控制方法和控制装置 | |
KR101356639B1 (ko) | 3차원 전자 판서 시스템을 이용한 3차원 전자 판서 방법 |
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 |
Granted publication date: 20111005 |
|
CF01 | Termination of patent right due to non-payment of annual fee |