CN114116227A - 一种无GPU支持的基于Wayland协议的显示方法、装置及设备 - Google Patents

一种无GPU支持的基于Wayland协议的显示方法、装置及设备 Download PDF

Info

Publication number
CN114116227A
CN114116227A CN202111448152.4A CN202111448152A CN114116227A CN 114116227 A CN114116227 A CN 114116227A CN 202111448152 A CN202111448152 A CN 202111448152A CN 114116227 A CN114116227 A CN 114116227A
Authority
CN
China
Prior art keywords
wayland
rendering
application
cpu
caching
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.)
Pending
Application number
CN202111448152.4A
Other languages
English (en)
Inventor
马维东
陈宗圣
邹仕洪
张广伟
周宏斌
张炯明
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yuanxin Information Technology Group Co ltd
Original Assignee
Yuanxin Information Technology Group Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Yuanxin Information Technology Group Co ltd filed Critical Yuanxin Information Technology Group Co ltd
Priority to CN202111448152.4A priority Critical patent/CN114116227A/zh
Publication of CN114116227A publication Critical patent/CN114116227A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/545Gui

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Digital Computer Display Output (AREA)

Abstract

本申请实施例提供了一种无GPU支持的基于Wayland协议的显示方法、装置、电子设备、计算机可读存储介质及计算机程序产品,涉及图形界面领域。该方法包括:当接收到Wayland应用发送的渲染指令时,调用CPU执行渲染操作,并将得到的渲染结果缓存于第一缓存空间;当接收到针对渲染结果的合成指令时,调用CPU执行与合成指令相对应的合成渲染操作,并将得到的合成渲染结果缓存于第二缓存空间。本申请提供的方法,在无GPU的条件下仍然可以支持基于Wayland协议的窗口管理系统,在Wayland应用层面不需要进行任何修改。

Description

