用于在绘出图像时修改图形处理单元(GPU)操作以用于跟踪的技术的制作方法

文档序号:22557315发布日期:2020-10-17 02:41阅读:157来源:国知局
用于在绘出图像时修改图形处理单元(GPU)操作以用于跟踪的技术的制作方法



背景技术:

当今,计算设备的使用变得越来越普遍。计算设备的范围从标准台式计算机到可穿戴计算技术等。近年来已经增长的计算设备的一个领域是在图像绘出的情境中,诸如游戏、视频流等的绘出,这些图像绘出通常依赖于图形处理单元(gpu)来基于从计算设备接收的绘出指令来将图形从计算设备绘出到显示设备。gpu通常可以执行光栅化操作,以基于绘出指令和/或射线跟踪来绘图图像,以模拟经由射线发出的光的光子并且确定光线反射位置,跟踪光线从场景返回的位置等,以生成图像。

已经开发了用于日志记录从应用接收的绘出指令的工具,图形驱动器可以从该工具生成用于在gpu上执行的gpu特定命令。但是,图形驱动器和/或对应的gpu可能将gpu特定命令的执行推迟到将来的不确定时间,并且因此与绘出指令有关的日志记录可能无法提供与gpu性能和命令执行有关的理想或准确的时序信息。



技术实现要素:

下面给出了一个或多个示例的简化概述,以便提供对这样的示例的基本理解。这一概述不是所有预期示例的详尽概述,并且既不旨在标识所有示例的关键或重要元素,也不旨在界定任何或所有示例的范围。其唯一目的是以简化的形式呈现一个或多个示例的某些概念,作为稍后呈现的更详细描述的序言。

在一个示例中,提供了一种用于修改图形处理单元(gpu)的操作以用于跟踪的方法。该方法包括:从要被提供给gpu的、用于绘出图像的命令的命令缓冲器获取要在绘出图像时被执行的多个着色器的指示;修改多个着色器中的至少一个着色器以生成经修改的着色器,经修改的着色器包括用于在执行经修改的着色器时日志记录一个或多个参数的命令;以及将命令缓冲器提供给gpu以用于执行用于绘出图像的命令,包括执行经修改的着色器。

在另一示例中,提供了一种用于修改gpu的操作以用于跟踪的计算设备。该计算设备包括:存储用于执行操作系统的一个或多个参数或指令、以及包括日志记录应用的一个或多个应用的存储器;以及被耦合到存储器的至少一个处理器。至少一个处理器被配置为:从要被提供给gpu的、用于绘出图像的命令的命令缓冲器获取要在绘出图像时被执行的多个着色器的指示;修改多个着色器中的至少一个着色器以生成经修改的着色器,经修改的着色器包括用于在执行经修改的着色器时日志记录一个或多个参数的命令;以及将命令缓冲器提供给gpu以用于执行用于绘出图像的命令,包括执行经修改的着色器。

在另一示例中,提供了一种计算机可读介质,该计算机可读介质包括由一个或多个处理器可执行以用于修改gpu的操作以用于跟踪的代码。该代码包括用于以下操作的代码:从要被提供给gpu的、用于绘出图像的命令的命令缓冲器获取要在绘出图像时被执行的多个着色器的指示;修改多个着色器中的至少一个着色器以生成经修改的着色器,经修改的着色器包括用于在执行经修改的着色器时日志记录一个或多个参数的命令;以及将命令缓冲器提供给gpu以用于执行用于绘出图像的命令,包括执行经修改的着色器。

为了实现前述和相关目的,一个或多个示例包括下文中充分描述并且在权利要求中特别指出的特征。以下描述和附图详细阐述了一个或多个示例的某些说明性特征。然而,这些特征仅指示可以采用各种示例的原理的各种方式中的几种,并且该描述旨在包括所有这样的示例及其等同物。

附图说明

图1是根据本文中描述的示例的用于修改图形处理单元(gpu)的操作的计算设备的示例的示意图。

图2是根据本文中描述的示例的在修改gpu操作时使用的数据流程图的示例。

