编译处理方法及装置、通信设备制造方法及图纸

技术编号:39319803 阅读:11 留言:0更新日期:2023-11-12 16:01
本公开涉及数据处理技术领域,具体而言,涉及编译处理方法及装置、通信设备,其中,编译处理方法应用于云端服务器,包括:在需要通过着色器对第一应用程序中的画面进行渲染时,确定需要对着色器进行编译,其中,第一应用程序运行在容器安卓中;查询磁盘缓存中是否存储有着色器的编译结果,其中,若磁盘缓存中存储有着色器的编译结果,从所述磁盘缓存中加载编译结果;若磁盘缓存中未存储有着色器的编译结果,对着色器进行编译,将编译得到的编译结果存储至磁盘缓存。相对于现有技术,本公开减少了每次渲染图形时编译着色器的数量,从而减少了编译着色器的耗时,有利于降低云应用画面显示的延迟。示的延迟。示的延迟。

【技术实现步骤摘要】
编译处理方法及装置、通信设备


[0001]本公开涉及数据处理
,尤其涉及编译处理方法、编译处理装置和通信设备。

技术介绍

[0002]在云应用
(比如云游戏领域)中,云端服务器的构架主要存在两种:构架#1是基于片上系统(System on Chip,SoC)的ARM阵列,构架#2是基于ARM服务器并外挂PCI(Pedpherd Component Interconnect,周边元件扩展接口)显卡。
[0003]基于构架#2,操作系统一般是Linux,可以在Linux系统中使用容器化技术(例如基于Docker实现)来运行安卓(Android)系统,并在安卓系统中使用Mesa 3D图形库,从而直接访问外挂PCI显卡设备,为安卓系统提供图形显示服务。
[0004]Mesa 3D图形库对OpenGL ES(Open Graphics Library for Embedded Systems,嵌入式系统开放式图形库)有着完整实现,其中包括对着色器(shader)的glCompileShader(编译着色器语言)的实现。而在安卓的云应用中存在大量的着色器,如果在每个着色器使用时都进行编译,受限于构架#2中glCompileShader性能相对于构架#1较弱,会存在编译耗时较大的问题,进而会影响云应用的流畅度。

技术实现思路

