焦点窗口渲染优先级的方法技术

技术编号:38710140 阅读:10 留言:0更新日期:2023-09-08 14:53
本发明专利技术涉及提高焦点窗口渲染优先级的方法,包括如下步骤:在X框架中,客户端向服务端的X扩展协议发送获取焦点窗口进程号的请求;服务端通过其内的X扩展协议,调取客户端所提供的获取进程号的接口,来获取焦点窗口的进程号,并将所获取的焦点窗口的进程号返回给客户端;客户端通过其内的优先级设置程序将焦点窗口所对应的进程号的优先级设置为高级,以提高焦点窗口的渲染优先级。本发明专利技术充分利用了X框架下的扩展协议基本框架,以及利用底层图形渲染库中渲染任务的提交方式,和GPU调度器的特点,设置不同GPU任务的渲染优先级后提交到GPU调度器;在多个GPU密集型应用同时运行,且GPU为应用性能瓶颈时,提高焦点窗口的渲染优先级,可提高对应应用的渲染帧率,即应用流畅度。即应用流畅度。即应用流畅度。

【技术实现步骤摘要】
焦点窗口渲染优先级的方法


[0001]本专利技术涉及焦点窗口渲染性能优化
,具体涉及焦点窗口渲染优先级的方法。

技术介绍

[0002]当系统中有些重要的进程需要获取更多的CPU资源时,通过提高进程的进程优先级,CPU调度器会调度更多CPU资源给高优先级进程运行,例如交互式图形应用,当用户点击某个界面时,系统应该很快做出响应,当GPU资源有限时,如果能通过GPU调度器将更多的GPU资源调度给高渲染优先级进程,将对用户更加友好。同时,基于此框架,系统也可以将更多的IO资源调度给高优先级进程,以提高IO密集型应用的IO吞吐量。
[0003]该专利技术涉及的GPU调度器,是指在有两个及以上GPU密集型应用同时运行时,高优先级应用提交的GPU任务将优先被GPU渲染,在GPU资源有限且被多个GPU密集型应用耗尽时,优先对焦点窗口的渲染可提升用户体验。
[0004]中国专利技术专利(申请号CN202011223743.7,一种基于异步数据传输的GPU调度方法及系统)提出一种基于异步数据传输的GPU调度方法及系统。在深度学习推理时将CPU向GPU数据传输与GPU计算异步执行,将会极大的降低最终的延迟时间。因此,本专利技术提出了一个以并发量为自变量,系统吞吐量和时间延迟为因变量的定量模型。基于该模型,实现了一种利用两个进程隐藏数据传输延迟的调度算法,以提高系统性能。该专利技术未涉及基于GPU调度器的提高焦点窗口渲染优先级实现方法。
[0005]中国专利技术专利(申请号CN201910209567.2,一种GPU资源调度系统及其调度方法)公开了一种GPU资源调度系统及其调度方法,包括一GPU总集合,所述GPU总集合包括多个GPU节点;一GPU调用单元,所述GPU调用单元通信地连接所述GPU总集合,并调用所述GPU节点以形成一GPU子集合;以及一资源管理单元,所述资源管理单元通信地连接所述GPU总集合和所述GPU调用单元,并调用所述GPU节点以形成一GPU调度子集合,其中所述GPU调用单元监控所述GPU节点的调用信息,所述资源度量单元测量未调用状态的所述GPU并根据用户的资源请求以形成所述GPU调度子集合。该专利技术未涉及基于GPU调度器的提高焦点窗口渲染优先级实现方法。
[0006]在当前类unix操作系统中,应用程序提交的GPU任务按照先进先出的规则被GPU调度器调度到GPU执行,当多个GPU密集型应用向显卡提交GPU任务,且GPU资源成为应用的性能瓶颈时,GPU密集型应用可能都会卡顿,而在实际的使用过程中,用户可能更多的只关心当前焦点窗口应用的性能,而对于非焦点窗口,可能已经被最小化或者被其它焦点窗口遮住了,用户并不太关心其性能,若此时非焦点窗口和焦点窗口分别获取同等的GPU资源,并导致焦点窗口卡顿,无疑浪费了GPU资源。
[0007]目前在国产硬件平台上已经广泛使用了国产显卡,而国产显卡在GPU性能方面和AMD及NVIDIA还有不少差距,但是目前大量的应用都是基于AMD和NVIDIA显卡适配的,当显卡更换为国产显卡时,GPU成为应用性能瓶颈这一问题将更加突出。

技术实现思路