图3是根据本文中描述的示例的用于修改一个或多个着色器以跟踪gpu操作的方法的示例的流程图。

图4示出了根据本文中描述的示例的用于显示与gpu的操作有关的时间线的界面的示例。

图5是用于执行本文中描述的功能的计算设备的示例的示意图。

具体实施方式

下面结合附图阐述的详细描述旨在作为对各种配置的描述,而非旨在表示可以实践本文中描述的概念的唯一配置。为了提供对各种概念的透彻理解,详细描述包括特定细节。然而,对于本领域技术人员而言很清楚的是,可以在没有这些具体细节的情况下实践这些概念。在某些情况下,众所周知的组件以框图形式被示出,以避免使这些概念模糊。

本文中描述了与修改图形处理单元(gpu)的操作以对其进行跟踪和/或分析有关的各种示例。在一个示例中,可以修改与在gpu上的绘出图形相关联的一个或多个着色器或其他可执行组件,以包括用于在执行期间日志记录一个或多个参数的日志记录功能。例如,应用可以生成一组绘出指令,这可以包括在处理绘出指令时调用一个或多个着色器或其他执行线程。在一个示例中,日志记录应用可以获取命令缓冲器中要发送到gpu(或相关联的图形驱动器)以进行处理的命令的列表,该列表可以包括绘图命令、射线分配命令、与执行一个或多个着色器有关的命令等。在该示例中,日志记录应用可以修改一个或多个着色器的至少一部分以包括用于日志记录一个或多个参数的指令,使得一个或多个着色器的一部分可以在执行时在日志中日志记录一个或多个参数,其中日志可以存储在文件中,在存储器中的缓冲器中,或者在稍后可以从中检索日志记录的信息的其他任何存储位置。

例如,日志记录应用可以修改一个或多个着色器的一部分以包括用于日志记录着色器名称或标识符的指令、着色器的执行开始和/或完成的时间、着色器的执行的总时间等。此外,例如,可以修改(多个)着色器以日志记录与执行光栅化、射线跟踪等有关的参数,诸如存储器访问、射线分配和/或反射信息等。日志记录应用可以将一个或多个着色器的一部分替换为经修改的着色器,这可以包括将命令缓冲器中的指针或其他标识符替换为经修改的(多个)着色器的指针或其他标识符。在另一示例中,日志记录应用可以直接修改着色器的一部分以包括日志记录功能,使得可以不需要更新命令缓冲器就可以激活日志记录。此外,例如,日志记录应用可以修改命令缓冲器中的一个或多个着色器,其中命令缓冲器涉及要在gpu上实时执行的命令和/或回放所捕获的gpu命令和/或相关联的绘出指令。在任何情况下,在这点上,日志记录可以由或基于执行命令缓冲器中的命令的gpu来执行,而在gpu或对应的图形驱动器中无需支持或其他功能。

现在转向图1至图5,参考可以执行本文中描述的动作或操作的一个或多个组件以及一种或多种方法来描绘示例,其中虚线中的组件和/或动作/操作可以是可选的。尽管下面在图3中描述的操作以特定顺序呈现和/或由示例组件执行,但是在一些示例中,取决于实现,可以改变动作的顺序和执行动作的组件。此外,在一些示例中,以下动作、功能和/或所描述的组件中的一个或多个可以由专门编程的处理器、执行专门编程的软件或计算机可读介质的处理器、或者由能够执行所描述的动作或功能的硬件组件和/或软件组件的任何其他组合来执行。

图1是用于提供绘出图形中的gpu操作的日志记录的计算设备100和/或相关组件的示例的示意图。例如,计算设备100可以包括处理器104和/或存储器106,或者可以按照其他方式与处理器104和/或存储器106耦合,其中处理器104和/或存储器106可以被配置为执行或存储与促进针对gpu的日志记录操作有关的指令或其他参数,如本文所述。计算设备100可以执行操作系统108(例如,经由处理器104和/或存储器106)以提供用于执行一个或多个应用的环境。计算设备100还可以包括gpu114,该gpu114用于处理绘出指令和/或将相关联的命令传送到显示接口116以引起一个或多个图像在显示器上的显示,该显示器可以经由显示端口118被耦合到计算设备100。

