CN113674132B - 一种通过检测显卡能力切换窗口管理渲染后端的方法 - Google Patents
一种通过检测显卡能力切换窗口管理渲染后端的方法 Download PDFInfo
- Publication number
- CN113674132B CN113674132B CN202110837309.6A CN202110837309A CN113674132B CN 113674132 B CN113674132 B CN 113674132B CN 202110837309 A CN202110837309 A CN 202110837309A CN 113674132 B CN113674132 B CN 113674132B
- Authority
- CN
- China
- Prior art keywords
- window
- window manager
- display card
- marco
- manager
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000009877 rendering Methods 0.000 title claims abstract description 23
- 238000000034 method Methods 0.000 title claims abstract description 20
- 230000000694 effects Effects 0.000 claims abstract description 33
- 230000003993 interaction Effects 0.000 claims description 3
- 230000006870 function Effects 0.000 description 7
- 230000001133 acceleration Effects 0.000 description 6
- 238000005457 optimization Methods 0.000 description 5
- 239000011165 3D composite Substances 0.000 description 4
- 239000008186 active pharmaceutical agent Substances 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 2
- 239000002131 composite material Substances 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 230000002194 synthesizing effect Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 239000003292 glue Substances 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000002156 mixing Methods 0.000 description 1
- 239000003607 modifier Substances 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/14—Digital output to display device ; Cooperation and interconnection of the display device with other functional units
- G06F3/1407—General aspects irrespective of display type, e.g. determination of decimal point position, display with fixed or driving decimal point, suppression of non-significant zeros
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- General Engineering & Computer Science (AREA)
- Controls And Circuits For Display Device (AREA)
Abstract
本发明提供的一种通过检测显卡能力切换窗口管理渲染后端的方法,包括通过测定显卡的FPS值判断当前显卡能力和根据当前显卡能力启动对应的窗口管理器的步骤。使用本发明的方法,当检测到显卡性能不足以支撑窗口特效时,窗口管理器能够自动切换到简单的图形渲染方式,能够满足用户日常界面操作,防止出现卡顿现象。
Description
技术领域
本发明关于一种计算机窗口显示的管理方法,具体来说是一种窗口管理渲染后端的方法。
背景技术
随着显卡能力的逐步增强,在图形显示渲染方面各类新技术也层出不穷。为了充分利用显卡的硬件加速能力,目前主流的桌面发行版中,都会默认启用3D合成式窗口管理器。在桌面操作系统中,最重要的组件就是窗口管理器,用户打开、拖动、缩放窗口等日常操作都由窗口管理器来负责处理。如今大多数桌面操作系统使用的默认窗口管理器是mutter或kwin,这两种窗口管理器都是3D合成式的,基于openGL去做图形渲染。
中国专利申请202110520486.1公开了“一种数据显示方法及计算设备”,该专利以mali显卡为例,介绍了一种通过获取GPU支持的formats和modifiers信息,再去判断kwin中是否支持这个显卡的数据个数和数据排列方式。如果支持就用显存块的方式去访问帧缓存,不再按照线性方式去方案显存数据中的每一个像素点,从而提高访问帧缓存的效率。不过,该专利没有考虑到目前部分国产显卡性能不能使用硬件加速,不支持egl接口去获取GPU 的信息,所以该专利提出的访问性能的方案对部分显卡,比如景嘉微7100显卡无效。
中国专利申请202011160368.6公开的“一种窗口展示效果的控制方法及计算设备”是关于窗口管理器的窗口展示效果切换相关的技术。该专利公开了一种窗口展示效果的控制方法,在已经运行的系统桌面环境中,提供展示效果切换的功能,并且在用户请求切换之前,先确定当前计算设备能否支持窗口切换展示效果,展示效果包括透明效果、最小化动画效果等。当计算设备的实际硬件配置以及当前的负载和运行能力能够支持窗口切换展示效果时,才会为用户提供切换窗口展示效果的功能。不过该专利面对的是已经登录到桌面环境的场景,专利中提出的切换展示效果功能也没有对国产显卡的渲染性能做适配。
在目前的国产化浪潮中,有些国产显卡对桌面特效的支持能力还比较弱,图形操作时常卡顿,一定程度上影响了用户的使用体验。并且,虽然手动执行命令关闭合成器可以缓解CPU能力不足的问题,解决卡顿现象,但实际上当出现卡顿问题时,普通用户并不了解如何手动关闭合成器。
在目前大多数桌面操作系统中,默认的窗口管理器一般都是mutter或者kwin,这两种窗口管理器都是3D合成式窗口管理器,基于openGL程序做图形渲染。对于普通用户来说,一般并不知道如何去关闭合成器,而且手动执行命令很不方便。再者,kwin关闭合成器后并没有最大限度的节省资源。
发明内容
为解决上述问题,适配多种显卡能力并进行顺畅的窗口切换,本发明提供一种通过检测显卡能力切换窗口管理渲染后端的方法,当检测到显卡性能不足以支撑窗口特效时,窗口管理器能够自动切换到简单的图形渲染方式,以满足用户日常界面操作,防止出现卡顿现象。
为达到上述目的,本发明所采取的技术方案为:
一种通过检测显卡能力切换窗口管理渲染后端的方法,包括以下步骤:
S1、通过测定显卡的FPS值判断当前显卡能力;
S2、根据当前显卡能力启动对应的窗口管理器。
进一步地,步骤S1中,通过窗口管理器切换单元使用QElapsedTimer对象以及一段时间内的采集帧数综合计算确定FPS值。
进一步地,步骤S2中,窗口管理器切换单元接收到当前显卡能力的数值后,检查显卡的GLX的版本综合接收到的FPS值,以确定启动窗口管理器的类型。
其中,窗口管理器的类型包括kwin和marco。
进一步来说,当FPS值大于窗口管理器切换单元预定的阈值600时,启动kwin;否则,窗口管理器切换单元启动marco。以此不同的窗口管理器启用不同的应用程序风格,做到特效兼容。
其中,当窗口管理器切换单元启动marco时,需要优化marco。以此,进一步降低资源消耗,在低性能显卡上也能充分保障用户操作的流畅性。
进一步地,使用补丁 switch_window_manager1.patch优化marco。以此,当拖动窗口时,只用窗口外矩形框标识拖放的位置,不再实时将窗口内容渲染到硬件,当拖动动作结束时再去刷新窗口内容,最大限度的降低资源消耗。
本发明的有益效果包括:
本发明通过计算显卡的FPS值来判断当前显卡能力,从而自动启动适合该显卡渲染能力的窗口管理器的方法。并且在显卡性能欠缺的时候,进一步优化窗口管理器marco,启用不同的窗口风格做到特效兼容,降低资源消耗,在国产显卡上充分保障用户图形交互操作的流畅性。
附图说明
图1是本发明的总体技术框架示意图;
图2是本发明实施例的流程示意图。
具体实施方式
下面结合附图和具体实施方式对本发明进行详细说明。
首先,在本发明中所提及的名词的简要解释为:
FPS:是frame per second的简写,表示平均每秒显示的帧数。
窗口管理器:用于控制操作系统桌面上的应用程序窗口如何显示、如何交互的系统软件。包括窗口顺序、位置、形状等。在现代桌面操作系统中,窗口管理器是不可或缺的重要角色。
窗口特效:窗口特效指的是透明窗口、窗口阴影边框、动画效果等。这类特效的实现原理是所有应用程序窗口内容先重定向到离屏缓存,合成器拿到桌面上下层覆盖窗口的内容并合成。
3D合成式窗口管理器:基于OpenGL的3D硬件加速支持,通过OpenGL扩展texure_from_pixmap将pixmap格式的窗口内容转为openGL可以处理的纹理数据,使得可以利用硬件能力合成窗口内容,增强了系统3D显示性能。
2D合成式窗口管理器:不使用显卡的硬件加速,而是使用软件来合成,通过XComposite 插件拿到离屏缓存后合成,消耗CPU资源。
X11:全称为X窗口系统,是传统的显示服务器,这个显示服务器的架构中,由Xserver、X client和合成器三个部分互相通信,实现屏幕上窗口的显示与管理。
GLX:GLX 是 X 窗口系统核心协议的扩展,像胶水一样,建立了X Window、OpenGL以及3D硬件加速驱动之间的联系。为了能得到3D效果,X窗口系统创建Drawable,把Drawable交给OpenGL来渲染,再由OpenGL将渲染结果显示到屏幕上。GLX负责把Drawable从X窗口系统传递给OpenGL。
XRender:X的2D渲染扩展。通过XRender,X可以支持抗锯齿的绘制原语、渐变、矩阵变换等。
本发明提供了一种通过检测显卡能力切换窗口管理渲染后端的方法,主要包括以下步骤S1和S2,其中,
步骤S1、通过测定显卡的FPS值判断当前显卡能力;
步骤S2、根据当前显卡能力启动对应的窗口管理器。
实施上述方法所需要的集成模块如图1所示,主要包括窗口管理器切换单元、窗口管理器kwin、窗口管理器marco。以及kwin运行所需要的图形库,如mesa提供了OpenGL的实现接口libGL.so,libxcb提供的X图形库,marco支持2D效果,基于Xlib库来开发。Xlib,xcb等都是X窗口系统协议的客户端,功能是与X server沟通。X的DIX与mesa通过内核的直接渲染模块DRM与显卡交互。
当需要在显示屏上显示配置文件内容时,通过上述集成模块完成本发明所述的方法,具体流程如图2所示,包括,
步骤S1:首先通过计算获取显卡的FPS值:frames/second = 1/second*frame。集成模块中,窗口管理器切换单元利用 QElapsedTimer 对象来统计时间,单位是毫秒,即:
FPS = 1000 / eplased_time * frames 公式(1)
在集成模块中定义 GLWidget 对象,继承自 QGLWidget,设置其父窗口为一个透明窗口。在 paintGL 时去绘画3D齿轮图像,进行三次采样。每次都累计 elapsed_time 时间内所画帧数,根据上面的公式(1)计算得出 FPS 值。
之后将得到的FPS值发送至窗口管理器切换单元。
步骤S2:窗口管理器切换单元接收到代表当前显卡能力的FPS值后,首先检查系统中已经安装的显卡的 GLX 的版本,当发现GLX的版本高于1.3时,则综合接收到的FPS值,以确定适合启动的窗口管理器的类型。其中,本发明中的窗口管理器的类型包括kwin和marco。
相对于mutter无法关闭合成器的特性,kwin能够提供更多的渲染配置。本发明中,首先kwin支持openGL程序后端,能够充分利用显卡的硬件加速能力进行合成。同时,当显卡能力不足时,用户可以从OpenGL后端手动切换到XRender后端,启用软件合成器去合成窗口特效。
本发明针对部分国产平台上窗口操作卡顿的问题,提出一种通过计算显卡的FPS能力切换窗口管理器的自动化方案,当显卡能力不足时自动切换到marco,从而满足用户日常窗口操作,优化操作体验的方案。marco也是XRender渲染的。OpenGL和XRender都是绘图API,允许在执行此操作时应用某些几何转换。OpenGL的目标是由专用GPU执行的绘图操作,它提供了许多功能,使生成3D效果非常容易(深度缓冲、深度测试、4×4同种变换矩阵)。XRender是对x11的扩展,用于支持无法使用核心x11绘图功能的渲染方法(抗锯齿、阿尔法混合)。XRender API针对2D图形进行了优化(没有深度缓冲/测试,3×3转换矩阵)。
进一步来说,本发明中在窗口管理器切换单元中预定kwin的阈值为600,marco的阈值为0。当FPS值大于窗口管理器切换单元预定的阈值600时,启动kwin。
若FPS值小于600时,窗口管理器切换单元启动marco。以此不同的窗口管理器启用不同的应用程序风格,做到特效兼容。当窗口管理器切换单元启动marco时,还需要优化marco。以此,进一步降低资源消耗,在低性能显卡上也能充分保障用户操作的流畅性。
Marco的优化方案为:使用补丁 switch_window_manager1.patch。启动优化后的窗口管理器marco,启用低资源消耗模式,并在拖拽窗口时,只用窗口外矩形框标识拖放的位置,不再实时将窗口内容渲染到硬件,当拖动动作结束时再去刷新窗口内容,最大限度的降低资源消耗。
另外地,如果窗口管理器切换单元获取发现GLX的版本低于1.3时,说明系统中集成的 GLX 无法支持高级窗口管理器运行,则关闭合成器,直接使用优化后的marco,并且放弃桌面特效,仅保障最基本的桌面交互功能。
关闭合成器会导致窗口特效无法正常显示,由于此时无法拿到窗口树中所有窗口内容,无法对上下层图像做合成处理,所有特效都会显示为黑色。此时修改qt5-ukui-platformtheme,应用补丁switch_window_manager2.patch,当检测到系统中运行的是非合成式窗口管理器时,不再使用透明、阴影等特效,保证图形渲染的特效兼容。
本发明针对部分国产平台上窗口操作卡顿的问题,提出一种通过计算显卡FPS能力切换窗口管理器的自动化方案,并进一步优化窗口管理器 marco,从而满足用户日常窗口操作,优化操作体验的方案。
本发明的实施场景:
在国产景嘉微显卡上,安装银河麒麟V10版本,由于默认窗口管理器为 kwin,显卡能力不能很好的支撑窗口特效,导致拖动窗口以及最小化等操作卡顿。使用本发明的方法,集成窗口管理器kwin和marco,通过窗口管理器切换单元根据显卡的性能选定对应的Marco,并进行优化后,拖动窗口、打开关闭应用程序等操作流畅性得到明显提升。
Claims (2)
1.一种通过检测显卡能力切换窗口管理渲染后端的方法,其特征在于:包括以下步骤:
S1 通过测定显卡的FPS值判断当前显卡能力;
S2 根据当前显卡能力启动对应的窗口管理器;
步骤S2中,窗口管理器切换单元接收到代表当前显卡能力的FPS值后,首先检查系统中已经安装的显卡的GLX的版本,当发现GLX的版本高于1.3时,则综合接收到的FPS值,以确定适合启动的窗口管理器的类型,所述窗口管理器的类型包括kwin和marco;
当FPS值大于窗口管理器切换单元预定的阈值600时,启动kwin;否则,窗口管理器切换单元启动marco,当窗口管理器切换单元启动marco时,优化marco,使用补丁switch_window_manager1 .patch优化marco;
如果窗口管理器切换单元获取发现GLX的版本低于1.3时,则关闭合成器,直接使用优化后的marco,并且放弃桌面特效,仅保障最基本的桌面交互功能,并修改qt5-ukui-platformtheme,应用补丁switch_window_manager2 .patch,当检测到系统中运行的是非合成式窗口管理器时,不再使用透明、阴影等特效,保证图形渲染的特效兼容。
2.根据权利要求1所述的一种通过检测显卡能力切换窗口管理渲染后端的方法,其特征在于:步骤S1中,通过窗口管理器切换单元使用QElapsedTimer对象确定FPS值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110837309.6A CN113674132B (zh) | 2021-07-23 | 2021-07-23 | 一种通过检测显卡能力切换窗口管理渲染后端的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110837309.6A CN113674132B (zh) | 2021-07-23 | 2021-07-23 | 一种通过检测显卡能力切换窗口管理渲染后端的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113674132A CN113674132A (zh) | 2021-11-19 |
CN113674132B true CN113674132B (zh) | 2024-05-14 |
Family
ID=78540137
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110837309.6A Active CN113674132B (zh) | 2021-07-23 | 2021-07-23 | 一种通过检测显卡能力切换窗口管理渲染后端的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113674132B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115408305B (zh) * | 2022-11-03 | 2022-12-23 | 北京麟卓信息科技有限公司 | 一种基于dma重定向的图形渲染方式检测方法 |
CN115934383B (zh) * | 2023-02-01 | 2023-06-02 | 麒麟软件有限公司 | Wayland合成器下多显卡渲染方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102890643A (zh) * | 2012-07-26 | 2013-01-23 | 上海交通大学 | 基于应用效果即时反馈的显卡虚拟化下的资源调度系统 |
CN106020929A (zh) * | 2016-05-13 | 2016-10-12 | 深圳市青葡萄科技有限公司 | 一种虚拟化环境下支持3d应用的系统和方法 |
CN109426529A (zh) * | 2017-08-16 | 2019-03-05 | 龙芯中科技术有限公司 | 基于x窗口系统图形绘制的方法、装置及终端 |
CN110559659A (zh) * | 2019-07-09 | 2019-12-13 | 深圳市瑞立视多媒体科技有限公司 | 一种游戏渲染优化方法、装置、设备及存储介质 |
CN112988103A (zh) * | 2021-05-13 | 2021-06-18 | 统信软件技术有限公司 | 一种数据显示方法及计算设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120092351A1 (en) * | 2010-10-19 | 2012-04-19 | Apple Inc. | Facilitating atomic switching of graphics-processing units |
-
2021
- 2021-07-23 CN CN202110837309.6A patent/CN113674132B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102890643A (zh) * | 2012-07-26 | 2013-01-23 | 上海交通大学 | 基于应用效果即时反馈的显卡虚拟化下的资源调度系统 |
CN106020929A (zh) * | 2016-05-13 | 2016-10-12 | 深圳市青葡萄科技有限公司 | 一种虚拟化环境下支持3d应用的系统和方法 |
CN109426529A (zh) * | 2017-08-16 | 2019-03-05 | 龙芯中科技术有限公司 | 基于x窗口系统图形绘制的方法、装置及终端 |
CN110559659A (zh) * | 2019-07-09 | 2019-12-13 | 深圳市瑞立视多媒体科技有限公司 | 一种游戏渲染优化方法、装置、设备及存储介质 |
CN112988103A (zh) * | 2021-05-13 | 2021-06-18 | 统信软件技术有限公司 | 一种数据显示方法及计算设备 |
Non-Patent Citations (2)
Title |
---|
KDE4.1:通往未来PC桌面的豪门;张立超;新电脑(第10期);109-110 * |
操作系统3D界面幕后的真相;张健浪;;新电脑(第10期);69-74 * |
Also Published As
Publication number | Publication date |
---|---|
CN113674132A (zh) | 2021-11-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11344806B2 (en) | Method for rendering game, and method, apparatus and device for generating game resource file | |
US11119528B2 (en) | Backward compatibility through use of spoof clock and fine grain frequency control | |
KR101086570B1 (ko) | 동적 윈도우 구조 | |
EP2710559B1 (en) | Rendering mode selection in graphics processing units | |
CN113674132B (zh) | 一种通过检测显卡能力切换窗口管理渲染后端的方法 | |
EP3259753B1 (en) | Systems and methods for reducing memory bandwidth using low quality tiles | |
CN112596843B (zh) | 图像处理方法、装置、电子设备及计算机可读存储介质 | |
US10140268B2 (en) | Efficient browser composition for tiled-rendering graphics processing units | |
WO2021008427A1 (zh) | 图像合成方法、装置、电子设备及存储介质 | |
US10558496B2 (en) | Techniques for accessing a graphical processing unit memory by an application | |
CN116821040B (zh) | 基于gpu直接存储器访问的显示加速方法、装置及介质 | |
CN112001993A (zh) | 一种面向大场景的多gpu城市仿真系统 | |
CN114968152B (zh) | 减少virtio-gpu额外性能损耗的方法 | |
CN114998087B (zh) | 渲染方法及装置 | |
CN113079408A (zh) | 视频播放方法、装置和系统 | |
CA2382181A1 (en) | Rendering animated image data | |
US7596762B1 (en) | System and method for installing image editing toolbars in standard image viewers | |
CN116137675A (zh) | 渲染方法及装置 | |
WO2023087827A9 (zh) | 渲染方法及装置 | |
WO2023197284A1 (en) | Saliency-based adaptive color enhancement | |
CN117234655B (zh) | 基于安卓系统运行Linux桌面程序的方法、装置、设备及介质 | |
US20240363043A1 (en) | Reprojection optimization based on contextual brightness | |
WO2024055234A1 (en) | Oled anti-aging regional compensation | |
CN116166367B (zh) | 提升显示帧缓存图像读取效率的方法 | |
CN117173310A (zh) | 图像渲染方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |