用于调试图形管线子单元的方法和系统的制作方法

文档序号:6611777阅读:244来源:国知局
专利名称:用于调试图形管线子单元的方法和系统的制作方法
技术领域
本发明涉及图形处理单元领域。更确切地说,本发明的实施例涉及一种用于调试图 形管线子单元的方法和系统。
技术背景需要改进图形处理单元(GPU)执行图形应用程序的效率一直是软件开发者的一个 主要关注问题。举例来说,考虑到管线GPU的速度仅等于其最慢的管线单元的速度,瓶 颈分析对于优化应用程序来说是重要的。同样,需要监测对图形管线的每个单元的利用 率,从而在任何给定时间允许负载分布并确保充分利用每个单元。然而,考虑到可用的 性能工具的数目有限且常规工具提供的特征数目有限,优化GPU性能和调试图形管线子 单元是一项艰难的任务。常规方法无法提供执行图形操作(例如,绘图调用)时图形管线的每个子单元的设 置及其状态信息的详细信息。因此,通过试错法进行校正动作时,并不真正了解用于绘 图调用的每个子单元的设置及其相应的状态信息。此外,任何用以补救GPU的有问题的 子单元的校正均可能负面地影响GPU的其它子单元。举例来说,减小一个子单元的瓶颈 可能会负面地影响对其它子单元的利用。因此,由于不能够检测与管线子单元有关的利 用率信息,所以即使校正了瓶颈,开发者仍然经常会遇到最小性能增益。除了上述不足外,即使开发者能够针对给定的帧或图形操作而补救瓶颈且提高利用 不足的子单元的利用率,其它帧和/或图形操作的性能也可能会降低。因此,使用常规性 能工具很可能花费大量时间和精力,而给定GPU上的图形应用程序的性能却很少或没有 明显提高。 发明内容因此,需要为执行图形操作(例如,绘图调用)时GPU管线的子单元的设置及其状 态信息提供透明性。此外,需要为可编辑状态信息提供透明性,因为编辑状态信息可能 会实质上改进GPU管线的整体效率及其帧速率。进一步需要在还允许自动识别帧的有问 题的图形操作的调试工具内提供上述透明性。所属领域的技术人员在阅读了本发明的详 细描述之后将了解,本发明的实施例满足以上提到的需要。在本发明的一个实施例中,通过图形用户界面存取和显示多个可选择的绘图调用群 组,所述群组可依据其执行时间来分类。响应于用户对所选的绘图调用群组的选择,从 所述群组显示多个可选择的绘图调用。每个绘图调用群组的所有绘图调用共享指定状态 的共同状态属性。还显示多个可选择的图形管线子单元的识别符。响应于用户对与绘图 调用群组相关联的绘图调用的选择以及子单元的选择,自动显示多个可编辑的状态信息 (例如,文本窗口)。响应于用户编辑状态信息,改变多个数据储存设置。此外,编辑状 态信息响应于用户选择而应用于选出的绘图调用或选出的绘图调用群组。因为使用本发明的实施例,子单元设置信息和状态信息对于开发者变成透明的。因 此,用户可在编辑状态信息方面作出明智的决定,从而改进GPU管线的整体效率及其帧 速率。更确切地说,本发明的实施例涉及一种调试和/或优化可在图形管线子单元上操作的应用程序的方法,所述方法包含存取多个绘图调用群组,其中每个绘图调用群组包括各自的多个绘图调用,所述多个绘图调用全部共享指定状态的共同状态属性;在第一窗 口中显示所述多个绘图调用群组,并允许用户从中进行选择;响应于用户对绘图调用群 组的选择,显示与选出的绘图调用群组相关联的多个绘图调用,并允许用户从中进行选 择;在第二窗口中显示多个图形管线子单元的标识,并允许用户从中进行选择;以及响 应于用户对选出的图形管线子单元的选择,显示与选出的绘图调用相关联的选出的图形 管线子单元的多个状态信息。实施例包含上述内容,且其中所述方法进一步包含显示由于执行所述选出的绘图调 用而由选出的管线子单元渲染的图形图元。实施例进一步包含上述内容,且进一步包含 显示涉及选出的图形管线子单元的选出的绘图调用和绘图调用群组的性能数据,其中所 述性能数据指示所述多个图形管线子单元执行选出的绘图调用群组的时间,且其中所述 性能数据进一步指示选出的图形管线子单元执行选出的绘图调用的时间。 此外,实施例包含上述内容,且其中所述方法进一步包含允许用户编辑多个状态信 息。此外,实施例包含上述内容,且其中所述多个绘图调用群组和多个绘图调用分别根 据群组和绘图调用的执行时间来排列。此外,实施例包含以上内容,且其中显示多个状 态信息进一步包含将多个状态信息分组,使得所述多个状态信息的在所述选出的绘图调 用群组中共同的一部分被描绘在一起。