在一个示例中,显示接口116可以与处理器104和/或存储器106通信耦合以经由显示端口118与显示器(未示出)通信。本文中提及的显示端口118可以包括各种类型的端口中的一种或多种,包括高清多媒体接口(hdmi)端口、显示串行接口(dsi)端口、移动工业处理器接口(mipi)dsi端口、通用串行总线(usb)端口、火线端口、或者其他嵌入式或外部有线或无线显示端口,这些端口可以实现计算设备100与显示器之间的通信。

在一个示例中,gpu114可以是显示接口116的一部分(例如,显示接口116的电路板上的处理器)。在另一示例中,gpu114、显示接口116等可以与处理器104集成。硬件的基本上任何组合都是可能的,使得gpu114、显示接口116等可以经由总线与处理器104通信以促进向gpu114提供绘出指令。gpu114可以处理绘出指令以绘出图像,并且可以通过经由显示接口116的显示端口118向显示器传输相关联的信号来发起图像的至少一部分在显示器上的显示。在一个示例中,gpu114可以支持射线跟踪、光栅化、或用于基于所接收的绘出指令来生成图像的其他机制。

在一个示例中,应用124可以操作(例如,经由操作系统108)以生成用于经由显示接口116来显示的图像。应用124可以生成绘出指令130和/或一个或多个着色器132以绘出图像,其中绘出指令130可以为图像定义与射线跟踪图像、光栅化图像等操作有关的几何形状,并且着色器132可以可操作以进一步修改图像的几何形状(例如,添加颜色、照明或基本上任何特征)或其他目的。例如,着色器132可以是被实现为经由gpu114来执行以执行图像的着色或其他操作的一种程序,其中着色器132可以按照高度并行的方式操作,这非常适合gpu114架构。在一些示例中,着色器132可以出于可以与修改图像有关或无关的基本上任何目的来执行,以执行与在图像内施加光、暗、颜色等的水平有关的着色,对图像执行其他类型的后处理,和/或在gpu114上执行基本上任何可定义的操作。在一个示例中,应用124可以使用由图形驱动器122提供的用于定义图像几何形状的应用程序编程接口(api)来生成绘出指令130。另外,应用124可以定义一个或多个着色器132或其他执行线程以修改几何形状等,其也可以由图形驱动器122支持。图形驱动器122可以基于绘出指令生成gpu特定命令,并且可以经由gpu114执行着色器132以促进经由gpu114对图像的绘出。在一个示例中,图形驱动器122可以生成gpu特定命令并且在单独的执行线程中提供给gpu114,并且gpu114可以在与生成和向图形驱动器122提供绘出指令130和着色器132的指示不同的时域中执行命令和/或着色器(例如,在生成/提供绘出指令130之后的某个不确定的时间)。这可以被称为延迟执行,并且可能使与gpu114相关联的操作定时的确定复杂化(例如,当试图使用经由处理器104执行的应用来跟踪时间时)。

在这点上,可以提供日志记录应用126以修改命令缓冲器中的一个或多个着色器以包括用于在执行期间日志记录一个或多个参数的指令。例如,日志记录应用126可以包括着色器修改组件136,着色器修改组件136用于标识和修改在命令缓冲器中指定的一个或多个着色器以包括用于在(多个)着色器的执行期间日志记录一个或多个参数的日志记录指令134。例如,日志记录指令134可以对应于用于将一个或多个日志参数写入日志和/或引起日志记录应用126代表着色器(例如,基于在修改着色器时着色器调用由日志记录应用126注册的回调函数)来写入日志的指令。日志记录应用126还可以可选地包括输出组件138,输出组件138用于输出日志和/或其表示,诸如时间线,以允许可视化从一个或多个着色器132收集的日志数据。