一种无GPU支持的基于Wayland协议的显示方法、装置及设备
技术领域
本申请涉及图形界面领域,具体而言,本申请涉及一种无GPU支持的基于Wayland协议的显示方法、装置、电子设备、计算机可读存储介质及计算机程序产品。
背景技术
在现代电子设备上,GPU作为图形加速硬件,通常都和CPU集成在一起。目前,硬件层面基于GPU提供的图形渲染能力而软件层面基于Wayland协议开发的窗口管理系统广泛存在于各类操作系统中。只要应用厂家基于Wayland协议进行必要的开发(此类应用以下简称Wayland应用),上述窗口管理系统就可以支持应用的显示,不受Wayland应用的类型或者Wayland应用其他特征的限制。在一些特殊场景下,出于增强其他核心的能力或者其他考虑,CPU厂家会去掉GPU,而如果没有了GPU的支持,基于Wayland协议开发的窗口管理系统便无法正常使用或者需要对窗口管理系统做大量的调整和修改,大大降低了窗口管理系统的可适用性。
一方面,现有技术中提供的Mesa 3D、SwiftShader等方案虽然以软件替代的形式都实现了模拟GPU效果,但是存在没有较为重要的帧缓冲组件或者不支持Wayland协议等各种缺陷。另一方面,现有技术中也尝试采用其他硬件替代GPU的方案,但实际效果往往较差不能满足使用要求。
因此,如何寻找合适的方案来支持基于Wayland协议的窗口管理系统,是目前最重要的问题。
发明内容
本申请实施例的目的旨在能提供解决缺乏对基于Wayland协议的窗口管理系统的支持的技术手段。
根据本申请实施例的一个方面,提供了一种无GPU支持的基于Wayland协议的显示方法,该方法包括:
当接收到Wayland应用发送的渲染指令时,调用CPU执行渲染操作,并将得到的渲染结果缓存于第一缓存空间;
当接收到针对渲染结果的合成指令时,调用CPU执行与合成指令相对应的合成渲染操作,并将得到的合成渲染结果缓存于第二缓存空间。
在一种可能的实现方式中,当接收到Wayland应用发送的渲染指令时,调用CPU执行渲染操作,并将得到的渲染结果缓存于第一缓存空间,包括:
当接收到Wayland应用发送的渲染指令时,调用CPU执行渲染操作,得到渲染结果;
将渲染结果缓存于共享内存中,其中,共享内存与Wayland应用相对应。
在另一种可能的实现方式中,在得到渲染结果之后,还包括:
向Wayland合成器发送更新消息;
响应于更新消息,由Wayland合成器发送合成指令。
在又一种可能的实现方式中,将得到的合成渲染结果缓存于第二缓存空间,包括:
将合成渲染结果缓存于帧缓冲组件中,以便进行显示。
在一种可能的实现方式中,方法还包括:
在初始化Wayland应用时,将Wayland应用与第一组件进行绑定;
或者,
在初始化Wayland合成器时,将Wayland合成器与第一组件进行绑定。
根据本申请实施例的另一个方面,提供了一种无GPU支持的显示应用的装置,该装置包括:
第一处理模块,用于当接收到Wayland应用发送的渲染指令时,调用CPU执行渲染操作,并将得到的渲染结果缓存于第一缓存空间中;
第二处理模块,用于当接收到针对渲染结果的合成指令时,调用CPU执行与合成指令相对应的合成渲染操作,并将得到的合成渲染结果缓存于第二缓存空间中。
根据本申请实施例的另一个方面,提供了一种电子设备,该电子设备包括:存储器、处理器及存储在存储器上的计算机程序,该处理器执行计算机程序以实现本申请上述一个方面所示的一种无GPU支持的基于Wayland协议的显示方法的步骤。
根据本申请实施例的再一个方面,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现本申请上述一个方面所示的一种无GPU支持的基于Wayland协议的显示方法的步骤。
根据本申请实施例的一个方面,提供了一种计算机程序产品,该程序产品包括计算机程序,计算机程序被处理器执行时实现本申请上述一个方面所示的一种无GPU支持的基于Wayland协议的显示方法的步骤。
本申请实施例提供的技术方案带来的有益效果是:
本申请提供了一种无GPU支持的基于Wayland协议的显示方法,在第一组件接收到渲染指令或者合成指令之后,调用CPU执行相应的操作,并将操作的结果缓存于预设空间中。由于GPU提供的图形处理能力不仅包括如何进行图像处理操作还包括缓存处理结果,因此在无GPU的情况下,将包括渲染操作和合成渲染操作的图像处理操作交由CPU处理,并分别提供预设的缓存空间对处理结果进行缓存,最后进行显示。本申请提供的方法,可以在无GPU的情况下支持基于Wayland协议的窗口管理系统,在Wayland应用层面不需要进行任何修改。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍。
图1为本申请实施例提供的一种有GPU支持的Wayland窗口管理系统的工作原理示意图;
图2为本申请实施例提供的一种无GPU支持的Wayland窗口管理系统的工作原理示意图;
图3为本申请实施例提供的一种无GPU支持的基于Wayland协议的显示方法的流程示意图;
图4为本申请实施例提供的一种无GPU支持的基于Wayland协议的显示装置的结构示意图;
图5为本申请实施例提供的一种电子设备。
具体实施方式
下面结合本申请中的附图描述本申请的实施例。应理解,下面结合附图所阐述的实施方式,是用于解释本申请实施例的技术方案的示例性描述,对本申请实施例的技术方案不构成限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请实施例所使用的术语“包括”以及“包含”是指相应特征可以实现为所呈现的特征、信息、数据、步骤、操作、元件和/或组件,但不排除实现为本技术领域所支持其他特征、信息、数据、步骤、操作、元件、组件和/或它们的组合等。应该理解,当我们称一个元件被“连接”或“耦接”到另一元件时,该一个元件可以直接连接或耦接到另一元件,也可以指该一个元件和另一元件通过中间元件建立连接关系。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的术语“和/或”指示该术语所限定的项目中的至少一个,例如“A和/或B”可以实现为“A”,或者实现为“B”,或者实现为“A和B”。
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
首先对本申请涉及的几个名词进行介绍和解释:
帧缓冲(framebuffer):是Linux系统提供的一个接口,它屏蔽图像硬件的底层差异,将显示缓冲区抽象,允许上层应用在图形模式下直接对显示缓冲区进行读写操作。例如,在显示缓冲区中与显示点对应的区域写入颜色值,对应的颜色会自动在屏幕等硬件设备上显示。早期GPU尚未出现的时候,帧缓冲组件是作为一个重要的组件用于图像处理过程中的关键步骤。
Wayland协议:是一套显示服务端(Wayland合成器)与客户端(Wayland应用)之间的通信协议。
EGL:是OpenGL组件和本地窗口管理系统(例如Windows系统的Window,Android的SurfaceView等)之间的一个中间接口层。引入EGL可以屏蔽不同平台上不同窗口的区别。EGL也可以作为Wayland应用和OpenGL组件之间的接口层。
承接背景技术,Mesa 3D支持多种软件渲染的方式,并且可以做到模拟GPU的功能,但是Mesa 3D对帧缓冲并不支持。SwiftShader是一套用在CPU上进行高性能图像渲染的软件库,可以实现在无GPU系统上的渲染操作,但是SwiftShader同样不支持帧缓冲设备,并且也不支持Wayland协议。
示例性参见图1,本申请提供了一种有GPU支持的Wayland窗口管理系统的工作原理示意图。初始化Wayland应用时,配置环境变量,并创建缓存空间用于缓存Wayland应用对应的渲染结果,然后通过EGL组件创建与OpenGLES组件之间的绑定关系;初始化Wayland合成器时,也是通过EGL组件创建与OpenGLES组件之间的绑定关系。GPU在合成渲染结束之后,可以缓存该合成渲染结果,可以在终端设备的显示屏幕上进行显示。
当至少一个Wayland应用的逻辑层有新的内容显示指示时,具体地:Wayland应用向OpenGLES组件发送渲染指令,OpenGLES组件接收到之后调用Linux内核层的GPU驱动,来驱使GPU进行渲染操作。另一方面,EGL组件可以基于Wayland协议,向Wayland合成器发送更新消息。Wayland合成器接收到更新消息之后,向OpenGLES组件发送合成渲染指令,OpenGLES组件接收到渲染指令之后,调用Linux内核层的GPU驱动来驱使GPU进行合成渲染操作,得到合成渲染结果,该合成渲染结果可以用于在屏幕等硬件设备上显示。
因此,GPU在显示图像的过程中起到了非常重要的作用。如果在一些场景中,不能使用GPU硬件,就不得不实施替代方案,而利用专用硬件替代通用硬件是替代方案之一,但如上所述Wayland窗口管理系统等类似软件的内部逻辑往往是直接和GPU绑定的,如果直接使用通用硬件替代专用硬件而不对相关软件进行修改,会导致替代方案不可行。现有技术中对相关软件的修改往往非常复杂,工作量浩大,例如不仅需要修改Wayland窗口管理系统,还需要修改Wayland应用,从投入产出的角度看在实际中也是不可行的。
本申请提供的一种无GPU支持的基于Wayland协议的显示方法、装置、电子设备、计算机可读存储介质以及计算机程序产品,旨在解决现有技术的如上技术问题。其中,该显示方法可以应用于终端设备,该终端设备包括但不限于:移动设备、计算机等。应当指出,本申请实施例所示的终端设备的操作系统上运行有Wayland窗口管理系统,Wayland窗口管理系统可以满足多个Wayland应用的显示需求。
下面通过对几个示例性实施方式的描述,对本申请实施例的技术方案以及本申请的技术方案产生的技术效果进行说明。需要指出的是,下述实施方式之间可以相互参考、借鉴或结合,对于不同实施方式中相同的术语、相似的特征以及相似的实施步骤等,不再重复描述。
示例性地参考图2,本申请实施例提供了一种无GPU支持的Wayland窗口管理系统的工作原理示意图。初始化Wayland应用时,创建相对应的共享内存,然后通过EGL组件创建与模拟的OpenGLES组件之间的绑定关系。初始化Wayland合成器时,系统的内核层提供了帧缓冲组件例如LinuxFB,该帧缓冲组件中缓存着终端设备的屏幕上需要显示的内容,通过EGL组件创建合成器和帧缓冲组件之间的绑定关系;其次,再通过EGL组件创建与Wayland合成器与模拟的OpenGLES组件之间的绑定关系。
当至少一个Wayland应用的逻辑层有新的内容显示指示时,具体地:Wayland应用向模拟的OpenGLES组件发送渲染指令,模拟的OpenGLES组件接收到渲染指令之后,调用CPU执行渲染操作,并将渲染操作的结果缓存于与该至少一个应用相对应的共享内存中。在共享内存中有了新的内容之后,通过EGL组件向Wayland合成器发送更新消息,该Wayland合成器接收到更新消息之后,基于多个共享内存中的内容,向模拟的OpenGL ES组件发送合成指令;模拟的OpenGL ES组件接收到该合成指令之后,调用CPU执行合成渲染操作,得到合成渲染结果,并将合成渲染结果缓存于帧缓冲组件中。
通常,GPU厂商在提供GPU硬件时,还会附带提供支持EGL组件和OpenGLES组件的库文件。因此,在无GPU的条件下,上述工作原理示意图中的EGL组件和模拟的OpenGLES组件还需要得到相关库文件的支持。例如,支持EGL组件的库文件可以为libEGL.so,支持模拟的OpenGL ES组件的库文件可以为libGLESv2.so。另外,可以对相关的库文件进行修改以便得到相应的功能。
其中,在初始化Wayland应用时,具体地:在初始化Wayland应用时,创建其对应的缓存空间,该缓存空间可以为操作系统基于Wayland协议为该Wayland应用创建的共享内存。设置EGL组件中对应Wayland应用的环境变量EGL_PLATFORM=wayland或EGL_DISPLAY=wayland,使得EGL组件基于该环境变量建立Wayland应用与模拟的OpenGLES组件之间的上下文关系,即绑定关系。通过该上下文关系,模拟的OpenGLES组件可以将渲染结果写入该共享内存中。
其中,在初始化Wayland合成器时,具体地:在初始化Wayland合成器时,可以设置EGL组件中对应Wayland合成器的环境变量EGL_PLATFORM=linuxfb或EGL_DISPLAY=linuxfb,使得EGL组件基于该环境变量创建Wayland合成器与模拟的OpenGL ES之间的上下文关系,即绑定关系。模拟的OpenGLES组件在对多个Wayland应用的窗口进行合成渲染时,通过该上下文关系可以将合成渲染的结果写入帧缓冲组件例如LinuxFB中,可以最终显示在终端设备的显示屏幕上。
因此,基于上述无GPU支持的Wayland窗口管理系统,Wayland应用无需进行调整,无GPU的终端设备还是可以进行渲染操作和合成渲染操作,并在屏幕等硬件设备上显示最终的合成渲染结果。
参见图3,本申请实施例提供了一种无GPU支持的基于Wayland协议的显示方法,基于上述无GPU支持的Wayland窗口管理系统,可以应用于终端设备等,该方法包括:
S310,当接收到Wayland应用发送的渲染指令时,调用CPU执行渲染操作,并将得到的渲染结果缓存于第一缓存空间。
其中,终端设备包括:模拟的OpenGLES组件及相关组件、多个Wayland应用、Wayland合成器、显示屏幕等。
具体地,当终端设备上的模拟的OpenGLES组件接收到终端设备上的Wayland应用发送的渲染指令时,调用CPU执行渲染操作,得到与Wayland应用相对应的渲染结果;将渲染结果缓存于共享内存中,其中,该共享内存是终端设备的操作系统基于Wayland协议为Wayland应用创建的。其中,每个Wayland应用都配置有相应的共享内存,在共享内存中缓存有Wayland应用的显示内容,该显示内容可以是上述渲染结果。
在一种可能的实现方式中,在得到渲染结果之后,还包括:
向合成组件发送更新消息;响应于更新消息,由合成组件发送合成指令。
具体地,合成组件可以是Wayland合成器,通过EGL组件向Wayland合成器发送更新消息;Wayland合成器接收到更新消息之后,向模拟的OpenGL ES组件发送合成指令。
S320,当接收到针对渲染结果的合成指令时,调用CPU执行与合成指令相对应的合成渲染操作,并将得到的合成渲染结果缓存于第二缓存空间。
具体地,当模拟的OpenGLES组件接收到Wayland合成器针对渲染结果的合成指令时,调用CPU执行与合成指令相对应的合成渲染操作。
本申请实施例提供的一种无GPU支持的基于Wayland协议的显示方法,基于模拟的OpenGL组件或者其他相关或类似的组件,相对于现有的OpenGL组件具备调度CPU资源的功能。在模拟的OpenGL组件接收到渲染指令或者合成指令之后,调用CPU执行相应的操作,并将操作的结果缓存与预设空间中。由于GPU提供的图形处理能力不仅包括如何进行图像处理操作,并且还包括缓存处理结果,因此,上述技术手段在无GPU的情况下,将包括渲染操作和合成渲染操作的图像处理操作交由CPU处理,并分别提供预设的缓存空间对处理结果进行缓存,最后进行显示。因此,本申请提供的方法,可以在无GPU的情况下支持基于Wayland协议的窗口管理系统,在Wayland应用层面不需要进行任何修改。
本申请实施例还提供了一种可能的实现方式中,该方法还包括:
在初始化Wayland应用时,将Wayland应用与第一组件进行绑定;或者,在初始化Wayland合成器时,将Wayland合成器与第一组件进行绑定。
其中,该第一组件可以为模拟的OpenGLES组件或者其他相关或类似的组件。
具体地,在初始化Wayland应用时,配置环境变量:EGL_PLATFORM=wayland或EGL_DISPLAY=wayland,基于配置的环境变量EGL组件建立了Wayland应用与模拟的OpenGLES组件之间的绑定关系。在初始化Wayland合成器时,配置环境变量:EGL_PLATFORM=linuxfb或EGL_DISPLAY=linuxfb,基于配置的环境变量EGL组件建立了Wayland合成器与模拟的OpenGL ES组件之间的绑定关系。
基于创建的绑定关系,Wayland应用可以向模拟的OpenGLES组件发送渲染指令,Wayland合成器可以向模拟的OpenGLES组件发送合成渲染指令。
参见图4,本申请实施例还提供了一种无GPU支持的基于Wayland协议的显示装置,该装置400包括:
第一处理模块410,用于当接收到Wayland应用发送的渲染指令时,调用CPU执行渲染操作,并将得到的渲染结果缓存于第一缓存空间中;
第二处理模块420,用于当接收到针对渲染结果的合成指令时,调用CPU执行与合成指令相对应的合成渲染操作,并将得到的合成渲染结果缓存于第二缓存空间中。
在一种可能的实现方式中,第一处理模块410当接收到Wayland应用发送的渲染指令时,调用CPU执行渲染操作,并将得到的渲染结果缓存于第一缓存空间中,具体用于:
当接收到Wayland应用发送的渲染指令时,调用CPU执行渲染操作,得到渲染结果;
将渲染结果缓存于共享内存中,其中,共享内存与Wayland应用相对应。
在一种可能的实现方式中,在得到渲染结果之后,还包括:
向Wayland合成器发送更新消息;
响应于更新消息,由Wayland合成器发送合成指令。
在一种可能的实现方式中,第二处理模块420在将得到的合成渲染结果缓存于第二缓存空间中,具体用于:
将合成渲染结果缓存于帧缓冲组件中,其中,帧缓冲组件为系统内核层中的缓存空间。
在一种可能实现方式中,装置400还包括绑定模块430,具体用于:
在初始化Wayland应用时,将Wayland应用与第一组件进行绑定;或者,在初始化Wayland合成器时,将Wayland合成器与第一组件进行绑定。
本申请实施例中提供了一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,该处理器执行上述计算机程序以实现本申请上述实施例所示的一种无GPU支持的基于Wayland协议的显示方法的步骤,与相关技术相比可实现:在无GPU的情况下支持基于Wayland协议的窗口管理系统,在Wayland应用层面不需要进行任何修改。
在一个可选实施例中提供了一种电子设备,如图5所示,图5所示的电子设备5000包括:处理器5001和存储器5003。其中,处理器5001和存储器5003相连,如通过总线5002相连。可选地,电子设备5000还可以包括收发器5004,收发器5004可以用于该电子设备与其他电子设备之间的数据交互,如数据的发送和/或数据的接收等。需要说明的是,实际应用中收发器5004不限于一个,该电子设备5000的结构并不构成对本申请实施例的限定。
处理器5001可以是CPU(Central Processing Unit,中央处理器),通用处理器,DSP(Digital Signal Processor,数据信号处理器),ASIC(Application SpecificIntegrated Circuit,专用集成电路),FPGA(Field Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器5001也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
总线5002可包括一通路,在上述组件之间传送信息。总线5002可以是PCI(Peripheral Component Interconnect,外设部件互连标准)总线或EISA(ExtendedIndustry Standard Architecture,扩展工业标准结构)总线等。总线5002可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器5003可以是ROM(Read Only Memory,只读存储器)或可存储静态信息和指令的其他类型的静态存储设备,RAM(Random Access Memory,随机存取存储器)或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM(Electrically ErasableProgrammable Read Only Memory,电可擦可编程只读存储器)、CD-ROM(Compact DiscRead Only Memory,只读光盘)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质、其他磁存储设备、或者能够用于携带或存储计算机程序并能够由计算机读取的任何其他介质,在此不做限定。
存储器5003用于存储执行本申请实施例的计算机程序,并由处理器5001来控制执行。处理器5001用于执行存储器5003中存储的计算机程序,以实现前述方法实施例所示的步骤。
其中,电子设备包括但不限于:计算机、手机。
本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时可实现前述方法实施例的步骤及相应内容。
本申请实施例还提供了一种计算机程序产品,包括计算机程序,计算机程序被处理器执行时可实现前述方法实施例的步骤及相应内容。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”、“1”、“2”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除图示或文字描述以外的顺序实施。
应该理解的是,虽然本申请实施例的流程图中通过箭头指示各个操作步骤,但是这些步骤的实施顺序并不受限于箭头所指示的顺序。除非本文中有明确的说明,否则在本申请实施例的一些实施场景中,各流程图中的实施步骤可以按照需求以其他的顺序执行。此外,各流程图中的部分或全部步骤基于实际的实施场景,可以包括多个子步骤或者多个阶段。这些子步骤或者阶段中的部分或全部可以在同一时刻被执行,这些子步骤或者阶段中的每个子步骤或者阶段也可以分别在不同的时刻被执行。在执行时刻不同的场景下,这些子步骤或者阶段的执行顺序可以根据需求灵活配置,本申请实施例对此不限制。
以上所述仅是本申请部分实施场景的可选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请的方案技术构思的前提下,采用基于本申请技术思想的其他类似实施手段,同样属于本申请实施例的保护范畴。

Claims (10)

1.一种无GPU支持的基于Wayland协议的显示方法,其特征在于,所述方法包括:
当接收到Wayland应用发送的渲染指令时,调用CPU执行渲染操作,并将得到的渲染结果缓存于第一缓存空间;
当接收到针对所述渲染结果的合成指令时,调用所述CPU执行与所述合成指令相对应的合成渲染操作,并将得到的合成渲染结果缓存于第二缓存空间。
2.根据权利要求1所述的方法,其特征在于,所述当接收到Wayland应用发送的渲染指令时,调用CPU执行渲染操作,并将得到的渲染结果缓存于第一缓存空间,包括:
当接收到所述Wayland应用发送的渲染指令时,调用所述CPU执行渲染操作,得到渲染结果;
将所述渲染结果缓存于共享内存中,其中,所述共享内存与所述Wayland应用相对应。
3.根据权利要求1或2所述的方法,其特征在于,在得到所述渲染结果之后,还包括:
向Wayland合成器发送更新消息;
响应于所述更新消息,由所述Wayland合成器发送合成指令。
4.根据权利要求1所述的方法,其特征在于,所述将得到的合成渲染结果缓存于第二缓存空间,包括:
将所述合成渲染结果缓存于帧缓冲组件中,以便进行显示。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在初始化所述Wayland应用时,将所述Wayland应用与第一组件进行绑定;
或者,
在初始化Wayland合成器时,将所述Wayland合成器与所述第一组件进行绑定。
6.一种无GPU支持的基于Wayland协议的显示装置,其特征在于,所述装置包括:
第一处理模块,用于当接收到Wayland应用发送的渲染指令时,调用CPU执行渲染操作,并将得到的渲染结果缓存于第一缓存空间中;
第二处理模块,用于当接收到针对所述渲染结果的合成指令时,调用所述CPU执行与所述合成指令相对应的合成渲染操作,并将得到的合成渲染结果缓存于第二缓存空间中。
7.根据权利要求6所述的装置,其特征在于,所述第一处理模块在当接收到Wayland应用发送的渲染指令时,调用CPU执行渲染操作,并将得到的渲染结果缓存于第一缓存空间中,具体用于:
当接收到所述Wayland应用发送的渲染指令时,调用所述CPU执行渲染操作,得到渲染结果;
将所述渲染结果缓存于共享内存中,其中,所述共享内存与所述Wayland应用相对应。
8.一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,其特征在于,所述处理器执行所述计算机程序以实现权利要求1-5中任一项所述方法的步骤。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-5中任一项所述方法的步骤。
10.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-5中任一项所述方法的步骤。
CN202111448152.4A 2021-11-29 2021-11-29 一种无GPU支持的基于Wayland协议的显示方法、装置及设备 Pending CN114116227A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111448152.4A CN114116227A (zh) 2021-11-29 2021-11-29 一种无GPU支持的基于Wayland协议的显示方法、装置及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111448152.4A CN114116227A (zh) 2021-11-29 2021-11-29 一种无GPU支持的基于Wayland协议的显示方法、装置及设备

Publications (1)

Publication Number Publication Date
CN114116227A true CN114116227A (zh) 2022-03-01

Family

ID=80369056

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111448152.4A Pending CN114116227A (zh) 2021-11-29 2021-11-29 一种无GPU支持的基于Wayland协议的显示方法、装置及设备

Country Status (1)

Country Link
CN (1) CN114116227A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115131488A (zh) * 2022-08-31 2022-09-30 麒麟软件有限公司 wayland图形显示环境下管理显示缓存的方法及系统
WO2024144523A1 (en) * 2022-12-28 2024-07-04 Havelsan Hava Elektronik San. Ve Tic. A.S. Providing 3d imaging on a platform with a real-time operating system

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115131488A (zh) * 2022-08-31 2022-09-30 麒麟软件有限公司 wayland图形显示环境下管理显示缓存的方法及系统
CN115131488B (zh) * 2022-08-31 2022-11-29 麒麟软件有限公司 wayland图形显示环境下管理显示缓存的方法及系统
WO2024144523A1 (en) * 2022-12-28 2024-07-04 Havelsan Hava Elektronik San. Ve Tic. A.S. Providing 3d imaging on a platform with a real-time operating system

Similar Documents

Publication Publication Date Title
CN112269603B (zh) 一种在Linux上兼容运行Android应用的图形显示方法与装置
US10127628B2 (en) Method and system to virtualize graphic processing services
CN107292807B (zh) 一种图形合成方法、窗口设置方法及系统
CN113110910B (zh) 一种安卓容器实现的方法、系统及设备
EP3138006B1 (en) System and method for unified application programming interface and model
US5982399A (en) Immediate mode drawing interface for the construction of graphics software
CN105427236A (zh) 一种图像渲染方法及装置
CN114116227A (zh) 一种无GPU支持的基于Wayland协议的显示方法、装置及设备
US10949226B2 (en) Display method of multi-application based on Android system, and terminal device
JP2000092390A (ja) ディジタル・ビデオ信号処理装置及び方法
WO2015183855A1 (en) Graphics pipeline state object and model
CN116185743B (zh) OpenGL接口的双显卡对比调试方法、装置及介质
CN116821040B (zh) 基于gpu直接存储器访问的显示加速方法、装置及介质
US20080163263A1 (en) Method for acquisition of gdi and direct x data
CN112346890B (zh) 一种复杂图形离屏渲染方法及系统
CN111402349B (zh) 渲染方法、渲染装置和渲染引擎
WO2023138020A1 (zh) 图像生成方法、装置、电子设备及存储介质
CN114924837A (zh) 数据处理方法、电子设备和可读存储介质
CN115988265A (zh) 一种显示画面的渲染方法、装置和终端设备
US20100085367A1 (en) Graphics processing method and apparatus implementing window system
CN110347463B (zh) 图像处理方法、相关设备及计算机存储介质
CN112100409A (zh) 多媒体信息显示方法及装置、存储介质、终端
CN115586893A (zh) 一种跨平台软件开发系统及方法
CN115826898B (zh) 一种跨屏显示方法、系统、装置、设备及存储介质
US20230169622A1 (en) Image processing

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