CN115145778B - 一种显卡渲染结果分析方法、装置及存储介质 - Google Patents
一种显卡渲染结果分析方法、装置及存储介质 Download PDFInfo
- Publication number
- CN115145778B CN115145778B CN202211072763.8A CN202211072763A CN115145778B CN 115145778 B CN115145778 B CN 115145778B CN 202211072763 A CN202211072763 A CN 202211072763A CN 115145778 B CN115145778 B CN 115145778B
- Authority
- CN
- China
- Prior art keywords
- rendering
- rendering result
- display card
- api function
- calling
- 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.)
- Active
Links
- 238000009877 rendering Methods 0.000 title claims abstract description 271
- 238000000034 method Methods 0.000 title claims abstract description 53
- 230000006870 function Effects 0.000 claims abstract description 227
- 230000002159 abnormal effect Effects 0.000 claims abstract description 53
- 238000004458 analytical method Methods 0.000 claims abstract description 47
- 230000015654 memory Effects 0.000 claims description 27
- 238000012360 testing method Methods 0.000 claims description 14
- 230000005856 abnormality Effects 0.000 claims description 10
- 238000004891 communication Methods 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 5
- 239000000126 substance Substances 0.000 claims description 4
- 238000012545 processing Methods 0.000 description 16
- 239000012634 fragment Substances 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 5
- 230000036316 preload Effects 0.000 description 3
- 241000282326 Felis catus Species 0.000 description 2
- 239000003086 colorant Substances 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000009191 jumping Effects 0.000 description 2
- 238000002156 mixing Methods 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 241000699666 Mus <mouse, genus> Species 0.000 description 1
- 101100366940 Mus musculus Stom gene Proteins 0.000 description 1
- 241000699670 Mus sp. Species 0.000 description 1
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000011960 computer-aided design Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000010223 real-time analysis Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 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/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2205—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
- G06F11/2221—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test input/output devices or peripheral units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2273—Test methods
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明实施例公开了一种显卡渲染结果分析方法、装置及存储介质,该方法可以包括:在应用程序执行过程中,记录图形API函数的调用顺序以及各图形API函数在调用时所使用的上下文参数信息;通过被测显卡与标准显卡分别按照所记录的图形API函数的调用顺序,根据各图形API函数在调用时所使用的上下文参数信息相应调用图形API函数,对应生成第一渲染结果与第二渲染结果;当所述第一渲染结果与所述第二渲染结果之间的差异满足设定的判定条件,确定所述被测显卡异常,并生成用于进行分析和调试的异常描述信息。
Description
技术领域
本发明实施例涉及计算机图形信号的软件处理领域,尤其涉及一种显卡渲染结果分析方法、装置及存储介质。
背景技术
开发被测显卡时,通常需要对渲染结果做分析,以检验渲染结果是否符合预期,目前,缺乏对被测显卡的渲染结果进行实时分析和能自动发现问题的方法和技术手段。当前,用户只能通过人眼观察和批处理分析的手段对被测显卡渲染的结果进行分析,但是人眼观察只能查看到明显异常,对细微差别无法识别;批处理分析是批量分析指定测试集,每个测试用例都是单帧的,执行完测试用例再针对每个用例渲染结果做重点排查,此种分析手段只能分析指定测试用例集,无法针对其他来源用例和客户用例做测试,并且只能做单帧分析,对于多帧应用程序和实际场景中的应用程序分析无能为力。因此,这两种分析手段均不能够把各种渲染的异常,例如无渲染结果、渲染图形畸变、渲染图形颜色异常、渲染图形像素丢失等问题,实时且自动地识别出来。
发明内容
有鉴于此,本发明实施例期望提供一种显卡渲染结果分析方法、装置及存储介质,能够实时查看渲染异常的细微差别,提升渲染结果异常定位分析的实时性和准确性。
本发明实施例的技术方案是这样实现的:
第一方面,本发明实施例提供一种显卡渲染结果分析方法,包括:
在应用程序执行过程中,记录图形API函数的调用顺序以及各图形API函数在调用时所使用的上下文参数信息;
通过被测显卡与标准显卡分别按照所记录的图形API函数的调用顺序,根据各图形API函数在调用时所使用的上下文参数信息相应调用图形API函数,对应生成第一渲染结果与第二渲染结果;
当所述第一渲染结果与所述第二渲染结果之间的差异满足设定的判定条件,确定所述被测显卡异常,并生成用于进行分析和调试的异常描述信息。
第二方面,本发明实施例提供一种显卡渲染结果分析装置,所述装置包括:记录部分、渲染部分和确定部分,其中,
所述记录部分,经配置为在应用程序执行过程中,记录图形API函数的调用顺序以及各图形API函数在调用时所使用的上下文参数信息;
所述渲染部分,经配置为通过被测显卡与标准显卡分别按照所记录的图形API函数的调用顺序,根据各图形API函数在调用时所使用的上下文参数信息相应调用图形API函数,对应生成第一渲染结果与第二渲染结果;
所述确定部分,经配置为当所述第一渲染结果与所述第二渲染结果之间的差异满足设定的判定条件,确定所述被测显卡异常,并生成用于进行分析和调试的异常描述信息。
第三方面,本发明实施例提供了一种计算设备,所述计算设备包括:通信接口,存储器和处理器;各个组件通过总线系统耦合在一起;其中,
所述通信接口,用于在与其他外部网元之间进行收发信息过程中,信号的接收和发送;
所述存储器,用于存储能够在所述处理器上运行的计算机程序;
所述处理器,用于在运行所述计算机程序时,执行第一方面所述显卡渲染结果分析方法的步骤。
第四方面,本发明实施例提供一种计算机存储介质,所述计算机存储介质存储有显卡渲染结果分析的应用程序,所述应用程序被至少一个处理器执行时实现第一方面所述显卡渲染结果分析方法的步骤。
本发明实施例提供了一种显卡渲染结果分析方法、装置及存储介质,在应用程序执行过程中记录图形API函数的调用顺序以及各图形API函数在调用时所使用的上下文参数信息,通过同时在被测显卡和标准显卡上分别按照所记录的图形API函数的调用顺序,根据各图形API函数在调用时所使用的上下文参数信息相应调用图形API函数,对应生成第一渲染结果和第二渲染结果,此分析方法仅需基于记录的图形API函数的调用顺序以及各图形API函数在调用时所使用的上下文参数信息,在被测显卡和标准显卡上回放记录的内容,操作简单并且可以实时获取到渲染结果;当所述第一渲染结果与所述第二渲染结果之间的差异满足设定的判定条件,确定所述被测显卡异常,生成用于进行分析和调试的异常描述信息,通过比较第一渲染结果和第二渲染结果,可以自动识别出被测显卡第一渲染结果异常并将所述第一渲染结果的异常描述信息展示在显示器界面上或者保存为内存数据或本地文件,以便后续进一步的详细分析和调试,提升了渲染结果分析的易操作性、实时性和连续性。
附图说明
图1为本发明实施例提供的计算机系统组成示意图;
图2为说明图1中的CPU和显卡的实例实施方案的框图;
图3为本发明实施例提供的一种显卡渲染结果分析方法流程图;
图4为本发明实施例提供的绘制三角形的渲染流程图;
图5为本发明实施例提供的一种显卡渲染结果分析的详细操作流程图;
图6为本发明实施例提供的一种显卡渲染结果分析装置示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
参见图1,其示出了能够实现本发明实施例技术方案的计算机系统组成100,需注意,图示的系统是可能的系统的仅一个示例,并且可根据需要在各种系统中的任一系统中实现本发明的实施方案。该计算机系统组成100具体可以为任意类型的计算装置,包括且不限于台式计算机、服务器、工作站、膝上计算机、基于计算机的仿真器、无线装置、移动或蜂窝电话(包含所谓的智能电话)、个人数字助理(PDA)、视频游戏控制台(包含视频显示器、移动视频游戏装置、移动视频会议单元)、膝上型计算机、桌上型计算机、电视机顶盒、平板计算装置、电子书阅读器、固定或移动媒体播放器等。如图1所示,计算机系统组成100可以包括中央处理器(Central Processing Unit,CPU)10、显卡20、系统存储器30,还包括显示器40以及通信接口50。
具体来说,CPU 10可包括控制计算机系统100运算的通用或专用处理器,其经配置以处理供执行的计算机程序的指令。用户可经由通信接口50与耦合到计算机系统100的另一输入装置(未图示)例如:轨迹球、键盘、鼠标、麦克风、触摸垫、触摸屏以及其他类型的装置将输入提供给计算机系统100中的CPU 10 ,以使得CPU 10执行一或多个软件应用程序的指令。在CPU 10上执行的应用程序可包括图形用户接口(Graphic User Interface,GUI)应用程序、操作系统、便携式制图应用程序、用于工程或艺术应用的计算机辅助设计应用程序、视频游戏应用程序、文字处理器应用程序、电子邮件应用程序、电子表格应用程序、媒体播放器应用程序或使用2D、3D的图形渲染应用程序等,本发明实施例以执行图形渲染应用程序为例。此外,CPU 10上执行的图形渲染应用程序可包含一或多个图形渲染指令,也可以理解为待渲染的画面帧中包含一或多个所述图形。所述图形渲染指令可符合图形应用程序编程接口(Application Programming Interface,API),例如,开放式图形库API(OpenGLAPI)、开放式图形库嵌入系统(OpenGL ES)API、Direct3D API、X3D API、RenderMan API、WebGL API、开放式计算语言(OpenCLT M)、RenderScript或任何其它异构计算API,或任何其它公用或专有标准图形或计算API,本发明下面的描述中将以开放式图形库 API为例进行说明。
显卡20,全称显示接口卡,又称显示适配器,是计算机系统最基本配置、最重要的配件之一。其接在计算机主板上,将CPU 10提供的指令和数据进行相应的处理变成显示器40能够接受的文字或图形图像后,输出到显示器40并把图形图像在显示器40上展示出来,也可以理解为显卡20将计算机的数字信号转换成模拟信号传输给显示器40并把图形图像在显示器40上展示出来。显卡20的核心显示芯片-图形处理器(Graphic Processing Unit,GPU)21,经配置以执行图形运算,从而将一或多个图形渲染到显示器40进行展示。可以理解为,CPU 10通过控制GPU驱动程序14,将图形渲染指令翻译为GPU 21可读的图形渲染命令,然后GPU 21根据收到的一或多个图形渲染命令,包括但不限于图形命令和图形数据,例如绘制命令、状态信息、图元信息、纹理信息等,以使得GPU 21执行所述图形渲染命令中的一些或者全部,从而将一或多个图形进行渲染并在显示器40上展示出来。
系统存储器30,经配置用于存储能够在CPU 10上运行的应用程序指令、GPU 21执行需要的图形数据以及其运行结果数据。例如,GPU 21可将完全形成的图像存储在系统存储器30中。系统存储器30可包含一或多个易失性或非易失性存储器或存储装置,例如,随机存取存储器 (RAM)、静态RAM(SRAM)、动态RAM(DRAM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM (EEPROM)、快闪存储器、磁性数据媒体或光学存储媒体。显示器40可为计算机系统100的显示器,其显示由GPU 21产生的图形图像内容。显示器40可为液晶显示器(LCD)、有机发光二极管显示器(OLED)、阴极射线管(CRT)显示器、等离子显示器或另一类型的显示装置。
结合图1所示,图2进一步阐述计算机系统100中的关键部件CPU 10和显卡20的实施方案的框图200,如图2所示,本发明实施例的实施方案的框图200主要包括但不限于CPU10、显卡20及其对应内部构成。其中CPU 10包括应用程序11、图形API 13、GPU驱动程序14,其中图形API 13可以是上述API中的任一种,本发明实施例以开放式图形库API为例,而图形API 13和GPU驱动程序14两者中的每一个,可以为一或多个应用程序服务,在一些示例中,图形API 13和GPU驱动程序14可实施为CPU 10的硬件单元,而GPU驱动程序14可以将CPU10的一或多个图形渲染指令编译成GPU 21可执行的图形渲染命令。显卡20包括GPU 21、显示内存22、数/模转换器23,还可以包括视频图形阵列(Video Graphics Array,VGA)接口或数字视频接口(Digital Visual Interface,DVI)(图中未示出)。显卡20可以是集成显卡、核心显卡、独立显卡。其中,集成显卡是将显卡芯片组嵌入到主板上的北桥芯片中。所述显卡芯片组包括GPU 21、显示内存22及其电路,目前绝大部分的集成显卡均不具备单独的显示内存22,需使用系统内存来充当显示内存22,其使用量由系统自动调节。核心显卡是直接把所述显卡芯片组集成在CPU 10上,其性能比集成显卡有明显的提升,可以满足更高要求的画面显示。独立显卡是需要插在主板的加速图形接口(Accelerate Graphical Port,AGP)上但又作为独立的板卡的存在,具有单独的显示内存22,不占用系统内存,独立显卡又分为内置独立显卡和外置显卡,目前大部分都是内置独立显卡。显示内存22,可简称为显存22,也被称为帧缓存,用于存储GPU 21处理过或者即将提取的渲染图像数据,例如像素数据,其具体存储的像素数据为每个像素的红色、绿色、蓝色、α(RGBA)分量,其中“RGB”分量对应于色彩值,并且“A”分量对应于目的地α值(例如,用于图像合成的不透明度值),存储的渲染图像数据用于预览所述画面帧的渲染效果。数/模转换器23是将显示内存22中数字渲染图像数据传送到随机读写存储数/模转换器(Random Access Memory /Digital AnalogConverter,RAM /DAC)转换成显示器可以识别的模拟信号,通过VGA接口传输给显示器40。如果是DVI接口类型的显卡,则不需要经过数字信号转模拟信号,而直接输出数字信号给显示器40。
基于现有技术中应用程序调用方式,CPU 10通过应用程序11经由图形API 13向GPU驱动程序14发出指令,GPU驱动程序14可调配指定供显卡20中的GPU 21执行的一或多个运算及渲染图形命令,以用于将一或多个图形渲染为可显示的图形图像。当GPU 21接收到来自CPU 10的渲染图形命令时,GPU 21对渲染图形命令进行解码,以执行渲染图形命令中所指定的操作。但是应用程序执行过程中,对每一步骤处理并没有对应的文件来记录其对应的操作以及函数调用关系,当出现渲染结果异常时,目前普遍的分析手段有人眼观察和批处理分析,这两种手段只能对明显异常以及指定测试用例集或单帧进行分析,而对渲染结果存在细微差别时无法识别、针对其他来源用例做测试并且对多帧应用程序以及实际场景中的应用程序无法进行分析,也可以理解为,没有有效的手段能够实时自动地发现渲染异常问题。
根据上述内容的阐述,本发明实施例期望提供一种显卡渲染结果分析方法,该分析方法在应用程序启动前预先对图形API函数做HOOK处理并生成动态链接库,应用程序或测试用例执行时调用所述动态链接库中封装的图形API函数,并基于应用程序的调用生成记录图形API函数的调用顺序以及各图形API函数在调用时所使用的上下文参数信息的trace文件,通过在被测显卡和标准显卡上回放所述trace文件分别获取到渲染结果,对比被测显卡和标准显卡的渲染结果,判断被测显卡绘制出的图像差异是否满足设定的判定条件,当发现渲染结果异常时,实时分析异常的渲染结果并把分析后的渲染结果或异常描述信息保存为内存数据或本地文件,也可以在发现差异后随时暂停渲染结果的对比并在显示器上展示被测显卡当前的内部状态,以供后续进一步详细分析,提升了渲染结果异常时分析的实时性、连续性。基于此,参见图3,其示出了一种显卡渲染结果分析方法的流程,包括:
S301:在应用程序执行过程中,记录图形API函数的调用顺序以及各图形API函数在调用时所使用的上下文参数信息;
S302:通过被测显卡与标准显卡分别按照所记录的图形API函数的调用顺序,根据各图形API函数在调用时所使用的上下文参数信息相应调用图形API函数,对应生成第一渲染结果与第二渲染结果;
S303:当所述第一渲染结果与所述第二渲染结果之间的差异满足设定的判定条件,确定所述被测显卡异常,并生成用于进行分析和调试的异常描述信息。
上述图3所示的技术方案,在应用程序执行过程中记录图形API函数的调用顺序以及各图形API函数在调用时所使用的上下文参数信息,通过同时在被测显卡和标准显卡上分别按照所记录的图形API函数的调用顺序,根据各图形API函数在调用时所使用的上下文参数信息相应调用图形API函数,对应生成第一渲染结果和第二渲染结果,此分析方法仅需基于记录的图形API函数的调用顺序以及各图形API函数在调用时所使用的上下文参数信息,在被测显卡和标准显卡上回放记录的内容,操作简单并且可以实时获取到渲染结果;当所述第一渲染结果与所述第二渲染结果之间的差异满足设定的判定条件,确定所述被测显卡异常,生成用于进行分析和调试的异常描述信息,通过比较第一渲染结果和第二渲染结果,可以自动识别出被测显卡第一渲染结果异常并将所述第一渲染结果的异常描述信息展示在显示器界面上或者保存为内存数据或本地文件,以便后续进一步的详细分析和调试,提升了渲染结果分析的易操作性、实时性和连续性。
对于图3所示的技术方案,在一些可能的实现方式中,对于S301所述在应用程序执行过程中,记录图形API函数的调用顺序以及各图形API函数在调用时所使用的上下文参数信息,包括:
应用程序执行时调用经HOOK处理的第一图形API函数并执行所述第一图形API函数的功能;
将所述第一图形API函数的调用顺序以及各图形API函数在调用时所使用的上下文参数信息写入本地trace文件。
对于上述实现方式,所述应用程序执行时调用经HOOK处理的第一图形API函数并执行所述第一图形API函数的功能,在一些示例中,在应用程序启动前预先对图形API函数进行HOOK处理,包括:
将HOOK代码注入到要执行的进程和变更函数指针地址;
对经HOOK处理的第一图形API函数划定跟踪范围并加入记录跟踪代码;
将所述第一图形API函数生成动态链接库;
在应用程序启动前预加载所述动态链接库。
需要说明的是,为了便于描述,经HOOK处理的图形API函数或者封装在动态链接库中的图形API函数,也可称之为第一图形API函数,真实函数库中的图形API函数也可称之为第二图形API函数,其中,第一图形API函数可以是第二图形API函数的部分或全部函数。
对于上述示例,具体来说,所述HOOK直译就是“钩子”的意思,是指截获进程对某个API函数的调用,使得API的执行流程转向实现的代码片段,从而实现所需要的功能,所述功能可以是监视系统或者进程中的各种事件消息,截获发往目标窗口的消息并进行处理、修复系统漏洞,也可以是劫持或者其他恶意行为。所以说,我们可以在系统中自定义钩子,用来监视系统中特定事件的发生,完成特定功能,如屏幕取词,监视日志,截获键盘、鼠标输入等等。钩子的种类很多,每种钩子可以截获相应的消息,如键盘钩子可以截获键盘消息;外壳钩子可以截取、启动和关闭应用程序的消息。钩子还可以分为线程钩子和系统钩子,线程钩子可以监视指定线程的事件消息,系统钩子监视系统中的所有线程的事件消息。因为系统钩子会影响系统中所有的应用程序,所以钩子函数必须放在独立的动态链接库中;而对于线程钩子来说,钩子函数可以在动态链接库之中实现,也可以在相应的应用程序之中实现。为了方便描述期间,本发明实施例钩子函数以在动态链接库中实现为例。一般来说,Linux下HOOK的方式有LD_PRELOAD劫持so文件、ptrace API调试技术HOOK、PLT重定向劫持HOOK;关于LD_PRELOAD劫持so文件通过控制Linux下的动态链接的环境变量LD_PRELOAD来决定应用程序调用图形API函数时需要执行的so文件;关于ptrace API调试技术HOOK,ptrace可以实现调试程序跟踪,但是一个进程只能被一个进程跟踪;关于PLT重定向劫持HOOK主要是利用可执行和链接格式(Executable and Linking Format,ELF)文件的全局偏移表( Global Offset Table,GOT)和程序链接表 (Procedure Link Table,PLT)的方式解决地址无关的链接so文件的机制,在第一次调用前,GOT里是PLT的地址,一般在调用之后GOT里会写入函数库的真实地址。
本发明实施例以采用LD_PRELOAD劫持so文件方式实现所述HOOK处理,在应用程序运行前需要使用LD_PRELOAD预加载所述动态链接库。具体实施方式为,例如经HOOK处理过的第一图形API函数封装生成的动态链接库假定命名为HOOK GL.so,真实函数库中的第二图形API函数命名为GL.so,可以在Linux命令行输入如下命令进行加载动态链接库HOOKGL.so:
export LD_PRELOAD= "./HOOK GL.so"
对于上述实现方式,将所述第一图形API函数的调用顺序以及各图形API函数在调用时所使用的上下文参数信息写入本地trace文件。具体来说,结合前述采用LD_PRELOAD方式预加载所述动态连接库的实施方式,在应用程序启动前还需要注入生成trace的代码,此操作可以在对图形API函数进行HOOK处理时一并处理,例如,可以把下面代码分别加在调试代码的起始位置和终止位置
Debug.startMethodTracing(“wirelessqa”); //开始记录
Debug.stopMethodTracing(); //结束记录
其中参数wirelessqa是要创建的trace文件的名称,wirelessqa.trace。默认路径是/sdcard/wirelessqa.trace,也可以指定路径/data/log/wirelessqa,表示trace文件在/data/log/wirelessqa.trace路径下。
假定在要执行的应用程序命名为myApp,该应用程序是用于使用GPU绘制一个三角形,所述的第一图形API函数即为绘制一个三角形需要的各种函数,例如顶点函数glVertex3f、光照函数glLightfv、材质函数glMaterialfv以及颜色函数glColor3f等,可以在Linux命令行输入如下命令调用要执行的应用程序myApp:./myApp
应用程序myApp执行过程中,结合图2,动态链接库中的第一图形API函数具体可以表现为图2中虚线框所示的HOOK模块12,真实函数库中的第二图形API函数则可以表现为图2中的图形API 13;当执行到绘制三角形的图形API函数时,则直接调用动态链接库HOOKGL.so中经HOOK处理过的第一图形API函数,并且将调用到的第一图形API函数调用顺序、上下文参数信息、函数执行耗时、每个函数的时间戳信息通过操作系统内核中自带的跟踪器或专门的跟踪软件写入本地trace文件。此外,对于S301步骤可以调用真实函数库中的第二图形API函数生成渲染结果,也可以不调用真实函数库中的第二图形API函数,仅调用动态链接库中封装的第一图形API函数生成trace文件。
需要说明的是,对于操作系统内核中自带的跟踪器,例如function跟踪器、function_graph跟踪器和sched_switch跟踪器,启动跟踪前需要进行跟踪相应的设置,关于function跟踪器可以跟踪内核函数的执行情况,可以通过文件set_ftrace_filter显示指定要跟踪的函数;关于function_graph跟踪器可以显示类似C源码的函数调用关系图,可以通过文件set_grapch_function显示指定要生成调用流程图的函数;关于sched_switch跟踪器可以对内核中的进程调度活动进行跟踪。而对于上述各跟踪器的生成文件,有些是各种跟踪器共享使用的,有些是特定于某个跟踪器使用的。在操作这些数据文件时,使用echo命令来修改其值,也可以在应用程序中通过文件读写相关的函数来操作这些文件的值。例如:current_tracer文件用于设置或显示当前使用的跟踪器;使用echo命令将跟踪器名字写入该文件可以切换到不同的跟踪器。系统启动后,其缺省值为nop,即不做任何跟踪操作;在执行完一段跟踪任务后,可以通过向该文件写入nop来重置跟踪器;trace文件提供了查看获取到的跟踪信息的接口,可以通过cat等命令查看该文件以查看跟踪到的内核活动记录,也可以将其内容保存为记录文件以备后续查看;set_graph_function文件设置要清晰显示调用关系的函数,显示的信息结构类似于C语言代码,这样在分析内核运作流程时会更加直观一些,缺省为对所有函数都生成调用关系序列,可以通过写该文件来指定需要特别关注的函数。
对于图3所示的技术方案,在一些示例中,对于S302所述通过被测显卡与标准显卡分别按照所记录的图形API函数的调用顺序,根据各图形API函数在调用时所使用的上下文参数信息相应调用图形API函数,对应生成第一渲染结果与第二渲染结果,包括:
在被测显卡上回放所述trace文件,通过执行应用程序,根据所述trace文件中记录的第一图形API函数的调用顺序以及各图形API函数在调用时所使用的上下文参数信息,调用真实函数库中与第一图形API函数相对应的第二图形API函数进行渲染,获取到第一渲染结果;
在标准显卡上回放所述trace文件,通过执行应用程序,根据所述trace文件中记录的第一图形API函数的调用顺序以及各图形API函数在调用时所使用的上下文参数信息,调用真实函数库中与第一图形API函数相对应的第二图形API函数进行渲染,获取到第二渲染结果。
需要说明的是,对于S302所示的步骤,在被测显卡和标准显卡上回放所述trace文件时,基于应用程序的函数调用,调用到trace文件中记录的第一图形API函数的调用顺序以及各图形API函数在调用时所使用的上下文参数信息,然后调用真实函数库中第二图形API函数对应生成第一渲染结果与第二渲染结果,结合图2,具体图形API函数调用顺序参见图2中HOOK模块12与图形API 13之间的实线箭头。
在一些示例中,所述通过被测显卡与标准显卡分别按照所记录的图形API函数的调用顺序,根据各图形API函数在调用时所使用的上下文参数信息相应调用图形API函数,对应生成第一渲染结果与第二渲染结果,还包括:
获取被测显卡和标准显卡的第一渲染结果和第二渲染结果并保存为内存数据或本地文件;
获取被测显卡和标准显卡的实时的渲染状态;其中所述渲染状态包括OpenGL的状态机信息或被测显卡的私有信息。
需要说明的是,标准显卡也可以称之为参照显卡,在标准显卡上渲染的图像可以认为是正确的,把其作为参照显卡,用于判断被测显卡渲染的图像是否正确。在一些示例中,所述获取被测显卡和标准显卡的实时的渲染状态,其中所述渲染状态包括OpenGL的状态机信息或被测显卡的私有信息,具体来说,渲染状态可以是显卡全局总量、当前使用大小、当前视口描述符地址、视口大小、视口深度、帧缓冲个数、帧缓冲尺寸大小等信息。
对于图3所示的技术方案,在一些示例中,对于S303当所述第一渲染结果与所述第二渲染结果之间的差异满足设定的判定条件,确定所述被测显卡异常,并生成用于进行分析和调试的异常描述信息。可以理解为,基于S302步骤生成的第一渲染结果与第二渲染结果,分别选取同一帧像素数据的红色、绿色、蓝色、α分量,即像素的RGBA四个分量作为比较参数,比较第一渲染结果和第二渲染在同一位置上的像素值是否一致,原则上回放trace同一帧的渲染效果在被测显卡和标准显卡上应该完全一样,当两者的渲染结果存在不一致且差异超出限定范围则判定被测显卡渲染结果为异常。具体包括:
逐像素比较被测显卡渲染的第一渲染结果和标准显卡渲染的第二渲染结果,若相同,则切换测试应用程序或做下一帧的分析;
逐像素比较被测显卡渲染的第一渲染结果和标准显卡渲染的第二渲染结果,若不相同,则:
确定被测显卡第一渲染结果渲染异常发生时的调用帧;
根据所述调用帧获取到被测显卡第一渲染结果的渲染状态和异常描述信息;
将所述渲染状态和异常描述信息保存为本地文件或展示在显示器界面上。
在一些示例中,当逐像素比较被测显卡渲染的第一渲染结果和标准显卡渲染的第二渲染结果存在异常时,可选地,也可以随时暂停运行的应用程序,在显示器上展示被测显卡渲染状态和异常描述信息并保存为本地文件,其中,所述异常描述信息至少包括渲染异常点信息、无渲染结果、渲染图形畸变、渲染图形颜色异常、渲染图形像素丢失以及被测显卡的上下文参数信息,以便后续做进一步的详细分析和调试;可选地,还可以反复复演,以解决由于应用程序中某些变量随机导致的异常并且难以复现的问题。
对于图3所示的技术方案,在一些示例中,GPU要实现图形渲染需要借助于图形渲染管线,目前图形渲染管线包括固定管线和可编程管线,两者都属于一种通过级联形成的逻辑结构,各级也可称为各渲染阶段。当前主要采用可编程管线。如图4所示,其示出了本发明实施例提供的绘制三角形的渲染流程图400,一般分为顶点处理、图元装配、光栅化、片段着色以及测试与混合五个步骤。具体操作步骤为:
S401:顶点处理,即为在顶点着色器中确定渲染三角形的顶点位置;
S402:图元装配,即在图元装配阶段确定渲染的图元类型为三角形;
S403:光栅化,即为把图形转变为屏幕像素点;
S404:片段着色,即片段着色器为图形中的每个像素进行着色;
S405:测试与混合,即为检测片段中每个像素的深度值来确定像素要不要被丢弃,另外还会检测α(alpha)值,对颜色值进行混合。
根据图3所示技术方案,结合图4使用GPU绘制三角形的渲染流程图,参见图5,其示出了本发明实施例提供的一种显卡渲染结果分析的详细操作流程图500,具体描述采用显卡渲染结果分析方法的实施方式。详细的实施方式操作步骤如下:
S501:启动显卡渲染分析装置的软件;
S502:选择需要执行的应用程序;
例如,需要执行的应用程序为绘制一个三角形,如前述假定该应用程序命名为myApp。
S503:运行应用程序;
对于上述绘制三角形的应用程序,可以在Linux命令行输入如下命令调用要执行的应用程序myApp:
./myApp
应用程序myApp执行过程中,当执行到绘制三角形的图形API函数时,则直接调用动态链接库HOOK GL.so中经HOOK处理过的第一图形API函数,然后调用真实函数库GL.so中的第二图形API函数,获取到渲染结果。在一些示例中,此步骤也可以不调用真实函数库GL.so中的第二图形API函数,即不获取渲染结果,只调用动态链接库HOOK GL.so中的第一图形API函数,执行第一图形API函数的操作并且在应用程序执行过程中调用操作系统自带的跟踪器,为后续的步骤生成trace文件。
S504:生成trace文件;
在应用程序启动前,需要限定跟踪的范围,在代码中写入跟踪的方法,具体代码实现方式见前述内容,跟踪期间所有的第一图形API函数调用顺序以及各图形API函数在调用时所使用的上下文参数信息记录在trace文件中。
需要说明的是,所述生成trace文件,即是将经HOOK处理的第一图形API函数调用以及各图形API函数在调用时所使用的上下文参数信息写入本地trace文件,可以是绘制三角形时的具体步骤对应要执行的函数调用以及上下文参数信息,例如S401顶点处理步骤对应的顶点处理glVertex3f函数的调用,在应用程序执行时将调用到的glVertex3f函数调用、上下文参数信息、glVertex3f函数执行耗时以及每个函数的时间戳信息通过操作系统内核中自带的跟踪器或专门的跟踪软件例如Google提供的代码调试工具Traceview和dmtracedump工具写入本地trace文件。
S505:回放trace文件;
如前述trace文件提供了查看获取到的跟踪信息的接口,可以通过cat等命令或利用工具查看该文件以查看跟踪到的内核活动记录,例如利用工具Traceview打开trace文件
Linux下执行命令 :
./traceview wirelessqa.trace
另外, 也可以将其内容保存为记录文件,在应用程序执行过程中通过文件读写来操作trace文件的值,从而调用trace文件中的图形API函数调用以及各图形API函数在调用时所使用的上下文参数信息获取到渲染结果,本发明实施例采用应用程序调用回放trace文件记录的内容。
S506:在被测显卡上调用应用程序;
在被测显卡上通过应用程序的调用,调用到所述trace文件中记录的第一图形API函数调用顺序以及各图形API函数在调用时所使用的上下文参数信息并且调用真实函数库中的第二图形API函数获取到第一渲染结果。
S507:在标准显卡上调用应用程序;
在标准显卡上通过应用程序的调用,调用到所述trace文件中记录的第一图形API函数调用顺序以及各图形API函数在调用时所使用的上下文参数信息并且调用真实函数库中的第二图形API函数获取到第二渲染结果。
S508:获取渲染结果,即获取被测显卡渲染的第一渲染结果和标准显卡渲染的第二渲染结果;
S509:逐像素比较第一渲染结果和第二渲染结果渲染差异;
将像素的RGBA分量作为比较参数,针对同一帧trace在被测显卡和标准显卡渲染得到的第一渲染结果和第二渲染结果同一位置的像素值进行比较。
S510:判断第一渲染结果和第二渲染结果是否存在差异,若存在差异,跳转至步骤S511;若不存在差异,跳转至步骤S512;
如S509步骤逐像素比较第一渲染结果和第二渲染结果渲染差异,如果两者的渲染结果存在差异且差异超出限定范围则认定为被测显卡渲染结果异常。可以把渲染异常时的渲染状态和异常描述信息保存为本地文件或展示在显示器界面上,以便于后续做详细的分析和调试。
S511:获取显卡当前渲染状态做详细分析;
基于前述保存的被测显卡渲染异常时的渲染状态和异常描述信息,排查GPU相应处理模块进行分析与调试。例如,逐像素比较第一渲染结果和第二渲染结果中异常点的调用帧后,如果渲染的三角形错位,则说明被测显卡中的顶点着色器处理顶点存在问题,具体为输出的顶点位置异常;如果渲染的三角形颜色存在差异,则问题可能存在于片段着色阶段,具体为片段着色器处理颜色存在异常;如果三角形存在丢失或者缺块,则说明在做测试与融合时出现了异常。
S512:切换测试程序或做下一帧的分析。
当逐像素比较第一渲染结果和第二渲染结果均相同时,即被测显卡和标准显卡渲染结果一致,则切换测试程序或做下一帧的分析。
结合图3所述的技术方案和图5所述的详细操作流程图,可知图5中步骤S501至S504对应图3的步骤S301,图5中步骤S505至S508对应图3的步骤S302,图5中步骤S509至S512对应图3的步骤S303。
基于前述技术方案相同的发明构思,参见图6,其示出了一种显卡渲染结果分析装置600,所述装置600包括:记录部分601、渲染部分602和确定部分603;其中,
所述记录部分601,经配置为在应用程序执行过程中,记录图形API函数的调用顺序以及各图形API函数在调用时所使用的上下文参数信息;
所述渲染部分602,经配置为通过被测显卡与标准显卡分别按照所记录的图形API函数的调用顺序,根据各图形API函数在调用时所使用的上下文参数信息相应调用图形API函数,对应生成第一渲染结果与第二渲染结果;
所述确定部分603,经配置为当所述第一渲染结果与所述第二渲染结果之间的差异满足设定的判定条件,确定所述被测显卡异常,并生成用于进行分析和调试的异常描述信息。
对于上述技术方案,在一些示例中,所述记录部分601,还经配置为:
应用程序执行时调用经HOOK处理的第一图形API函数并执行所述第一图形API函数的功能;
将所述第一图形API函数的调用顺序以及各图形API函数在调用时所使用的上下文参数信息写入本地trace文件。
对于上述技术方案,在一些示例中,所述渲染部分602,还经配置为:
在被测显卡上回放所述trace文件,通过执行应用程序,根据所述trace文件中记录的第一图形API函数的调用顺序以及各图形API函数在调用时所使用的上下文参数信息,调用真实函数库中与第一图形API函数相对应的第二图形API函数进行渲染,获取到第一渲染结果;
在标准显卡上回放所述trace文件,通过执行应用程序,根据所述trace文件中记录的第一图形API函数的调用顺序以及各图形API函数在调用时所使用的上下文参数信息,调用真实函数库中与第一图形API函数相对应的第二图形API函数进行渲染,获取到第二渲染结果。
对于上述技术方案,在一些示例中,所述渲染部分602,还经配置为:
获取被测显卡和标准显卡的第一渲染结果和第二渲染结果并保存为内存数据或本地文件;
获取被测显卡和标准显卡的实时的渲染状态;其中所述渲染状态包括OpenGL的状态机信息或被测显卡的私有信息。
对于上述技术方案,在一些示例中,所述确定部分603,还经配置为:
逐像素比较被测显卡渲染的第一渲染结果和标准显卡渲染的第二渲染结果,若相同,则切换测试应用程序或做下一帧的分析;
逐像素比较被测显卡渲染的第一渲染结果和标准显卡渲染的第二渲染结果,若不相同,则:
确定被测显卡第一渲染结果渲染异常发生时的调用帧;
根据所述调用帧获取到被测显卡第一渲染结果的渲染状态和异常描述信息;
将所述渲染状态和异常描述信息保存为本地文件或展示在显示器界面上。
对于上述技术方案,在一些示例中,所述确定部分603,还经配置为:所述异常描述信息至少包括渲染异常点信息、无渲染结果、渲染图形畸变、渲染图形颜色异常、渲染图形像素丢失以及被测显卡的上下文参数信息。
对于上述技术方案,在一些示例中,所述记录部分601,还经配置为:
将HOOK代码注入到要执行的进程和变更函数指针地址;
对经HOOK处理的第一图形API函数划定跟踪范围并加入记录跟踪代码;
将所述第一图形API函数生成动态链接库;
在应用程序启动前预加载所述动态链接库。
可以理解地,上述显卡渲染结果分析装置600的示例性技术方案,与前述一种显卡渲染结果分析方法的技术方案属于同一构思,因此,上述显卡渲染结果分析装置600的技术方案未详细描述的细节内容,均可以参见前述一种显卡渲染结果分析方法的技术方案的描述。本发明实施例对此不做赘述。
可以理解地,图3所示的技术方案及其示例既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现,本发明实施例是以软件功能模块的方式实现。如果以软件功能部分的形式实现并非作为独立的产品进行销售或使用时,可以存储在一个计算机可读取存储介质中,基于这样的理解,本实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或processor(处理器)执行本实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM, Read Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。因此,本实施例提供了一种计算机存储介质,所述计算机存储介质存储有显卡渲染分析的应用程序,所述应用程序被至少一个处理器执行时实现上述技术方案中所述显卡渲染结果分析方法的步骤。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (8)
1.一种显卡渲染结果分析方法,其特征在于,所述方法包括:
在应用程序执行过程中,记录图形API函数的调用顺序以及各图形API函数在调用时所使用的上下文参数信息;
通过被测显卡与标准显卡分别按照所记录的图形API函数的调用顺序,根据各图形API函数在调用时所使用的上下文参数信息相应调用图形API函数,对应生成第一渲染结果与第二渲染结果;
当所述第一渲染结果与所述第二渲染结果之间的差异满足设定的判定条件,确定所述被测显卡异常,并生成用于进行分析和调试的异常描述信息;
其中,所述记录图形API函数的调用顺序以及各图形API函数在调用时所使用的上下文参数信息,包括:
应用程序执行时,调用经HOOK处理的第一图形API函数并执行所述第一图形API函数的功能;
将所述第一图形API函数的调用顺序以及各图形API函数在调用时所使用的上下文参数信息写入本地trace文件;
所述通过被测显卡与标准显卡分别按照所记录的图形API函数的调用顺序,根据各图形API函数在调用时所使用的上下文参数信息相应调用图形API函数,对应生成第一渲染结果与第二渲染结果,包括:
在被测显卡上回放所述trace文件,通过执行应用程序,根据所述trace文件中记录的第一图形API函数的调用顺序以及各图形API函数在调用时所使用的上下文参数信息,调用真实函数库中与第一图形API函数相对应的第二图形API函数进行渲染,获取到第一渲染结果;
在标准显卡上回放所述trace文件,通过执行应用程序,根据所述trace文件中记录的第一图形API函数的调用顺序以及各图形API函数在调用时所使用的上下文参数信息,调用真实函数库中与第一图形API函数相对应的第二图形API函数进行渲染,获取到第二渲染结果。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取被测显卡和标准显卡的第一渲染结果和第二渲染结果并保存为内存数据或本地文件;
获取被测显卡和标准显卡的实时的渲染状态;其中所述渲染状态包括OpenGL的状态机信息或被测显卡的私有信息。
3.根据权利要求1所述方法,其特征在于,当所述第一渲染结果与所述第二渲染结果之间的差异满足设定的判定条件,确定所述被测显卡异常,并生成用于进行分析和调试的异常描述信息;包括:
逐像素比较被测显卡渲染的第一渲染结果和标准显卡渲染的第二渲染结果,若相同,则切换测试应用程序或做下一帧的分析;
逐像素比较被测显卡渲染的第一渲染结果和标准显卡渲染的第二渲染结果,若不相同,则:
确定被测显卡第一渲染结果渲染异常发生时的调用帧;
根据所述调用帧获取到被测显卡第一渲染结果的渲染状态和异常描述信息;
将所述渲染状态和异常描述信息保存为本地文件或展示在显示器界面上。
4.根据权利要求1所述方法,其特征在于,所述异常描述信息至少包括渲染异常点信息、无渲染结果、渲染图形畸变、渲染图形颜色异常、渲染图形像素丢失以及被测显卡的上下文参数信息。
5.根据权利要求1所述方法,其特征在于,所述方法还包括:
将HOOK代码注入到要执行的进程和变更函数指针地址;
对经HOOK处理的第一图形API函数划定跟踪范围并加入记录跟踪代码;
将所述第一图形API函数生成动态链接库;
在应用程序启动前预加载所述动态链接库。
6.一种显卡渲染结果分析装置,其特征在于,所述装置包括:记录部分、渲染部分和确定部分;其中,
所述记录部分,经配置为在应用程序执行过程中,记录图形API函数的调用顺序以及各图形API函数在调用时所使用的上下文参数信息;
所述渲染部分,经配置为通过被测显卡与标准显卡分别按照所记录的图形API函数的调用顺序,根据各图形API函数在调用时所使用的上下文参数信息相应调用图形API函数,对应生成第一渲染结果与第二渲染结果;
所述确定部分,经配置为当所述第一渲染结果与所述第二渲染结果之间的差异满足设定的判定条件,确定所述被测显卡异常,并生成用于进行分析和调试的异常描述信息;
其中,所述记录部分,经配置为:
应用程序执行时,调用经HOOK处理的第一图形API函数并执行所述第一图形API函数的功能;
将所述第一图形API函数的调用顺序以及各图形API函数在调用时所使用的上下文参数信息写入本地trace文件;
所述渲染部分,经配置为:
在被测显卡上回放所述trace文件,通过执行应用程序,根据所述trace文件中记录的第一图形API函数的调用顺序以及各图形API函数在调用时所使用的上下文参数信息,调用真实函数库中与第一图形API函数相对应的第二图形API函数进行渲染,获取到第一渲染结果;
在标准显卡上回放所述trace文件,通过执行应用程序,根据所述trace文件中记录的第一图形API函数的调用顺序以及各图形API函数在调用时所使用的上下文参数信息,调用真实函数库中与第一图形API函数相对应的第二图形API函数进行渲染,获取到第二渲染结果。
7.一种计算设备,其特征在于,所述计算设备包括:通信接口,处理器,存储器;各个组件通过总线系统耦合在一起;其中,
所述通信接口,用于在与其他外部网元之间进行收发信息过程中,信号的接收和发送;
所述存储器,用于存储能够在所述处理器上运行的计算机程序;
所述处理器,用于在运行所述计算机程序时,执行权利要求1至5任一项所述显卡渲染结果分析方法的步骤。
8.一种计算机存储介质,其特征在于,所述计算机存储介质存储有显卡渲染结果分析的应用程序,所述应用程序被至少一个处理器执行时实现权利要求1-5任一项所述显卡渲染结果分析方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211072763.8A CN115145778B (zh) | 2022-09-02 | 2022-09-02 | 一种显卡渲染结果分析方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211072763.8A CN115145778B (zh) | 2022-09-02 | 2022-09-02 | 一种显卡渲染结果分析方法、装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115145778A CN115145778A (zh) | 2022-10-04 |
CN115145778B true CN115145778B (zh) | 2022-11-25 |
Family
ID=83416318
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211072763.8A Active CN115145778B (zh) | 2022-09-02 | 2022-09-02 | 一种显卡渲染结果分析方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115145778B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115357516B (zh) * | 2022-10-19 | 2023-04-11 | 西安芯瞳半导体技术有限公司 | 一种渲染问题的调试方法、装置、设备及存储介质 |
CN115357520B (zh) * | 2022-10-24 | 2022-12-16 | 北京麟卓信息科技有限公司 | 一种基于cpu的图形渲染方式的检测方法 |
CN115408227B (zh) * | 2022-11-01 | 2023-01-24 | 西安芯瞳半导体技术有限公司 | 一种基于自研显卡的gpu状态调试方法、装置及存储介质 |
CN116185743B (zh) * | 2023-04-24 | 2023-07-21 | 芯瞳半导体技术(山东)有限公司 | OpenGL接口的双显卡对比调试方法、装置及介质 |
CN116909824B (zh) * | 2023-09-04 | 2023-11-17 | 北京麟卓信息科技有限公司 | 一种基于gpu状态跟踪的图形标准符合性测试方法 |
CN116893913B (zh) * | 2023-09-08 | 2024-01-23 | 北京趋动智能科技有限公司 | 远程程序执行方法、装置、系统、电子设备及存储介质 |
CN117635802A (zh) * | 2023-12-13 | 2024-03-01 | 摩尔线程智能科技(北京)有限责任公司 | 显卡的渲染测试方法、装置、电子设备和存储介质 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8432405B2 (en) * | 2008-06-26 | 2013-04-30 | Microsoft Corporation | Dynamically transitioning between hardware-accelerated and software rendering |
US9756110B2 (en) * | 2014-10-10 | 2017-09-05 | Salesforce.Com, Inc. | Systems and methods for optimizing web page load time |
CN107797922B (zh) * | 2017-09-27 | 2021-05-28 | 北京金山安全软件有限公司 | 应用页面的测试方法、电子装置及电子设备 |
CN108846791B (zh) * | 2018-06-27 | 2022-09-20 | 珠海豹趣科技有限公司 | 物理模型的渲染方法、装置及电子设备 |
ES2897326T3 (es) * | 2018-08-10 | 2022-02-28 | Nagravision Sa | Prueba de renderización de objetos de pantalla |
CN111681157B (zh) * | 2020-06-09 | 2024-04-09 | 西安万像电子科技有限公司 | 图像渲染方法及系统 |
CN113393585B (zh) * | 2021-08-18 | 2021-11-19 | 西安芯瞳半导体技术有限公司 | 一种渲染问题定位方法、装置、定位设备及存储介质 |
-
2022
- 2022-09-02 CN CN202211072763.8A patent/CN115145778B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN115145778A (zh) | 2022-10-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115145778B (zh) | 一种显卡渲染结果分析方法、装置及存储介质 | |
US11487644B2 (en) | Graphics processing unit application execution control | |
US10127689B2 (en) | Mobile user interface design testing tool | |
KR101862180B1 (ko) | 스푸프 클록의 사용 및 미세 수준 주파수 제어를 통한 역 호환성 | |
JP5875751B2 (ja) | グラフィック分析技術 | |
CN103617027B (zh) | 基于安卓系统的图像渲染引擎构建方法及系统 | |
CN116185743B (zh) | OpenGL接口的双显卡对比调试方法、装置及介质 | |
US20110018884A1 (en) | Displaying a visual representation of performance metrics for rendered graphics elements | |
CN115357516B (zh) | 一种渲染问题的调试方法、装置、设备及存储介质 | |
CN113342703B (zh) | 一种渲染效果实时调试方法、装置、开发设备及存储介质 | |
CN115408227B (zh) | 一种基于自研显卡的gpu状态调试方法、装置及存储介质 | |
US20160179714A1 (en) | Trace buffer based replay for context switching | |
US9852539B2 (en) | Single pass surface splatting | |
WO2015183855A1 (en) | Graphics pipeline state object and model | |
CN113393585B (zh) | 一种渲染问题定位方法、装置、定位设备及存储介质 | |
US20090282390A1 (en) | Parallel Run-Time Rendering Debugger | |
US20240087206A1 (en) | Systems and methods of rendering effects during gameplay | |
US10373286B2 (en) | Method and apparatus for performing tile-based rendering | |
US20100328324A1 (en) | Graphics analysis techniques | |
CN111752505A (zh) | 面向vr的实时图像截取方法、系统和存储介质 | |
CN110691239B (zh) | 一种hdr显示模组检测方法、装置及电子设备 | |
US10157443B1 (en) | Deferred batching of incremental constant loads | |
US20080104528A1 (en) | Capturing a GUI Display Environment | |
US7987065B1 (en) | Automatic quality testing of multimedia rendering by software drivers | |
CN112367295A (zh) | 插件展示方法及装置、存储介质及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address | ||
CP03 | Change of name, title or address |
Address after: Room 301, Building D, Yeda Science and Technology Park, No. 300 Changjiang Road, Yantai Area, China (Shandong) Pilot Free Trade Zone, Yantai City, Shandong Province, 265503 Patentee after: Xi'an Xintong Semiconductor Technology Co.,Ltd. Address before: Room T1 301, Taiwei intelligent chain center, No. 8, Tangyan South Road, high tech Zone, Xi'an, Shaanxi 710065 Patentee before: Xi'an Xintong Semiconductor Technology Co.,Ltd. |