在一个示例中,日志记录应用126可以在同一计算设备100上执行,或者可以作为在不同计算设备150上运行的日志记录应用156来执行(其中不同计算设备150可以具有单独的处理器、存储器、操作系统等以执行日志记录应用156),只要日志记录应用126、156可以至少与gpu114、图形驱动器122或相关组件(例如,经由api)通信,以修改着色器132以包括日志记录指令134,在着色器的执行期间接收日志事件或回调,等等。尽管这些组件仅在图1中的日志记录应用126中示出,但是日志记录应用156在被配置为在不同的计算设备150上操作时可以包括相似或相同的组件以实现与本文中针对日志记录应用126而描述的相似或相同的功能。

图2示出了图像数据的数据流200的示例,该图像数据包括可以由应用定义的到绘出的场景204的绘出指令130和着色器132。数据流200可以在诸如图1所示的计算设备100等系统架构上实现,并且因此在非限制性示例中结合图1进行描述。

例如,绘出指令130和/或着色器132可以作为命令输入到命令缓冲器202中以在gpu(例如,gpu114)上执行。在一个示例中,图形驱动器122可以基于绘出指令130生成命令缓冲器202作为gpu特定命令的列表,并且包括用于执行一个或多个着色器132以进行后处理或以其他方式辅助生成绘出的场景204的图像的命令。在该示例中,日志记录应用126可以标识在命令缓冲器202中指定的着色器,并且可以修改着色器以包括日志记录指令。在一个示例中,日志记录应用126可以修改着色器以包括某些日志记录指令,可以生成着色器的副本以在命令缓冲器202中进行修改和替换(例如,通过将着色器的指针或其他标识符替换为经修改的着色器的指针或其他标识符),等等。

例如,在这点上,日志记录应用126可以修改着色器,作为回放命令缓冲器202中用于生成绘出的场景204的命令的一部分,以再次生成绘出的场景204,作为用于分析gpu性能的工具的一部分。在这点上,日志记录应用126可以包括用于在启用日志记录的情况下回放命令或绘出指令130/着色器132的接口,并且日志记录应用126可以引起所捕获的绘出指令130的回放。着色器132具有经修改的着色器。在另一示例中,日志记录应用126可以修改着色器132以在实时生成绘出的场景204时执行命令缓冲器202中的命令。在该示例中,日志记录应用126可以包括用于指示以日志记录着色器操作的界面,如本文中进一步所述,该界面可以包括用于指示要被日志记录的信息的选项(例如,着色器标识符或名称、开始时间、停止时间、总执行时间、与用于光栅化或射线跟踪的特征相关的绘出参数等)。

当命令缓冲器202在gpu(例如,gpu114)上执行时,gpu可以执行插入命令缓冲器202中的经修改的着色器,该经修改的着色器可以包括一个或多个日志记录指令。例如,一个或多个日志记录指令可以生成用于将参数日志记录在日志206中的日志命令,日志206可以由日志记录应用126维护。例如,日志可以存储在文件中,在存储器106中的缓冲器中,或者在稍后可以从中检索日志记录的信息的基本上任何存储位置。在一个示例中,着色器中的日志记录指令可以指示将参数日志记录在日志206中,调用日志记录应用126上的函数(例如,回调函数)以日志记录参数,等等。另外,如上所述,可以将日志记录指令并入着色器中,使得着色器在着色器的执行期间执行日志记录指令作为多个指令之一,以引起上述一个或多个参数的日志记录。因此,与基于将绘出指令130/着色器132提供给命令缓冲器202的应用来进行日志记录而获取的信息相比,可以通过改变在延迟执行期间由gpu执行的着色器来提供用于gpu执行的更准确的日志记录信息。

图3是用于修改要在绘出图形以日志记录与gpu相关的操作时执行的着色器或其他执行线程的方法300的示例的流程图。例如,方法300可以由计算设备100执行,并且因此参考图1和2进行描述,作为用于执行方法300的环境的非限制性示例。