在附图的各图中以举例而非限制的方式说明本发明,且其中相似参考标号指代类似 元件,且其中图1展示根据本发明一个实施例用于显示执行选出的绘图调用的选出的子单元的状 态信息的用户界面的示范性屏幕截图。图2展示根据本发明一个实施例用于选择绘图调用群组的示范性用户界面的屏幕截图。图3展示根据本发明一个实施例用于选择绘图调用的示范性用户界面的屏幕截图。图4展示根据本发明一个实施例用于显示执行选出的绘图调用的选出的子单元的状 态信息的示范性用户界面的屏幕截图。图5展示根据本发明一个实施例用于显示执行选出的绘图调用的选出的子单元的状 态信息的示范性用户界面的屏幕截图。图6展示根据本发明一个实施例用于显示执行选出的绘图调用的选出的子单元的状 态信息的示范性用户界面的屏幕截图。图7展示根据本发明一个实施例用于显示对应于在选出的子单元上执行的选出的绘 图调用的状态信息的示范性用户界面的屏幕截图。图8展示根据本发明一个实施例用于显示对应于在选出的子单元上执行的选出的绘 图调用的状态信息的示范性用户界面的屏幕截图。图9展示根据本发明一个实施例用于调试可在图形管线子单元上操作的应用程序的 计算机实施的过程的流程图。图IO说明可为本发明的实施例充当平台的通用计算机系统。
具体实施方式
现将具体参照本发明的实施例,附图中说明了实施例的实例。虽然将结合这些实施 例描述本发明,但将了解,所述实施例并不意图将本发明局限于这些实施例。相反,本 发明意图涵盖可能包含在由所附权利要求书界定的本发明的精神和范围内的替代物、修
改和均等物。此外,在对本发明的以下详细描述中阐述了许多特定细节,目的是提供对 本发明的全面的了解。然而,所属领域的一般技术人员将明了,可在没有这些特定细节 的情况下实践本发明。在其它示例中,并未详细描述众所周知的方法、程序、组件和电 路,以免不必要地混淆本发明的各方面。 符号和术语以下的详细描述中的一些部分是按照程序、步骤、逻辑区块、处理和可在计算机存 储器上执行的对数据位的操作的其它符号表示形式呈现的。这些描述和表示形式是所属 领域的技术人员用于向所属领域的其他技术人员最有效地传达其工作的主旨的手段。在 此处并且一般来说,认为程序、计算机执行的步骤、逻辑区块、过程等是导致所要结果 的自相容的步骤或指令序列。所述步骤是需要对物理量进行物理操纵的步骤。通常(但不必要),这些量采用能够在计算机系统中被存储、传送、组合、比较和以 其它方式操纵的电或磁信号的形式。已时常证明,主要因为通常使用的原因,将这些信 号称为位、值、元素、符号、字符、项、数字等是方便的。然而,应记住,所有这些和类似术语应与适当的物理量相关联,且仅是应用于这些 量的方便的标签。除非从以下论述明显看出另有特别规定,否则将了解,在整个本发明 中,利用例如"处理"或"创建"或"传送"或"执行"或"确定"或"指示"或"发 布"或"暂停"或"清除"或"存取"或"聚集"或"获得"或"选择"或"计算"或 "测量"或"显示"或"存取"或"允许"或"分组"等术语的论述是指计算机系统或 类似的电子计算装置将计算机系统的寄存器和存储器内表示为物理(电子)量的数据操 纵和转换成计算机系统存储器或寄存器或其它此类信息存储、传输或显示装置内的同样 表示为物理量的其它数据的动作和过程。用于调试图形管线子单元的方法和系统GPU管线通常执行在主机计算机处理器上操作的驱动程序所指示的图形操作(例如, 绘图调用)。 一帧包含多个绘图调用。计算GPU管线的子单元的各种性能参数(例如, 瓶颈和利用率信息)。2006年8月1日由Aguaviva等人申请的代理人案号为 NVID-P002603且题为"A Method And System For Calculating Performance.Parameters For A Processor"的第11/497,863 号美国专利申请案中论述了计算这些性能参数和其它 参数,该申请案全文并入本文中。绘图调用可响应于用户指定的共同状态属性而自动形 成为绘图调用群组。2006年8月1日由Aguaviva等人申请的代理人案号为NVID-P002635 且题为"Method And User Interface For Enhanced Graphical Operation Organization "的第■8,229 号美国专利申请案中论述了基于共同状态属性对绘图调用进行分组, 该申请案全文并入本文中。现参看图1,展示根据本发明一个实施例用于显示执行来自选出的绘图调用群组的 选出的绘图调用的选出的子单元的状态信息的示范性计算机控制的用户界面100。所述 用户界面存取并在下拉菜单105中显示可选择的绘图调用群组。如2006年8月1日由 Aguaviva等人申请的题为"Method And User Interface For Enhanced Graphical Operation Organization "的第11/498,229 号美国专利申请案中所述,每个绘图调用群组具有共同的状态属性。下拉菜单105可显示绘图调用群组中的绘图调用的数目、群组的总执 行时间和所处理的像素的数目。群组的执行时间是GPU管线执行绘图调用群组所需的时 间量。在此实例中,选出的绘图调用群组含有32个绘图调用,且由GPU管线在3.056 ms 内执行。此外,GPU管线在完全执行选出的绘图调用群组之后将已经写入了 906240个像 素。应了解,对下拉菜单的使用是示范性的且并不是限制性的。举例来说,其它实施例 可使用弹出窗口来显示可选择的信息。或者,可以其它可选择的格式,在表中或通过链 接来显示信息。下拉菜单110显示选出的绘图调用群组中的所有绘图调用。下拉菜单110可进一步 显示绘图调用的执行时间和由GPU管线处理的像素的数目。在此实例中,绘图调用由 GPU管线在0.458 ms内执行。此外,GPU管线在完全执行选出的绘图调用之后将已经写 入了 136473个像素。应了解,对下拉菜单的使用是示范性的且并不是限制性的。举例来 说,其它实施例可使用弹出窗口来显示可选择的信息。或者,可以其它可选择的格式, 在表中或通过链接来显示信息。仍然参看图1,用户界面IOO包含多个用于选择GPU管线内的管线子单元的可选择 项。在此实施例中,可选择的子单元是顶点集合115、顶点着色器120、像素着色器125 和光栅操作130。其它实施例可视管线结构而定而具有较少或较多或不同的子单元,应 了解,使用标记(tab)作为可选择的工具是示范性而并非限制性的。举例来说,其它实 施例可使用弹出窗口来显示可选择的信息。或者,可以其它可选择的格式,在表中或通 过链接来显示信息。响应于用户选择绘图调用群组、所述群组的绘图调用和子单元,实施例接着可显示 与其有关的性能信息。性能信息可如135、 140和145中所示以条形图格式显示。条形图 135显示GPU子单元执行帧所需的时间。在此实例中,GPU子单元在9.651 ms内执行所 述帧。条形图140显示GPU子单元执行选出的绘图调用群组所需的时间量。条形图145
显示选出的子单元执行选出的绘图调用所需的时间量。因此,所展示的条形图在帧改变 时、或选出的绘图调用群组改变时、或选出的绘图调用改变时、或选出的子单元改变时 改变。应了解,对条形图的使用是示范性而并非限制性的。因此,其它实施例可使用其 它方法来显示性能信息,可能会显示较多或较少的信息。应进一步了解,所论述的性能 信息是示范性的而非限制性的。因此,可显示其它性能信息(例如,利用率和瓶颈)。根据本发明的实施例,响应于用户选择绘图调用群组、绘图调用和子单元,在窗口 150中显示对应于选出的子单元的选出的绘图调用的状态信息。在此实例中,选择具有 32个绘图调用的绘图调用群组(其中绘图调用在0.458 ms内执行)和顶点集合115子单 元。状态信息包含与管线单元有关的用于设置、配置和编程以便处理绘图调用(例如, 用于绘制图元155)的可选择的参数。用于绘制图元的状态信息是绘制图元(例如,三 角形)所需的设置和值。在此实例中,所界定的图元类型是三角形。还可显示所使用的 顶点的数目或图元计数。举例来说,顶点数目是28385且图元计数是4864。状态信息还可包含对索引缓冲器160的描述。索引缓冲器可界定存储器缓冲器的类 型和格式。此外,索引缓冲器可界定存储集区的位置。状态信息可进一步包含顶点缓冲器声明165。顶点缓冲器声明165界定(例如)顶 点大小、顶点缓冲器中每一个别顶点的位置、法线和切线被定位的偏移或流。在此实例 中,顶点大小为32。流顶点缓冲器描述170的状态信息与顶点缓冲器描述的状态信息类 似。状态信息还可包含顶点缓冲器边界框175。顶点缓冲器边界框175可界定几何形状 在物体空间中的范围。软件开发者可针对低效等情况查看状态信息。通常软件开发者将选择具有较高执行 时间的绘图调用来进行状态分析,并且对绘图调用设置参数作出修改,且对于所述操作 共享相同参数的其它绘图调用可能将在得到优化的情况下对帧速率性能具有显著影响。此窗口 150内的状态信息可由用户编辑。可基于窗口 150中的状态信息在窗口 180中渲染针对选出的子单元的选出的绘图调 用的图形图元。这种渲染可能是线框渲染,其允许软件开发者获悉原始模型数据中的潜 在错误,或者可能是经过完全着色的渲染,用以查看渲染的不规则性。在此实施例中, 用户可通过使用下拉菜单110而滚动到选出的绘图调用群组中的其它绘图调用。或者, 用户可通过使用后退按钮185而滚动经过绘图调用以便以相反次序前进,或者通过使用 前进按钮190而按照次序滚动。或者,用户可使用滑动条195来滚动经过绘图调用。因 此,可使用调试程序以每次一个绘图调用的方式逐步经过整个场景。因此,对于每个绘
图调用,用户可看到所使用的几何形状、纹理、着色器和光栅操作设置。应了解,滚动 经过绘图调用会更新条形图145中的性能信息。应进一步了解,滚动经过绘图调用会更 新窗口 150中的状态信息。因此,滚动经过绘图调用会以窗口 180中的图形图元的循序 执行次序来更新所述图形图元,从而允许用户知晓有问题的绘图调用或绘图调用群组的 原因。仍然参看图1,可通过下拉菜单196来修改窗口 180中描绘的渲染。响应于对菜单 196的菜单项的选择,可显示对应于选出的菜单项的渲染信息的不同描绘。举例来说, 可在窗口 180内显示帧缓冲器内的对应于一个或一个以上识别出的图形操作的数据。或 者,可显示对应于一个或一个以上识别出的图形操作的渲染信息,其中所述渲染信息包 括线框视图中的一个或一个以上渲染的对象。且在其它实施例中,菜单196中的其它选 择可实现对所渲染对象的对应于一个或一个以上识别出的图形操作的其它特征(例如, 深度缓冲器信息、a通道覆盖图等)的显示。导出按钮197提供导出执行、状态信息和性能信息以供以替代形式査看的能力。导 出的数据可形成文本和/或图形图像。因此,可使用另一应用程序和/或用户界面来存取和 呈现导出的数据。"简单"按钮198实现对与通过图形处理管线的各个管线单元来处理数据流相关的 更少信息的呈现(例如,在单个弹出窗口中移除图形界面覆盖图)。可使用所述信息来简 化对数据流的处理。因此,用户可使用对数据流的简化处理来定位有问题的子单元和有 问题的绘图调用群组。因此,可使用调试用户界面来采取必要的校正动作,以补救有问 题的绘图调用、有问题的绘图调用群组或有问题的子单元。因此,改进了GPU管线的性 能和帧速率。在一个实施例中,用户界面提供按钮199,使得选择按钮199便会隐藏下拉菜单105 和110,以及条形图135、 140和145,连同窗口 150和180以及可选择的子单元115、 120、 125和130。因此,选择按钮199会显示针对一帧引出的绘图调用,直至所执行的最后的 绘图调用。图形界面元素可能会遮盖潜在渲染中的所关注区域,因而为软件开发者导致 混淆。软件开发者可选择"简单"按钮198来移除图形界面,从而允许其重新获得对情 形的知晓。接着,软件工程师可重新启用图形界面并继续进行优化活动。其它实施例可 隐藏上述图形用户界面的某些部分。在本发明的一个实施例中,用户可将窗口 150中的状态信息编辑(例如)成字处理 器函数。应了解,在一个实施例中,编辑状态信息会改变潜在的应用程序。因此,状态
信息向用户提供关于针对有问题的绘图调用和/或有问题的绘图调用群组的不同子单元 处的确切状态属性值的透明性。此外,通过选择具有较长执行时间的绘图调用群组,用 户可处理并优化过长的绘图调用。因此,可通过较少的改变而实现显著的帧改进。在一个实施例中,可将窗口 150的状态信息分组,使得将在绘图调用群组上具有共 同属性的状态信息分组在一起,且将其余的状态信息分组在一起。因此,对具有共同属 性的状态信息进行编辑可应用于所有具有那些相同属性的绘图调用。因此,编辑此状态 信息会影响选出的绘图调用群组和其中所有的绘图调用。或者,用户可编辑不具有共同 属性的群组。因此,编辑独特的状态信息会影响含有所述状态信息的绘图调用。应了解, 在一个实施例中,可通过对状态信息进行彩色编码而将状态信息分组成上述这些群组。 或者,弹出窗口可询问用户用户是希望仅将变化应用于选出的绘图调用,还是应用于 选出的绘图调用群组(如果共享那些属性的话)。其它实施例可使用其它方法将状态信息 分组在一起。现参看图2,展示根据本发明一个实施例用于从群组列表中选择绘图调用群组的示 范性用户界面。如上所述,每个绘图调用群组通过一组共同的状态属性来界定。在此实 例中,下拉菜单105含有五个绘图调用群组。在一个实施例中,绘图调用群组按照其各 自的执行时间的次序来分类或排列。举例来说,绘图调用群组可按照其执行时间的升序 分类。因此,可选择具有较长执行时间的绘图调用群组,因为优化具有过长执行时间的 绘图调用群组可比优化具有较短执行时间的绘图调用群组更加有效地改进GPU管线的效 率。应了解,在此实施例中,通过从下拉菜单110中选择绘图调用,促使在窗口 150中 显示状态信息。因此,在此实施例中,选择绘图调用群组不会改变窗口 150中的状态信 息的值。现参看图3,展示根据本发明一个实施例用于选择选出的群组的绘图调用的示范性 用户界面。如上所述,选出的绘图调用群组在所述群组中含有32个绘图调用。因此,使 用下拉菜单110,用户可滚动经过不同的可选择绘图调用。在一个实施例中,绘图调用按 照其各自的执行时间的次序来分类。举例来说,绘图调用可按照其执行时间的降序分类。 因此,执行时间最长的绘图调用是GPU管线执行的花费最多的绘图调用。因此,优化较 长的绘图调用可有效地改进GPU管线的性能和执行时间。选择绘图调用会促使在窗口 150中显示其相关联的状态信息。现参看图4,展示根据本发明一个实施例用于显示执行选出的绘图调用的选出的子 单元的状态信息的示范性用户界面。图4展示针对同一选出的绘图调用群组、同一选出
的绘图调用但不同的子单元显示状态信息。在此实施例中,选出的子单元是顶点着色器 120。在一个实施例中,选择顶点着色器120会显示顶点着色器窗口 410和顶点着色器常 数窗口 420。因此,显示顶点着色器120所使用的任何常数和纹理以供查看。顶点着色 器窗口 410显示正在每个顶点上执行的顶点着色器汇编语言。顶点着色器常数窗口 420 显示常数。所述常数提供(例如)变换矩阵、平滑参数(smoothing parameter)、皮肤参 数(skinning parameter).照明和位移常数。 一般来说,顶点着色器常数窗口 420提供用 于修改几何形状的信息。选择顶点着色器子单元120进一步提供纹理窗口 430。纹理窗 口 430使得能够基于纹理的值来移动顶点。RGB标记440使用户能够査看不同的通道, 从而使用户能够看到可能在纹理中的各个颜色通道中编码的不同信息。举例来说,在此 实施例中,提供三个通道——红、绿和蓝。如上所述,可编辑状态信息或纹理数据。因此,可编辑在顶点着色器窗口 410中显 示的状态信息。应了解,此实施例提供放大能力,从而使用户能够放大纹理。现参看图5,展示根据本发明一个实施例用于显示执行选出的绘图调用的选出的子 单元的状态信息的示范性用户界面。图5展示针对同一选出的绘图调用群组、同一选出 的绘图调用但不同的子单元显示状态信息。在此实例中,选出的子单元是像素着色器125。 在一个实施例中,选择像素着色器125会显示固定函数设置窗口 510。当选择像素着色 器125程序时,会显示像素着色器125所使用的任何常数和纹理以供查看。固定函数设 置窗口 510含有具有有限可编程性的预定义的函数。因此,可使用预定义的函数的参数 及预定义的函数的组合以便创建其它函数。因此,可编辑状态信息以便基于预定义的函 数来创建新函数。或者,选择像素着色器125,便可显示可编程的窗口 (未图示)。所述可编程的窗口 含有可编辑的状态信息。这些状态信息包含在像素着色器子单元上运行的汇编语言程序 设计和与所述程序有关的可能指定(例如)光位置、材料参数等的任何常数。选择像素 着色器125可显示纹理窗口 520。纹理窗口 520的功用与图4中纹理窗口 430的功用类 似。因此,纹理窗口 520可提供(例如)光照贴图、法线贴图、正弦或余弦值的査找表 和平方根映射。现参看图6,展示根据本发明一个实施例用于显示执行选出的绘图调用的选出的子 单元的状态信息的示范性用户界面。图6展示针对同一选出的绘图调用群组、同一选出 的绘图调用但不同的子单元显示状态信息。在此实例中,选出的子单元是光栅操作130。 在一个实施例中,选择光栅操作130会显示渲染状态窗口 610。渲染状态窗口 610含有
多个设置的树状结构,所述设置以可分拆树状的形式提供以帮助管理大量数据。可改变 光栅操作130中的各种渲染状态。举例来说,可关闭a混合。渲染状态窗口 610影响渲 染设置。选择光栅操作130会在渲染目标窗口 620中显示渲染目标。渲染目标窗口 620显示 例如存储器集区位置和位深度等状态信息。 一般来说,渲染目标窗口 620显示渲染操作 的结果被写入到的位置。因此,编辑状态信息可能会影响例如存储器存取等各种操作。现参看图7,展示根据本发明一个实施例用于显示对应于在选出的子单元上执行的 选出的绘图调用的状态信息的示范性用户界面。在此实例中,在窗口 150中显示67个绘 图调用中的30号绘图调用的状态信息。图形图元180描绘GPU管线正在绘制的容器。 如上所述,可编辑状态信息,从而影响选出的绘图调用和/或选出的绘图调用群组的性能 和执行。现参看图8,展示根据本发明一个实施例用于显示对应于在选出的子单元上执行的 选出的绘图调用的状态信息的示范性用户界面。在此实例中,在窗口 150中显示67个绘 图调用中的51号绘图调用的状态信息。图形图元180描绘GPU管线正在绘制的骷髅。 如上所述,可编辑状态信息,从而影响选出的绘图调用和/或选出的绘图调用群组的性能 和执行。因此,用户可滚动经过不同的绘图调用,以便检查状态信息并按照顺序检查被 执行并作为新的图形图元而添加到所绘制的场景的每个绘图调用。现参看图9,展示根据本发明一个实施例用于调试可在图形管线子单元上操作的应 用程序的计算机实施的过程的流程图900。调试可在图形管线子单元上操作的应用程序 的方法在步骤905处开始。在步骤910处,从存储器存取多个绘图调用群组。如上所述且如以引用方式并入的, 响应于用户对指定状态的共同状态属性的选择来组织多个绘图调用群组。因此,每个含 有多个绘图调用的绘图调用群组共享指定的共同状态属性。在步骤915处,在第一窗口中显示表示被存取的多个绘图调用群组的列表。举例来 说,可使用下拉菜单显示所述多个绘图调用群组。应了解,可使用其它用以显示所述信 息的方法。举例来说,可使用弹出窗口。所述显示进一步允许用户选择列表的绘图调用 群组。在一个实施例中,按照绘图调用群组的执行时间在列表中为绘图调用群组排序。 绘图调用群组的执行时间是GPU管线执行绘图调用群组所需的时间。在一个实施例中, 所显示的多个绘图调用群组还可显示额外信息,例如每个群组中绘图调用的数目、群组 的执行时间以及所渲染的像素的数目。 在步骤920中,响应于用户对绘图调用群组的选择,在第一窗口中或者在单独窗口 中显示与选出的绘图调用群组相关联的多个绘图调用。在一个实施例中,可使用下拉菜 单将多个绘图调用显示为列表。应了解,可使用其它用以显示信息的方法。举例来说, 可使用弹出窗口。所述显示进一步允许用户选择绘图调用。在一个实施例中,按照针对 选出的子单元的绘图调用的执行时间在列表中为绘图调用排序。在步骤925处,在第一窗口或者在单独窗口中显示多个图形管线子单元。此外,所 述多个图形管线子单元可由用户选择。因此,用户可选择一子单元,使得用户可查看针 对选出的子单元的选出的绘图调用。在步骤930处,响应于用户对绘图调用群组、绘图调用和子单元的选择,可在第二 窗口中显示多个相关联的状态信息。然而,应了解,可在第一窗口或在单独窗口中显示 状态信息。在步骤935处,由于执行了选出的绘图调用而通过选出的管线子单元来渲染 图形图元。改变绘图调用或滚动经过各个绘图调用除了更新状态信息外还将更新图形图 元。因此,用户可以每次一个步骤的方式查看每个绘图调用的执行、其状态信息及其相 应的图形图元。在步骤940处,显示涉及选出的图形管线子单元的选出的绘图调用和绘图调用群组 的性能数据。在一个实施例中,性能数据是GPU管线对帧的执行时间、GPU管线对选出 的绘图调用群组的执行时间以及选出的子单元对选出的绘图调用的执行时间。其它实施 例可提供每个子单元的利用率和瓶颈信息。在步骤945处,将多个状态信息分组,使得所述多个状态信息的共享共同状态属性 的一部分被描绘在一起。在一个实施例中,所述分组是通过将具有共同状态属性的状态 信息分组在同一窗口中来进行的。在另一实施例中,分组是通过对群组进行彩色编码来 进行的。应了解,可使用其它用于将状态信息分组的方法。在步骤950处,用户可编辑多个状态信息。在一个实施例中,编辑状态信息会改变 应用程序。在步骤955处,对多个状态信息的编辑响应于用户选择而应用于选出的绘图 调用或者应用于选出的绘图调用群组。在步骤960处,调试可在图形管线子单元上操作 的应用程序的过程结束。图IO是说明可在上面实施本发明实施例的通用计算机系统1000的方框图。计算机 系统1000可实施如图9所示的用于调试图形管线子单元的方法,且包含总线1002或其 它用于传递信息的通信机构,以及与总线1002耦合以处理信息的处理器1004。计算机 系统IOOO还包含主存储器1006,例如随机存取存储器(RAM)或其它动态存储装置,
其耦合到总线1002以用于存储信息和将由处理器1004执行的指令。主存储器106还可 用于存储将由处理器1004执行的指令的执行期间的临时变量或其它中间信息。计算机系 统IOOO进一步包含只读存储器(ROM) 1008或其它静态存储装置,其耦合到总线1002 以存储供处理器1004用的静态信息和指令。提供非易失性存储装置1010 (例如,磁盘 或光盘)并将其耦合到总线1002,以用于存储信息和指令且可存储持久的内部队列。计算机系统1000可经由总线1002耦合到可选的显示器1012 (例如,阴极射线管 (CRT)),以便向计算机用户显示信息。可选的输入装置1014 (包含字母数字和其它键) 可耦合到总线1002,以便向处理器1004传递信息和命令选择。另一类型的用户输入装 置是光标控制件1016 (例如,鼠标、跟踪球或光标方向键),用于向处理器1004传递方 向信息和命令选择,且用于控制光标在显示器1012上的移动。本文所使用的术语"计算机可读媒体"是指任何参与向处理器1004提供指令以供执 行的媒体。此种媒体可采用许多形式,其中包含但不限于非易失性媒体、易失性媒体和 传输媒体。非易失性媒体包含(例如)光盘或磁盘,例如存储装置IOIO。易失性媒体包 含动态存储器,例如主存储器1006。传输媒体包含同轴电缆、铜线和光纤,其中包含包 括总线1002的线。^输媒体还可采用声波或光波的形式,例如在无线电波和红外数据通 信期间产生的声波或光波。计算机可读媒体的常见形式包含(例如)软盘、柔性盘、硬盘、磁带或其它任何磁 性媒体、CD-ROM、其它任何光学媒体、穿孔卡、纸带、其它任何具有孔图案的物理媒 体、RAM、 PROM和EPROM、 FLASH-EPROM、其它任何存储器芯片或盒子、载波(例 如下文所述)或计算机可从中进行读取的其它任何媒体。计算机系统IOOO可通过网络、网络链接1020和通信接口 1018发送和接收消息。在 因特网实例中,服务器1030可能通过因特网1028、 ISP 1026、局域网络1022和通信接 口 1018传输用于应用程序的所请求的代码。所接收的代码可在接收到时由处理器1004 执行,且/或可存储在存储装置IOIO或其它非易失性存储装置中以供以后执行。在以上说明书中,已参考许多特定细节描述了本发明的实施例,所述特定细节在各 个实施方案之间可能会有所变化。因此,本发明的实质和申请人希望作为本发明的实质 的唯一且排他的指示是由本申请案产生的一组权利要求,且其具体形式是产生这些权利 要求的形式,其中包含任何后续的改正。因此,权利要求中未明确陈述的任何限制、元 件、特性、特征、优点或属性均不应以任何形式限制此权利要求的范围。因此,应在说 明性而非限制性意义上看待说明书和图式。
权利要求
1.一种用于调试可在图形管线子单元上操作的应用程序的图形用户界面,所述图形用户界面包括第一窗口,其用于显示多个绘图调用群组,且可操作以允许用户从中进行选择,其中每个绘图调用群组包括各自的多个绘图调用,且其中每个绘图调用群组的所有绘图调用共享指定状态的共同状态属性;第二窗口,其用于显示多个图形管线子单元的标识,且可操作以允许用户从中进行选择;以及第三窗口,其响应于对所述第一和第二窗口的选择,且用于显示与选出的绘图调用相关联的选出的管线子单元的多个状态信息,其中所述选出的绘图调用与选出的绘图调用群组相关联。
2. 根据权利要求l所述的图形用户界面,其进一步包括第四窗口,其用于显示由于执行所述选出的绘图调用而由所述选出的管线子单元 渲染的图形图元。
3. 根据权利要求l所述的图形用户界面,其进一步包括第四窗口,其用于显示针对图形管线子单元的选出的绘图调用和选出的绘图调用 群组的性能数据,其中所述性能数据指示所述多个图形管线子单元执行所述选出的 绘图调用群组的时间,且其中所述性能数据进一步指示所述选出的图形管线子单元 执行所述选出的绘图调用的时间。
4. 根据权利要求l所述的图形用户界面,其中所述多个状态信息可由用户在所述第三窗口内编辑。
5. 根据权利要求l所述的图形用户界面,其中所述多个绘图调用群组按照执行时间排 列。
6. 根据权利要求l所述的图形用户界面,其中所述多个绘图调用按照执行时间排列。
7. 根据权利要求l所述的图形用户界面,其中对所述多个状态信息进行分组,使得所 述多个状态信息的在所述选出的绘图调用群组中共同的部分被共同描绘。
8. —种调试可在图形管线子单元上操作的应用程序的方法,所述方法包括存取多个绘图调用群组,其中每个绘图调用群组包括各自的多个绘图调用,所述多个绘图调用全部共享指定状态的共同状态属性; 在第一窗口中显示所述多个绘图调用群组,并允许用户从中进行选择; 响应于用户对绘图调用群组的选择,显示与所述选出的绘图调用群组相关联的多个绘图调用,并允许用户从中进行选择;在第二窗口中显示多个图形管线子单元的标识,并允许用户从中进行选择;以及 响应于用户对选出的图形管线子单元的选择,显示与选出的绘图调用相关联的选出的图形管线子单元的多个状态信息。
9. 根据权利要求8所述的方法,其进一步包括显示由于执行所述选出的绘图调用而由所述选出的管线子单元渲染的图形图元。
10. 根据权利要求8所述的方法,其进一步包括显示涉及所述选出的图形管线子单元的所述选出的绘图调用和所述绘图调用群 组的性能数据,其中所述性能数据指示所述多个图形管线子单元执行所述选出的绘 图调用群组的时间,且其中所述性能数据进一步指示所述选出的图形管线子单元执 行所述选出的绘图调用的时间。
11. 根据权利要求8所述的方法,其进一步包括允许用户编辑所述多个状态信息。
12. 根据权利要求8所述的方法,其中按照执行时间排列所述多个绘图调用群组。
13. 根据权利要求8所述的方法,其中按照执行时间排列所述多个绘图调用。
14. 根据权利要求8所述的方法,其中显示所述多个状态信息进一步包括对所述多个状态信息进行分组,使得所述多个状态信息的在所述选出的绘图调用 群组中共同的部分被描绘在一起。
15. —种包括在执行时会实施用于调试图形管线子单元的方法的指令的计算机可读媒体,所述方法包括在第一窗口中显示多个绘图调用群组,并允许用户从中进行选择,其中每个绘图 调用群组包括各自的多个绘图调用,所述多个绘图调用全部共享指定状态的共同状态属性;响应于用户对绘图调用群组的选择,显示与所述选出的绘图调用群组相关联的多 个绘图调用,并允许用户从中进行选择;在第二窗口中显示多个图形管线子单元的标识,并允许用户从中进行选择;以及响应于用户对选出的图形管线子单元的选择,显示与所述选出的图形管线子单元 相关联且与选出的绘图调用相关联的状态信息。
16. 根据权利要求15所述的媒体,其中所述方法进一步包括-显示由于执行所述选出的绘图调用而由所述选出的管线子单元渲染的图形图元。
17. 根据权利要求15所述的媒体,其中所述方法进一步包括显示涉及所述选出的图形管线子单元的所述选出的绘图调用和所述绘图调用群 组的性能数据,其中所述性能数据指示所述多个图形管线子单元执行所述选出的绘 图调用群组的时间,且其中所述性能数据进一步指示所述选出的图形管线子单元执 行所述选出的绘图调用的时间。
18. 根据权利要求15所述的媒体,其中所述显示所述状态信息进一步包括-对所述状态信息进行分组,使得所述状态信息的在所述选出的绘图调用群组中共 同的部分被共同描绘。
19. 根据权利要求15所述的媒体,其中所述方法进一步包括-允许用户编辑所述状态信息。
20. 根据权利要求15所述的媒体,其中所述多个绘图调用群组按照执行时间排列。
21. 根据权利要求15所述的媒体,其中所述多个绘图调用按照执行时间排列。
全文摘要
本发明提供一种调试可在图形管线子单元上操作的应用程序的方法。存取多个绘图调用群组。每个绘图调用群组包括各自的多个绘图调用,其共享指定状态的共同状态属性。显示所述多个可选择的绘图调用群组。响应于用户选择,显示与所述选出的绘图调用群组相关联的多个可选择的绘图调用。显示多个可选择的图形管线子单元。响应于用户对选出的子单元的选择,显示与选出的绘图调用相关联的多个可编辑的状态信息和图形图元。可将所述多个可编辑的状态信息分组,使得共享所述指定状态的共同属性的部分在一个群组中。响应于用户选择,可对所述选出的绘图调用或所述选出的绘图调用群组作出改变。
文档编号G06T1/00GK101118643SQ200710143498
公开日2008年2月6日 申请日期2007年8月1日 优先权日2006年8月1日
发明者劳尔·阿古瓦比瓦, 塞巴斯蒂安·朱利安·多米内, 威廉·奥维尔·雷米二世 申请人:辉达公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1