绘图流水线调节方法、装置、计算机设备和存储介质与流程

文档序号:30496060发布日期:2022-06-22 04:36阅读:91来源:国知局
绘图流水线调节方法、装置、计算机设备和存储介质与流程

1.本技术涉及ui绘图技术领域,特别是涉及一种绘图流水线调节方法、装置、计算机设备和存储介质。


背景技术:

2.在移动终端的ui界面中,当cpu或gpu由于性能问题或负载问题,绘图速度不足以负荷显示器画面动态显示刷新的频率时,由于下一帧内容没有及时渲染出来,则该帧将会被丢弃,而显示器由于不能及时显示下一帧内容,而保持不变继续显示上一帧内容,从而出现帧率过低所造成的画面出现停滞(或短时间或长时间)的现象,称为掉帧。
3.然而,现有技术中针对绘图掉帧的问题,仅是将掉帧的信息用log的方式进行存储,未有针对绘图掉帧的问题提出相应的改进措施。


技术实现要素:

4.基于此,有必要针对上述ui绘图中的掉帧问题,提供一种绘图流水线调节方法、装置、计算机设备和存储介质。
5.一种绘图流水线调节方法,所述方法包括:
6.获取当前帧在目标绘图阶段的绘图耗时;所述目标绘图阶段为所述绘图流水线中的任一绘图阶段;
7.若所述当前帧在所述目标绘图阶段的绘图耗时大于所述目标绘图阶段对应的平均绘图耗时,则基于当前屏幕刷新频率确定对应的调节策略;
8.执行所述调节策略,以缩短所述当前帧在所述目标绘图阶段的下一绘图阶段的绘图耗时。
9.在其中一个实施例中,所述方法还包括:
10.获取至少两个历史帧在所述目标绘图阶段的起止时间戳;
11.根据所述起止时间戳,确定各个所述历史帧在所述目标绘图阶段的绘图耗时;
12.获取所述至少两个历史帧的绘图耗时的均值,作为所述目标绘图阶段的平均绘图耗时。
13.在其中一个实施例中,所述基于当前屏幕刷新频率确定对应的调节策略,包括:
14.根据所述当前屏幕刷新频率确定至少一个数目阈值;
15.获取当前连续掉帧数目;所述掉帧表示完成所述绘图流水线的全部绘图阶段的总绘图耗时大于预先确定的单帧绘图耗时的帧,所述单帧绘图耗时基于所述当前屏幕刷新频率确定;
16.根据所述当前连续掉帧数目与所述至少一个数目阈值的对比结果,确定对应的调节策略。
17.在其中一个实施例中,所述调节策略包括提升处理器运算频率、将线程迁移至处理能力更高的核心和开核中的至少一种;
18.所述根据所述当前连续掉帧数目与所述至少一个数目阈值的对比结果,确定对应的调节策略,包括:
19.若所述当前连续掉帧数目小于第一数目阈值,则确定对应的调节策略为提升处理器运算频率;
20.若所述当前连续掉帧数目大于或等于所述第一数目阈值、且小于第二数目阈值,则确定对应的调节策略为将线程迁移至处理能力更高的核心;
21.若所述当前连续掉帧数目大于或等于所述第二数目阈值,则确定对应的调节策略为开核。
22.在其中一个实施例中,若所述调节策略为提升处理器运算频率,所述执行所述调节策略,包括:
23.确定所述当前连续掉帧数目在预设的多个数目区间中所对应的目标数目区间;
24.获取所述目标数目区间对应的提频比例,作为目标提频比例;
25.按照所述目标提频比例,提升处理器运算频率。
26.在其中一个实施例中,若所述调节策略为将线程迁移至处理能力更高的核心,所述执行所述调节策略,包括:
27.获取所述目标绘图阶段的下一绘图阶段对应的目标线程;所述目标线程包括主ui线程和/或绘图线程;
28.将所述目标线程迁移至处理能力更高的核心。
29.在其中一个实施例中,所述方法还包括:
30.当检测到所述当前屏幕刷新频率改变时,动态更新所述第一数目阈值、所述第二数目阈值和所述第三数目阈值。
31.一种绘图流水线调节装置,所述装置包括:
32.时间获取模块,用于获取当前帧在目标绘图阶段的绘图耗时;所述目标绘图阶段为所述绘图流水线中的任一绘图阶段;
33.调节策略确定模块,用于若所述当前帧在所述目标绘图阶段的绘图耗时大于所述目标绘图阶段对应的平均绘图耗时,则基于当前屏幕刷新频率确定对应的调节策略;
34.调节策略执行模块,用于执行所述调节策略,以缩短所述当前帧在所述目标绘图阶段的下一绘图阶段的绘图耗时。
35.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
36.获取当前帧在目标绘图阶段的绘图耗时;所述目标绘图阶段为所述绘图流水线中的任一绘图阶段;
37.若所述当前帧在所述目标绘图阶段的绘图耗时大于所述目标绘图阶段对应的平均绘图耗时,则基于当前屏幕刷新频率确定对应的调节策略;
38.执行所述调节策略,以缩短所述当前帧在所述目标绘图阶段的下一绘图阶段的绘图耗时。
39.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
40.获取当前帧在目标绘图阶段的绘图耗时;所述目标绘图阶段为所述绘图流水线中
的任一绘图阶段;
41.若所述当前帧在所述目标绘图阶段的绘图耗时大于所述目标绘图阶段对应的平均绘图耗时,则基于当前屏幕刷新频率确定对应的调节策略;
42.执行所述调节策略,以缩短所述当前帧在所述目标绘图阶段的下一绘图阶段的绘图耗时。
43.上述绘图流水线调节方法、装置、计算机设备和存储介质,通过获取当前帧在目标绘图阶段的绘图耗时,在目标绘图阶段的实际绘图耗时大于目标绘图阶段所对应的平均绘图耗时时,基于当前屏幕刷新频率确定对应的调节策略,并执行该调节策略。该方法通过实时将绘图流水线中的任一绘图阶段的实际绘图耗时与该阶段对应的平均绘图耗时进行对比,在实际绘图耗时大于平均绘图耗时时,及时执行对应的调节策略,以缩短当前帧在目标绘图阶段的下一绘图阶段的绘图耗时,弥补在当前绘图阶段耗费的时间,从而保证当前帧在整个绘图流水线的总绘图耗时小于当前屏幕刷新频率对应的单帧绘图耗时,以避免当前帧出现掉帧现象。
附图说明
44.图1为一个实施例中绘图流水线调节方法的流程示意图;
45.图2为一个实施例中android hwui绘图流水线的示意图;
46.图3为一个实施例中平均绘图耗时确定步骤的流程示意图;
47.图4为一个实施例中绘图流水线调节装置的结构框图;
48.图5为一个实施例中计算机设备的内部结构图。
具体实施方式
49.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
50.在一个实施例中,如图1所示,提供了一种绘图流水线调节方法,本实施例以该方法应用于终端进行举例说明,可以理解的是,该方法也可以应用于服务器,还可以应用于包括终端和服务器的系统,并通过终端和服务器的交互实现。本实施例中,该方法包括以下步骤:
51.步骤s102,获取当前帧在目标绘图阶段的绘图耗时;目标绘图阶段为绘图流水线中的任一绘图阶段。
52.其中,绘图流水线可表示终端的各种程序或系统在运行过程中进行显示输出时,将所需显示的信息通过绘图渲染,然后发送给显示器输出的过程。绘图的目的在于将各种文字或图片信息的计算机语言转换为用户可以看懂的图像及文字等。
53.目前,android终端的绘图一般是基于hwui模块的绘图,而与hwui模块相关的线程主要有主ui线程、绘图线程以及与绘图线程相关的worker线程,因此,可将其分为主ui线程和绘图线程两部分,两个部分会存在交叉内容。为了便于识别各个线程,还可对各个线程进行task tagging(任务标记),以便于kernel(中心)可确定各个线程,为各个线程提供对应的调节策略。在绘图过程中,先由cpu负责计算布局、解码图片、创建视图、绘制文本等主ui
线程的内容,计算完成后,将得到的内容交给gpu,由gpu进行变换、合成和渲染等绘图流程,绘图完成后放入帧缓冲区,供显示器获取帧进行显示。
54.参见图2,为android hwui绘图流水线的示意图,图中包括绘图流水线中的各个绘图阶段,其中,主ui线程(ui thread)包括:ui view draw、sync queue和sync start三个阶段。绘图线程(renderthread)包括:sync start、issue draw、draw flush和frame complete四个阶段。
55.其中,ui view draw表示开始画frame(帧)的时间(frame beginning)。
56.其中,sync queue表示当主ui线程将要画的帧的资料都准备好,送至绘图线程,绘图线程针对此帧开始利用gpu绘图的时间。
57.其中,sync start表示主ui线程开始等待绘图线程将这些从ui获取的帧的资料开始同步的时间。因此,主ui线程和绘图线程在sync start部分出现重迭,当绘图线程同步完成,主ui线程结束等待,即主ui线程完成,而绘图线程则开始进入下一阶段。
58.其中,issue draw主要是将主ui线程的frame数据转换成绘制操作(drawop),也就是自定义每个绘制操作的structure(结构)并将这些绘制操作进行调整和优化。例如,调整和优化内容可包括:绘制操作的顺序调换或是判定某一绘制操作是否可移除或是将某一绘制操作与其他绘制操作进行合并等。
59.其中,draw flush(绘制齐平)阶段是将每个draw op call转换成gpu指令,然后将这些gpu指令缓冲送至gpu绘图,并进入下一阶段。
60.其中,frame complete阶段会将完成的buffer送至android surfaceflinger(用于管理应用端的surface(界面))作合成,由此完成一个帧的绘制。
61.另外,图中的prober用于注册探帧,探帧可用于确认下一绘图阶段是否到来,从而确定当前绘图阶段能否在对应的平均绘图耗时内执行完,以便于确认prober是否需要通过一个worker thread(工人线程)执行对应的trigger boost(调节策略)。
62.具体实现中,每个帧均需通过如图2所示的绘图流水线中的各个绘图阶段绘制生成,图2所示的hwui frame tracer(帧跟踪)可记录每个绘图阶段的timestamp(时间戳)。因此,在当前帧的绘图过程中,终端可向prober注册一个探帧,探测下一绘图阶段是否到来,并通过hwui frame tracer记录下一绘图阶段开始的时间戳,也即当前绘图阶段的结束时间戳,从而根据目标绘图阶段,即当前绘图阶段)开始时刻的时间戳和下一绘图阶段开始时刻的时间戳的差值,得到当前帧在目标绘图阶段的绘图耗时。
63.步骤s104,若当前帧在目标绘图阶段的绘图耗时大于目标绘图阶段对应的平均绘图耗时,则基于当前屏幕刷新频率确定对应的调节策略。
64.其中,屏幕刷新频率可表示单位时间内屏幕画面被刷新的次数,例如,若屏幕刷新频率为90hz/s,则表示屏幕在1秒钟内显示90帧图像。
65.具体实现中,若当前帧在目标绘图阶段的绘图耗时大于目标绘图阶段对应的平均绘图耗时,表明当前帧可能不能按时完成而出现掉帧现象,为避免这一情况的发生,本步骤中提出了在当前帧在目标绘图阶段的绘图耗时大于目标绘图阶段对应的平均绘图耗时的情况下,基于当前屏幕刷新频率确定对应的调节策略的方法。
66.进一步地,在一个实施例中,基于当前屏幕刷新频率确定对应的调节策略的步骤,具体包括:根据当前屏幕刷新频率确定至少一个数目阈值;获取当前连续掉帧数目;掉帧表
示完成绘图流水线的全部绘图阶段的总绘图耗时大于预先确定的单帧绘图耗时的帧,单帧绘图耗时基于当前屏幕刷新频率确定;根据当前连续掉帧数目与至少一个数目阈值的对比结果,确定对应的调节策略。
67.其中,单帧绘图耗时表示根据当前屏幕刷新频率确定的每一帧的理论绘图耗时,例如,若当前屏幕刷新频率为60hz/s,则单帧绘图耗时为1/60=16.67ms。
68.具体实现中,在当前帧的任一绘图阶段的绘图耗时大于该绘图阶段对应的平均绘图耗时时,除了获取当前屏幕刷新频率外,还需获取截止当前时刻的当前连续掉帧数目,将当前连续掉帧数目与至少一个数目阈值进行对比,根据对比结果确定对应的调节策略。其中,根据屏幕刷新频率确定至少一个数目阈值可包括:在当前屏幕刷新频率较低时,可对应减小连续掉帧数目的数目阈值;在当前屏幕刷新频率较高时,对应增大连续掉帧数目的数目阈值。
69.例如,若当前屏幕刷新频率为60hz/s,由于该频率较低,每一次掉帧造成的卡顿现象将会非常明显,因此,可设置较小的数目阈值,以尽可能在出现较少掉帧的时候,可尽快执行对应的调节策略。
70.若当前屏幕刷新频率为100hz/s,该频率相对于60hz/s较高,每一次掉帧造成的卡顿现象将会弱于60hz/s时的卡顿现象,因此,可设置稍高的数目阈值,以尽可能减少频繁执行调节策略的资源占用。
71.步骤s106,执行调节策略,以缩短当前帧在目标绘图阶段的下一绘图阶段的绘图耗时。
72.其中,调节策略包括提升处理器运算频率、将线程迁移至处理能力更高的核心和开核中的至少一种。
73.具体实现中,在根据当前连续掉帧数目和数目阈值的对比结果确定对应的调节策略后,则可执行该调节策略,提升当前帧在下一绘图阶段的绘图速率,以缩短下一绘图阶段的绘图耗时,弥补在当前绘图阶段所消耗的时间,从而避免当前帧出现掉帧现象。例如,在图2中,若当前帧在sync queue阶段的耗时大于该阶段对应的平均绘图耗时,则可执行确定的调节策略,以加快处理器对于下一绘图阶段sync start的处理速率,缩短下一绘图阶段sync start的绘图耗时,保证当前帧在整个绘图流水线的总绘图耗时小于当前屏幕刷新频率对应的单帧绘图耗时,以避免当前帧出现掉帧。
74.上述绘图流水线调节方法中,通过获取当前帧在目标绘图阶段的绘图耗时,在目标绘图阶段的实际绘图耗时大于目标绘图阶段所对应的平均绘图耗时时,基于当前屏幕刷新频率确定对应的调节策略,并执行该调节策略。该方法通过实时将绘图流水线中的任一绘图阶段的实际绘图耗时与该阶段对应的平均绘图耗时进行对比,在实际绘图耗时大于平均绘图耗时时,及时执行对应的调节策略,以缩短当前帧在下一绘图阶段的绘图耗时,弥补在当前绘图阶段耗费的时间,从而保证当前帧在整个绘图流水线的总绘图耗时小于当前屏幕刷新频率对应的单帧绘图耗时,以避免当前帧出现掉帧现象。
75.在一个实施例中,如图3所示,确定目标绘图阶段的平均绘图耗时的步骤包括:
76.步骤s302,获取至少两个历史帧在目标绘图阶段的起止时间戳;
77.步骤s304,根据起止时间戳,确定各个历史帧在目标绘图阶段的绘图耗时;
78.步骤s306,获取至少两个历史帧的绘图耗时的均值,作为目标绘图阶段的平均绘
图耗时。
79.其中,起止时间戳包括起始时间戳和终止时间戳。
80.具体实现中,可采用移动平均法,计算最近若干帧在各个绘图阶段的绘图耗时的均值,作为下一帧图像在对应绘图阶段的平均绘图耗时。更具体地,可通过查找帧跟踪记录(frame tracer)获取至少两个历史帧在各个绘图阶段的起始时间戳和终止时间戳,计算起始时间戳和终止时间戳的差值,即可得到各个历史帧在各个绘图阶段的绘图耗时,进一步计算至少历史帧在各个绘图阶段的绘图耗时的均值,可得到各个绘图阶段的平均绘图耗时。
81.本实施例中,通过移动平均法计算最近至少两个历史帧在各个绘图阶段的平均绘图耗时,以便于在获取下一帧在任一绘图阶段的实际绘图耗时后,可与该绘图阶段对应的平均绘图耗时进行比对,根据比对结果确定是否需要执行调节策略。
82.在一个实施例中,上述根据连续掉帧数目与至少一个数目阈值的对比结果,确定对应的调节策略的步骤,包括:若当前连续掉帧数目小于第一数目阈值,则确定对应的调节策略为提升处理器运算频率;若当前连续掉帧数目大于或等于第一数目阈值、且小于第二数目阈值,则确定对应的调节策略为将线程迁移至处理能力更高的核心;若当前连续掉帧数目大于或等于第二数目阈值,则确定对应的调节策略为开核。
83.其中,开核表示将被屏蔽的核心打开。核心被屏蔽是由于生产四核的工程中,生产出来的核心不是每个都能达到技术要求,为了降低成本和cpu的功耗,会将未达到要求的核心屏蔽掉。
84.具体实现中,可根据当前掉帧状况来确定提频比例,以及确定是否将线程迁移至到处理能力更高的核心或开核。具体地,当前掉帧状况可以通过当前连续掉帧数目来体现,在当前连续掉帧数目小于第一数目阈值时,由于掉帧较少,可仅通过提频,即提升处理器的运算频率的调节策略来改善掉帧现象。若当前连续掉帧数目大于或等于第一数目阈值,小于第二数目阈值,表明掉帧状况较为严重,仅通过提频不能较好的改善掉帧现象,或提频过高会造成较高的功耗,因此,可将线程迁移至处理能力更高的核心上,通过处理能力更高的核心提升绘图速率,改善掉帧问题。若当前连续掉帧数目已大于第二数目阈值,表明掉帧状况进一步加重,则可通过开核,即把被屏蔽的核心打开,来提升对每个帧的处理速率,改善掉帧现象。
85.本实施例中,通过当前的掉帧状况采取不同的调节策略,来改善掉帧现象,在改善掉帧问题的同时,根据当前掉帧的严重程度尽可能采取功耗较小的调节策略。
86.进一步地,在一个实施例中,还包括:当检测到当前屏幕刷新频率改变时,动态更新第一数目阈值和第二数目阈值。
87.具体实现中,由于屏幕刷新频率的高低可影响卡顿现象,同样的掉帧数目,对较高的屏幕刷新频率造成的卡顿现象,小于对较低屏幕刷新频率造成的卡顿现象,因此,可按照当前屏幕刷新频率与各个数目阈值成正比的规则,对第一数目阈值和第二数目阈值进行调整,即当前屏幕刷新频率升高,则对应的第一数目阈值和第二数目阈值也对应增大,若当前屏幕刷新频率降低,则对应的第一数目阈值和第二数目阈值也对应减小。
88.本实施例中,通过当前屏幕刷新频率的改变,动态更新第一数目阈值和第二数目阈值,进一步通过动态更新的第一数目阈值和第二数目阈值,以及当前掉帧状况对应调整
调节策略,而非采用固定的数目阈值来确定调节策略,实现了在合理的功耗范围内,调节策略的动态调整,使得调节策略更加符合当下帧的状况,更好地改善掉帧现象。
89.在一个实施例中,若调节策略为提升处理器运算频率,则执行调节策略的步骤,包括:确定当前连续掉帧数目在预设的多个数目区间中所对应的目标数目区间;获取目标数目区间对应的提频比例,作为目标提频比例;按照目标提频比例,提升处理器运算频率。
90.具体实现中,提升处理器运算频率可以通过当前连续掉帧数目确定对应的提频比例,按照提频比例来提升处理器运算频率,从而在改善掉帧现象的条件下,尽可能减少功耗。更具体地,可预先设置多个数目区间,为每个数目区间设置对应的调频比例,以便于在获取当前连续掉帧数目后,可根据当前连续掉帧数目确定对应的目标数目区间,将目标数目区间对应的调频比例,作为当前连续掉帧数目对应的目标调频比例,进而按照该目标调频比例,提升处理器运算频率,其中,提升处理器运算频率的方法可以是增大电流。
91.其中,为每个数目区间设置对应的提频比例的设置规则可以为:掉帧数目越多,提频比例越大。例如,若掉帧数目为(1-3)的数目区间对应的提频比例为4/3,则掉帧数目为(4-6)的数目区间对应的提频比例应大于4/3,例如,可以为5/3。
92.本实施例中,通过设置多个数目区间,为每个数目区间分别设置对应的提频比例,以便于在确定当前连续掉帧数目后,可确定当前连续掉帧数目对应的目标数目区间,按照该目标数目区间对应的目标提频比例,提升处理器运算频率,该方法通过当前帧的状况确定对应的提频比例,而非固定的提频比例,使得提频策略更符合当下帧的状况,在减少掉帧的条件下,消耗更小的功耗。
93.在一个实施例中,若调节策略为将线程迁移至处理能力更高的核心,则执行调节策略的步骤,包括:获取目标绘图阶段的下一绘图阶段对应的目标线程;目标线程包括主ui线程和/或绘图线程;将目标线程迁移至处理能力更高的核心。
94.具体实现中,由于基于hwui模块的线程可分为两大类,即主ui线程和绘图线程,因此还可针对线程作任务标记(task tagging),以便于在确定对应的调节策略为将线程迁移至处理能力更高的核心时,可根据下一绘图阶段对应的目标任务标记,确定下一绘图阶段对应的目标线程,即确定主ui线程和/或绘图线程,将主ui线程和/或绘图线程迁移至到处理能力更高的核心。
95.例如,在图2中,若下一绘图阶段为sync queue,对应的目标线程为主ui线程,则可将主ui线程迁移至处理能力更高的核心。若下一绘图阶段为issuedraw,对应的目标线程为绘图线程,则可将绘图线程迁移至处理能力更高的核心。若下一绘图阶段为sync start,由于sync start阶段为主ui线程和绘图线程的重迭阶段,则sync start阶段对应的目标线程可以为主ui线程和/或绘图线程,则可将主ui线程和/或绘图线程迁移至处理能力更高的核心。
96.本实施例中,通过针对各个线程作任务标记,以便于在目标绘图阶段的绘图耗时大于平均绘图耗时时,可获取下一绘图阶段对应的目标任务标记,根据目标任务标记确定对应的目标线程,进而将目标线程迁移至处理能力更高的核心,实现对各个线程针对性地执行调节策略,减少功耗。
97.应该理解的是,虽然图1和图3的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些
步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1和图3中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
98.在一个实施例中,如图4所示,提供了一种绘图流水线调节装置,包括:时间获取模块402、调节策略确定模块404和调节策略执行模块406,其中:
99.时间获取模块402,用于获取当前帧在目标绘图阶段的绘图耗时;目标绘图阶段为绘图流水线中的任一绘图阶段;
100.调节策略确定模块404,用于若当前帧在目标绘图阶段的绘图耗时大于目标绘图阶段对应的平均绘图耗时,则基于当前屏幕刷新频率确定对应的调节策略;
101.调节策略执行模块406,用于执行调节策略,以缩短当前帧在目标绘图阶段的下一绘图阶段的绘图耗时。
102.在一个实施例中,上述装置还包括:
103.时间戳获取模块,用于获取至少两个历史帧在目标绘图阶段的起止时间戳;
104.时间确定模块,用于根据起止时间戳,确定各个历史帧在目标绘图阶段的绘图耗时;
105.均值计算模块,用于获取至少两个历史帧的绘图耗时的均值,作为目标绘图阶段的平均绘图耗时。
106.在一个实施例中,上述调节策略确定模块406,具体用于根据当前屏幕刷新频率确定至少一个数目阈值;获取当前连续掉帧数目;掉帧表示完成绘图流水线的全部绘图阶段的总绘图耗时大于预先确定的单帧绘图耗时的帧,单帧绘图耗时基于当前屏幕刷新频率确定;根据当前连续掉帧数目与至少一个数目阈值的对比结果,确定对应的调节策略。
107.在一个实施例中,调节策略包括提升处理器运算频率、将线程迁移至处理能力更高的核心和开核中的至少一种;上述调节策略确定模块406,还用于若当前连续掉帧数目小于第一数目阈值,则确定对应的调节策略为提升处理器运算频率;若当前连续掉帧数目大于或等于第一数目阈值、且小于第二数目阈值,则确定对应的调节策略为将线程迁移至处理能力更高的核心;若当前连续掉帧数目大于或等于第二数目阈值,则确定对应的调节策略为开核。
108.在一个实施例中,若调节策略为提升处理器运算频率,上述调节策略确定模块406,还用于确定当前连续掉帧数目在预设的多个数目区间中所对应的目标数目区间;获取目标数目区间对应的提频比例,作为目标提频比例;按照目标提频比例,提升处理器运算频率。
109.在一个实施例中,若调节策略为将线程迁移至处理能力更高的核心,上述调节策略确定模块406,还用于获取目标绘图阶段的下一绘图阶段对应的目标线程;目标线程包括主ui线程和/或绘图线程;将目标线程迁移至处理能力更高的核心。
110.在一个实施例中,上述装置还包括:
111.阈值更新模块,用于当监测到当前屏幕刷新频率改变时,动态更新第一数目阈值和第二数目阈值。
112.需要说明的是,本技术的绘图流水线调节装置与本技术的绘图流水线调节方法一一对应,在上述绘图流水线调节方法的实施例阐述的技术特征及其有益效果均适用于绘图流水线调节装置的实施例中,具体内容可参见本技术方法实施例中的叙述,此处不再赘述,特此声明。
113.此外,上述绘图流水线调节装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
114.在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图5所示。该计算机设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过wifi、运营商网络、nfc(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种绘图流水线调节方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
115.本领域技术人员可以理解,图5中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
116.在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现以下步骤:
117.获取当前帧在目标绘图阶段的绘图耗时;目标绘图阶段为绘图流水线中的任一绘图阶段;
118.若当前帧在目标绘图阶段的绘图耗时大于目标绘图阶段对应的平均绘图耗时,则基于当前屏幕刷新频率确定对应的调节策略;
119.执行调节策略,以缩短当前帧在目标绘图阶段的下一绘图阶段的绘图耗时。
120.在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
121.在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
122.获取当前帧在目标绘图阶段的绘图耗时;目标绘图阶段为绘图流水线中的任一绘图阶段;
123.若当前帧在目标绘图阶段的绘图耗时大于目标绘图阶段对应的平均绘图耗时,则基于当前屏幕刷新频率确定对应的调节策略;
124.执行调节策略,以缩短当前帧在目标绘图阶段的下一绘图阶段的绘图耗时。
125.在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
126.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(read-only memory,rom)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(randomaccess memory,ram)或外部高速缓冲存储器。作为说明而非局限,ram可以是多种形式,比如静态随机存取存储器(static random access memory,sram)或动态随机存取存储器(dynamic random access memory,dram)等。
127.以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
128.以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1