在方法300中,在动作302,可以从要被提供给gpu的、用于绘出图像的命令的命令缓冲器获取要在绘出图像时被执行的多个着色器的指示。在一个示例中,着色器修改组件136(例如,结合处理器104、存储器106、日志记录应用126、156等)可以从要被提供给gpu(例如,gpu114)的用于绘出图像的命令的命令缓冲器(例如,命令缓冲器202)获取要在绘出图像时被执行的多个着色器(例如,着色器132)的指示。例如,应用124可以生成用于绘出图像的绘出指令130,绘出指令130可以包括一个或多个绘图命令、存储器访问命令等,和/或可以指定一个或多个着色器132以应用于图像。如所描述的,应用124可以经由由图形驱动器122提供的用于操作gpu114的api来生成一个或多个绘出指令130,指定一个或多个着色器132,等等。

例如,应用124可以在绘出指令中指定一个或多个着色器132,该绘出指令还可以包括用于执行着色器的一个或多个参数,诸如着色率、颜色修改参数、图块大小、或可能与图像有关或与图像无关的基本上任何参数。应用124可以将绘出指令130和着色器132的指示提供给命令缓冲器202以在绘出图像时进行处理,并且图形驱动器122例如可以处理绘出指令130,在要绘出的图像上应用或以其他方式调用着色器132,等等,以生成gpu特定命令,这些命令可以引起gpu114绘出图像(例如,经由光栅化、射线跟踪或以其他方式)。在一个示例中,着色器修改组件136可以在图像的初始绘出期间和/或在命令缓冲器202中的命令回放期间从命令缓冲器202获取多个着色器的指示(例如,如由日志记录应用126指定的,例如,用于调试图像的绘出的目的)。

在方法300中,在动作304,可以修改多个着色器中的至少一个着色器以生成经修改的着色器,经修改的着色器包括用于在执行经修改的着色器时日志记录一个或多个参数的命令。在一个示例中,着色器修改组件136(例如,结合处理器104、存储器106、日志记录应用126、156等)可以修改多个着色器(例如,着色器132)中的至少一个着色器以生成经修改的着色器,经修改的着色器包括用于在执行经修改的着色器时日志记录一个或多个参数的命令(例如,日志记录指令134)。例如,着色器修改组件136可以将日志记录指令134引入一个或多个着色器132中作为附加软件代码以调用导致日志记录的一个或多个函数,其中日志记录指令134可以指示用于日志记录的参数。例如,参数可以指定要被日志记录的数据,诸如着色器名称或标识符、当前时间、与由着色器执行的处理有关的参数(诸如一个或多个光栅化或射线跟踪特征,其可以包括着色率、图块大小、射线反射信息等、执行线程数等)、日志记录位置(例如,日志的位置或指针等)等。

在一个示例中,着色器修改组件136可以自动将日志记录指令134插入着色器132中以至少包括用于以下操作的指令:当着色器132执行时,将着色器名称(或其他标识符)和/或开始时间日志记录为初始指令,和/或在着色器132终止之前,将结束时间或所计算的总执行时间日志记录为最后指令。在一个示例中,着色器修改组件136可以基于经由用户界面的用于启用着色器日志记录的指示来插入这样的日志记录指令134。在一个示例中,着色器132可以使用中间语言以高级源代码形式(例如,诸如高级着色器语言(hlsl)、opengl着色器语言(glsl)、金属着色语言等)提供,或者使用中间编译格式(诸如directx字节码(dxbc)、directx中间语言(dxil)、标准便携式中间表示(spir)(诸如spir-v等))提供,或者直接使用特定目标gpu模型的本机编译指令格式提供。在任何情况下,例如,着色器修改组件136可以至少部分基于标识中间语言中要插入日志记录的位置(例如,着色器程序的开始、着色器程序的结束、或着色器内通过扫描着色器以查找要检测的特定类型的指令来标识的特定位置等)来修改(多个)着色器132。一旦标识出该位置,着色器修改组件136就可以在该位置插入新指令,如上所述,该新指令在被执行时可以执行日志记录数据的动作。结果是经修改的着色器,该经修改的着色器使用与原始着色器相同的格式(高级源代码、中间编译格式或本机gpu指令等),并且具有使用适当的语法(例如,基于格式)插入代码中的日志记录指令。如果正在修改高级源代码,则着色器修改组件136还可以(经由常规着色器编译器)重新编译(多个)着色器132以产生中间编译格式,该中间编译格式然后可以被提供给图形驱动器122以供执行。

