一种基于自研显卡的GPU状态调试方法、装置及存储介质制造方法及图纸

技术编号:35795618 阅读:20 留言:0更新日期:2022-12-01 14:46
本发明专利技术实施例公开了一种基于自研显卡的GPU状态调试方法、装置及存储介质,该方法可以包括:着色器程序执行前设置调试索引参数和要查看的着色器内置变量并预先告知GPU各执行单元记录处理所述调试索引参数的执行过程信息;着色器程序执行时调用所述着色器内置变量以生成渲染结果,并记录处理所述调试索引参数的执行过程信息;根据所述执行过程信息获取到GPU状态信息并根据所述GPU状态信息获取到处理所述调试索引参数的GPU执行单元,利用专用函数输入所述着色器内置变量,获取到所述GPU执行单元处理的输出着色器内置变量;当所述渲染结果异常时,分析所述输出着色器内置变量与设置条件的差异,以确定处理所述着色器的GPU执行单元异常。执行单元异常。执行单元异常。

【技术实现步骤摘要】
一种基于自研显卡的GPU状态调试方法、装置及存储介质


[0001]本专利技术实施例涉及信号的软件处理
,尤其涉及一种基于自研显卡的GPU状态调试方法、装置及存储介质。

技术介绍

[0002]当前市面上针对GPU内部渲染状态和着色器(Shader)的调试工具相当少见,目前所知的针对着色器的调试工具有 NVidia的NSight、微软公司针对Unity的Graphics Debug、开源的RenderDoc等,但是未找到GPU内部渲染状态的调试工具,主要原因在于GPU是多核多线程,执行时是并行处理的,在运行时难以跟踪其内部状态。一种略为常用的方法是“颜色调试法”,具体做法是把要在着色器中待调试的变量转变为片段着色器中的颜色并显示在屏幕上,然后观察颜色显示是否正确,但是此调试方法能调试的变量较少且难以量化显示。

技术实现思路

[0003]有鉴于此,本专利技术实施例期望提供一种基于自研显卡的GPU状态调试方法、装置及存储介质,能够实时抓取GPU内部当前执行单元的任意数据,支持参数设置、单步执行和变量查看反复操作,提升了GPU状态调试的实时性以及易操作性。
[0004]本专利技术实施例的技术方案是这样实现的:第一方面,本专利技术实施例提供一种基于自研显卡的GPU状态调试方法,包括:着色器程序执行前设置调试索引参数和要查看的着色器内置变量并预先告知GPU各执行单元记录处理所述调试索引参数的执行过程信息;着色器程序执行时调用所述着色器内置变量以生成渲染结果,并基于所述着色器内置变量的调用,记录处理所述调试索引参数的执行过程信息;其中,所述执行过程信息包括GPU执行单元信息和关联模块的内部状态信息;根据所述执行过程信息获取到GPU状态信息并根据所述GPU状态信息获取到处理所述调试索引参数的GPU执行单元,利用专用函数输入所述着色器内置变量,获取到所述GPU执行单元处理的输出着色器内置变量;当所述渲染结果异常时,根据所述GPU状态信息分析所述输出着色器内置变量与设置条件的差异,以确定处理所述着色器的GPU执行单元异常。
[0005]第二方面,本专利技术实施例提供一种基于自研显卡的GPU状态调试装置,所述装置包括:设置部分、记录部分、获取部分、分析部分;其中,所述设置部分,经配置为着色器程序执行前设置调试索引参数和要查看的着色器内置变量并预先告知GPU各执行单元记录处理所述调试索引参数的执行过程信息;所述记录部分,经配置为着色器程序执行时调用所述着色器内置变量以生成渲染结果,并基于所述着色器内置变量的调用,记录处理所述调试索引参数的执行过程信息;其中,所述执行过程信息包括GPU执行单元信息和关联模块的内部状态信息;
所述获取部分,经配置为根据所述执行过程信息获取到GPU状态信息并根据所述GPU状态信息获取到处理所述调试索引参数的GPU执行单元,利用专用函数输入所述着色器内置变量,获取到所述GPU执行单元处理的输出着色器内置变量;所述分析部分,经配置为当所述渲染结果异常时,根据所述GPU状态信息分析所述输出着色器内置变量与设置条件的差异,以确定处理所述着色器的GPU执行单元异常。
[0006]第三方面,本专利技术实施例提供了一种计算设备,所述计算设备包括:通信接口,存储器和处理器;各个组件通过总线系统耦合在一起;其中,所述通信接口,用于在与其他外部网元之间进行收发信息过程中,信号的接收和发送;所述存储器,用于存储能够在所述处理器上运行的计算机程序;所述处理器,用于在运行所述计算机程序时,执行第一方面所述基于自研显卡的GPU状态调试方法的步骤。
[0007]第四方面,本专利技术实施例提供一种计算机存储介质,所述计算机存储介质存储有基于自研显卡的GPU状态调试的程序,所述基于自研显卡的GPU状态调试的程序被至少一个处理器执行时实现第一方面所述基于自研显卡的GPU状态调试方法的步骤。
[0008]本专利技术实施例提供了一种基于自研显卡的GPU状态调试方法、装置及存储介质,通过在着色器程序执行前设置调试索引参数和要查看的着色器内置变量并预先告知GPU各执行单元根据所述着色器内置变量,记录处理所述调试索引参数的GPU执行单元信息和关联模块的内部状态信息等执行过程信息;在着色器程序执行时将所述着色器内置变量传送给所述着色器进行调用以生成渲染结果;同时基于所述着色器内置变量的调用,记录处理所述调试索引参数的执行过程信息;根据所述执行过程信息获取到GPU状态信息并确定处理所述调试索引参数的GPU执行单元,利用专用函数获取到指定的GPU状态、状态数据内容以及输入或输出着色器内置变量;基于上述GPU渲染结果和获取到的指定的GPU状态,按照可编程管线的渲染流水线顺序,分析并确定处理所述着色器的GPU执行单元异常。若所述输入或输出内置变量不满足设定的条件时,可以重新设定和运行所述着色器内置变量,查看修改后的渲染结果、输入或输出着色器内置变量是否与预先设置条件一致。在整个调试过程中可以实时抓取到GPU内部当前执行单元的任意数据、支持参数设置、单步执行和变量查看并且可以反复操作,提升了GPU状态调试的实时性和易操作性。
附图说明
[0009]图1为本专利技术实施例提供的计算机系统组成示意图;图2为说明图1中的CPU、GPU和系统存储器的实例实施方案的框图;图3为本专利技术实施例提供的GPU中所包含的一个处理器的组成示意图;图4为本专利技术实施例提供的可编程管线的渲染流程线操作步骤流程图;图5为本专利技术实施例提供的一种基于自研显卡的GPU状态调试方法流程图;图6为本专利技术实施例提供的一种基于自研显卡的GPU状态调试操作流程图;图7为本专利技术实施例提供的基于自研显卡的GPU状态调试示例流程图;图8为本专利技术实施例提供的一种基于自研显卡的GPU状态调试装置示意图。
具体实施方式
[0010]下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述。
[0011]参见图1,其示出了能够实现本专利技术实施例技术方案的计算机系统组成100,需注意,图示的系统是可能的系统的仅一个示例,并且可根据需要在各种系统中的任一系统中实现本专利技术的实施方案。该计算机系统组成100具体可以为任意类型的计算装置,包括且不限于台式计算机、服务器、工作站、膝上计算机、基于计算机的仿真器、无线装置、移动或蜂窝电话(包含所谓的智能电话)、个人数字助理(PDA)、视频游戏控制台(包含视频显示器、移动视频游戏装置、移动视频会议单元)、膝上型计算机、桌上型计算机、电视机顶盒、平板计算装置、电子书阅读器、固定或移动媒体播放器等。如图1所示,计算机系统组成100可以包括中央处理器(Central Processing Unit,CPU)10、图形处理器(Graphic Processing Unit,GPU)20、存储器30,还包括显示处理器40、显示器41以及通信接口50。显示处理器40可为与GPU 20相同的集成电路(Integrated Circuit,IC)的部分,也可在包含GPU 20的一或多个IC的外部,或可形成于在包含GPU 20的IC外部的IC中。
...

