[发明专利]着色器代码的调试方法、装置、电子设备及存储介质在审
申请号: | 201910426217.1 | 申请日: | 2019-05-21 |
公开(公告)号: | CN110287100A | 公开(公告)日: | 2019-09-27 |
发明(设计)人: | 张一磊 | 申请(专利权)人: | 北京达佳互联信息技术有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京润泽恒知识产权代理有限公司 11319 | 代理人: | 莎日娜 |
地址: | 100085 北京市海淀*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 着色器代码 转换代码 调试 存储介质 电子设备 代码转换 开发过程 开发效率 检测 | ||
本公开是关于一种着色器代码的调试方法、装置、电子设备及存储介质。所述方法包括:对接收的着色器代码进行代码转换处理,生成转换代码;其中,所述着色器代码为GPU代码,所述转换代码为CPU代码;将所述转换代码划分为多段子转换代码;根据所述多段子转换代码的执行顺序,执行所述多段子转换代码,得到执行结果;根据所述执行结果,对所述着色器代码进行调试。本公开可以检测出着色器代码中的错误或问题,并实现了对着色器代码中的错误或问题的调试,进一步,提高了着色器代码在开发过程中的开发效率。
技术领域
本公开涉及着色器调试技术领域,尤其涉及一种着色器代码的调试方法、装置、电子设备及存储介质。
背景技术
Shader(着色器)是一段能够针对3D对象进行操作、并被GPU所执行的程序。通过这些程序,程序员就能够获得绝大部分想要的3D图形效果。
在实现3D图形效果时,通常是采用着色器支持的代码(即着色器代码),而着色器代码需要用字符串编写,开发过程中这些代码会装载到GPU(Graphics Processing Unit,图形处理器)中执行,而由于开发商在生成过程中并未在GPU中提供着色器代码的调试工具,因而,在GPU中无法直接对着色器代码进行调试。
显然,在开发过程中,无法对作业中的着色器代码进行调试,降低了开发效率。
发明内容
为克服相关技术中存在的问题,本公开提供一种着色器代码的调试方法、装置、电子设备及非临时性计算机可读存储介质。
根据本公开实施例的第一方面,提供了一种着色器代码的调试方法,包括:对接收的着色器代码进行代码转换处理,生成转换代码;其中,所述着色器代码为GPU代码,所述转换代码为CPU代码;将所述转换代码划分为多段子转换代码;根据所述多段子转换代码的执行顺序,执行所述多段子转换代码,得到执行结果;根据所述执行结果,对所述着色器代码进行调试。
在本公开的一种具体实现中,在所述对接收的着色器代码进行代码转换处理,生成转换代码的步骤之前,还包括:由CPU接收所述着色器代码;所述对接收的着色器代码进行代码转换处理,生成转换代码的步骤,包括:由所述CPU中内置的编译器按照预先设置的代码转换规范,对所述着色器代码进行转换,生成所述转换代码。
在本公开的一种具体实现中,所述将所述转换代码划分为多段子转换代码的步骤,包括:对所述转换代码添加多个断点,将所述转换代码划分为所述多段子转换代码。
在本公开的一种具体实现中,所述对所述转换代码添加多个断点的步骤,包括:获取所述转换代码中的多行有效转换代码;在每行或多行所述有效转换代码的行前添加所述断点。
在本公开的一种具体实现中,所述根据所述多段子转换代码的执行顺序,执行所述多段子转换代码的步骤,包括:根据所述多个断点的执行先后顺序,获取所述多段子转换代码的执行顺序;根据所述执行顺序,执行所述多段子转换代码。
在本公开的一种具体实现中,所述根据所述执行顺序,执行所述多段子转换代码的步骤,包括:在当前子转换代码执行完成之后,判断在所述当前子转换代码之后是否存在下一断点;在存在所述下一断点的情况下,执行所述下一子转换代码;在不存在所述下一断点的情况下,结束执行所述多段子转换代码的操作。
在本公开的一种具体实现中,所述根据所述执行结果,对所述着色器代码进行调试的步骤,包括:在对目标子转换代码执行完成之后,获取与所述目标子转换代码对应的目标执行结果;所述目标子转换代码为所述多段子转换代码中的一段子转换代码;在所述目标执行结果出现异常结果信息时,对所述目标子转换代码进行调试。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京达佳互联信息技术有限公司,未经北京达佳互联信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910426217.1/2.html,转载请声明来源钻瓜专利网。