在另一示例中,日志记录应用126,156可以提供用户界面,以允许修改着色器132软件代码指令以在经由用户界面指定(例如,由开发人员)的某个位置包括日志记录指令134和/或包括某些日志记录参数。在一个示例中,着色器修改组件136可以修改在命令缓冲器中指示的着色器132。在另一示例中,着色器修改组件136可以基于着色器132的副本来生成经修改的着色器,着色器被修改为包括日志记录指令134。在又一示例中,着色器修改组件136可以存储与一个或多个着色器132相关联的经修改的着色器,并且可以改为使用经修改的(多个)着色器,其中给定着色器映射到经修改的着色器。

在这些示例中的一些中,在动作304修改至少一个着色器时,可选地在动作306,可以在命令缓冲器内将至少一个着色器替换为经修改的着色器。在一个示例中,着色器修改组件136(例如,结合处理器104、存储器106、日志记录应用126、156等)可以在命令缓冲器(例如,命令缓冲器202)内将至少一个着色器(例如,至少一个着色器132)替换为经修改的着色器,其中经修改的着色器包括日志记录指令134。因此,例如,在至少一个着色器本身未修改而另一着色器被修改或与至少一个着色器相关联的情况下,着色器修改组件136可以将至少一个着色器替换为经修改的着色器,这可以包括将命令缓冲器202内的至少一个着色器的指针或其他指定器替换为经修改的着色器的指针或其他指定器。

在方法300中,在动作308,可以将命令缓冲器提供给gpu以用于执行用于绘出图像的命令。在一个示例中,图形驱动器122(例如,结合处理器104、存储器106、日志记录应用126、156等)可以将命令缓冲器(例如,具有经修改的着色器的命令缓冲器202)提供给gpu(例如,gpu114)以执行用于绘出图像的命令。例如,图形驱动器122可以生成用于执行绘出指令130和/或应用在命令缓冲器中指示的着色器132的gpu特定命令。在任何情况下,图形驱动器122可以应用或指示gpu114应用经修改的(多个)着色器,以促进在(多个)着色器132中日志记录指令134的执行。这可以在命令缓冲器202的回放之前进行,其中在对图像的初始绘出(例如,以调试或以其他方式查看与着色器执行有关的指标)之后,日志记录应用126、156使用经修改的着色器132回放命令缓冲器202。

结果,可选地,在动作310,可以通过经修改的着色器来修改日志以指示一个或多个参数。在一个示例中,着色器132(例如,结合处理器104、存储器106、日志记录应用126、156、gpu114等)可以修改日志(例如,日志206或另一日志)以指示一个或多个参数。例如,当gpu114引起着色器132的执行时,着色器132可以执行日志记录指令134。在一个示例中,日志记录指令134可以指示日志206(例如,或指向其的指针)以指示用于日志记录在日志记录指令134中指示的参数的日志。在另一示例中,日志记录指令134可以包括对具有一个或多个参数的日志记录应用126、156的回调,以引起日志记录应用126、156将一个或多个参数日志记录在日志206中,等等。在任何情况下,执行着色器132的gpu114可以基于日志记录指令134获取所请求的参数(例如,着色器标识符、当前时间等),并且可以基于引入着色器132中的日志记录指令134来引起参数的日志记录。

在方法300中,可选地,在动作312,可以至少部分基于在日志中被日志记录的一个或多个参数来在显示器上生成与执行经修改的着色器相关联的时间线。在一个示例中,输出组件138(例如,结合处理器104、存储器106和/或日志记录应用126、156等)可以至少部分基于在日志(例如,日志206)中日志记录的一个或多个参数来在显示器(例如,计算设备100、150的显示器)上生成与执行经修改的着色器相关联的时间线。例如,日志记录应用126、156可以读取和处理日志206(例如,在图像的绘出之后、期间等)以获取日志记录的着色器信息,诸如着色器标识符、给定着色器的开始时间、或与着色器等的处理有关的一个或多个其他参数等,并且输出组件138可以显示着色器执行的时间线。在其他示例中,输出组件138可以基于日志记录指令134来显示在日志206中指示的补充或替代输出的其他表示。