[0008]为解决已有技术存在的不足,本专利技术提供了一种提高焦点窗口渲染优先级的方法,包括如下步骤:步骤S1:在X框架中,客户端向服务端的X扩展协议发送获取焦点窗口进程号的请求;步骤S2:服务端通过其内的X扩展协议,调取客户端所提供的获取进程号的接口,来获取焦点窗口的进程号,并将所获取的焦点窗口的进程号返回给客户端;步骤S3:客户端通过其内的优先级设置程序将焦点窗口所对应的进程号的优先级设置为高级,以提高焦点窗口的渲染优先级。
[0009]其中,还包括如下步骤:步骤S4:底层渲染库通过优先级设置程序判断当前发送渲染指令的进程的优先级,根据进程的优先级设置相应进程所发送的渲染指令的优先级,并将渲染指令的优先级发送给GPU调度器,供GPU调度器根据渲染指令的优先级调度相关的GPU。
[0010]其中,在步骤S4中,如果当前发送渲染指令的进程的优先级大于O,则底层渲染库在提交CPU任务到GPU调度器时,提高GPU任务的渲染优先级,如果当前发送渲染指令的进程的优先级小于O,则底层渲染库在提交CPU任务到GPU调度器时,降低GPU任务的渲染优先级。
[0011]本专利技术充分利用了X框架下的扩展协议基本框架,以及利用底层图形渲染库中渲染任务的提交方式,和GPU调度器的特点,设置不同GPU任务的渲染优先级后提交到GPU调度器;在多个GPU密集型应用同时运行,且GPU为应用性能瓶颈时,提高焦点窗口的渲染优先级,可提高对应应用的渲染帧率,即应用流畅度。
附图说明
[0012]图1:本专利技术的提高焦点窗口渲染优先级的方法的逻辑框架图图2:本专利技术的提高焦点窗口渲染优先级的方法的实现流程图。
具体实施方式
[0013]为了对本专利技术的技术方案及有益效果有更进一步的了解,下面结合附图详细说明本专利技术的技术方案及其产生的有益效果。
[0014]本专利技术下文所涉及到的术语解释及约定如下:X窗口系统:X窗口系统,也称作Xorg图形服务器,它起源于20世纪80年代初,是Unix/Linux系统上最基本的图形交互系统。Xorg图形服务器采用Client/Server设计思想,具备卓越的灵活性和强大的功能,成为Unix/Linux中缺省的主流图形交互环境。
[0015]X扩展协议:X Server定义了119个接口,128之外的接口都是给扩展用的(#define EXTENSION_BASE 128)。但是每个扩展可能实现了多个接口,而ProcVector仅仅为每个扩展准备了一个入口。所以扩展协议如果有多个接口,就需要自行分发。每个扩展协议的实现,都需要从各自对应的扩展协议入口进行统一处理。
[0016]GPU调度器:是在2018年左右由AMD的部分代码演变出来的,即由AMD私用变成DRM子系统共用的GPU调度模块。GPU调度器包含多个调度队列,GPU任务按照渲染优先级放到不同优先级调度队列,调度器会优先从高优先级调度队列调度GPU任务到GPU执行。而GPU任务
是指应用程序提交给显卡GPU,需要进行图形渲染的任务,这些任务包含了应用的渲染请求。
[0017]本专利技术的提高焦点窗口渲染优先级的方法,通过后台程序在X框架中增加并调用X扩展协议来实现,具体通过X扩展协议获取焦点窗口所属进程,并将此进程标记为高渲染优先级进程,同时在底层图形渲染库设置此进程所提交的GPU任务为高优先级渲染任务并提交至GPU调度器,GPU调度器优先将高优先级渲染任务提交GPU渲染。X扩展协议利用X11的C/S模型通信机制进行数据传输:客户端提供获取焦点窗口进程号的接口,并设置焦点窗口所属进程的进程优先级,服务端查询当前焦点窗口及进程号,并将焦点窗口的进程号返回给客户端。本专利技术在客户端通过X扩展协议向X服务器发送获取焦点窗口进程号的请求,X服务器查询当前焦点窗口并返回进程号给客户端,客户端获取进程号后设置进程的进程优先级(如图1所示)。...

【技术保护点】

【技术特征摘要】
1.提高焦点窗口渲染优先级的方法,其特征在于包括如下步骤:步骤S1:在X框架中,客户端向服务端的X扩展协议发送获取焦点窗口进程号的请求;步骤S2:服务端通过其内的X扩展协议,调取客户端所提供的获取进程号的接口,来获取焦点窗口的进程号,并将所获取的焦点窗口的进程号返回给客户端;步骤S3:客户端通过其内的优先级设置程序将焦点窗口所对应的进程号的优先级设置为高级,以提高焦点窗口的渲染优先级。2.如权利要求1所述的提高焦点窗口渲染优先级的方法,其特征在于还包括如下步骤:步骤S4:底层渲染库通过优先级设置程序...

【专利技术属性】
技术研发人员:李真能张铎王勇军刘意虎周磊
申请(专利权)人:麒麟软件有限公司
类型:发明
国别省市:

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

1