【技术保护点】

【技术特征摘要】
1.一种基于自研显卡的GPU状态调试方法,其特征在于,所述方法包括:着色器程序执行前设置调试索引参数和要查看的着色器内置变量并预先告知GPU各执行单元记录处理所述调试索引参数的执行过程信息;着色器程序执行时调用所述着色器内置变量以生成渲染结果,并基于所述着色器内置变量的调用,记录处理所述调试索引参数的执行过程信息;其中,所述执行过程信息包括GPU执行单元信息和关联模块的内部状态信息;根据所述执行过程信息获取到GPU状态信息并根据所述GPU状态信息获取到处理所述调试索引参数的GPU执行单元,利用专用函数输入所述着色器内置变量,获取到所述GPU执行单元处理的输出着色器内置变量;当所述渲染结果异常时,根据所述GPU状态信息分析所述输出着色器内置变量与设置条件的差异,以确定处理所述着色器的GPU执行单元异常。2.根据权利要求1所述方法,其特征在于,所述着色器程序执行时调用所述着色器内置变量以生成渲染结果,并基于所述着色器内置变量的调用,记录处理所述调试索引参数的执行过程信息;其中,所述执行过程信息包括GPU执行单元信息和关联模块的内部状态信息,包括:单步执行应用程序并通过GPU执行单元运行着色器程序,以调用所述着色器内置变量生成渲染结果;通过GPU执行单元自身记录处理所述调试索引参数的GPU执行单元信息和关联模块的内部状态信息。3.根据权利要求1所述方法,其特征在于,所述根据所述执行过程信息获取到GPU状态信息并根据所述GPU状态信息获取到处理所述调试索引参数的GPU执行单元,利用专用函数输入所述着色器内置变量,获取到所述GPU执行单元处理的输出着色器内置变量,包括:根据所述GPU执行单元信息和关联模块的内部状态信息,获取到实时并行运行时的GPU状态信息;根据所述GPU状态信息确定处理所述调试索引参数的GPU执行单元并获取所述GPU执行单元的标识信息;根据所述GPU执行单元的标识信息,利用专用函数输入所述着色器内置变量,以获取所述GPU执行单元处理的输出着色器内置变量。4.根据权利要求1所述方法,其特征在于,所述当所述渲染结果异常时,根据所述GPU状态信息分析所述输出着色器内置变量与设置条件的差异,以确定处理所述着色器的GPU执行单元异常,包括:对比GPU状态信息中的输入或输出着色器内置变量与设置的预期内置变量的差异,以获取到对比结果;根据所述对比结果,若不一致时,确定处理所述着色器的GPU执行单元异常;或者,根据所述对比结果,判断是否需要重新设置内置变量以重复执行操作。5.根据权利要求4所述方法,其特征在于,所述根据所述对比结果,判断是否需要重新设置内置变量以重复执行操作,包括:若所述GPU状态信息中的输入或输出着色器内置变量与预...

【专利技术属性】
技术研发人员:杜文华李彪刘伟曹伟王海洋陈成
申请(专利权)人:西安芯瞳半导体技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1