图4中示出了一个示例,图4示出了用于在显示器上显示以指示不同着色器在绘出图像时的执行时间的界面400的示例。例如,接口400的数据可以从由被修改为包括日志记录指令134的一个或多个着色器132生成的日志(诸如日志206)而被获取。在该示例中,日志206可以包括来自着色器132的日志事件,该日志事件指示用于执行给定着色器的着色器的标识符、开始时间和结束时间。因此,界面400可以是指示用于执行不同的着色器的定时的时间线402的图形表示,其中每个条404、406、408表示沿着时间线402的不同的顺序执行的着色器的执行时间。在该示例中,诸如条406等条的选择可能会引起框410的显示,该框410指示有关由条406表示的着色器的其他信息,诸如着色器标识符、开始时间和结束时间,如在日志206中记录的。该界面可以提供着色器执行时间的图形表示,这可以使得开发人员能够基于日志206中的数据来可视化执行时间。此外,给定gpu114延迟绘出行为,使用着色器132来日志记录数据可以至少更精确地表示关于着色器实际上何时执行的时序数据。

图4中的界面400是非限制性示例,并且可以日志记录日志206中的参数的基本上任何集合以显示其图形表示。而且,可以查看日志206以确定与着色器相关联的度量。另外,例如,日志记录指令134可以引起出于不同目的而创建不同日志(例如,针对不同着色器或着色器组的不同日志)。在一个示例中,输出组件138可以组合来自一个或多个日志的数据以创建提供日志记录的数据的图形表示的界面。在任何情况下,在一些示例中,除了gpu114确定当前日志记录时间的能力,可以在着色器132中实现日志记录而不需要gpu114的其他修改或功能。

图5示出了包括如图1所示的其他可选组件细节的计算设备100的示例。在一个示例中,计算设备100可以包括用于执行与本文中描述的一个或多个组件和功能相关联的处理功能的处理器104。处理器104可以包括单组或多组处理器或多核处理器。此外,处理器104可以被实现为集成处理系统和/或分布式处理系统。

计算设备100还可以包括诸如用于存储由处理器104执行的应用的本地版本、相关指令、参数等的存储器106。存储器106可以包括计算机可用的存储器类型,诸如随机存取存储器(ram)、只读存储器(rom)、磁带、磁盘、光盘、易失性存储器、非易失性存储器及其任何组合。另外,处理器104和存储器106可以包括并且执行在处理器104上执行的操作系统、一个或多个应用(诸如图形驱动器122、日志记录应用126和/或其组件、显示驱动器等,如本文所述)、和/或计算设备100的其他组件。

此外,计算设备100可以包括用于利用本文中描述的硬件、软件和服务来提供与一个或多个其他设备、方、实体等来建立和维护通信的通信组件502。通信组件502可以在计算设备100上的组件之间以及在计算设备100与外部设备(诸如位于通信网络上的设备和/或串行或本地连接到计算设备100的设备)之间进行通信。例如,通信组件502可以包括一个或多个总线,并且还可以包括分别与可操作以用于与外部设备接口的无线或有线发射器和接收器相关联的发射链组件和接收链组件。例如,通信组件502可以在日志记录应用126与另一设备上的gpu之间,在日志记录应用126的分布式组件之间等进行通信。

另外,计算设备100可以包括数据存储库504,该数据存储库504可以是硬件和/或软件的任何合适的组合,该数据存储库504提供了结合本文中描述的示例而使用的信息、数据库和程序的大容量存储。例如,数据存储库504可以是或者可以包括用于处理器104当前未执行的应用和/或相关参数的数据存储库。此外,数据存储库504可以是用于操作系统、应用(诸如在处理器104上执行的图形驱动器122、日只记录应用126和/或其组件、显示驱动器等、和/或计算设备100的一个或多个其他组件)的数据存储库。

