[发明专利]数据处理方法、装置和电子设备在审
申请号: | 202210337428.X | 申请日: | 2022-03-31 |
公开(公告)号: | CN114862653A | 公开(公告)日: | 2022-08-05 |
发明(设计)人: | 周陶生 | 申请(专利权)人: | 北京智明星通科技股份有限公司 |
主分类号: | G06T1/20 | 分类号: | G06T1/20;G06F8/41;G06F8/30 |
代理公司: | 北京汇思诚业知识产权代理有限公司 11444 | 代理人: | 焦志刚 |
地址: | 100001 北京市海*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 数据处理 方法 装置 电子设备 | ||
本申请实施例提供一种数据处理方法、装置和电子设备,涉及游戏制作技术领域,能够降低由于创建GPU程序的耗时较大而引起游戏卡顿的概率。该数据处理方法包括:获取多个待预热着色器变体;在游戏运行过程中,分阶段对多个待预热着色器变体进行预热,任意两个阶段之间间隔设置;基于经过预热后的着色器变体创建GPU程序。
技术领域
本申请涉及游戏制作技术领域,特别涉及一种数据处理方法、装置和电子设备。
背景技术
在基于游戏的图形开发中,着色器Shader是指是指一串可以在图形处理器(Graphics Processing Unit,GPU)中执行的指令,比如分段Fragment Shader,是指屏幕空间下每个像素都会执行的一串指令。但不同的平台、操作系统和图形应用程序接口(application programming interface,API),GPU能执行的指令集不一样,游戏引擎为方便用户开发,提供了方便跨平台的语言体系,例如ShaderLab。开发中经常会出现大部分Shader代码是相同,而只有少数Shader代码不一样的情况,比如只有阴影模式不同其他代码逻辑一样的情况,这在ShaderLab中可以简单地用关键字keywords隔开。每一组关键字集keywords set构成的代码叫着色器变体,即Shader变体,它是指定平台、指定着色器阶段、指定keywords set的shader代码。游戏引擎的shader编译器,以Shader变体为基本单位,负责将用户编写的ShaderLab文本,编译成能被图形API加载使用的二进制Shader代码,例如DXBC代码。
有了编译的二进制代码,GPU设备就可以创建GPU程序Program,比如顶点着色器Vertex Shader、分段着色器Fragment Shader等等,但这个创建过程比较慢,例如图1示意了由着色器创建GPU程序Shader.CreateGPUProgram创建GPU Program的耗时能高达277ms,而创建GPU Program的耗时较大时,会阻塞程序,容易导致游戏卡顿。
发明内容
一种数据处理方法、装置和电子设备,能够降低由于创建GPU程序的耗时较大而引起游戏卡顿的概率。
第一方面,提供一种数据处理方法,包括:获取多个待预热着色器变体;在游戏运行过程中,分阶段对多个待预热着色器变体进行预热,任意两个阶段之间间隔设置;基于经过预热后的着色器变体创建GPU程序。
在一种可能的实施方式中,在分阶段对多个待预热着色器变体进行预热之前,还包括:获取多个待预热着色器变体集合列表,每个待预热着色器变体集合列表对应至少一个待预热着色器变体,不同的待预热着色器变体集合列表对应不同的阶段;分阶段对多个待预热着色器变体进行预热包括:在不同的阶段分别基于对应的待预热着色器变体集合列表,对对应的待预热着色器变体进行预热。
在一种可能的实施方式中,在获取多个待预热着色器变体集合列表之前,还包括:获取编译后的二进制游戏代码并基于游戏代码运行游戏,游戏代码包括多个待分配着色器变体;获取运行游戏过程中的分析数据,并根据分析数据确定每个待分配着色器变体对应的创建GPU程序的耗时;根据每个待分配着色器变体对应的创建GPU程序的耗时,将多个待分配着色器变体的至少部分作为待预热着色器变体划分至多个待预热着色器变体集合列表。
在一种可能的实施方式中,在获取多个待预热着色器变体集合列表之前,还包括:获取跨平台的游戏代码;对跨平台的游戏代码进行词法分析语法分析,得到预处理代码,预处理代码包括着色器代码段和包含所有着色器代码段信息的着色器编码信息;对预处理代码进行编译,得到编译后的二进制游戏代码,编译后的二进制游戏代码包括多个待分配着色器变体;获取多个待预热着色器变体包括:根据待预热着色器变体集合列表从多个待分配着色器变体中获取对应的多个待预热着色器变体,根据待预热着色器变体集合列表,从多个待分配着色器变体中获取非待预热着色器变体;基于经过预热后的着色器变体创建GPU程序包括:基于经过预热后的着色器变体创建GPU程序,并基于非待预热着色器变体创建GPU程序。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京智明星通科技股份有限公司,未经北京智明星通科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210337428.X/2.html,转载请声明来源钻瓜专利网。