[0005]本公开提供编译处理方法及装置、通信设备,以解决相关技术中的不足。
[0006]根据本公开实施例的第一方面,提出一种编译处理方法,应用于云端服务器,所述方法包括:在需要通过着色器对第一应用程序中的画面进行渲染时,确定需要对着色器进行编译,其中,所述第一应用程序运行在容器安卓中;查询磁盘缓存中是否存储有所述着色器的编译结果,其中,若所述磁盘缓存中存储有所述着色器的编译结果,从所述磁盘缓存中加载所述编译结果;若所述磁盘缓存中未存储有所述着色器的编译结果,对所述着色器进行编译,将编译得到的编译结果存储至所述磁盘缓存。
[0007]根据本公开实施例的第二方面,提出一种编译处理装置,应用于云端服务器,所述装置包括:处理模块,被配置为在需要通过着色器对第一应用程序中的画面进行渲染时,确定需要对着色器进行编译,其中,所述第一应用程序运行在容器安卓中;查询模块,被配置为查询磁盘缓存中是否存储有所述着色器的编译结果;加载模块,被配置为在所述磁盘缓存中存储有所述着色器的编译结果的情况下,从所述磁盘缓存中加载所述编译结果;编译模块,被配置为在所述磁盘缓存中未存储有所述着色器的编译结果的情况下,对所述着色器进行编译;存储模块,被配置为将编译得到的编译结果存储至所述磁盘缓存。
[0008]根据本公开实施例的第三方面,提出一种通信设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为实现上述编译处理方法。
[0009]根据本公开实施例的第四方面,提出一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述编译处理方法。
[0010]本公开的实施例提供的技术方案可以包括以下有益效果:由上述实施例可知,云端服务器在确定需要对某个着色器进行编译时,可以先查询磁盘缓存中是否存储有该着色器的编译结果。如果存储有编译结果,那么可以直接从磁盘缓存加载着色器的编译结果,以通过该编译结果实现着色器对应的渲染功能,而不必再重新编译该着色器。而在磁盘缓存未存储有编译结果的情况下,才对着色器进行编译,并将编译结果存储在磁盘缓存中,以便后续在需要对该着色器进行编译时,能够从磁盘缓存中读取到编译结果并加载。
[0011]相对于现有技术,本公开调整了着色器编译语言的逻辑,每次在基于着色器渲染图形时,可以不必对所有需要使用的着色器进行编译,对于已通过磁盘缓存存储了编译结果的着色器,可以直接从存盘缓存中加载编译结果,仅对于未通过磁盘缓存存储编译结果的着色器才进行编译,并存储编译结果。据此,减少了每次渲染图形时编译着色器的数量,从而减少了编译着色器的耗时,有利于降低云应用画面显示的延迟,例如第一应用程序为云游戏应用,则可以有效提高云游戏运行的流畅度。
[0012]应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
[0013]为了更清楚地说明本公开实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0014]图1是根据本公开的实施例示出的一种编译处理方法的示意流程图。
[0015]图2是根据本公开的实施例示出的另一种编译处理方法的示意流程图。
[0016]图3是根据本公开的实施例示出的又一种编译处理方法的示意流程图。
[0017]图4是根据本公开的实施例示出的又一种编译处理方法的示意流程图。
[0018]图5是根据本公开的实施例示出的又一种编译处理方法的示意流程图。
[0019]图6是根据本公开的实施例示出的一种编译处理装置的示意框图。
具体实施方式
[0020]下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
[0021]图1是根据本公开的实施例示出的一种编译处理方法的示意流程图。
[0022]在一些实施例中,本实施例所示的编译处理方法可以由云端服务器(也可以简称为云服务器或服务器)执行。
[0023]在一些实施例中,云端服务器的构架包括:基于ARM服务器并外挂PCI(Pedpherd Component Interconnect,周边元件扩展接口)显卡。
[0024]在一些实施例中,云端服务器可以通过Mesa 3D图形库为容器安卓提供图形显示
服务,例如通过Mesa 3D图形库中的着色器(shader)对容器安卓中运行的应用程序在运行过程中产生的应用画面(即云应用画面)进行渲染。也即后续实施例中的着色器,可以包括Mesa 3D图形库中的着色器。
[0025]如图1所示,编译处理方法可以包括以下步骤:在步骤S101中,在需要通过着色器对第一应用程序中的画面进行渲染时,确定需要对着色器进行编译,其中,第一应用程序运行在容器安卓中;在步骤S102中,查询磁盘缓存中是否存储有着色器的编译结果,其中,若磁盘缓存中存储有着色器的编译结果,从磁盘缓存中加载编译结果;若磁盘缓存中未存储有着色器的编译结果,对着色器进行编译,将编译得到的编译结果存储至磁盘缓存。
[0026]其中,对着色器进行编译,是指将着色器的源码转换为可执行程序,也即着色器的编译结果,可以包括对着色器的源码编译得到的可执行程序。
[0027]本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种编译处理方法,应用于云端服务器,其特征在于,包括:在需要通过着色器对第一应用程序中的画面进行渲染时,确定需要对着色器进行编译,其中,所述第一应用程序运行在容器安卓中;查询磁盘缓存中是否存储有所述着色器的编译结果,其中,若所述磁盘缓存中存储有所述着色器的编译结果,从所述磁盘缓存中加载所述编译结果;若所述磁盘缓存中未存储有所述着色器的编译结果,对所述着色器进行编译,将编译得到的编译结果存储至所述磁盘缓存。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:获取所述第一应用程序的标识;根据所述标识设置环境变量的值,以设置所述第一应用程序的目录的子目录作为缓存目录,其中,所述值为所述第一应用程序的目录。3.根据权利要求2所述的方法,其特征在于,所述方法还包括:计算所述着色器的源码的MD5值;以所述MD5值作为第一文件的文件名,设置所述缓存目录的子目录作为第一文件的目录;其中,所述将编译得到的编译结果存储至所述磁盘缓存,包括:将所述编译结果存储至所述第一文件。4.根据权利要求3所述的方法,其特征在于,所述查询磁盘缓存中是否存储有所述着色器的编译结果,包括:查询所述缓存目录中是否存在所述第一文件,其中,若存在所述第一文件,确定所述磁盘缓存中存储有所述着色器的编译结果,若不存在所述第一文件,确定所述磁盘缓存中未存储有所述着色器的编译结果。5.根据权利要求1至4中任一项所述的方法,其特征在于,所述方法还包括:禁止应用程序接口:eglSetBlobCacheFuncsANDROID。6.一种编译处理装置,应用于云端服务器,其特征在于,包括:处理模块,被配置...

【专利技术属性】
技术研发人员:董龙江
申请(专利权)人:海马云天津信息技术有限公司
类型:发明
国别省市:

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

1