一种资源调度方法及电子设备与流程
未命名
07-23
阅读:104
评论:0
1.本技术涉及终端技术领域,尤其涉及一种资源调度方法及电子设备。
背景技术:
2.随着电子设备的发展,电子设备上能够安装的游戏应用的类型、数量越来越多。然而,游戏应用对电子设备的性能要求较高,当电子设备的性能无法满足要求时,游戏应用可能会出现掉帧卡顿等情况,影响用户使用体验。
3.因此,亟需一种对电子设备的资源(如处理器)进行优化的方法,以提高电子设备的性能,从而保证游戏应用的流畅度。
技术实现要素:
4.本技术实施例提供一种资源调度方法及电子设备,用于提高电子设备的性能。
5.第一方面,提供了一种资源调度方法,在电子设备的第一游戏应用启动后,可以判断电子设备最新渲染的第t帧图像与第t-1帧图像之间的渲染间隔时间是否大于第一预设间隔时间,该第t-1帧图像表示第t帧图像的上一帧图像。
6.在大于第一预设间隔时间的情况下,电子设备可以基于第t帧图像对应的图像渲染信息,确定电子设备渲染该第t帧图像所需占用的资源多少,以得到第t帧图像对应的第一负载值,也就是说,该第一负载值表示该第一游戏应用最新的运行需求。
7.之后,电子设备可以基于该第t帧图像对应的第一负载值,进行资源调度操作,以调节电子设备的性能。其中,该资源调度操作可以包括提高电子设备中的处理器的频率。
8.本技术中,在电子设备渲染完成一帧游戏帧(如第t帧图像)后,电子设备可以判断第t帧图像与第t-1图像之间的渲染间隔时间是否大于第一预设间隔时间,以判断是否渲染超时,即判断是否可能出现掉帧卡顿问题。在该渲染间隔时间大于第一预设间隔时间的情况下,表明出现渲染超时,即表明电子设备的性能可能无法满足第一游戏应用的运行需求,也即表明电子设备可能出现掉帧卡顿问题,电子设备可以基于第t帧图像对应的图像渲染信息,该图像渲染信息表示渲染第t帧图像所使用的资源,确定该第t帧图像对应的第一负载值,也即确定第一游戏应用最新的运行需求,以供电子设备利用第一游戏应用最新的运行需求,提高处理器的频率,使得电子设备的性能能够满足第一游戏应用的运行需求,保证第一游戏应用的流畅性。并且本技术是每渲染完成一帧图像后,便判断电子设备是否可能出现掉帧卡顿问题,从而在可能出现掉帧卡顿问题时,及时进行提频,实现性能的及时调整。以及本技术是基于第一游戏应用的运行需求进行提频,保证性能调整的准确性,避免造成性能调整过高导致电子设备功耗较大,过低导致无法满足第一游戏应用运行需求。
9.其中,上述第t帧图像对应的图像渲染信息可以包括顶点着色器的数量、片段着色器的数量和绘制指令的数量中的至少一种。
10.在第一方面的一种可能的实现方式中,在上述渲染间隔时间小于或等于第一预设间隔时间的情况下,表明未出现渲染超时,电子设备出现掉帧卡顿问题的可能性较小,因
此,电子设备无需进行资源调度操作,也就无需进行性能的调整,避免由于不必要的性能调整造成资源的浪费。
11.在第一方面的一种可能的实现方式中,为了避免性能频繁调整造成资源的浪费,电子设备可以在上述渲染间隔时间大于第一预设间隔时间,且该渲染间隔时间与第一预设间隔时间之间的差值大于第一预设时间差的情况下,表明渲染超时程度较严重,即表明电子设备出现掉帧卡顿的可能性较高,因此,电子设备可以提高处理器的频率,以提高电子设备的性能。而在上述渲染间隔时间大于第一预设间隔时间,但该渲染间隔时间与第一预设间隔时间之间的差值小于第一预设时间差的情况下,表明虽然出现渲染超时,但超时程度较轻,电子设备当前性能可能仍是能够满足第一游戏应用的运行需求的,电子设备无需提高处理器的频率,从而避免性能的频繁调整,进而避免由于高性能导致电子设备功耗高。
12.在第一方面的一种可能的实现方式中,上述进行资源调度操作还可以包括降低处理器的频率。相应的,上述电子设备基于第t帧图像对应的第一负载值,进行资源调度操作的过程可以包括:电子设备可以将上述第t帧图像对应的第一负载值所属的预设负载范围所对应的负载等级作为第t帧图像对应的第一负载等级。
13.电子设备判断第一负载等级是否高于第二负载等级,以判断第一游戏应用的运行需求是否变高。该第二负载等级表示在该第t帧图像之前渲染的一帧游戏帧所对应的负载等级,如第t-1帧图像对应的负载等级。
14.在高于第二负载等级的情况下,表明第一游戏应用的运行需求变高,电子设备当前性能无法满足第一游戏应用的运行需求,电子设备可以提高处理器的频率,以提高电子设备的性能,保证第一游戏应用运行的流畅性。
15.在低于第二负载等级的情况下,表明第一游戏应用的运行需求变低,电子设备当前性能能够满足第一游戏应用的运行需求,电子设备可以降低处理器的频率,以减少功耗。
16.在第一方面的一种可能的实现方式中,在低于第二负载等级的情况下,表明第一游戏应用的运行需求变低,电子设备也可以不进行资源调度操作,以避免由于进行资源调度操作造成的资源的损耗。
17.在等于第二负载等级的情况下,表明第一游戏应用的运行需求未发生变化,电子设备可以不进行资源调度操作,以避免由于进行资源调度操作造成的资源的损耗。
18.在第一方面的一种可能的实现方式中,电子设备在渲染完成游戏帧后,会将其保存帧缓存中,当需要进行显示时,电子设备可以从帧缓存中读取。一般来说,电子设备渲染完成的游戏帧并不是立即显示的,而是延迟显示的。因此,在电子设备出现渲染超时时,电子设备可能未出现显示超时,也即可能未出现卡顿问题。为了避免性能的频繁调整,在出现渲染超时时,电子设备可以继续判断是否出现显示超时,即判断第k帧图像与第k-1帧图像之间的显示间隔时间是否大于第二预设间隔时间。该第k帧图像表示电子设备当前显示的游戏帧,第k-1帧图像表示第k帧图像的上一帧图像。
19.在大于第二预设间隔时间的情况下,表明电子设备出现了显示超时,也即出现卡顿问题,电子设备可以基于第一负载值,提高处理器的频率,以提高电子设备的性能,解决卡顿问题,保证第一游戏应用运行流畅性,从而提高用户使用体验。
20.在小于或等于第二预设间隔时间的情况下,表明电子设备虽然出现了渲染超时,
但并未出现显示超时,电子设备还未出现卡顿问题,从而可以无需提高处理器的频率,避免由于性能的提高造成的功耗的损耗。
21.在第一方面的一种可能的实现方式中,为了避免性能频繁调整造成资源的浪费,电子设备可以在上述显示间隔时间大于第二预设间隔时间,且该显示间隔时间与第二预设间隔时间之间的差值大于第二预设时间差的情况下,表明显示超时程度较严重,电子设备的卡顿问题严重,因此,电子设备可以提高处理器的频率,以提高电子设备的性能。而在上述显示间隔时间大于第二预设间隔时间,但该显示间隔时间与第二预设间隔时间之间的差值小于第二预设时间差的情况下,表明虽然出现显示超时,但超时程度较轻,可以认为电子设备性能仍是满足第一游戏应用的运行需求的,电子设备无需提高处理器的频率,从而避免性能的频繁调整,进而避免由于高性能导致电子设备功耗高。
22.在第一方面的一种可能的实现方式中,上述电子设备提高处理器的频率的过程可以包括:首先,电子设备获取上述第t帧图像对应的第一负载等级所对应的目标档位。之后,电子设备可以基于目标档位对应的频率(或称为第一频率),调节处理器的频率。一种情况下,电子设备可以直接将该目标档位对应的频率作为目标频率,以将处理器的频率调节至该目标频率。另一种情况下,电子设备可以基于该第一频率、电子设备的运行信息综合确定目标频率,以将处理器的频率调节至该目标频率。该另一种情况下,电子设备将第一频率作为一个参考因素,结合电子设备整体的情况,进行资源调度,实现资源的准确调度。
23.其中,上述运行信息可以包括电子设备当前的温度和/电子设备运行的其它应用情况。例如,第一频率为2.3ghz,但由于当前温度较高,电子设备可以将2ghz作为目标频率,以避免由于高频率导致电子设备的温度过高。
24.在第一方面的一种可能的实现方式中,上述第t帧图像对应的第一负载值是所述第t帧图像对应的图像渲染信息中的所有数量之和。例如,第一负载值可以是顶点着色器的数量、片段着色器的数量和绘制指令的数量之和。
25.第二方面,本技术提供一种电子设备,所述电子设备包括存储器和一个或多个处理器;所述存储器和所述处理器耦合;所述存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令;当所述处理器执行所述计算机指令时,使得所述电子设备执行如上所述的方法。
26.第三方面,本技术提供一种计算机可读存储介质,包括计算机指令,当所述计算机指令在电子设备上运行时,使得所述电子设备执行如上所述的方法。
27.第四方面,本技术提供一种计算机程序产品,当所述计算机程序产品在电子设备上运行时,使得所述电子设备执行如上所述的方法。
28.可以理解地,上述提供的第二方面所述的电子设备,第三方面所述的计算机可读存储介质,第四方面所述的计算机程序产品所能达到的有益效果,可参考第一方面及其任一种可能的设计方式中的有益效果,此处不再赘述。
附图说明
29.图1为本技术实施例提供的一种电子设备的硬件结构示意图;图2为本技术实施例提供的一种电子设备的结构框图;
图3为本技术实施例提供的一种游戏应用启动的界面示意图;图4为本技术实施例提供的一种游戏应用运行的界面示意图一;图5为本技术实施例提供的一种游戏应用运行的界面示意图二;图6为本技术实施例提供的一种游戏应用运行的界面示意图三;图7为本技术实施例提供的一种游戏应用运行的界面示意图四;图8为本技术实施例提供的一种游戏应用运行的界面示意图五;图9为本技术实施例提供的一种资源调度方法的流程示意图一;图10为本技术实施例提供的一种游戏应用运行的界面示意图六;图11为本技术实施例提供的一种游戏应用运行的界面示意图七;图12为本技术实施例提供的一种游戏应用运行的界面示意图八;图13为本技术实施例提供的一种资源调度方法的流程示意图二;图14为本技术实施例提供的一种资源调度过程的示意图;图15为本技术实施例提供的一种信息采集过程的示意图。
具体实施方式
30.以下,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
31.下面先对本技术涉及的名词进行介绍。
32.顶点:三维(3-dimension,3d)对象是由顶点形成的,例如,三角形有三个顶点。一个顶点是x、y、z坐标形成的3d空间中的一点。
33.顶点着色器:通常用于实现顶点的坐标变换、顶点空间变换,逐顶点光照计算,为片元着色器阶段提供数据来源。
34.图元:是由顶点组成的,图元的类型可以包括点,线段,或多边形。
35.片段:又称片元,是由图元得到的,片元被转换为图像帧中的像素数据。
36.绘制(drawcall)指令:指向一个需要被渲染的图元列表,其是从中央处理器(central processing unit,cpu)发起的,由图形处理器(graphics processing unit,gpu)接收。
37.上面介绍了本技术所涉及的名词,下面将开始介绍本技术的技术方案。
38.示例性的,图1示出了电子设备200的结构示意图。如图1所示,电子设备200可以包括处理器210,外部存储器接口220,内部存储器221,通用串行总线(universal serial bus,usb)接口230,充电管理模块211,电源管理模块212,电池213,天线1,天线2,移动通信模块240,无线通信模块250,音频模块270,扬声器270a,受话器270b,麦克风270c,耳机接口270d,传感器模块280,按键290,马达291,指示器292,摄像头293,显示屏294,以及用户标识模块(subscriber identification module,sim)卡接口295等。
39.可以理解的是,本发明实施例示意的结构并不构成对电子设备200的具体限定。在本技术另一些实施例中,电子设备200可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件
的组合实现。
40.处理器210可以包括一个或多个处理单元,例如:处理器210可以包括应用处理器(application processor,ap),调制解调处理器,gpu,图像信号处理器(image signal processor,isp),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,dsp),基带处理器,和/或神经网络处理器(neural-network processing unit,npu)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
41.其中,控制器可以是电子设备200的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
42.处理器210中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器210中的存储器为高速缓冲存储器。该存储器可以保存处理器210刚用过或循环使用的指令或数据。如果处理器210需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器210的等待时间,因而提高了系统的效率。
43.在一些实施例中,处理器210可以包括cpu。
44.在一些实施例中,处理器210可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,i2c)接口,集成电路内置音频(inter-integrated circuit sound,i2s)接口,脉冲编码调制(pulse code modulation,pcm)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,uart)接口,移动产业处理器接口(mobile industry processor interface,mipi),通用输入输出(general-purpose input/output,gpio)接口,用户标识模块(subscriber identity module,sim)接口,和/或通用串行总线(universal serial bus,usb)接口等。
45.可以理解的是,本发明实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备200的结构限定。在本技术另一些实施例中,电子设备200也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
46.充电管理模块211用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。在一些有线充电的实施例中,充电管理模块211可以通过usb接口230接收有线充电器的充电输入。在一些无线充电的实施例中,充电管理模块211可以通过电子设备200的无线充电线圈接收无线充电输入。充电管理模块211为电池213充电的同时,还可以通过电源管理模块212为电子设备供电。
47.电子设备200的无线通信功能可以通过天线1,天线2,移动通信模块240,无线通信模块250,调制解调处理器以及基带处理器等实现。
48.天线1和天线2用于发射和接收电磁波信号。电子设备200中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
49.移动通信模块240可以提供应用在电子设备200上的包括2g/3g/4g/5g等无线通信的解决方案。移动通信模块240可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,lna)等。移动通信模块240可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块240还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块240的至少部分功能模块可以被设置于处理器210中。在一些实施例中,移动通
信模块240的至少部分功能模块可以与处理器210的至少部分模块被设置在同一个器件中。
50.调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。应用处理器通过音频设备(不限于扬声器270a,受话器270b等)输出声音信号,或通过显示屏294显示图像或视频。在一些实施例中,调制解调处理器可以是独立的器件。在另一些实施例中,调制解调处理器可以独立于处理器210,与移动通信模块240或其他功能模块设置在同一个器件中。
51.无线通信模块250可以提供应用在电子设备200上的包括无线局域网(wireless local area networks,wlan)(如无线保真(wireless fidelity,wi-fi)网络),蓝牙(bluetooth,bt),全球导航卫星系统(global navigation satellite system,gnss),调频(frequency modulation,fm),近距离无线通信技术(near field communication,nfc),红外技术(infrared,ir)等无线通信的解决方案。无线通信模块250可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块250经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器210。无线通信模块250还可以从处理器210接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
52.电子设备200通过gpu,显示屏294,以及应用处理器等实现显示功能。gpu为图像处理的微处理器,连接显示屏294和应用处理器。gpu用于执行数学和几何计算,用于图形渲染。处理器210可包括一个或多个gpu,其执行程序指令以生成或改变显示信息。
53.显示屏294用于显示图像,视频等。显示屏294包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,lcd),有机发光二极管(organic light-emitting diode,oled),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrix organic light emitting diode的,amoled),柔性发光二极管(flex light-emitting diode,fled),miniled,microled,micro-oled,量子点发光二极管(quantum dot light emitting diodes,qled)等。在一些实施例中,电子设备200可以包括1个或n个显示屏294,n为大于1的正整数。
54.电子设备200可以通过isp,摄像头293,视频编解码器,gpu,显示屏294以及应用处理器等实现拍摄功能。
55.isp 用于处理摄像头293反馈的数据。例如,拍照时,打开快门,光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将所述电信号传递给isp处理,转化为肉眼可见的图像。isp还可以对图像的噪点,亮度,肤色进行算法优化。isp还可以对拍摄场景的曝光,色温等参数优化。在一些实施例中,isp可以设置在摄像头293中。
56.摄像头293用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,ccd)或互补金属氧化物半导体(complementary metal-oxide-semiconductor,cmos)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给isp转换成数字图像信号。isp将数字图像信号输出到dsp加工处理。dsp将数字图像信号转换成标准的rgb,yuv等格式的图像信号。在一些实施例中,电子设备200可以包括1个或n个摄像头293,n为大于1的正整数。
57.数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其
他数字信号。例如,当电子设备200在频点选择时,数字信号处理器用于对频点能量进行傅里叶变换等。
58.视频编解码器用于对数字视频压缩或解压缩。电子设备200可以支持一种或多种视频编解码器。这样,电子设备200可以播放或录制多种编码格式的视频,例如:动态图像专家组(moving picture experts group,mpeg)1,mpeg2,mpeg3,mpeg4等。
59.npu为神经网络(neural-network ,nn)计算处理器,通过借鉴生物神经网络结构,例如借鉴人脑神经元之间传递模式,对输入信息快速处理,还可以不断的自学习。通过npu可以实现电子设备200的智能认知等应用,例如:图像识别,人脸识别,语音识别,文本理解等。
60.外部存储器接口220可以用于连接外部存储卡,例如micro sd卡,实现扩展电子设备200的存储能力。
61.内部存储器221可以用于存储计算机可执行程序代码,可执行程序代码包括指令。处理器210通过运行存储在内部存储器221的指令,从而执行电子设备200的各种功能应用以及数据处理。内部存储器221可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储电子设备200使用过程中所创建的数据(比如声音,电话本等)等。此外,内部存储器221可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,ufs)等。
62.电子设备200可以通过音频模块270,扬声器270a,受话器270b,麦克风270c,耳机接口270d,以及应用处理器等实现音频功能。例如音乐播放,录音等。
63.音频模块270用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。
64.扬声器270a,也称“喇叭”,用于将音频电信号转换为声音信号。
65.受话器270b,也称“听筒”,用于将音频电信号转换成声音信号。
66.麦克风270c,也称“话筒”,“传声器”,用于将声音信号转换为电信号。
67.耳机接口270d用于连接有线耳机。
68.按键290包括开机键,音量键等。按键290可以是机械按键。也可以是触摸式按键。
69.指示器292可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。
70.传感器模块280可以包括压力传感器,陀螺仪传感器,气压传感器,磁传感器,加速度传感器,距离传感器,接近光传感器,指纹传感器,温度传感器,触摸传感器,环境光传感器,骨传导传感器等。
71.图2是本技术实施例提供的电子设备的结构框图。电子设备200的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将系统分为四层,从上至下分别为应用程序层,应用程序框架层,运行时(runtime)和系统库,以及内核(kernel)层。
72.应用程序层可以包括一系列应用程序包。
73.如图2所示,应用程序包可以包括相机,图库,游戏,通话,地图,导航,wlan,蓝牙,
音乐,视频,短信息等应用程序。
74.应用程序框架层为应用程序层的应用程序提供应用编程接口(application programming interface,api)和编程框架。应用程序框架层包括一些预先定义的函数。
75.如图2所示,应用程序框架层可以包括游戏服务、窗口管理器,内容提供器,视图系统,电话管理器,资源管理器,通知管理器等。
76.游戏服务用于基于游戏应用中的游戏帧的渲染情况,确定满足游戏应用流畅运行需求所需的处理器的频率。
77.窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。
78.内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。
79.视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
80.电话管理器用于提供电子设备200的通信功能。例如通话状态的管理(包括接通,挂断等)。
81.资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。
82.通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,电子设备振动,指示灯闪烁等。
83.runtime包括核心库和虚拟机。runtime负责安卓系统的调度和管理。
84.核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。
85.应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
86.系统库可以包括多个功能模块。例如,综合调频模块,表面管理器(surface manager),媒体库(media libraries),三维图形处理库(例如:opengl es),二维图形引擎(例如:sgl)等。
87.综合调频模块用于基于满足游戏应用流畅运行需求所需的处理器的频率以及电子设备200上运行的其它应用的情况,确定处理器所需达到的频率。
88.表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了二维和3d图层的融合。
89.媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如: mpeg4,h.264,mp3,aac,amr,jpg,png等。
90.三维图形处理库用于实现三维图形绘图,图像渲染,合成,和图层处理等。
91.在一些实施例中,运行时和系统库层又可以称为原生(native)层。native层属于本地框架。
92.二维图形引擎是二维绘图的绘图引擎。
93.内核层是硬件和软件之间的层。内核层至少包含调频接口,显示驱动,摄像头驱动,音频驱动,传感器驱动。
94.调频接口用于实现对电子设备200上的处理器的频率调节,实现软件层与硬件层之间的通信。示例性的,综合调频模块可以通过调用调频接口,将处理器的频率调节至目标频率。
95.电子设备由于体积受限,散热,功耗以及性能一直是一个需要平衡的过程,如当电子设备性能长时间处于较高状态,手机的功耗会较大,并且手机需要进行散热,以避免出现发热问题。很多用户在电子设备了安装了游戏应用。游戏应用在电子设备上运行期间,由于电子设备的性能可能无法满足游戏应用的运行需求,游戏应用可能会出现掉帧问题,也就是出现卡顿问题。例如,如图3所示,用户点击第一游戏应用的图标10。电子设备响应于该第一游戏应用的图标10的点击操作,启动该第一游戏应用。在启动第一游戏应用的过程中,手机可以先显示如图4所示的启动动画20,然后,电子设备可以显示如图5所示的加载界面21。该启动动画以及加载界面均不存在任何可供用户操作的控件。在启动内容加载完成后,电子设备可以显示如图6所示的登录界面30,该登录界面30可以用于输入用户账号、密码等信息。当登录成功后,手机可以显示如图7所示的游戏大厅界面40,该游戏大厅界面40可以包括用户的头像41、名称42和等级43等用户信息,还可以包括联网模式、单机模式等游戏模式,用户可以通过点击任一游戏模式从而选择该游戏模式。之后,电子设备可以渲染显示该游戏模式对应的界面,以使用户体验游戏。例如,用户点击联网模式,电子设备响应于联网模式的点击操作,显示如图8所示的联网模式对应的界面,也就是图像。该界面上包括该用户对应的虚拟人物(即小明)、其他使用第一游戏应用的玩家所对应的虚拟人物(如小红)、虚拟人物所处的游戏场景等。
96.第一游戏应用在运行期间,如电子设备进入某一游戏模式后,电子设备的界面渲染任务较重,对电子设备的性能要求较高,电子设备的性能如果不能满足游戏应用的需求,可能出现掉帧、游戏画面卡顿停滞,影响游戏应用的流畅性,导致用户体验较低。
97.在一些实施例中,为了保证游戏流畅度,电子设备可以基于当前系统负载情况对电子设备的资源进行调度,如当前系统负载较大,电子设备可以提高电子设备中的处理器(如cpu)的频率,以保证电子设备的性能。但基于系统负载的调度策略可能无法实现电子设备资源的及时调度,如不能及时在游戏应用出现卡顿时,提高处理器的频率以提高电子设备的性能,无法有效保证游戏的流畅性。
98.因此,针对上述的问题,本技术提出一种资源调度方法,在电子设备中的第一游戏应用启动后,在渲染完成一帧图像(如第t帧图像)后,电子设备可以判断第t帧图像与第t-1帧图像之间的渲染间隔时间是否大于第一预设间隔时间。其中,t为正整数。
99.在第t帧图像与第t-1帧图像之间的渲染间隔时间大于第一预设间隔时间的情况下,表明电子设备出现渲染超时,电子设备出现卡顿的可能性较高,因此,需要提高电子设备的性能,电子设备可以基于第t帧图像对应的图像渲染信息,确定第t帧图像对应的第一负载值,也就是确定第一游戏应用所对应的负载大小,以供利用第一游戏应用对应的负载
大小对电子设备的资源进行调度,如提高电子设备中的处理器的频率,从而实现电子设备的性能的准确提高。并且,在第t帧图像与第t-1帧图像之间的渲染间隔时间大于第一预设间隔时间的情况下,表明电子设备渲染第t帧图像的时间超过预期,在渲染完成第t-1帧图像后经过较长时间才完成第t帧图像的渲染,也就表明手机此时的性能无法满足第一游戏应用的运行需求,导致出现渲染超时,因此,电子设备此时可能出现了掉帧卡顿问题,需要提高电子设备的性能,实现提频时间的准确判断,从而实现电子设备性能的及时调整,使得电子设备的性能能够满足第一游戏应用的运行需求,进而保证第一游戏应用的流畅性,提高用户的使用体验。
100.在第t帧图像与第t-1帧图像之间的渲染间隔时间小于或等于第一预设间隔时间的情况下,表明电子设备未出现渲染超时,也即表明电子设备出现显示卡顿的可能性较低,换言之,电子设备的性能能够满足第一游戏应用的运行需求,电子设备无需提高电子设备的性能,从而避免进行不必要的性能的提高,进而能够保证电子设备的功耗。
101.示例性的,本技术实施例中的电子设备可以是手机、平板电脑、可穿戴设备、个人数字助理(personal digital assistant,pda)、车载终端、物联网设备等能够安装应用的设备,本技术实施例对该电子设备的具体形态不作特殊限制。
102.下面将以上述电子设备是手机为例,对本技术提供的资源调度方法进行介绍。如图9所示,该资源调度方法可以包括s301-s309。
103.s301、手机响应于第一操作,启动第一游戏应用。
104.其中,第一操作用于触发手机启动第一游戏应用,该第一游戏应用为手机上的一个游戏应用。如当用户想要启动第一游戏应用时,可以点击第一游戏应用的图标,这里用户点击第一游戏应用的图标的操作便为该第一操作。
105.s302、在上述第一游戏应用启动后,在渲染该第一游戏应用的第t帧图像的情况下,手机统计该第一游戏应用中的第t帧图像对应的图像渲染信息。其中,该图像渲染信息包括顶点着色器的数量、片段着色器的数量和绘制指令的数量中的至少一种。
106.示例性的,第一游戏应用启动后,也就是在手机运行第一游戏应用过程中,需要渲染游戏画面,也就是图像(或称为游戏帧)。手机可以统计渲染该第一游戏应用的第t帧图像所需使用的顶点着色器的数量、片段着色器的数量和绘制指令的数量中的至少一种,以得到该第t帧图像对应的图像渲染信息。其中,t为正整数,第t帧图像表示手机最新渲染的一帧游戏帧。
107.其中,第t帧图像对应的顶点着色器的数量、片段着色器的数量、绘制指令的数量表示渲染第t帧图像所利用的顶点着色器的数量、片段着色器的数量、绘制指令的数量。第t帧图像对应的顶点着色器的数量、片段着色器的数量和绘制指令的数量越多,表明该第t帧图像需要渲染的内容越多,渲染任务越重,该图像对应的渲染负载越大,也就是在渲染该图像时对手机的性能要求越高。
108.应理解,手机上的顶点着色器、片段着色器数量均是固定的,手机渲染游戏帧(即游戏应用的图像)时,可以根据需求选取一定数量的顶点着色器、片段着色器。例如,手机上存在100个顶点着色器,100个片段着色器。手机渲染上述第t帧图像时利用了1个顶点着色器以及1个片段着色器,相应的,第t帧图像对应的顶点着色器的数量为1,片段着色器的数量为1。
109.需要说明的是,游戏应用的图像的渲染过程表示将游戏应用中的三维模型(如3d物体对应的面片模型)、纹理渲染到二维的屏幕上,以像素的形式展现。图像的渲染过程可以包括应用阶段、几何阶段和光栅化阶段。
110.其中,上述应用阶段:获取需要渲染的纹理、材质、光线、颜色需要绘制的数据,并设置相应的渲染状态,以及cpu向gpu发送绘制指令,以通知gpu执行渲染。
111.上述几何阶段:获取应用阶段提交的数据,进行顶点变换计算,将模型顶点(如三角形图元的顶点)从模型空间变换到屏幕空间中,几何阶段的主要任务包括变换三维顶点坐标以及执行朱行顶点的光照计算,其可以通过顶点着色器实现。
112.上述光栅化阶段:对经过几何阶段变换后的三角形片段进行设置、逐片元操作,如颜色修改,得到相应的渲染结果,也就是能够显示的图像,将该图像保存至帧缓存中。该帧缓存中的图像用于显示在显示屏上。其中,逐片元操作可以通过顶点着色器实现。
113.简单来说,上述游戏应用的图像的渲染过程,也就是游戏帧的渲染过程可以大体分为三部分,首先,手机可以确定游戏帧上的3d物体对应的面片模型。之后,手机可以确定3d物体对应的面片模型所采用的纹理,材质,光线,颜色等视觉元素数据。之后,手机可以基于面片模型所采用的纹理,材质,光线,颜色等视觉元素数据,调用相关api(如graphics api),实现面片模型的绘制,从而实现游戏帧的渲染。基于此发现,游戏帧对应的渲染复杂程度,即游戏帧对应的渲染负载大小,也就是对手机性能要求的高低与游戏帧的顶点(vertex)、纹理(texture)、drawcall和着色器等要素具有强相关性。因此,可以利用这些要素确定游戏帧对应的渲染负载大小。
114.s303、手机计算第t帧图像的渲染时刻与第t-1帧图像的渲染时刻之间的差值,得到渲染间隔时间。
115.s304、手机判断渲染间隔时间与第一预设间隔时间之间的差值是否大于第一预设时间差。
116.本技术实施例中,一种情况下,第t帧图像的渲染时刻表示第t帧图像渲染完成的时刻。第t-1帧图像的渲染时刻表示第t-1帧图像渲染完成的时刻。另一种情况下,第t帧图像的渲染时刻表示第t帧图像开始渲染的时刻。第t-1帧图像的渲染时刻表示第t-1帧图像开始渲染的时刻。其中,第t-1帧图像为第t帧图像的上一帧图像。当然,本技术可以根据需求,一帧图像的渲染时刻是开始渲染的时刻,还是渲染结束的时刻。
117.首先,手机可以将第t帧图像的渲染时刻减去第t-1帧图像的渲染时刻,得到第t帧图像与第t-1帧图像之间的渲染间隔时间,即第t帧图像对应的渲染间隔时间。第t帧图像对应的渲染间隔时间表示第t帧图像对应的手机的实际帧率,也就是手机在渲染完成第t帧图像时的实际帧率。其中,第t帧图像对应的渲染间隔时间越大,表明手机渲染第t帧图像的时间越长,也就是说如果手机当前显示的是第t-1帧图像,手机可能经过较长时间后,才能显示第t帧图像,出现渲染超时。换句话说,渲染间隔时间越大,手机出现显示掉帧卡顿问题的可能性越大。
118.之后,手机可以判断上述第t帧图像对应的渲染间隔时间与第一预设间隔时间是否相差较大,即判断该渲染间隔时间与第一预设间隔时间之间的差值是否大于第一预设时间差。在该差值小于或等于第一预设时间差的情况下,表明该渲染间隔时间与第一预设间隔时间相差较小,即表明手机未出现渲染超时,或者虽然出现渲染超时,但超时时间较短,
换言之,即使由于渲染超时导致手机出现游戏画面卡顿问题,游戏画面卡顿程度也较轻,为了避免手机性能频繁调整导致功耗的增加,手机可以无需进行资源的调整,手机可以执行s305。
119.在该渲染间隔时间与第一预设间隔时间之间的差值大于第一预设时间差的情况下,表明该渲染间隔时间与第一预设间隔时间相差较大,即表明手机在渲染完成第t-1帧图像后经过较长时间才完成第t帧图像的渲染,也即表明手机出现了渲染超时,且超时时间较长,手机出现显示卡顿问题的概率较高,换句话说,手机的当前性能可能无法满足游戏帧渲染需求,手机需要提高自身性能,手机可以执行s306,从而实现手机性能时机的准确判断,进而实现手机性能的及时调整。
120.其中,上述第一预设间隔时间表示预期的渲染间隔时间,其可以是预先设置的图像之间的渲染间隔时间,也可以是手机对应的标准帧率,即在理想状态下,手机的帧率所对应的间隔时间。例如,手机的帧率为30fps(frames per second),手机的帧率所对应的间隔时间可以为1/33秒。
121.另外,上述第一预设时间差可以根据实际需求进行设置,本技术不对其限制。
122.应理解,一般来说,第一预设时间差是非负数。假设该第一预设时间差为正数,上述第t帧图像对应的渲染间隔时间与第一预设间隔时间之间的差值小于或等于第一预设时间差包括两种情况。一种情况是,上述第t帧图像对应的渲染间隔时间与第一预设间隔时间之间的差值小于或等于0的情况下,表明该渲染间隔时间小于或等于第一预设间隔时间,第t帧图像的渲染时间小于或等于理想的渲染时间,手机未出现渲染超时。另一种情况是,上述第t帧图像对应的渲染间隔时间与第一预设间隔时间之间的差值大于0,但小于第一预设时间差的情况下,表明该渲染间隔时间略大于第一预设间隔时间,第t帧图像的渲染时间略大于理想的渲染时间,手机出现了渲染超时,但超时程度较轻。
123.举例来说,假设第一预设间隔时间为20ms,第一预设时间差为第一预设间隔时间的10%,即2ms。第t帧图像对应的渲染间隔时间为23ms。该渲染间隔时间与第一预设间隔时间之间的差值为3ms,由于3ms大于2ms,因此,手机可以执行s306。
124.在一些实施例中,为了保证手机的性能能够及时满足第一游戏应用的运行需求,以保证第一游戏应用的流畅度,手机可以直接判断第t帧图像对应的渲染间隔时间是否大于第一预设间隔时间。在该渲染间隔时间小于或等于第一预设间隔时间的情况下,表明该渲染间隔时间未超过预期的渲染间隔时间,手机未出现渲染超时,即表明手机的实际帧率符合预期,也即表明手机的性能能够满足第一游戏应用的运行需求,手机出现显示卡顿问题的概率较低,因此,手机无需调整自身的性能,手机可以执行s305。在该渲染间隔时间大于第一预设间隔时间的情况下,表明该渲染间隔时间超过预期的渲染间隔时间,手机出现了渲染超时,即表明手机的实际帧率不符合预期,也即表明手机的性能不能够满足第一游戏应用的运行需求,手机可能会出现显示卡顿问题,因此,手机可以执行s306,以提高自身性能。
125.s305、手机不进行资源调度操作。
126.在一些实施例中,在第一渲染间隔时间与第一预设间隔时间之间的差值小于或等于第一预设时间差的情况下,表明手机的性能能够满足上述第一游戏应用的渲染需求,手机可以无需提高手机的性能。当然,由于手机在运行第一游戏应用的过程中,还可能运行其
它应用,如手机显示的渲染窗所对应的应用,手机后台应用,因此,手机还可以根据其它应用的运行情况,也就是基于手机综合负载情况,进行资源的调度,以保证手机的性能能够满足其它应用的运行需求。
127.s306、手机基于第t帧图像对应的图像渲染信息,确定第t帧图像对应的第一负载等级。
128.示例性的,在第一渲染间隔时间与第一预设间隔时间之间的差值大于第一预设时间差的情况下,表明手机渲染第t帧图像所用时间较长,手机当前性能可能无需满足第一游戏应用的渲染需求,手机可以基于第t帧图像对应的图像渲染信息,得到第t帧图像对应的第一负载值,以确定第一游戏应用的最新渲染需求,也就是确定第一游戏应用所对应的当前负载情况,使得手机能够基于第一游戏应用对应的当前负载情况调整手机的资源,使得手机的资源能够满足第一游戏应用的渲染需求。应理解,第一游戏应用对应的负载情况表示第一游戏应用流畅运行所需占用的资源。
129.其中,第t帧图像对应的第一负载值表示手机渲染第t帧图像所需(或所应)占用的资源多少。第一负载值越大,手机渲染第t帧图像所需占用的资源越多,对手机性能要求越高。
130.之后,手机可以获取该第t帧图像对应的第一负载值所属的预设负载值范围(或称为第一负载值范围),并将该第一负载值范围所对应的等级作为第t帧图像对应的第一负载等级,以供利用第一负载等级确定资源调整的情况。
131.其中,每个预设负载值范围对应一个负载等级。预设负载值范围所包括的负载值越高,该预设负载值范围对应的负载等级越高,对手机性能要求越高。
132.在一些实施例中,负载等级(render-weight-level)可以包括初始化等级(level_init)、轻度渲染等级(level_low),重度渲染等级(level_high)中的一个或多个。其中,初始化等级一般对应游戏应用初始化场景。手机在游戏应用初始化期间渲染的图像,即渲染初始化界面(如上述图4所示的界面)时,由于未调用绘图函数,其可能无需使用顶点着色器,片段着色器,绘制指令等指令,因此,手机渲染该图像时的负载很小,换言之,游戏应用对手机的性能要求很低。示例性的,初始化等级对应的预设负载值范围可以是[0,3)。在确定第t帧图像对应的第一负载值属于[0,3)时,可以确定第t帧图像对应的第一负载等级为初始化等级,第一游戏应用处于初始化场景中,对手机性能要求较低。
[0133]
上述轻度渲染等级一般对应游戏应用的轻度渲染场景,轻度渲染场景(如上图6所示的登录界面、图7所示的游戏大厅界面等)的图像对应的渲染内容较少,手机在渲染游戏应用的轻度渲染场景的图像(即界面)时,需要利用的顶点着色器,片段着色器,绘制指令等指令数量较少,因此,手机渲染该图像时的负载较小,换言之,游戏应用对手机的性能要求较低。示例性的,轻度渲染等级对应的预设负载值范围可以是[3,120)。在确定第t帧图像对应的第一负载值属于[3,120)时,可以确定第t帧图像对应的第一负载等级为轻度渲染等级,第一游戏应用处于轻度渲染场景中,对手机性能要求较低。
[0134]
上述重度渲染等级一般对应游戏应用的重度渲染场景,重度渲染场景的图像对应的渲染内容较多,如打斗场景中的界面等图像。手机在游戏应用的重度渲染场景的图像时,需要利用的顶点着色器,片段着色器,绘制指令等指令的数量较多,因此,手机渲染该图像时的负载较大,换言之,游戏应用对手机的性能要求较高。示例性的,重度渲染等级对应的
预设负载值范围可以是[120,+∞)。在确定第t帧图像对应的第一负载值属于[120,+∞)时,可以确定第t帧图像对应的第一负载等级为重度渲染等级,第一游戏应用处于重度渲染场景中,对手机性能要求较低。
[0135]
在一些实施例中,一个渲染场景一般对应多张图像的渲染,多张图像中的不同图像所对应的渲染内容不同,渲染复杂程度可能不同,对手机性能要求可能不同,因此,渲染场景对应的负载等级还可以继续划分为多个子等级,每个子等级仍对应一个预设负载值范围,以实现图像对应的负载等级的精准确定,从而利用图像对应的负载等级实现资源的准确调整。其中,一个负载等级的各个子等级所对应的预设负载值范围均属于该负载等级对应的预设负载值范围。
[0136]
示例性的,上述重度渲染等级被划分为四个子等级(render-weight
ꢀ‑
sub-level)。如表1所示,该四个子等级可以包括重度子等级1(sub_level_1)、重度子等级2(sub_level_2)、重度子等级3(sub_level_3)和重度子等级4(sub_level_4),每个重度子等级对应一个预设负载值范围。子等级对应的预设负载值范围越大,也就是子等级对应的预设负载值范围中的数值越大,表明渲染越复杂,对于手机性能要求越高。例如,重度子等级1可以对应游戏场景转化的情况,如图10所示的小明玩家所处的游戏环境发生改变的图像,其对应的渲染复杂程度相较于其它子等级对应的渲染复杂程度较轻。又例如,重度子等级2可以对应打斗场景中的双人打斗情况(如上图8所示),其对应的渲染复杂程度相较于重度子等级3和4所对应的渲染复杂程度较轻。又例如,重度子等级3可以对应打斗场景中的三人打斗情况(如图11所示),其对应的渲染复杂程度相较于重度子等级4所对应的渲染复杂程度较轻。又例如,重度子等级3可以对应打斗场景中的更多人数打斗情况(如图12所示),其对应的渲染复杂程度最重。
[0137]
表1
[0138]
在一些实施例中,图像对应的负载值(如上述第t帧图像对应的第一负载值)可以是该图像对应的图像渲染信息中的所有数量之和,也就是图像对应的图像渲染信息所包括的各种信息的数量之和。
[0139]
以图像对应的图像渲染信息包括顶点着色器的数量为例,图像对应的负载值可以为该顶点着色器的数量。
[0140]
以图像对应的图像渲染信息包括片段着色器的数量为例,图像对应的负载值可以为该片段着色器的数量。
[0141]
以图像对应的图像渲染信息包括绘制指令的数量为例,图像对应的负载值可以为该绘制指令的数量。
[0142]
以图像对应的图像渲染信息包括顶点着色器的数量和片段着色器的数量为例,图像对应的负载值可以为f(material complexity,geometry complexity),f()表示求和函数,material complexity表示顶点着色器的数量,geometry complexity表示片段着色器的数量。也就是说,图像对应的负载值可以为顶点着色器的数量和片段着色器的数量之和。
[0143]
以图像对应的图像渲染信息包括片段着色器的数量和绘制指令的数量为例,图像对应的负载值可以为f(geometry complexity,drawcall complexity),drawcall complexity表示绘制指令的数量。也就是说,图像对应的负载值可以为片段着色器的数量和绘制指令的数量之和。
[0144]
以图像对应的图像渲染信息包括顶点着色器的数量和绘制指令的数量为例,图像对应的负载值可以为f(material complexity,drawcall complexity)。也就是说,图像对应的负载值可以为顶点着色器的数量和绘制指令的数量之和。
[0145]
以图像对应的图像渲染信息包括顶点着色器的数量和片段着色器的数量为例,图像对应的负载值可以为f(material complexity,geometry complexity,drawcall complexity)。也就是说,图像对应的负载值可以为顶点着色器的数量、片段着色器的数量和绘制指令的数量之和。
[0146]
当然上述基于图像对应的图像渲染信息所包括的各种信息的数量之和确定该图像对应的负载值仅为一种示例,手机还可以基于其它方式,基于图像对应的图像渲染信息所包括的各种信息确定图像对应的负载值,如可以基于加权求和方式,计算平均值等方式,本技术不对其限制。
[0147]
在一些实施例中,手机可以根据需求确定图像对应的负载值所需利用的信息的类型,也就是图像渲染信息所包括的信息的类型。例如,为了提高负载值确定的准确性,手机可以利用顶点着色器的数量、片段着色器的数量以及绘制指令的数量确定负载值。
[0148]
需要说明的是,由于对手机性能要求的高低,即手机的负载大小与游戏帧的顶点(vertex)、纹理(texture)、drawcall和shader等要素具有强相关性,因此,手机可以利用顶点着色器的数量、片段着色器的数量以及绘制指令的数量确定游戏应用对应的负载情况,即所需占用的资源情况,从而能够利用负载情况实现对手机性能的准确调整。
[0149]
s307、手机判断上述第一负载等级是否高于第二负载等级。
[0150]
其中,第二负载等级表示上述第一游戏应用中的第t帧图像之前的图像所对应的负载等级。在一些实施例,第二负载等级可以表示第t-1帧图像对应的负载等级,即表示渲染第t帧图像所需占用的资源的多少。
[0151]
第二负载等级越高,表明第t-1帧图像对应的渲染任务越重,渲染内容越复杂,所需占用的资源越多,对手机的性能要求越高。当然,第二负载等级也可以表示在渲染第t帧图像之前渲染的其它图像所对应的负载等级,只需其它图像与该第t帧图像之间间隔的图像数量小于预设图像数量即可。
[0152]
本技术实施例中,手机可以将第一负载等级与第二负载等级进行比较,以确定第一负载等级是否高于第二负载等级,也就是判断手机渲染第t帧图像时,负载是否变大,即第一游戏应用对手机性能要求是否变高。在第一负载等级低于或等于第二负载等级的情况下,表明手机的负载未变大,即表明手机渲染第t帧图像对于手机性能要求未变高,手机的性能能够满足第一游戏应用的运行需求,手机无需提高手机性能,手机可以执行s308。在第
一负载等级高于第二负载等级的情况下,表明手机的负载变大,即表明手机渲染第t帧图像对于手机性能要求变高,手机的性能可能无法满足第一游戏应用的运行需求,手机可能需要进行资源调整,则手机可以执行s309。
[0153]
s308、手机不进行资源调度操作。
[0154]
在一些实施例中,在第一负载等级等于第二负载等级的情况下,表明第t帧图像对应的渲染负载,即帧负载并未发生改变,也就是渲染第t帧图像与渲染之前的图像(如第t-1帧图像)对于手机的性能要求未发生变化,手机的性能能够满足第一游戏应用的运行需求,因此,手机此时无需进行资源调度操作,如提高手机性能。
[0155]
在第一负载等级低于第二负载等级的情况下,表明帧负载变小,也就是渲染第t帧图像与渲染之前的图像对于手机的性能要求降低,因此,为了避免由于高性能导致手机的功耗较快,手机可以进行资源调度操作,如降低处理器的频率。其中,上述处理器可以包括cpu和/或gpu。
[0156]
示例性的,手机降低处理器的频率的过程可以包括:手机获取与第一负载等级对应的目标档位,以将处理器的档位调节至该目标档位,也就是将处理器的频率调整至该目标档位对应的频率,实现处理器的频率的降低,从而减少手机功耗,并且可以避免手机发热问题,保证用户使用体验。
[0157]
s309、手机基于第一负载等级,进行资源调度操作,其中,进行调整操作包括提高手机中的处理器的频率。
[0158]
示例性的,在第一负载等级高于第二负载等级的情况下,手机可以获取第一负载等级所对应的第一频率,手机可以将处理器的频率调整至该第一频率,以提高手机的性能,从而使得手机性能能够满足第一游戏应用的运行需求,保证游戏运行的流畅性。
[0159]
在一些实施例中,手机在得到第一负载等级后,可以直接基于第一负载等级,进行资源调度操作,也就是将手机的性能调整至与该第一负载等级匹配的性能,而无需执行上述s307,也就无需在上述第一负载等级高于第二负载等级的情况下,或者在上述第一负载等级低于第二负载等级的情况下,才进行资源调度操作。示例性的,手机在得到第一负载等级后,可以确定第一负载等级所对应的第一频率,以将处理器的频率调整至该第一频率,从而使手机的性能能够保证第一游戏应用的渲染需求,保证避免掉帧情况,保证第一游戏应用的流畅性。
[0160]
需要说明的是,上述利用负载等级进行资源调度操作仅为一种示例方式,手机也可以直接利用第t帧图像对应的第一负载值,进行资源调度操作。例如,手机可以确定第一负载值所属的预设负载值范围(或称为第一负载值范围)。之后,手机可以将处理器的频率调整至该第一负载值范围所对应的第一频率。或者,手机可以先判断该第一负载值范围是否大于第二负载值范围,该第二负载值范围可以表示第t帧图像之前的图像对应的负载值(或称为第二负载值)所属的预设负载值范围。在第一负载值范围大于第二负载值范围的情况下,表明第一游戏应用对手机的性能变高,手机可以将处理器的频率调整至该第一负载值范围所对应的第一频率。又例如,手机可以确定该第一负载值所对应的第一频率,以将处理器的频率调整至该第一负载值对应的第一频率。也就是说,本技术不对基于第一负载值确定第一频率的方式进行限定。
[0161]
其中,一个数值范围大于另一个数值范围,如上述第一负载值范围大于第二负载
值范围,表示该一个数值范围中的数值均大于该另一个数值范围的任意数值。
[0162]
在一些实施例中,为了避免资源的频繁调整,手机可以在第一负载等级高于第二负载等级,且第一负载等级与第二负载等级之间间隔的等级数量大于或等于预设等级数量的情况下,提高手机中的处理器的频率。否则,手机可以不提高处理器的频率。其中,预设等级数量大于或等于1。
[0163]
例如,负载等级包括子等级,预设等级数量为2。第一负载等级为重度子等级4,第二负载等级为重度子等级1,第一负载等级高于第二负载等级,且中间间隔重度子等级2和重度子等级3,也就是间隔的等级数量为2。该等级数量等于预设等级数量,表明第一游戏应用的渲染需求变化较大,目前手机的性能无法满足第一游戏应用的渲染需求,手机可能会出现卡顿程度严重的问题,因此,手机可以提高处理器的频率,以提高手机的性能。其中,预设等级数量大于或等于1。
[0164]
又例如,负载等级包括子等级,预设等级数量为2。第一负载等级为重度子等级3,第二负载等级为轻度渲染等级,第一负载等级高于第二负载等级,且中间间隔重度子等级1和重度子等级2,也就是间隔的等级数量为2。该等级数量等于预设等级数量,表明第一游戏应用的渲染需求变化较大,目前手机的性能无法满足第一游戏应用的渲染需求,手机可能会出现卡顿程度严重的问题,因此,手机可以提高处理器的频率,以提高手机的性能。
[0165]
本技术实施例中,手机每渲染一帧第一游戏应用中的图像时,手机可以利用该图像与上一帧图像直接的渲染间隔时间确定手机渲染该图像时的负载是否变化较大,如果变化较大,表明出现渲染超时,即表明手机可能出现显示超时,也就是掉帧问题,因此,手机可以进行提频,将提频与掉帧强相关,实现提频时机的准确判断,保证提频时机的合理性及及时性。并且手机可以利用该图像对应的图像渲染信息确定该图像对应的帧负载,也就是确定第一游戏应用最新所需占用的资源情况,利用该资源情况对手机的资源进行调度,以提高手机的性能,满足第一游戏应用的运行需求,从而保证第一游戏应用运行的流畅性。
[0166]
在一些实施例中,上述第一频率表示满足第一游戏应用的运行需求所对应的处理器的频率。手机可以直接将该第一频率作为目标频率。或者在调整处理器的频率时,还可以结合手机的整体运行情况,确定处理器的频率,即手机在确定第一频率后,还可以基于该第一频率、手机的运行信息确定目标频率,以将处理器的频率调整至该目标频率,该目标频率与第一频率可以是相同数值,也可以是不同数值。其中,手机的运行信息可以包括手机上运行的除第一游戏应用以外的其它应用的信息和/或手机的运行状态参数。其它应用的信息可以包括其它应用的标识(如包名、名称)、资源(如内存)占用情况等。运行状态参数可以包括手机的温度、电量等参数。
[0167]
在一些实施例中,由于手机显示的第一游戏应用的图像是从帧缓存中获取的图像,手机每渲染完成一帧图像,便可以将该帧图像保存至该帧缓存中。之后,手机从该帧缓存中读取图像,以将读取的图像显示在手机的显示屏。手机当前显示的第一游戏应用的图像可能并不是当前渲染完成的第一游戏应用的图像,而是之前渲染完成的图像。因此,即使手机渲染图像之间的间隔时间较长,也就是即使手机出现了渲染超时,但由于帧缓存中有足够图像可供手机显示,手机也不会出现掉帧情况,手机无需提高手机性能。下面将结合图13,详细介绍手机基于显示的图像确定是否需要提高手机性能的过程。如图13所示,该过程可以包括s401-s404。
[0168]
s401、手机计算当前显示的图像与上一帧显示图像之间的显示间隔时间与第二预设间隔时间之间的差值。
[0169]
其中,上述当前显示的图像(或称为第k帧图像)与上一帧显示图像(或称为第k-1帧图像)之间的显示间隔时间可以是第k帧图像的显示时刻与第k-1帧图像的显示时刻之间的差值。一种情况下,第k-1帧图像的显示时刻可以是第k-1帧图像开始显示的时刻。第k帧图像的显示时刻可以是第k帧图像开始显示的时刻,也就是上一帧图像显示结束的时刻。另一种情况下,第k帧图像的显示时刻表示第k帧图像显示结束的时刻。第k-1帧图像的显示时刻表示第k-1帧图像显示结束的时刻。当然,本技术可以根据需求,一帧图像的显示时刻是开始显示的时刻,还是显示结束的时刻。
[0170]
相应的,第k帧图像与第k-1帧图像之间的显示间隔时间越长,表示手机持续显示第k-1帧图像的越长。
[0171]
s402、手机判断上述显示间隔时间与第二预设间隔时间之间的差值是否大于第二预设时间差。
[0172]
本技术实施例中,在第一负载等级高于第二负载等级的情况下,表明手机的渲染负载变大,手机可能出现显示卡顿的情况,因此,手机可以基于游戏帧的显示时长确定手机是否出现显示卡顿问题,即手机可以先计算第k帧图像与第k-1帧图像之间的显示间隔时间与第二预设间隔时间之间的差值。之后,手机可以判断该差值是否大于第二预设时间差。也就是判断在显示第k-1帧图像后,是否经过较长时间才显示新的图像,换言之,判断第k-1帧图像的显示时长是否过长。
[0173]
在上述显示间隔时间与第二预设间隔时间之间的差值大于第二预设时间差的情况下,表明在显示第k-1帧图像后经过较长时间才显示新的图像,也即表明第k-1帧图像的显示时长过长,手机出现了显示超时,即出现了掉帧卡顿的问题,因此,手机可以执行s403,以提高手机的性能,使得手机的性能能够满足第一游戏应用的运行需求,解决手机出现的显示卡顿问题,保证第一游戏应用的流畅性,从而提高用户体验。
[0174]
在上述显示间隔时间与第二预设间隔时间之间的差值小于或等于第二预设时间差的情况下,表明第k-1帧图像的显示时长较短,符合预期显示时长,也就是手机当前显示的实际帧率是符合预期的,虽然手机出现了渲染超时,但没有出现掉帧卡顿或者卡顿程度较轻,因此,无需提高手机的性能,可以执行s404,避免进行频繁的资源调度,并且可以避免由于高性能导致手机的功耗较高。
[0175]
其中,上述第二预设间隔时间表示预期的显示间隔时间,其可以是预先设置的图像之间的显示间隔时间,也可以是手机对应的标准帧率,即在理想状态下,手机的帧率所对应的间隔时间。第二预设间隔时间与上述第一预设间隔时间可以是相同的数值,也可以是不同的数值。
[0176]
另外,上述第二预设时间差可以根据实际需求进行设置,如第二预设时间差为第二预设间隔时间的10%,本技术不对其限制。
[0177]
应理解,一般来说,第二预设时间差是非负数。假设该第二预设时间差为正数,上述第k帧图像与第k-1帧图像之间的显示间隔时间与第二预设间隔时间之间的差值小于或等于第二预设时间差包括两种情况。一种情况是,上述该显示间隔时间与第二预设间隔时间之间的差值小于或等于0的情况下,表明该显示间隔时间小于或等于第二预设间隔时间,
手机持续显示第k-1帧图像的时长较短,手机未出现显示延迟,也即未出现掉帧卡顿问题。另一种情况是,该显示间隔时间与第二预设间隔时间之间的差值大于0,但小于第二预设时间差的情况下,表明该显示间隔时间略大于第二预设间隔时间,第t-1帧图像的显示时长略大于理想的显示时长,手机出现了显示超时,但超时程度较轻,因此,手机可以先不提高性能。
[0178]
s403、手机提高手机中的处理器的频率。
[0179]
s404、手机不提高处理器的频率。
[0180]
其中,手机提高处理器的频率的过程可以参考上面介绍的手机提高处理器的频率的过程,如基于第一负载等级对应的目标档位进行提高。
[0181]
举例来说,上述第t帧图像为第3帧图像。手机在渲染完成第3帧图像后,将其存储至帧缓存中。计算第3帧图像与第2帧图像之间的渲染间隔时间。在该渲染间隔时间与第一预设间隔时间之间的差值大于第一预设时间差的情况下,手机可以基于第3帧图像对应的图像渲染信息,确定第3帧图像对应的负载等级(即第一负载等级)。在该第一负载等级高于第2帧图像对应的负载等级(即第二负载等级)的情况下,表明第一游戏应用的渲染需求变大,手机的负载增加,手机可能出现卡顿问题,因此,手机可以继续判断是否出现显示卡顿问题。
[0182]
在一示例中,假设手机当前显示的是第2帧图像,在从帧缓存中读取到第3帧图像后,显示第3帧图像。第2帧图像变成上一帧显示图像,第3帧图像变成当前显示的图像。
[0183]
手机可以计算该第3帧图像与第2帧图像之间的显示间隔时间。之后,手机可以计算该显示间隔时间与第二预设时间间隔之间的差值。在该差值大于第二预设时间差的情况下,表明在显示第2帧图像较长时间后,手机才从帧缓存中读取到该第3帧图像,由于第3帧图像的渲染超时较大,导致显示超时较大,手机出现卡顿问题,因此,手机需要提高处理器的频率,以提高手机性能,满足第一游戏应用的运行需求,保证第一游戏应用的流畅性。
[0184]
在另一示例中,假设手机当前显示的是第1帧图像,帧缓存中已经存在第2帧图像。手机按照标准帧率,正常显示第1帧图像后,便可以继续从帧缓存中读取第2帧图像,显示第2帧图像。此时虽然第3帧图像渲染出现了超时,但不影响手机的显示,也就是说第一游戏应用的游戏帧仍可以流畅显示,没有出现卡顿问题,手机则无需提高手机性能,在满足应用运行需求的基础上,避免手机性能的频繁调整,也避免由于手机性能的提高导致功耗的增加,提高用户使用体验。
[0185]
之后,由于第3帧图像出现了渲染超时,其未能及时存储至帧缓存中,导致第2帧图像出现了显示超时,出现显示卡顿问题,手机需要提高性能。
[0186]
在一些实施例中,为了实现资源的及时调整,也就是为了实现手机性能的及时调整,手机直接判断当前显示的图像与上一帧显示图像之间的显示间隔时间是否大于第二预设间隔时间。在该显示间隔时间大于第二预设间隔时间的情况下,表明该渲染间隔时间超过预期的显示间隔时间,手机显示第k-1帧图像的时间较长,手机出现显示卡顿,手机可以执行s403。在该显示间隔时间小于或等于第二预设间隔时间的情况下,表明该显示间隔时间未超过预期的显示间隔时间,该手机在显示第k-1帧图像后经过较短时间便显示第k帧图像,第一游戏应用运行仍是流畅的,未出现掉帧卡顿问题,因此,手机可以执行s404。
[0187]
在一些实施例中,手机也可以实时或周期性直接计算第k帧图像与第k-1帧图像之
间的显示间隔时间与第二预设间隔时间之间的差值。之后,手机可以判断该显示间隔时间与第二预设间隔时间之间的差值是否大于第二预设时间差。在大于第二预设时间差的情况下,表明手机显示出现了卡顿,即手机出现了显示超时,手机可以直接提高手机性能。在小于或等于第二预设时间差的情况下,表明手机当前还未出现显示卡顿问题,手机可以不进行处理器的频率的提高。而无需先利用上述渲染间隔时间判断是否出现渲染超时。在出现渲染超时的情况下,手机才继续判断是否出现了显示超时。
[0188]
在一些实施例中,上述步骤编号并不代表写步骤的先后执行顺序,步骤之间的先后执行顺序还可以为其它顺序,如手机可以先确定第一负载等级,在第一负载等级高于第二负载等级的情况下,手机可以继续判断第t帧图像对应的第一渲染间隔时间与第一预设间隔时间之间的差值是否大于预设时间差。
[0189]
需要说明的是,上述对处理器的频率的调整仅是资源调度的一种示例,也就是说,处理器仅是资源的一种示例,手机也可以通过对手机的其它资源的调整,实现手机性能的调整。
[0190]
在一些实施例中,由于游戏应用(如上述第一游戏应用)在运行期间,一般需要利用游戏引擎,或egl库,因此,手机可以通过插桩方法,在游戏应用启动调用游戏引擎,或egl库时,将切片模型代码(简称切片模型)与游戏应用(或描述为游戏应用的进程)绑定,从而可以利用切片模型实现跨进程通信,使得其它进程能够利用游戏应用的渲染情况确定是否进行提频,实现手机性能的及时调整。下面将结合上述图2,对利用切片模型实现跨进程通信,以及判断是否进行提频的过程进行介绍。如图14所示,该过程可以包括s1-s13。
[0191]
s1、手机中的第一游戏应用进程初始化时,第一游戏应用进程与切片模型绑定,向切片模型发送第一游戏应用信息。
[0192]
其中,第一游戏应用信息可以包括第一游戏应用进程对应的包名,也就是第一游戏应用的包名。
[0193]
本技术实施例中,响应于第一操作,手机启动第一游戏应用,也就是开始创建第一游戏应用对应的第一游戏应用进程。之后,第一游戏应用进程初始化时,会调用游戏引擎,而切片模型已经嵌套在游戏引擎中,因此,第一游戏应用进程会与切片模型绑定。
[0194]
应理解,上述游戏引擎可以替换描述为egl库。通常来讲,游戏应用一般均会调用egl库。
[0195]
s2、切片模型基于跨进程通信方式,向手机中的游戏服务发送第一游戏应用信息。
[0196]
本技术实施例中,由于第一游戏应用进程和游戏服务属于不同进程,两者之间无法直接通信,因此,第一游戏应用进程可以利用切片模型,结合跨进程通信方式,与手机中的游戏服务进行通信,实现跨进程通信。
[0197]
其中,上述跨进程通信方式可以包括activity、content provider、broadcast和service等方式。
[0198]
s3、游戏服务中的应用类型识别模块基于第一游戏应用信息判断手机是否处于游戏场景,在处于游戏场景的情况下,向切片模型发送游戏服务的句柄。
[0199]
本技术实施例中,由于非游戏应用也可能会调用游戏引擎,因此,游戏服务中的应用类型识别模块可以先利用第一游戏应用信息判断手机启动的前台应用的类型是否为游戏类型,也就是判断手机是否处于游戏场景。在手机启动的前台应用的类型为游戏类型的
情况下,表明手机处于游戏场景,应用类型识别模块可以向切片模型发送游戏服务的句柄。切片模型在得到该游戏服务的句柄后,完成初始化,也就是说,在手机处于游戏场景时,切片模型会随着第一游戏进程的创建完成切片模型的初始化。
[0200]
在手机启动的前台应用的类型不为游戏类型的情况下,表明手机未处于游戏场景,游戏服务无需向切片模型发送句柄。手机可以基于其它调度策略,如基于手机的温度、负载大小进行资源调度,而无需利用切片模型进行资源调度。
[0201]
s4、第一游戏应用进程在渲染第t帧图像的过程中,采集第t帧图像对应的图像渲染信息。
[0202]
s5、第一游戏应用进程在第t帧图像和第t-1帧图像之间的显示间隔时间与第一预设间隔时间之间的差值大于第一预设时间差的情况下,基于第t帧图像对应的图像渲染信息,确定第t帧图像对应的第一负载等级。
[0203]
其中,第一游戏应用进程可以包括多个线程,其中多个线程存在一个渲染线程,该渲染线程负载第一游戏应用的游戏帧的渲染工作。
[0204]
示例性的,由于第一游戏应用进程已经与切片模型绑定,且切片模型已经完成初始化。因此,第一游戏应用进程可以在渲染线程渲染每一游戏帧时,采集每一游戏帧对应的图像渲染信息,如三元组(顶点着色器的数量,片段着色器的数量,绘制指令的数量)。其中,最新渲染的游戏帧可以作为第t帧图像。之后,第一游戏应用进程可以判断第t帧图像和第t-1帧图像之间的显示间隔时间与第一预设间隔时间之间的差值是否大于第一预设时间差,以判断手机是否出现渲染延迟,也即判断手机出现掉帧问题的概率的高低。
[0205]
在大于第一预设时间差的情况下,表明出现了渲染延迟,出现掉帧问题的概率较高,因此,第一游戏应用进程可以基于第t帧图像对应的图像渲染信息,计算第一游戏应用的运行需求,以得到第t帧图像对应的第一负载等级。该第一负载等级表征第一游戏应用进程所需的资源情况。
[0206]
在小于或等于第一预设时间差的情况下,表明未出现渲染延迟,出现掉帧问题的概率较低,因此,第一游戏应用进程无需计算第一负载等级,避免进行不必要的计算,从而避免资源的浪费。
[0207]
s6、第一游戏应用进程判断上述第一负载等级是否高于第二负载等级。在第一负载等级高于第二负载等级的情况下,向切片模型发送第一负载等级。
[0208]
s7、切片模型基于跨进程通信方式,向游戏服务发送第一负载等级。
[0209]
本技术实施例中,在第一负载等级低于或等于第二负载等级的情况下,表明手机性能能够满足第一游戏应用的运行需求,无需再提高性能,因此,无需基于跨进程通信方式,向游戏服务发送第一负载等级,避免数据频繁的上报,从而减少不必要的跨进程通信造成的资源的浪费及功耗的损失。
[0210]
在一些实施例中,如图15所示,第一游戏应用进程在调用第一函数后,对于应用侧来讲,第t-1帧图像渲染结束。之后,第一游戏应用进程调用第二函数,开始渲染第t帧图像。第一游戏应用进程可以进行指令收集,以记录渲染该第t帧图像所使用的指令数量(如顶点着色器的数量、片段着色器的数量及绘制指令的数量)。在调用第一函数后,表明第t帧图像渲染结束,得到第t帧图像对应的图像渲染信息。之后,手机可以在第t帧图像和第t-1帧图像之间的显示间隔时间与第一预设间隔时间之间的差值大于第一预设时间差的情况下,第
一游戏应用进程可以直接通过切片模型,向游戏服务发送该第t帧图像对应的图像渲染信息,以使游戏服务计算第t帧图像对应的第一负载等级。而在第t帧图像和第t-1帧图像之间的显示间隔时间与第一预设间隔时间之间的差值小于或等于第一预设时间差的情况下,第一游戏应用进程无需通过切片模型,向游戏服务发送该第t帧图像对应的图像渲染信息,减少跨进程通信,从而降低由于跨进程通信带来的功耗的损失。其中,第一函数可以为eglswapbuffer函数。第二函数可以为dequeubuffer函数。
[0211]
当然,第一游戏应用进程也可以在采集到每一帧图像的图像渲染信息后,直接通过切片模型向游戏服务发送每一帧图像的图像渲染信息,由游戏服务进程判是否出现渲染超时。
[0212]
可以理解的是,上述第t帧图像的渲染时刻表示第t帧图像渲染完成的时刻,如调用第一函数的时刻。或者,上述第t帧图像的渲染时刻表示第t帧图像开始渲染的时刻,如调用第二函数的时刻。
[0213]
s8、游戏服务中的数据接收模块接收上述第一负载等级,并向游戏场景感知模块发送第一负载等级。
[0214]
s9、游戏场景感知模块确定第一负载等级对应的处理器的第一频率档位。
[0215]
s10、游戏场景感知模块向调度模块发送第一频率档位。
[0216]
s11、调度模块计算第k帧图像与第k-1帧图像之间的显示间隔时间与第二预设间隔时间之间的差值。在该差值大于第二预设时间差的情况下,调度模块向综合调度模块发送第一频率档位。
[0217]
本技术实施例中,在小于或等于第二预设时间差的情况下,表明手机未出现卡顿情况,可以不进行性能的提高,调度模块无需向综合调度模块发送第一频率档位,减少跨进程通信,从而降低由于跨进程通信带来的功耗的损失。
[0218]
s12、综合调度模块基于第一频率档位,向内核层发送目标频率。
[0219]
s13、内核层中的调频接口将目标频率发送至处理器,以使处理器的频率调节至该目标频率。
[0220]
示例性的,综合调度模块可以基于第一频率档位所对应的第一频率、手机的运行信息综合确定调度策略,如确定目标频率。之后,综合调度模块可以通过调用调频接口,将处理器的频率调整至该目标频率。
[0221]
在一些实施例中,游戏场景感知模块也可以直接向综合调度模块发送第一频率。
[0222]
在一些实施例中,由于切片模型与游戏应用进程绑定,换言之,由于将切片模型集成在游戏应用进程中,切片模型与游戏应用进程的生命周期同步,例如,在游戏应用进程创建时,在游戏应用进程创建时,一个切片模型与该游戏应用进程绑定,实现切片模型的创建。在游戏应用进程结束时,该切片模型也随之结束,实现切片模型的生命周期的自动管理,从而能够实现内存与系统资源的自动回收。
[0223]
应理解,上述游戏服务与游戏应用进程可以是一对多的关系。游戏服务可以接收多个切片模型发送的负载等级。但通常来讲,手机前台运行的一般是一个游戏应用,也就是说,游戏服务与游戏应用进程一般是一对一的关系。
[0224]
本技术实施例中,通过将切片模型集成在第一游戏应用进程,可以在第一游戏应用进程中的渲染线程渲染图像的过程中,采集每一帧图像对应的图像渲染信息,实现数据
的自动采集。并且可以通过切片模型,将相关数据(如负载等级)上报至游戏服务,实现数据的自动跨进程上报。另外,游戏服务可以基于图像对应的负载等级确定处理器的频率,也就是基于实际帧率确定资源调度情况,从而使得综合调度模块能够实现及时准确的资源调度,保障游戏流畅体验。
[0225]
在一些实施例中,本技术提供一种计算机可读存储介质,包括计算机指令,当计算机指令在电子设备上运行时,使得电子设备执行如上所述的方法。
[0226]
在一些实施例中,本技术提供一种计算机程序产品,当计算机程序产品在电子设备上运行时,使得电子设备执行如上所述的方法。
[0227]
通过以上实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
[0228]
在本技术所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0229]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0230]
另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0231]
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本技术实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
[0232]
以上内容,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何在本技术揭露的技术范围内的变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护范围为准。
技术特征:
1.一种资源调度方法,其特征在于,包括:在电子设备的第一游戏应用启动后,在所述第一游戏应用的第t帧图像与第t-1帧图像之间的渲染间隔时间大于第一预设间隔时间的情况下,所述电子设备基于所述第t帧图像对应的图像渲染信息,确定所述第t帧图像对应的第一负载值;其中,所述图像渲染信息包括顶点着色器的数量、片段着色器的数量和绘制指令的数量中的至少一种;所述第t帧图像表示所述电子设备最新渲染的游戏帧;所述第t帧图像对应的第一负载值表示所述电子设备渲染所述第t帧图像所应占用的资源多少;所述电子设备基于所述第t帧图像对应的第一负载值,进行资源调度操作;其中,所述进行资源调度操作包括提高所述电子设备中的处理器的频率。2.根据权利要求1所述的方法,其特征在于,所述进行资源调度操作还包括降低所述处理器的频率;所述电子设备基于所述第t帧图像对应的第一负载值,进行资源调度操作,包括:在所述第t帧图像对应的第一负载等级高于第二负载等级的情况下,所述电子设备提高所述处理器的频率;所述第一负载等级是与所述第一负载值所属的预设负载值范围对应的负载等级,所述第二负载等级表示在所述第t帧图像之前渲染的所述第一游戏应用的游戏帧所对应的负载等级;在所述第一负载等级低于所述第二负载等级的情况下,所述电子设备降低所述处理器的频率。3.根据权利要求1或2所述的方法,其特征在于,所述在所述第一游戏应用的第t帧图像与第t-1帧图像之间的渲染间隔时间大于第一预设间隔时间的情况下,所述电子设备基于所述第t帧图像对应的图像渲染信息,确定所述第t帧图像对应的第一负载值,包括:在所述渲染间隔时间大于所述第一预设间隔时间,且所述渲染间隔时间与所述第一预设间隔时间之间的差值大于第一预设时间差的情况下,所述电子设备基于所述第t帧图像对应的图像渲染信息,确定所述第t帧图像对应的第一负载值。4.根据权利要求1或2所述的方法,其特征在于,所述电子设备基于所述第t帧图像对应的第一负载值,进行资源调度操作,包括:在所述第一游戏应用的第k帧图像与第k-1帧图像之间的显示间隔时间大于第二预设间隔时间的情况下,所述电子设备基于所述第一负载值,提高所述处理器的频率;其中,所述第k帧图像表示所述电子设备当前显示的游戏帧;所述第k帧图像与所述t帧图像相同或不同。5.根据权利要求4所述的方法,其特征在于,所述在所述第一游戏应用的第k帧图像与第k-1帧图像之间的显示间隔时间大于第二预设间隔时间的情况下,所述电子设备基于所述第一负载值,提高所述处理器的频率,包括:在所述显示间隔时间大于第二预设间隔时间,且所述显示间隔时间与所述第二预设间隔时间之间的差值大于第二预设时间差的情况下,所述电子设备基于所述第一负载值,提高所述处理器的频率。6.根据权利要求4所述的方法,其特征在于,所述电子设备基于所述第一负载值,提高所述处理器的频率,包括:所述电子设备获取所述第t帧图像对应的第一负载等级所对应的目标档位;所述第一
负载等级是与所述第一负载值所属的预设负载值范围对应的负载等级;所述电子设备基于所述目标档位对应的频率,调节所述处理器的频率。7.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:在所述第一游戏应用的第k帧图像与第k-1帧图像之间的显示间隔时间小于或等于第二预设间隔时间的情况下,所述电子设备不进行资源调度操作;其中,所述第k帧图像表示所述电子设备当前显示的游戏帧;所述第k帧图像与所述t帧图像相同或不同。8.根据权利要求1或2所述的方法,其特征在于,所述第t帧图像对应的第一负载值是所述第t帧图像对应的图像渲染信息中的所有数量之和。9.一种电子设备,其特征在于,所述电子设备包括显示屏、存储器和一个或多个处理器;所述显示屏、所述存储器和所述处理器耦合;所述显示屏用于显示所述处理器生成的图像,所述存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令;当所述处理器执行所述计算机指令时,使得所述电子设备执行如权利要求1至8中任一项所述的方法。10.一种计算机可读存储介质,其特征在于,包括计算机指令,当所述计算机指令在电子设备上运行时,使得所述电子设备执行如权利要求1至8中任一项所述的方法。
技术总结
本申请提供一种资源调度方法及电子设备,涉及终端技术领域。在游戏应用启动后,电子设备在渲染游戏应用的第t帧图像时,可以判断该第t帧图像与第t-1帧图像之间的渲染间隔时间是否大于第一预设间隔时间,以判断电子设备是否出现渲染延迟。在大于第一预设间隔时间的情况下,表明电子设备出现渲染延迟,电子设备可以基于渲染第t帧图像所使用的顶点着色器、片段着色器、绘制指令的数量,确定游戏应用最新运行需求,即确定第t帧图像对应的第一负载值,以供电子设备利用该第一负载值提高处理器的频率,提高电子设备的性能,实现电子设备的性能及时准确调整,保证游戏应用运行的流畅性。保证游戏应用运行的流畅性。保证游戏应用运行的流畅性。
技术研发人员:董达
受保护的技术使用者:荣耀终端有限公司
技术研发日:2023.06.13
技术公布日:2023/7/22
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
