CN113342703B - 一种渲染效果实时调试方法、装置、开发设备及存储介质 - Google Patents
一种渲染效果实时调试方法、装置、开发设备及存储介质 Download PDFInfo
- Publication number
- CN113342703B CN113342703B CN202110899544.6A CN202110899544A CN113342703B CN 113342703 B CN113342703 B CN 113342703B CN 202110899544 A CN202110899544 A CN 202110899544A CN 113342703 B CN113342703 B CN 113342703B
- Authority
- CN
- China
- Prior art keywords
- rendering
- development
- target device
- application program
- data
- 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 405
- 238000011161 development Methods 0.000 title claims abstract description 150
- 230000000694 effects Effects 0.000 title claims abstract description 96
- 238000000034 method Methods 0.000 title claims abstract description 67
- 238000004891 communication Methods 0.000 claims description 33
- 238000012986 modification Methods 0.000 claims description 5
- 230000004048 modification Effects 0.000 claims description 5
- 230000015654 memory Effects 0.000 description 45
- 230000006870 function Effects 0.000 description 28
- 230000008569 process Effects 0.000 description 19
- 238000012545 processing Methods 0.000 description 18
- 238000010586 diagram Methods 0.000 description 9
- 230000002159 abnormal effect Effects 0.000 description 5
- 238000004590 computer program Methods 0.000 description 5
- 230000001360 synchronised effect Effects 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 230000009466 transformation Effects 0.000 description 3
- 230000005856 abnormality Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 239000013598 vector Substances 0.000 description 2
- 239000011800 void material Substances 0.000 description 2
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000012360 testing method 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
- G06F11/3644—Software debugging by instrumenting at runtime
-
- 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/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/90—Determination of colour characteristics
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Computer Graphics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明实施例公开了一种渲染效果实时调试方法、装置、开发设备及存储介质,该方法可以包括:开发设备从目标设备获取运行于目标设备的渲染应用程序的任一画面帧的第一渲染数据,其中,所述任一画面帧的渲染效果不满足渲染预期;所述开发设备根据所述第一渲染数据修改所述渲染应用程序;所述开发设备执行修改后的所述渲染应用程序,得到对应于所述画面帧的第二渲染数据;所述开发设备向所述目标设备发送所述第二渲染数据;若所述第二渲染数据在所述目标设备的预览渲染效果满足渲染预期,所述开发设备保存修改后的所述渲染应用程序。
Description
技术领域
本发明实施例涉及计算机程序调试领域,尤其涉及一种渲染效果实时调试方法、装置、开发设备及存储介质。
背景技术
渲染应用程序的开发通常采用如Shadertoy、unity3D等开发工具来实现不同的渲染效果。在所述渲染应用程序开发完成并进行测试后,为进一步诊断和改正程序中潜在的错误,或者,进一步提升所述渲染应用程序的性能或效率,还需要对所述渲染应用程序进行调试。
通常,调试人员可以在开发设备上预览渲染效果,若渲染效果满足渲染预期,则将所述渲染应用程序安装到目标设备,进行实际应用环境的渲染,以检测和发现所述渲染应用程序在所述目标设备中运行得到的渲染效果是否满足渲染预期。
但采用上述方法可能存在如下问题:问题一,开发设备和目标设备可能属于不同机型,不同架构或者不同***,这将导致开发设备和目标设备之间存在难以预测的兼容性问题。问题二,由于仅能在开发设备采用开发工具对所述渲染应用程序进行修改,而无法实时的在目标设备修改所述渲染应用程序,这将产生较大的延迟并影响调试的时效性。问题三,在目标设备进行实际应用环境的渲染过程中,不满足渲染预期的某一个画面帧可能难以再现,导致失去对其进行调试的机会。
发明内容
有鉴于此,本发明实施例期望提供一种渲染效果实时调试方法、装置、开发设备及计算机存储介质,能够提高对渲染效果的调试效率。
本发明实施例的技术方案是这样实现的:
第一方面,本发明实施例提供了一种渲染效果实时调试方法,包括:
开发设备从目标设备获取运行于目标设备的渲染应用程序的任一画面帧的第一渲染数据,其中,所述任一画面帧的渲染效果不满足渲染预期;
所述开发设备根据所述第一渲染数据修改所述渲染应用程序;
所述开发设备执行修改后的所述渲染应用程序,得到对应于所述画面帧的第二渲染数据;
所述开发设备向所述目标设备发送所述第二渲染数据;
若所述第二渲染数据在所述目标设备的预览渲染效果满足渲染预期,所述开发设备保存修改后的所述渲染应用程序。
第二方面,本发明实施例提供了一种渲染效果实时调试装置,
获取部分,经配置为开发设备从目标设备获取运行于目标设备的渲染应用程序的任一画面帧的第一渲染数据,其中,所述任一画面帧的渲染效果不满足渲染预期;
修改部分,经配置为所述开发设备根据所述第一渲染数据修改所述渲染应用程序;
执行部分,经配置为所述开发设备执行修改后的所述渲染应用程序,得到对应于所述画面帧的第二渲染数据;
发送部分,经配置为所述开发设备向所述目标设备发送所述第二渲染数据;
保存部分,经配置为若所述对应于所述画面帧的第二渲染数据在所述目标设备的预览渲染效果满足渲染预期,所述开发设备保存修改后的所述渲染应用程序。
第三方面,本发明实施例提供了一种开发设备,所述开发设备包括第二方面所述的渲染效果实时调试装置。
第四方面,本发明实施例提供了一种计算机存储介质,所述计算机存储介质存储有渲染效果实时调试的程序,所述渲染效果实时调试的程序被至少一个处理器执行时实现第一方面所述的渲染效果实时调试方法的步骤。
本发明实施例提供了一种渲染效果实时调试方法、装置、开发设备及计算机存储介质;通过开发设备和目标设备之间的连接,开发设备获取对应于当前画面帧的第一渲染数据,并基于当前画面帧的第一渲染数据,实时的对渲染应用程序进行修改的方式,能够提高渲染效果的调试效率。
附图说明
图1为可实施本发明实施例的开发设备的示意性框图;
图2为说明图1中CPU、GPU和***存储器的实例实施方案的框图;
图3为对渲染应用程序的常规调试方法示意图;
图4为本申请实施例的一种渲染效果实时调试方法及装置的示例性应用环境的***架构示意图;
图5为本发明实施例提供的一种渲染效果实时调试方法示意图;
图6为本发明实施例提供的一种渲染效果实时调试装置示意图;
图7为本发明实施例提供的一种开发设备示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
通常,渲染应用程序,尤其是三维渲染应用程序是通过如Shadertoy、unity3D等应用开发工具来进行开发以实现不同的渲染特效。在所述渲染应用程序在所述开发设备完成开发后,还需要对所述渲染应用程序在开发设备和目标设备进行调试,以进一步检查和修改所述渲染应用程序中潜在的错误或者进一步提升所述渲染应用程序的性能或效率。例如,在所述渲染应用程序运行过程中,发现某一个画面帧的渲染效果出现了与渲染预期不相符的情况并对渲染应用程序进行相应的修改,或者,发现所述渲染应用程序的某一个画面帧出现不可控的渲染效果(比如,精度导致的闪烁问题、前后图层的叠加问题等)并对相应渲染应用程序进行修改,又或者,发现所述渲染应用程序的某一个画面帧的渲染场景特效没有达到预期效果并对渲染应用程序进行相应的修改。
由于上述调试过程涉及到开发设备和目标设备,下面,首先对所述开发设备和所述目标设备进行详细介绍。
所述开发设备和所述目标设备均为能够实现渲染并显示渲染效果的设备。具体来说,所述开发设备为开发所述渲染应用程序的设备,所述目标设备为实际使用渲染应用程序的设备,例如,开发人员采用笔桌上型电脑(PC机)开发一款应用于智能终端的游戏软件,则所述PC机为所述开发设备,所述智能终端为所述目标设备,所述游戏软件为所述渲染应用程序。
作为示例而非限定,一般的,所述目标设备包括但不限于:无线装置、移动或蜂窝电话(包含所谓的智能电话)、个人数字助理(PDA)、视频游戏控制台(包含视频显示器、移动视频游戏装置、移动视频会议单元)、膝上型计算机、桌上型计算机、电视机顶盒、平板计算装置、电子书阅读器、固定或移动媒体播放器等。所述开发设备包括但不限于:膝上型计算机以及PC机。
在图1的实例中,该目标设备和/或开发设备可以包括:CPU6、***存储器10和GPU12。目标设备还可包含显示处理器14、收发器模块3、用户接口4和显示器8。收发器模块3和显示处理器14两者可为与CPU6和/或GPU12相同的集成电路(IC)的部分,两者可在包含CPU6和/或GPU12的一或多个IC的外部,或可形成于在包含CPU6和/或GPU12的IC外部的IC中。
为清楚起见,该目标设备和/或开发设备可包含图2中未图示的额外部分或单元。此外,目标设备中所示的各种部分和单元可能不是在目标设备的每个实例中都是必需的。举例来说,在目标设备和/或开发设备为桌上型计算机或经装备以与外部用户接口或显示器连接的其它装置的实例中,用户接口4和显示器8可在目标设备外部。
用户接口4的实例包含(但不限于)轨迹球、鼠标、键盘和其它类型的输入装置。用户接口4还可为触摸屏,并且可作为显示器8的部分并入。收发器模块3可包含电路以允许目标设备与另一装置或网络之间的无线或有线通信。收发器模块3可包含调制器、解调器、放大器和用于有线或无线通信的其它此类电路。
CPU6,其经配置以处理供执行的计算机程序的指令。CPU6可包括控制目标设备的运算的通用部分。用户可将输入提供到目标设备,以致使CPU6执行一或多个渲染应用程序。在CPU6上执行的渲染应用程序可包含(例如)操作***、文字处理器应用程序、电子邮件应用程序、电子表格应用程序、媒体播放器应用程序、视频游戏应用程序、图形用户接口应用程序或另一程序。另外,CPU6可执行用于控制GPU12的运算的GPU驱动程序22。用户可经由一或多个输入装置(未图示)(例如,键盘、鼠标、麦克风、触摸垫或经由用户接口4耦合到目标设备的另一输入装置)将输入提供到目标设备。
CPU6上执行的渲染应用程序可包含一或多个图形渲染指令(也可以理解为待渲染的画面帧中包含一或多个所述图形),使得所述图形数据可以渲染到显示器8上。在一些实例中,所述图形渲染指令可符合图形应用程序编程接口(Application Interface,API),例如,开放式图形库API(OpenGL API)、开放式图形库嵌入***(OpenGL ES)API、Direct3DAPI、X3D API、RenderMan API、WebGL API、开放式计算语言(OpenCLT M)、RenderScript或任何其它异构计算API,或任何其它公用或专有标准图形或计算API。为了处理所述图形渲染指令,CPU6可向GPU12发出一个或多个图形渲染命令(例如,通过GPU驱动程序)以致使GPU12执行所述图形数据的渲染中的一些或者全部。
GPU12可经配置以执行图形运算,从而将一或多个图形图元渲染到显示器8。因此,当在CPU6上执行的渲染应用程序18中的一者需要图形处理时,CPU6可将所述图形命令和图形数据提供到GPU12以用于渲染到显示器8。所述图形数据可包含(例如)绘制命令、状态信息、图元信息、纹理信息等。在一些情况下,GPU12可内置有高度并行结构,其提供比CPU6高效的对复杂图形相关运算的处理。举例来说,GPU12可包含经配置来以并行方式对多个顶点或像素进行运算的多个处理元件,例如着色器单元。在一些情况下,GPU12的高度并行性质允许GPU12比使用CPU6更快速地将图形图像(例如,GUI和二维(2D)和/或三维(3D)图形场景)绘制到显示器8上。
在一些情况下,可将GPU12集成到目标设备的母板中。在其它情况下,GPU12可存在于图形卡上,所述图形卡安装在目标设备的母板中的端口中,或可以其它方式并入在经配置以与目标设备互操作的***装置内。GPU12可包含一或多个处理器,例如一或多个微处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)或其它等效的集成或离散逻辑电路。GPU12还可包含一或多个处理器核心,使得GPU12可被称作多核处理器。
图形存储器40可为GPU12的一部分。因此,GPU12可在不使用总线的情况下从图形存储器40读取数据且将数据写入到图形存储器40。换句话说,GPU12可使用本地存储装置而不是芯片外存储器在本地处理数据。此类图形存储器40可被称作芯片上存储器。这允许GPU12通过消除GPU12经由总线读取和写入数据的需要来以更高效的方式操作,其中经由总线操作可经历繁重的总线业务。然而,在一些情况下,GPU12可不包含单独的存储器,而是经由总线利用***存储器10。图形存储器40可包含一或多个易失性或非易失性存储器或存储装置,例如,随机存取存储器(RAM)、静态RAM(SRAM)、动态RAM(DRAM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、快闪存储器、磁性数据媒体或光学存储媒体。
图2是进一步详细说明图1中CPU6、GPU12和***存储器10的实例实施方案的框图。如图2所示,CPU6可执行至少一个渲染应用程序18、图形API20和GPU驱动程序22,其中的每一者可为一或多个渲染应用程序或服务。在一些实例中,图形API20和GPU驱动程序22可实施为CPU6的硬件单元。
可供CPU6和GPU12使用的存储器可包含***存储器10和输出缓冲器16。输出缓冲器16可为***存储器10的部分或可与***存储器10分离。输出缓冲器16可存储经渲染图像数据,例如像素数据。输出缓冲器16还可被称为帧缓冲器(Framebuffer)或显存。
输出缓冲器16存储GPU12的目的地像素。每个目的地像素可与唯一屏幕像素位置相关联。在一些实例中,输出缓冲器16可存储每个目的地像素的色彩分量和目的地α值。举例来说,输出缓冲器16可存储每个像素的红色、绿色、蓝色、α(RGBA)分量,其中“RGB”分量对应于色彩值,并且“A”分量对应于目的地α值(例如,用于图像合成的不透明度值)。尽管将输出缓冲器16和***存储器10说明为单独的存储器单元,但在其它实例中,输出缓冲器16可以是***存储器10的一部分。此外,输出缓冲器16还可能够存储除像素之外的任何合适的数据。
需要说明的是,预览所述画面帧的渲染效果可以通过Framebuffer机制实现,也就是说,Framebuffer是内核空间中的一种驱动程序接口,它可以将显示器抽象为帧缓冲器,以使得可以将它看成是显示内存的一个映像,将其映射到进程地址空间之后,就可以直接进行读写操作,而写操作可以立即反映在显示器上。Framebuffer本身不具备任何运算数据的能力,中间不会对数据做处理,但Framebuffer需要真正的显卡驱动的支持。
渲染应用程序18可为利用GPU12的功能性的任何应用程序。举例来说,渲染应用程序18可为GUI应用程序、操作***、便携式制图应用程序、用于工程或艺术应用的计算机辅助设计程序、视频游戏应用程序或使用2D或3D图形的另一类型的渲染应用程序。
所述渲染应用程序18可为利用GPU12的功能性的任何应用程序。举例来说,渲染应用程序18可为GUI应用程序、操作***、便携式制图应用程序、用于工程或艺术应用的计算机辅助设计程序、视频游戏应用程序或使用2D或3D图形的另一类型的渲染应用程序。
渲染应用程序18可包含指令GPU12渲染图形用户接口(GUI)和/或图形场景的一或多个绘制指令。举例来说,绘制指令可包含界定将由GPU12渲染的一组一或多个图形图元的指令。在一些实例中,绘制指令可共同地界定用于GUI中的多个开窗表面的全部或部分。在额外实例中,所述绘制指令可共同地定义图形场景的全部或部分,所述图形场景包含在由应用程序定义的模型空间或世界空间内的一或多个图形对象。
渲染应用程序18可经由图形API20调用GPU驱动程序22,以向GPU12发出一或多个命令,以用于将一或多个图形图元渲染到可显示的图形图像中。举例来说,渲染应用程序18可调用GPU驱动程序22,以向GPU12提供图元定义。在一些情况下,图元定义可以例如三角形、矩形、三角形扇、三角形带等的绘制图元的列表的形式被提供到GPU12。图元定义可包含指定与待呈现的图元相关联的一或多个顶点的顶点规格。所述顶点规格可包含每个顶点的位置坐标,且在一些情况下包含与顶点相关联的其它属性,例如色彩属性、法向量和纹理坐标。图元定义还可包含图元类型信息(例如,三角形、矩形、三角形扇、三角形带等)、缩放信息、旋转信息及类似者。
基于由渲染应用程序18向GPU驱动程序22发出的指令,GPU驱动程序22可调配指定供GPU12执行的一或多个运算以便渲染图元的一或多个命令。当GPU12接收到来自CPU6的命令时,GPU12可使用处理器集群46执行图形处理管线,以便对命令进行解码,并对图形处理管线进行配置以执行命令中所制定的操作。
一般来说,在开发设备采用开发工具完成所述渲染应用程序的开发之后,如图3所示,对渲染应用程序的常规调试方法可以为:
在所述开发设备运行所述渲染应用程序并预览所述渲染应用程序的渲染效果;若在所述开发设备的预览渲染效果满足渲染预期,则将所述渲染应用程序打包发布;所述目标设备获取并安装所述渲染应用程序;在所述目标设备运行所述渲染应用程序得到相应的渲染效果(也可以理解为所述渲染应用程序无缺陷),并预览每一个画面帧的渲染效果;若所述每一个画面帧的预览渲染效果均满足渲染预期,则所述开发设备保存所述渲染应用程序的当前版本,若存在任一画面帧的预览渲染效果不满足渲染预期(也可以理解为发现所述渲染应用程序的缺陷),则需要在所述开发设备采用开发工具对所述渲染应用程序进行修改,重复上述的处理直至所述画面帧的预览渲染效果满足渲染预期,则所述开发设备保存所述渲染应用程序的当前版本,本次调试结束。
然而,上述常规的调试方法存在如下问题:由于对所述渲染应用程序的开发是在开发设备进行的,而该渲染应用程序的实际上应用于目标设备,所述开发设备和目标设备可能属于不同机型,例如,开发设备是台式机,而所述目标设备是智能手机;或者,所述开发设备和目标设备可能属于不同***,例如,开发设备是采用的是Windows***,而所述目标设备采用的是安卓***。这些开发设备和目标设备之间的差异很可能导致两者之间存在难以预测的兼容性问题,从而导致所述渲染应用程序在开发设备的渲染效果满足渲染预期,但在目标设备的渲染效果却不满足渲染预期。进一步的,在目标设备进行真实环境的渲染过程中出现不满足渲染预期的情况时,也无法实时对渲染应用程序进行修改(仅能在开发设备对渲染应用程序进行修改),这将产生较大的延迟,同时,由于不满足渲染预期的某一画面帧可能难以再现,将导致失去本次调试机会。
可见,在发生问题的瞬间进行调试是最快速和最有效的处理方式,而在渲染结束后再进行调试则会降低处理效率低。因此,若能在目标设备进行渲染的过程中能够对其进行实时调试,也就是说,当调试人员发现所述渲染应用程序在所述目标设备运行过程中存在渲染效果不满足渲染预期的画面帧时,可以暂停当前运行的渲染应用程序,并且获取当前画面帧的第一渲染数据,然后基于当前画面帧的第一渲染数据,在开发设备实时的对所述渲染应用程序进行修改,从而可以提高调试效率。
图4所示出了可以应用本申请实施例的一种渲染效果实时调试方法及装置的示例性应用环境的***架构示意图。
如图4所示,所述示例性应用环境的***架构可以包括开发设备,目标设备以及通信连接。其中,所述通信连接用以实现开发设备和目标设备之间的数据传输,所述通信连接可以包括各种连接类型,例如有线通信链路、无线通信链路或者光纤电缆等等。
需要说明的是,图4中的内核空间(Kernel space)主要是各种操作***核心功能(例如时钟,任务调度,调频调压,中断响应等),而各种应用程序则主要运行在图4中的用户空间(User space)。
在由于当前使用较多的API是OpenGL API,因此,本申请下面的描述中将以OpenGLAPI为例进行说明,本领域技术人员应理解,其他API处理的原理与OpenGL API是相同的,在本申请中不再赘述。
OpenGL本身是一个关于图形的API的详述规范(specification),规定了很多函数和其参数返回型,以及要实现的行为和管线操作。GPU的硬件开发商提供满足OpenGL规范的驱动程序,将OpenGL定义的渲染指令翻译为GPU12可读的渲染命令,GPU12根据其可读的渲染命令对所述图形数据进行渲染。在OpenGL中,存在Program和Shader两个概念,Program相当于当前渲染管线所使用的程序,是Shader的容器,可以挂载多个Shader。而每个Shader相当于一个程序部分,首先需要对Shader脚本进行编译,然后将编译好的Shader挂载到Program上,在OpenGL的渲染中使用Program来使Shader生效。也就是说,Shader是专门用来实现不同渲染工序的程序,通过Shader可以自定义GPU12的Shader渲染算法,以使得GPU12根据所述Shader渲染算法处理所述图形数据中的每一个顶点以及每一个像素点,从而将该画面帧渲染到显示器8。
本申请实施例提出了一种渲染效果实时调试方法,如图5所示,所述方法包括:
S501,开发设备从目标设备获取运行于目标设备的渲染应用程序的任一画面帧的第一渲染数据,其中,所述任一画面帧的渲染效果不满足渲染预期;
S502,所述开发设备根据所述第一渲染数据修改所述渲染应用程序;
S503,所述开发设备执行修改后的所述渲染应用程序,得到对应于所述画面帧的第二渲染数据;
S504,所述开发设备向所述目标设备发送所述第二渲染数据;
S505,若所述第二渲染数据在所述目标设备的预览渲染效果满足渲染预期,所述开发设备保存修改后的所述渲染应用程序。
可见,采用上述示例中的渲染效果实时调试方法,调试人员可以在所述渲染应用程序在所述目标设备运行的过程中,实时监控目标设备上所显示的每一画面帧的渲染效果,当发现某一个画面帧的渲染效果不满足渲染预期时,开发设备可以基于所述开发设备和所述目标之间的通信连接,获取所述不满足渲染预期的所述画面帧的第一渲染数据,并基于所述第一渲染数据,在所述开发设备对所述渲染应用程序进行相应修改并获得第二渲染数据,然后将第二渲染数据通过所述通信连接发送给所述目标设备,以使得所述目标设备基于所述第二渲染数据再次完成对所述画面帧的渲染,通过所述目标设备的Framebuffer再次预览第二渲染数据的渲染效果,若所述第二渲染数据的预览渲染效果满足渲染预期,则开发设备保存对所述渲染应用程序的修改,从而实现了对所述渲染应用程序的实时调试,提高了调试的效率。
在一些示例中,所述开发设备从所述目标设备获取运行于目标设备的渲染应用程序的任一画面帧的第一渲染数据,包括:所述渲染应用程序运行于目标设备时,若当前任一画面帧的渲染效果不满足渲染预期,则基于所述目标设备和开发设备之间的通信连接,所述开发设备暂停所述渲染应用程序的运行;基于所述通信连接,所述开发设备从所述目标设备获取对应于所述画面帧的第一渲染数据。
需要说明的是,在目标设备运行渲染应用程序时,渲染命令流(也就是OpenGL命令流)是实时变化的,难以获取到对应于某一个画面帧的第一渲染数据。因此,要获取对应于某一个显示异常的画面帧的第一渲染数据,需要先暂停当前运行的渲染应用程序。
若调试人员可以同时操作目标设备和开发设备,则调试人员可以直接暂停目标设备上正在运行的渲染应用程序,例如,所述目标设备与所述开发设备通过有线的方式连接,并且距离较近的情况,调试人员可以直接对所述目标设备进行暂停操作。
若调试人员无法同时操作目标设备和开发设备,此时,开发设备需要远程控制所述目标设备暂停当前渲染程序的运行。具体的,可以通过终止目标设备中的渲染命令的下发来暂停目标设备中所述渲染应用程序的运行,而渲染命令的下发是需要通过钩子函数来执行的,因此,调试人员可以通过在所述目标设备中的目标渲染程序中注入钩子函数来暂停目标设备中所述渲染应用程序的运行。
需要注意的是,钩子函数会消耗处理时间,降低所述渲染应用程序的性能,因此,在调试完毕后要及时将之删除。需要说明的是,钩子函数是一种特殊的消息处理机制,它可以监视***或者进程中的各种事件消息,截获相应的消息并进行处理。因此,可以通过自定义钩子函数,监视***中特定事件的发生,完成特定功能。为完成上述不同的特定功能,钩子函数的种类有很多,如键盘钩子可以截获键盘消息,外壳钩子可以截取、启动和关闭应用程序的消息等。钩子函数也可以分为线程钩子和***钩子,线程钩子可以监视指定线程的事件消息,***钩子监视***中的所有线程的事件消息。可见,钩子函数是一个消息的拦截机制,可以拦截单个进程的消息(线程钩子),也可以拦截所有进程的消息(***钩子),也可以对拦截的消息进行自定义处理。
在一些示例中,所述基于所述通信连接,所述开发设备从所述目标设备获取对应于所述画面帧的第一渲染数据,包括:基于所述通信连接,所述开发设备通过钩子函数从所述目标设备获取对应于所述画面帧的第一渲染数据。
所述开发设备可以通过多种方式获取不满足渲染预期的画面帧的第一渲染数据,本申请实施例对比不做具体限定。
对于上述示例,可选的,所述开发设备可以通过给所述OpenGL API加钩子函数的方式获取不满足渲染预期的画面帧的第一渲染数据。具体的,调试人员可以通过下发OpenGL API的地址,并在所述地址前后加上打印信息或者时间戳的方式获取第一渲染数据。例如,可以通过LD_PRELOAD,截获并保存相应的OpenGL API数据(也就是第一渲染数据),然后,基于目标设备和开发设备之间的通信连接,发送到开发设备。需要说明的是,LD_PRELOAD是一个环境变量,它可以影响程序的运行时的链接(Runtime linker),它允许调试或者开发人员自定义在程序运行前优先加载的动态链接库。这个功能主要就是用来有选择性的载入不同动态链接库中的相同函数。通过这个环境变量,调试或者开发人员可以在主程序和其动态链接库的中间加载别的动态链接库,甚至覆盖正常的函数库。因此,可以以此功能来使用更好的函数(无需别人的源码),还可以以向已写好的程序(如发开完成的程序)中注入特定的目的其他程序(如调试所需的程序)。
需要注意的是,由于用于调试的相应程序可能影响CPU和/或GPU运行速度,因此,在调试完成后,需要在渲染应用程序中删除所述用于调试的相应程序代码。
在一些示例中,所述第一渲染数据可以包括所述画面帧的OpenGL命令流、OpenGL状态信息、Shader命令流以及渲染中间数据。
目标设备上出现显示异常的画面帧的原因可能有多种。
第一种可能的原因为:渲染应用程序向GPU下发的渲染命令流(也可以称为OpenGL命令流)错误,例如,所述OpenGL命令流中的各OpenGL命令的顺序出现错误,或者,OpenGL流中的渲染数据错误(如顶点数据错误)。因此,调试时,可以根据所述画面帧的OpenGL命令流中获知所述渲染应用程序向GPU发送的各OpenGL命令的顺序,从而检查该OpenGL命令的顺序是否正确,以及,检查各OpenGL命令的顶点数据,从而定位上述显示异常的画面帧的原因。
第二种可能的原因为:渲染应用程序是向GPU下发了错误的渲染状态信息(也可以称为OpenGL状态信息)。OpenGL还定义了众多的状态和相应的状态变量,通过这些状态变量可以令渲染时使用光照、纹理、隐藏面消除、雾以及其他影响物体外观的状态。在默认情况下,这些状态大多数未被启动,这是由于启动这些状态的代价可能很大,例如,启动纹理映射将降低渲染速度,但渲染质量将更高。要启用和关闭这些状态,可使用下面两个简单的函数:void glEnalble(GLenum cap)和void glDisable(GLenum cap),其中,glEnable()用于启用功能,glDisable()用于关闭。有60多个枚举值可用作glEnalbe()或glDisable()的参数,其中包括GL_BLEND、GL_DEPTH_TEST等。还可以检查状态当前处于启动还是禁用状态。如GLboolean glIsEnabled(GLenum capability),该函数根据被查询的功能是否被启动,返回GL_TRUE或GL_FALSE。上述仅描述了两种状态,大多数情况下,OpenGL定义的函数可能包括更复杂的状态变量设置值,例如,函数glColor3f返回三个值,它们是状态GL_CURRENT_COLOR的组成部分。可见,状态信息的错误设置也会影响渲染效果。因此,开发设备可以检查获取的画面帧的OpenGL状态信息来定位上述画面帧显示异常的原因。
第三种可能的原因为:渲染应用程序是向GPU下发了错误的着色命令流(也可以称为Shader命令流)。所述渲染应用程序通过所述Shader命令流控制GPU对所述顶点数据进行相关处理,Shader命令流中的每一个Shader命令可以为对顶点数据或者像素数据的具体处理的算法。例如,GPU需要对每一个顶点的坐标(Position)进行几何变换,得到经过几何变换后的顶点坐标(包括坐标,颜色,纹理坐标、法线等顶点属性),上述几何变换可以通过Shader命令来实现。可见,若Shader命令流出现错误,也会导致GPU渲染出现异常。因此,开发设备可以检查获取的Shader命令流,来定位上述画面帧显示异常的原因。
另外,上述几种可能的原因还可能结合,产生其他可能的问题。举例来说,渲染应用程序是向GPU下发的顶点数据是正确的,渲染应用程序是向GPU下发了错误的状态信息,这可能导致在某些目标设备上可以进行渲染但渲染效果出现异常,但在另一些目标设备上无法进行渲染。例如,对于渲染应用程序为一款***时,在一些手机上,人物显示不出来,这可能是深度状态设置有误导致的;或者,武器闪烁,这可能与该手机本身屏幕的精度有关);或者,场景卡顿,这可能与该手机本身运算能力有关。因此,对于上述问题,还可以同时结合获取的所述画面帧的OpenGL命令流、OpenGL状态信息、Shader命令流以及渲染中间数据,来定位上述画面帧显示异常的原因。
需要说明的是,所述渲染中间数据具体可以包括但不限于:图形模型顶点位置,顶点法向量,顶点纹理坐标,顶点光照因子,光栅化的颜色信息,深度信息,模板信息,混合纹理层级,纹理片元和存储、精度等信息;本发明实施例对此不做赘述。
在一些示例中,在开发设备从目标设备获取运行于目标设备的渲染应用程序的任一画面帧的第一渲染数据之前,所述方法还包括:所述开发设备建立所述开发设备和所述目标设备之间的通信连接。
对于上述示例,举例来说,若所述开发设备为PC机,所述开发设备上安装有PC助手,目标设备可以为安卓智能终端,所述目标设备可以至少具有一个用于调试的端口,如安卓调试桥(Android Debug Bridge,ADB)端口,ADB可以是安卓软件开发工具包中的一个工具,采用此工具可以直接操作管理真实的安卓设备。开发设备的PC助手可以基于所述通信连接,通过所述目标设备的ADB端口与之建立通信连接。
在一些示例中,所述开发设备向所述目标设备发送所述第二渲染数据,包括:基于所述目标设备和所述开发设备之间的通信连接,所述开发设备向所述目标设备发送所述第二渲染数据,并指示所述目标设备基于所述第二渲染数据重新渲染所述画面帧,以使得在所述目标设备得到对应于所述画面帧的第二渲染数据的预览渲染效果。
对于上述示例,具体的,基于所述目标设备和所述开发设备之间的通信连接,所述开发设备向所述目标设备发送所述第二渲染数据,相应的,所述目标设备接收到所述第二渲染数据和指示其基于所述第二渲染数据重新渲染所述画面帧的信息,然后,所述目标设备所述基于所述第二渲染数据重新渲染所述画面帧,并通过目标设备的Framebuffer得到第二渲染数据的预览渲染效果。
在一些示例中,所述方法还包括:若所述第二渲染数据在所述目标设备的预览渲染效果不满足所述渲染预期,则所述开发设备根据所述第一渲染数据或所述第二渲染数据对所述渲染应用程序再次进行修改。
对于上述示例,可以理解为,若所述第二渲染数据在所述目标设备的预览渲染效果不满足所述渲染预期,则在开发设备保存对所述渲染应用程序的修改;若所述第二渲染数据的预览渲染效果不满足渲染预期,则调试人员可以再次根据第一渲染数据或者第二渲染数据,在所述开发设备上,通过开发工具对所述渲染应用程序进行再次修改,重复前述的处理过程,直至得到的渲染数据在所述目标设备的预览渲染效果满足渲染预期。
图6为本发明实施例提供的一种渲染效果实时调试装置600,所述装置应用于所述开发设备,所述装置600包括:
获取部分601,经配置为开发设备从目标设备获取运行于目标设备的渲染应用程序的任一画面帧的第一渲染数据,其中,所述任一画面帧的渲染效果不满足渲染预期;
修改部分602,经配置为所述开发设备根据所述第一渲染数据修改所述渲染应用程序;
执行部分603,经配置为所述开发设备执行修改后的所述渲染应用程序,得到对应于所述画面帧的第二渲染数据;
发送部分604,经配置为所述开发设备向所述目标设备发送所述第二渲染数据;
保存部分605,经配置为若所述对应于所述画面帧的第二渲染数据在所述目标设备的预览渲染效果满足渲染预期,所述开发设备保存修改后的所述渲染应用程序。
在一些示例中,所述获取部分601,还经配置为所述渲染应用程序运行于目标设备时,若当前任一画面帧的渲染效果不满足渲染预期,则基于所述目标设备和开发设备之间的通信连接,所述开发设备暂停所述渲染应用程序的运行;
基于所述通信连接,所述开发设备从所述目标设备获取对应于所述画面帧的第一渲染数据。
在一些示例中,所述发送部分604,还经配置为基于所述目标设备和所述开发设备之间的通信连接,所述开发设备向所述目标设备发送所述第二渲染数据,并指示所述目标设备基于所述第二渲染数据重新渲染所述画面帧,以使得在所述目标设备得到对应于所述画面帧的第二渲染数据的预览渲染效果。
在一些示例中,所述装置600还包括:建立部分606,经配置为所述开发设备建立所述开发设备和所述目标设备之间的所述通信连接。
可以理解地,在本实施例中,“部分”可以是部分电路、部分处理器、部分程序或软件等等,当然也可以是单元,还可以是部分也可以是非部分化的。
另外,在本实施例中的各组成部分可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能部分的形式实现。
所述集成的单元如果以软件功能部分的形式实现并非作为独立的产品进行销售或使用时,可以存储在一个计算机可读取存储介质中,基于这样的理解,本实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或processor(处理器)执行本实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM, Read Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
因此,本实施例提供了一种计算机存储介质,所述计算机存储介质存储有一种渲染效果实时调试程序,所述一种渲染效果实时调试程序被至少一个处理器执行时实现上述技术方案中所述一种渲染效果实时调试方法步骤。
根据上述一种渲染效果实时调试装置600以及计算机存储介质,参见图7,其示出了本发明实施例提供的一种能够实施上述一种渲染效果实时调试装置600的开发设备700的具体硬件结构,所述开发设备700可以包括:通信接口701,存储器702、处理器703和显示器705;各个组件通过总线***704耦合在一起。可理解,总线***704用于实现这些组件之间的连接通信。总线***704除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图7中将各种总线都标为总线***704。其中,
所述通信接口701,用于在与其他外部网元之间进行收发信息过程中,信号的接收和发送;
所述存储器702,用于存储能够在所述处理器703上运行的计算机程序;
所述处理器703,用于在运行所述计算机程序时,执行以下步骤:
开发设备从目标设备获取运行于目标设备的渲染应用程序的任一画面帧的第一渲染数据,其中,所述任一画面帧的渲染效果不满足渲染预期;所述开发设备根据所述第一渲染数据修改所述渲染应用程序;所述开发设备执行修改后的所述渲染应用程序,得到对应于所述画面帧的第二渲染数据;所述开发设备向所述目标设备发送所述第二渲染数据;若所述第二渲染数据在所述目标设备的预览渲染效果满足渲染预期,所述开发设备保存修改后的所述渲染应用程序。
所述显示器705,用于显示所述任一画面帧的渲染数据。
可以理解,本发明实施例中的存储器702可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器 (Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double DataRate SDRAM,DDRSDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(Synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,DRRAM)。本文描述的***和方法的存储器702旨在包括但不限于这些和任意其它适合类型的存储器。
而处理器703可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器703中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器703可以是通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field Programmable Gate Array, FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件部分组合执行完成。软件部分可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程 存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器702,处理器703读取存储器702中的信息,结合其硬件完成上述方法的步骤。
可以理解的是,本文描述的这些实施例可以用硬件、软件、固件、中间件、微码或其组合来实现。对于硬件实现,处理单元可以实现在一个或多个专用集成电路(ApplicationSpecific Integrated Circuits,ASIC)、数字信号处理器(Digital Signal Processing,DSP)、数字信号处理设备(DSP Device,DSPD)、可编程逻辑设备(Programmable LogicDevice,PLD)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、通用处理器、控制器、微控制器、微处理器、用于执行本申请所述功能的其它电子单元或其组合中。
对于软件实现,可通过执行本文所述功能的部分(例如过程、函数等) 来实现本文所述的技术。软件代码可存储在存储器中并通过处理器执行。存储器可以在处理器中或在处理器外部实现。
具体来说,处理器703还配置为运行所述计算机程序时,执行前述技术方案中所述渲染效果实时调试方法步骤,这里不再进行赘述。
可以理解地,上述渲染效果实时调试装置600以及开发设备700的示例性技术方案,与前述渲染效果实时调试方法的技术方案属于同一构思,因此,上述对于渲染效果实时调试装置600以及开发设备700的技术方案未详细描述的细节内容,均可以参见前述渲染效果实时调试方法的技术方案的描述。本发明实施例对此不做赘述。
需要说明的是:本发明实施例所记载的技术方案之间,在不冲突的情况下,可以任意组合。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (9)
1.一种渲染效果实时调试方法,其特征在于,包括:
开发设备从目标设备获取运行于目标设备的渲染应用程序的任一画面帧的第一渲染数据,所述任一画面帧的渲染效果不满足渲染预期;其中,
所述开发设备从所述目标设备获取运行于目标设备的渲染应用程序的任一画面帧的第一渲染数据,包括:
所述渲染应用程序运行于目标设备时,若当前任一画面帧的渲染效果不满足渲染预期,则基于所述目标设备和开发设备之间的通信连接,所述开发设备暂停所述渲染应用程序的运行;
基于所述通信连接,所述开发设备从所述目标设备获取对应于所述画面帧的第一渲染数据;
所述开发设备根据所述第一渲染数据修改所述渲染应用程序;
所述开发设备执行修改后的所述渲染应用程序,得到对应于所述画面帧的第二渲染数据;
所述开发设备向所述目标设备发送所述第二渲染数据;
若所述第二渲染数据在所述目标设备的预览渲染效果满足渲染预期,所述开发设备保存修改后的所述渲染应用程序。
2.根据权利要求1所述方法,其特征在于,所述开发设备向所述目标设备发送所述第二渲染数据,包括:
基于所述目标设备和所述开发设备之间的通信连接,所述开发设备向所述目标设备发送所述第二渲染数据,并指示所述目标设备基于所述第二渲染数据重新渲染所述画面帧,以使得在所述目标设备得到所述第二渲染数据在所述目标设备的预览渲染效果。
3.根据权利要求1所述方法,其特征在于,所述第一渲染数据包括:所述画面帧的渲染命令流、渲染状态信息、着色命令流以及渲染中间数据。
4.根据权利要求1所述方法,其特征在于,所述基于所述通信连接,所述开发设备从所述目标设备获取对应于所述画面帧的第一渲染数据,包括:
基于所述通信连接,所述开发设备通过钩子函数从所述目标设备获取对应于所述画面帧的第一渲染数据。
5.根据权利要求1所述方法,其特征在于,在开发设备从目标设备获取运行于目标设备的渲染应用程序的任一画面帧的第一渲染数据之前,所述方法还包括:
所述开发设备建立所述开发设备和所述目标设备之间的通信连接。
6.根据权利要求1所述方法,其特征在于,所述方法还包括:
若所述第二渲染数据在所述目标设备的预览渲染效果不满足所述渲染预期,则所述开发设备根据所述第一渲染数据或所述第二渲染数据对所述渲染应用程序再次进行修改。
7.一种渲染效果实时调试装置,其特征在于,包括:
获取部分,经配置为开发设备从目标设备获取运行于目标设备的渲染应用程序的任一画面帧的第一渲染数据,所述任一画面帧的渲染效果不满足渲染预期;所述获取部分,还经配置为
所述渲染应用程序运行于目标设备时,若当前任一画面帧的渲染效果不满足渲染预期,则基于所述目标设备和开发设备之间的通信连接,所述开发设备暂停所述渲染应用程序的运行;
基于所述通信连接,所述开发设备从所述目标设备获取对应于所述画面帧的第一渲染数据;
修改部分,经配置为所述开发设备根据所述第一渲染数据修改所述渲染应用程序;
执行部分,经配置为所述开发设备执行修改后的所述渲染应用程序,得到对应于所述画面帧的第二渲染数据;
发送部分,经配置为所述开发设备向所述目标设备发送所述第二渲染数据;
保存部分,经配置为若所述对应于所述画面帧的第二渲染数据在所述目标设备的预览渲染效果满足渲染预期,所述开发设备保存修改后的所述渲染应用程序。
8.一种开发设备,其特征在于,包括权利要求7所述的渲染效果实时调试装置。
9.一种计算机存储介质,其特征在于,所述计算机存储介质存储有渲染效果实时调试的程序,所述渲染效果实时调试的程序被至少一个处理器执行时实现权利要求1-6任一项所述的渲染效果实时调试的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110899544.6A CN113342703B (zh) | 2021-08-06 | 2021-08-06 | 一种渲染效果实时调试方法、装置、开发设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110899544.6A CN113342703B (zh) | 2021-08-06 | 2021-08-06 | 一种渲染效果实时调试方法、装置、开发设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113342703A CN113342703A (zh) | 2021-09-03 |
CN113342703B true CN113342703B (zh) | 2021-10-29 |
Family
ID=77481019
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110899544.6A Active CN113342703B (zh) | 2021-08-06 | 2021-08-06 | 一种渲染效果实时调试方法、装置、开发设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113342703B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113393585B (zh) * | 2021-08-18 | 2021-11-19 | 西安芯瞳半导体技术有限公司 | 一种渲染问题定位方法、装置、定位设备及存储介质 |
CN115357516B (zh) * | 2022-10-19 | 2023-04-11 | 西安芯瞳半导体技术有限公司 | 一种渲染问题的调试方法、装置、设备及存储介质 |
CN115408227B (zh) * | 2022-11-01 | 2023-01-24 | 西安芯瞳半导体技术有限公司 | 一种基于自研显卡的gpu状态调试方法、装置及存储介质 |
CN117170883B (zh) * | 2023-11-02 | 2024-01-30 | 西安芯云半导体技术有限公司 | 渲染显示的方法、装置、设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101675453A (zh) * | 2007-03-02 | 2010-03-17 | 索尼计算机娱乐美国公司 | 用于分析对于应用程序修改前命令改变的性能的图形命令管理工具和方法 |
CN105955888A (zh) * | 2016-05-04 | 2016-09-21 | 腾讯科技(深圳)有限公司 | 一种页面调试预览方法及*** |
CN108345531A (zh) * | 2017-01-23 | 2018-07-31 | 阿里巴巴集团控股有限公司 | 一种测试方法、装置及*** |
CN111352847A (zh) * | 2020-03-09 | 2020-06-30 | 中国邮政储蓄银行股份有限公司 | 移动应用终端实时调试方法及*** |
CN111696188A (zh) * | 2020-04-26 | 2020-09-22 | 杭州群核信息技术有限公司 | 渲染图快速光照编辑方法和装置、渲染方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070055930A1 (en) * | 2005-09-07 | 2007-03-08 | International Business Machines Corporation | Tool for monitoring rules for a rules-based transformation engine |
US20120198319A1 (en) * | 2011-01-28 | 2012-08-02 | Giovanni Agnoli | Media-Editing Application with Video Segmentation and Caching Capabilities |
-
2021
- 2021-08-06 CN CN202110899544.6A patent/CN113342703B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101675453A (zh) * | 2007-03-02 | 2010-03-17 | 索尼计算机娱乐美国公司 | 用于分析对于应用程序修改前命令改变的性能的图形命令管理工具和方法 |
CN105955888A (zh) * | 2016-05-04 | 2016-09-21 | 腾讯科技(深圳)有限公司 | 一种页面调试预览方法及*** |
CN108345531A (zh) * | 2017-01-23 | 2018-07-31 | 阿里巴巴集团控股有限公司 | 一种测试方法、装置及*** |
CN111352847A (zh) * | 2020-03-09 | 2020-06-30 | 中国邮政储蓄银行股份有限公司 | 移动应用终端实时调试方法及*** |
CN111696188A (zh) * | 2020-04-26 | 2020-09-22 | 杭州群核信息技术有限公司 | 渲染图快速光照编辑方法和装置、渲染方法 |
Non-Patent Citations (2)
Title |
---|
AR技术与金融服务领域结合——以理财产品AR展示***为例;杜凯欣等;《电脑迷》;20181231;第2018年卷(第6期);全文 * |
Language-agnostic program rendering for presentation, debugging and visualization;C.S. Collberg ET AL;《Proceeding 2000 IEEE International Symposium on Visual Languages》;20020806;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113342703A (zh) | 2021-09-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113342703B (zh) | 一种渲染效果实时调试方法、装置、开发设备及存储介质 | |
CN113393585B (zh) | 一种渲染问题定位方法、装置、定位设备及存储介质 | |
US9626313B2 (en) | Trace buffer based replay for context switching | |
EP3353746B1 (en) | Dynamically switching between late depth testing and conservative depth testing | |
US20160292812A1 (en) | Hybrid 2d/3d graphics rendering | |
US20150348224A1 (en) | Graphics Pipeline State Object And Model | |
US9852539B2 (en) | Single pass surface splatting | |
US20170083997A1 (en) | Storing bandwidth-compressed graphics data | |
CN116185743B (zh) | OpenGL接口的双显卡对比调试方法、装置及介质 | |
CN114972607B (zh) | 加速图像显示的数据传输方法、装置及介质 | |
EP3427229B1 (en) | Visibility information modification | |
CN115357516B (zh) | 一种渲染问题的调试方法、装置、设备及存储介质 | |
CN113256764A (zh) | 一种光栅化装置、方法及计算机存储介质 | |
CN116563083A (zh) | 渲染图像的方法和相关装置 | |
CN116909511A (zh) | 提升gpu双缓冲显示效率的方法、装置及存储介质 | |
CN113838180A (zh) | 一种渲染指令处理方法及其相关设备 | |
CN111179151B (zh) | 一种提高图形渲染效率的方法、装置及计算机存储介质 | |
CN115167949B (zh) | 高版本OpenGL函数适配低版本应用程序的方法、装置及介质 | |
CN112686797B (zh) | 用于gpu功能验证的目标帧数据获取方法、装置及存储介质 | |
US20230169621A1 (en) | Compute shader with load tile | |
KR100639379B1 (ko) | 이동통신 단말기의 그래픽칩 밴치마킹 장치 및 그 방법 | |
CN116457830A (zh) | 基于区域不连续性的运动估计 | |
CN112686797A (zh) | 用于gpu功能验证的目标帧数据获取方法、装置及存储介质 |
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 |
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 21101, 11 / F, unit 2, building 1, Wangdu, No. 3, zhangbayi Road, Zhangba Street office, hi tech Zone, Xi'an City, Shaanxi Province Patentee before: Xi'an Xintong Semiconductor Technology Co.,Ltd. |
|
CP03 | Change of name, title or address |