计算设备100还可以包括用户接口组件506,该用户接口组件506可操作以从计算设备100的用户接收输入并且还可以操作为生成输出以呈现给用户(例如,经由到显示设备的显示接口116)。用户接口组件506可以包括一个或多个输入设备,包括但不限于键盘、数字小键盘、鼠标、触敏显示器、导航键、功能键、麦克风、语音识别组件、手势识别组件、深度传感器、凝视跟踪传感器、能够从用户接收输入的任何其他机制、或其任何组合。此外,用户接口组件506可以包括一个或多个输出设备,包括但不限于显示接口116、扬声器、触觉反馈机制、打印机、能够向用户呈现输出的任何其他机制、或其任何组合。在一个示例中,用户接口组件506可以显示或者可以包括界面400或类似的界面以显示存储器使用信息,如本文所述。

计算设备100还可以包括用于基于从处理器104接收的射线跟踪指令来绘出图像的gpu114,如本文所述。gpu114可以另外经由显示接口116发送信号以引起绘出图像被显示在显示器(未示出)上。另外,计算设备100可以包括如本文中描述的图形驱动器122,以提供用于光栅化、射线跟踪等图像的gpu特定命令,如本文所述。另外,如本文所述,计算设备100可以包括日志记录应用126,以利用日志记录指令来对着色器进行仪器化,以引起着色器在被执行时对信息进行日志记录。

举例来说,元素或元素的任何部分或元素的任何组合可以用包括一个或多个处理器的“处理系统”来实现。处理器的示例包括微处理器、微控制器、数字信号处理器(dsp)、现场可编程门阵列(fpga)、可编程逻辑设备(pld)、状态机、门控逻辑、分立硬件电路、以及被配置为执行在整个本公开中描述的各种功能的其他合适的硬件。处理系统中的一个或多个处理器可以执行软件。软件应当广义地解释为是指指令、指令集、代码、代码段、程序代码、程序、子程序、软件模块、应用、软件应用、软件包、例程、子例程、对象、可执行文件、执行线程、过程、函数等,无论是被称为软件、固件、中间件、微码、硬件描述语言还是其他形式。

因此,在一个或多个示例中,所描述的一个或多个功能可以按照硬件、软件、固件或其任何组合而被实现。如果以软件实现,则功能可以作为一个或多个指令或代码存储或编码在计算机可读介质上。计算机可读介质包括计算机存储介质。存储介质可以是计算机可以访问的任何可用介质。作为示例而非限制,这样的计算机可读介质可以包括ram、rom、eeprom、cd-rom或其他光盘存储、磁盘存储或其他磁性存储设备、或者可以用于以指令或数据结构的形式承载或存储期望的程序代码并且可以由计算机访问的任何其他介质。本文中使用的磁盘和光盘包括压缩盘(cd)、激光光盘、光盘、数字多功能光盘(dvd)和软盘,其中磁盘通常以磁性方式复制数据,而光盘则通过激光以光学方式复制数据。上述的组合也应当被包括在计算机可读介质的范围内。

提供先前的描述以使得本领域的任何技术人员能够实践本文中描述的各种示例。对这些示例的各种修改对于本领域技术人员而言将是很清楚的,并且本文中定义的一般原理可以应用于其他示例。因此,权利要求书不旨在限于本文中所示的示例,而是与和语言权利要求相一致的全部范围相一致,其中除非明确指出,否则以单数形式提及元素并不意图表示“一个并且只有一个”,而是表示“一个或多个”。除非另有特别说明,否则术语“一些”是指一个或多个。本领域普通技术人员已知或以后将知道的与本文中描述的各种示例的元素的所有结构和功能等同物均旨在由权利要求书涵盖。而且,无论在权利要求书中是否明确叙述了本文中公开的内容,都不打算将其公开给公众。除非使用短语“用于……的手段”明确叙述该要素,否则任何权利要求要素都不应当被解释为手段加功能。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1