CN114237532A - 基于Linux嵌入式***的多窗口实现方法、装置及介质 - Google Patents

基于Linux嵌入式***的多窗口实现方法、装置及介质 Download PDF

Info

Publication number
CN114237532A
CN114237532A CN202111448378.4A CN202111448378A CN114237532A CN 114237532 A CN114237532 A CN 114237532A CN 202111448378 A CN202111448378 A CN 202111448378A CN 114237532 A CN114237532 A CN 114237532A
Authority
CN
China
Prior art keywords
thread
window
variable
display
rendering
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
CN202111448378.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.)
Allwinner Technology Co Ltd
Original Assignee
Allwinner Technology 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 Allwinner Technology Co Ltd filed Critical Allwinner Technology Co Ltd
Priority to CN202111448378.4A priority Critical patent/CN114237532A/zh
Publication of CN114237532A publication Critical patent/CN114237532A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G06F3/1407General aspects irrespective of display type, e.g. determination of decimal point position, display with fixed or driving decimal point, suppression of non-significant zeros
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining

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)
  • Image Generation (AREA)

Abstract

本发明涉及一种基于Linux嵌入式***的多窗口实现方法、装置及介质的技术方案,包括:重构,对Linux嵌入式***的显示标准结构体进行重构;初始化,加载重构的OpenGL程序函数库,并执行初始化;多窗口实现,通过所述重构的OpenGL程序函数库中的多个函数,执行多窗口的窗口创建、帧缓存对象的创建、帧缓存对象的交换、窗口显示及窗口显示位置调整;同步线程处理,通过Vsync处理线程执行送显线程同步处理,以及,通过送显线程执行渲染线程的同步信号管理及帧缓存对象的管理。本发明的有益效果为:在不改变GPU厂商提供的OpenGLES库和OpenGLES应用的基础上,设计一套实现多窗口/多进程/多线程渲染的方法,提升了fbdev下的OpenGLES的渲染体验和灵活性。

Description

基于Linux嵌入式***的多窗口实现方法、装置及介质
技术领域
本发明涉及计算机领域,具体涉及了一种基于Linux嵌入式***的多窗口实现方法、装置及介质。
背景技术
在实际的GPU窗口***中,FBDEV是基本的Linux窗口***,但其单窗口的弊端导致操作***只能操作一个可视窗口,这意味着不能向Android、Wayland那样可以多个应用同时操作屏幕上的渲染,FBDEV下并没有一套多窗口***的实现,通常情况下实现需要FBO再复制到FBDEV的缓存上显示出来,在多进程的***中的同步非常繁琐。
现有的技术是在FBDEV下向帧缓存的缓存渲染,如果想多个进程使用GPU渲染或者其它图像产生者(如VE)需要显示,存在同帧缓存的竞争问题。
Linux帧缓存设备下OpenGLES的实现,只能支持单窗口输出渲染输出到帧缓存设备的帧缓存中,不能像Android和Wayland一样是多窗口渲染,不能很好的支持多进程/线程、存在窗口管理或屏幕的合成进程的操作***设计。
发明内容
本发明的目的在于至少解决现有技术中存在的技术问题之一,提供了一种基于Linux嵌入式***的多窗口实现方法、装置及介质,本发明技术方案在不改变原有GPU厂商的代码下,通过封装库结合IC显示驱动的特点,实现了OpenGLES FBDEV下的多线程、多进程的多窗口***方案。
本发明的技术方案包括一种基于Linux嵌入式***的多窗口实现方法,其特征在于,该方法包括:重构,对Linux嵌入式***的显示标准结构体进行重构,经过重构的标准结构体用于对EGL接口变量、线程变量及GPU线程管理变量进行描述;初始化,加载重构的OpenGL程序函数库和对外API函数库,并执行初始化;多窗口实现,通过所述重构的OpenGL程序函数库中的多个函数,执行多窗口的窗口创建、帧缓存对象的创建、帧缓存对象的交换、窗口显示及窗口显示位置调整;同步线程处理,通过Vsync处理线程执行送显线程同步处理,以及,通过送显线程执行渲染线程的同步信号管理及帧缓存对象的管理。
根据所述的基于Linux嵌入式***的多窗口实现方法,其中重构包括:对OpenGLES/EGL的API函数进行重构,其中所述EGL接口变量包括离屏缓冲区变量及显示资源变量,离屏缓冲区变量及显示资源变量分别用于表示外部EGLSurface及EGLDisplay的数据类型,所述线程变量用于表示每个线程拥有的变量,所述GPU线程管理变量用于表示原生GPU厂商的OpenGLES/EGL原生变量。
根据所述的基于Linux嵌入式***的多窗口实现方法,其中初始化包括:启动渲染程序执行数据加载,包括对原生OpenGLES/EGL的库装载,并通过所述重构对标准OpenGLES/EGL API函数进行函数重构;启动Vsync处理线程,对窗口的生产者与消费者进行同步。
根据所述的基于Linux嵌入式***的多窗口实现方法,其中多窗口实现包括:所述窗口创建通过eglCreateWindowSurface函数创建离屏渲染对象,初始化所述离屏缓冲区变量及初始化消费者硬件层,以及,在同一进程或多个进程创建至少一个窗口,且多个窗口之间不互相影响;所述帧缓存对象的创建通过eglMakeCurrent函数申请与帧缓存对象数量的缓存,并创建对应数量的帧缓存对象,对对应的所述离屏缓冲区变量进行初始化,并创建线程变量用于保存必要的线程变量数据;所述帧缓存对象的交换通过eglSwapBuffers交换所述离屏缓冲区变量中的帧缓存对象,将渲染操作绘制到帧缓存对象中,并创建sync信号,提交到送显线程,获取并绑定新的帧缓存对象;所述窗口显示通过glBindFramebuffer函数对应用程序绑定帧缓存对象依次执行获取线程前后文变量、获取离屏缓冲窗口、获取写入函数的帧缓存对象、执行绑定;所述窗口显示位置调整通过eglSetSurfaceExt函数将不同的窗口放置到消费者的不同通道和层中。
根据所述的基于Linux嵌入式***的多窗口实现方法,其中多窗口实现还包括:通过eglGetDisplay指定窗口显示于对应的消费者,若消费者为第一次获取,将会创建对应消费者的送显线程。
根据所述的基于Linux嵌入式***的多窗口实现方法,其中Vsync处理线程包括:控制送显线程执行平滑送帧;对用于同步窗口的循环使用的缓存进行归还处理;以及对需要vsync信号的应用发出渲染节拍。
根据所述的基于Linux嵌入式***的多窗口实现方法,其中送显线程包括:同一个vsync周期限制送显一帧画面;同步渲染线程的sync信号管理;基于消费者角度对帧缓存对象的多缓存消费进行协调。
根据所述的基于Linux嵌入式***的多窗口实现方法,其中该方法还包括对受影响的API函数进行消除副作用处理。
本发明的技术方案还包括一种基于Linux嵌入式***的多窗口实现装置,该装置包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现上述任一项的方法步骤。
本发明的技术方案还包括一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现任一所述的方法步骤。
本发明的有益效果为:在不改变GPU厂商提供的OpenGLES库和OpenGLES应用的基础上,设计一套实现多窗口/多进程/多线程渲染的方法,提升了fbdev下的OpenGLES的渲染体验和灵活性。
附图说明
下面结合附图和实施例对本发明进一步地说明;
图1所示为根据本发明实施方式的总体流程图。
图2所示为根据本发明实施方式的库初始流程图。
图3所示为根据本发明实施方式的交换缓冲流程图。
图4所示为根据本发明实施方式的帧缓存对象绑定流程图。
图5所示为根据本发明实施方式的Vsync处理线程工作流程图。
图6所示为根据本发明实施方式的送显线程工作流程图。
图7所示为根据本发明实施方式的装置图。
具体实施方式
本部分将详细描述本发明的具体实施例,本发明之较佳实施例在附图中示出,附图的作用在于用图形补充说明书文字部分的描述,使人能够直观地、形象地理解本发明的每个技术特征和整体技术方案,但其不能理解为对本发明保护范围的限制。
在本发明的描述中,若干的含义是一个或者多个,多个的含义是两个以上,大于、小于、超过等理解为不包括本数,以上、以下、以内等理解为包括本数。
在本发明的描述中,对方法步骤的连续标号是为了方便审查和理解,结合本发明的整体技术方案以及各个步骤之间的逻辑关系,调整步骤之间的实施顺序并不会影响本发明技术方案所达到的技术效果。
本发明的描述中,除非另有明确的限定,设置等词语应做广义理解,所属技术领域技术人员可以结合技术方案的具体内容合理确定上述词语在本发明中的具体含义。
图1所示为根据本发明实施方式的总体流程图。该实施例的流程如下:重构,对Linux嵌入式***的显示标准结构体进行重构,经过重构的标准结构体用于对EGL接口变量、线程变量及GPU线程管理变量进行描述;初始化,加载重构的OpenGL程序函数库,并执行初始化;多窗口实现,通过重构的OpenGL程序函数库中的多个函数,执行多窗口的窗口创建、帧缓存对象的创建、帧缓存对象的交换、窗口显示及窗口显示位置调整;同步线程处理,通过Vsync处理线程执行送显线程同步处理,以及,通过送显线程执行渲染线程的同步信号管理及帧缓存对象的管理。
本发明的实施方式对部分Kronos标准结构体进行了从新定义,用于记录本发明的实施方式需要使用的一些信息,主要的结构体定义如下:
a)aw_surface_t:对该库的外部为EGLSurface(EGL分配的离屏缓冲区)类型
Figure BDA0003382535520000051
表1 aw_surface_t的成员变量
表1中n=FBO_NUM
b)aw_display_resoure:对应于外部为EGLDisplay类型
变量 类型 作用
s_list 双向链表 用于保存该display下的surface变量
id EGLDisplay 原生Kronos的display结构体
R_mCond 条件等待 用于通知显示线程新的渲染buffer生成
V_mCond 条件等待 用于vsync线程通知vsync事件
表2 aw_display_resoure的变量构成
c)线程变量结构体thread_context,该变量为每个线程拥的线程变量,用于实现多线程、多context的渲染,其中重要的数据如下表;
变量 类型 作用
r_surface aw_surface_t 用于记录该线程下设置的读surface;
w_surface aw_surface_t 用于记录该线程下设置的写surface
Ctx EGLContext 用于记录Kronos标准的EGLContext变量
表3线程变量结构体thread_context变量
d)gpu_context_t
变量 类型 作用
egl EGL API函数指针数组 用于保存原生具体GPU厂商的API实现函数
gl GL API函数指针数组 用于保存原生具体GPU厂商的API实现函数
表4 gpu_context_t函数变量
图2所示为根据本发明实施方式的库初始流程图。结合图2,其概括为:
当正常的渲染程序加载aw_OpenGL.so后,需要处理一些特殊的事件,包括对原生OpenGLES/EGL的库装载,并且重构其中的标准OpenGLES/EGL API函数;启动Vsync处理线程,对产生副作用的OpenGLES/EGL的API重点重构。
基于本发明技术方案的部分重构的函数如下:
(1)eglCreateWindowSurface,该函数中主要是创建PbufferSurface,初始化部分aw_surface_t变量和对display硬件layer的部分初始化,并利用这种PbufferSurface机制实现多个surface的效果。
(2)eglMakeCurrent,该函数中的处理主要是申请FBO_NUM个buffer和创建FBO,并对aw_surface_t变量进行部分初始化,并创建线程变量用于保存必要的线程变量数据。
(3)eglSwapBuffers,用于交换aw_surface_t中的FBO,将此前的drawcall绘制到FBO中,并创建sync信号,提交到送显线程,获取并绑定新的FBO,过程中进行必要的等待,主要的流程参考图3:
(4)glBindFramebuffer,由于利用了FBO方式实现surface,由于Kronos规定名字为0的FBO为当前绑定的surface,Surface实际上是基于创建的FBO(名字为write_fbo所指定的那个FBO),故而需要对该函数做一些处理,其处理流程参考图4的流程。
(5)eglSetSurfaceExt,该拓展函数为了支持一个display下的多个surface的显示问题,该函数将不同的surface放置到display的不同channel和layer中,因此实现window manager的效果。
(6)eglGetDisplay,重构该函数,作用用于指定surface显示在哪个display的屏幕上,并且如果是第一次获取该display,将会创建该display的送显线程。
图5所示为根据本发明实施方式的Vsync处理线程工作流程图。其流程如下:
检测vsync线程是否存在事件,若存在则遍历display的配置,使得临时链表的c_read_fbo线程更新为所读取的read_fbo,唤醒对应的渲染线程(eglSwapBuffers)执行缓存交换和渲染,完成后通知送显线程一个vsync事件。
Vsync处理线程的作用包括:对送显线程起到平滑送帧作用,并保障同一个vsync周期只能送显一帧画面;内部起到同步surface的循环使用的buffer作用,避免渲染线程拿到正在显示的buffer,导致屏幕花屏;对关心vsync信号的应用发出渲染节拍,使得应用平滑渲染。
图6所示为根据本发明实施方式的送显线程工作流程图。其流程包括:
检测到显示链表中出现新的显示surface,将待显示的surface更新至临时链表,取临时链表中的surface,等待sync的信号signal,得到sync信号后提交到display,若read_fbo++后判断显示列表中是否还有数据,若有,则循环此流程直至所有数据送显完成。
送显线程主要用于送显,主要作用如下:平滑送显,保障每一帧能够平滑的显示在屏幕上;用于同步渲染线程的sync信号管理;从消费者角度管理FBO的多buffer的消费。
图7所示为根据本发明实施方式的装置图。装置包括存储器100及处理器200,其中处理器200存储有计算机程序,计算机程序用于执行:重构,对Linux嵌入式***的显示标准结构体进行重构,经过重构的标准结构体用于对EGL接口变量、线程变量及GPU线程管理变量进行描述;初始化,加载重构的OpenGL程序函数库,并执行初始化;多窗口实现,通过所述重构的OpenGL程序函数库中的多个函数,执行多窗口的窗口创建、帧缓存对象的创建、帧缓存对象的交换、窗口显示及窗口显示位置调整;同步线程处理,通过Vsync处理线程执行送显线程同步处理,以及,通过送显线程执行渲染线程的同步信号管理及帧缓存对象的管理。其中,存储器100用于存储数据。
应当认识到,本发明实施例中的方法步骤可以由计算机硬件、硬件和软件的组合、或者通过存储在非暂时性计算机可读存储器中的计算机指令来实现或实施。所述方法可以使用标准编程技术。每个程序可以以高级过程或面向对象的编程语言来实现以与计算机***通信。然而,若需要,该程序可以以汇编或机器语言实现。在任何情况下,该语言可以是编译或解释的语言。此外,为此目的该程序能够在编程的专用集成电路上运行。
此外,可按任何合适的顺序来执行本文描述的过程的操作,除非本文另外指示或以其他方式明显地与上下文矛盾。本文描述的过程(或变型和/或其组合)可在配置有可执行指令的一个或多个计算机***的控制下执行,并且可作为共同地在一个或多个处理器上执行的代码(例如,可执行指令、一个或多个计算机程序或一个或多个应用)、由硬件或其组合来实现。所述计算机程序包括可由一个或多个处理器执行的多个指令。
进一步,所述方法可以在可操作地连接至合适的任何类型的计算平台中实现,包括但不限于个人电脑、迷你计算机、主框架、工作站、网络或分布式计算环境、单独的或集成的计算机平台、或者与带电粒子工具或其它成像装置通信等等。本发明的各方面可以以存储在非暂时性存储介质或设备上的机器可读代码来实现,无论是可移动的还是集成至计算平台,如硬盘、光学读取和/或写入存储介质、RAM、ROM等,使得其可由可编程计算机读取,当存储介质或设备由计算机读取时可用于配置和操作计算机以执行在此所描述的过程。此外,机器可读代码,或其部分可以通过有线或无线网络传输。当此类媒体包括结合微处理器或其他数据处理器实现上文所述步骤的指令或程序时,本文所述的发明包括这些和其他不同类型的非暂时性计算机可读存储介质。当根据本发明所述的方法和技术编程时,本发明还包括计算机本身。
计算机程序能够应用于输入数据以执行本文所述的功能,从而转换输入数据以生成存储至非易失性存储器的输出数据。输出信息还可以应用于一个或多个输出设备如消费者。在本发明优选的实施例中,转换的数据表示物理和有形的对象,包括消费者上产生的物理和有形对象的特定视觉描绘。
上面结合附图对本发明实施例作了详细说明,但是本发明不限于上述实施例,在技术领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下做出各种变化。

Claims (10)

1.一种基于Linux嵌入式***的多窗口实现方法,其特征在于,该方法包括:
重构,对Linux嵌入式***的显示标准结构体进行重构,经过重构的标准结构体用于对EGL接口变量、线程变量及GPU线程管理变量进行描述;
初始化,加载重构的OpenGL程序函数库和对外API函数库,并执行初始化;
多窗口实现,通过所述重构的OpenGL程序函数库中的多个函数,执行多窗口的窗口创建、帧缓存对象的创建、帧缓存对象的交换、窗口显示及窗口显示位置调整;
同步线程处理,通过Vsync处理线程执行送显线程同步处理,以及,通过送显线程执行渲染线程的同步信号管理及帧缓存对象的管理。
2.根据权利要求1所述的基于Linux嵌入式***的多窗口实现方法,其特征在于,所述重构包括:
对OpenGLES/EGL的API函数进行重构,其中所述EGL接口变量包括离屏缓冲区变量及显示资源变量,离屏缓冲区变量及显示资源变量分别用于表示外部EGLSurface及EGLDisplay的数据类型,所述线程变量用于表示每个线程拥有的变量,所述GPU线程管理变量用于表示原生GPU厂商的OpenGLES/EGL原生变量。
3.根据权利要求2所述的基于Linux嵌入式***的多窗口实现方法,其特征在于,所述初始化包括:
启动渲染程序执行数据加载,包括对原生OpenGLES/EGL的库装载,并通过所述重构对标准OpenGLES/EGL API函数进行函数重构;
启动Vsync处理线程,对窗口的生产者与消费者进行同步。
4.根据权利要求1所述的基于Linux嵌入式***的多窗口实现方法,其特征在于,所述多窗口实现包括:
所述窗口创建通过eglCreateWindowSurface函数创建离屏渲染对象,初始化所述离屏缓冲区变量及初始化消费者硬件层,以及,在同一进程或多个进程创建至少一个窗口,且多个窗口之间不互相影响;
所述帧缓存对象的创建通过eglMakeCurrent函数申请与帧缓存对象数量的缓存,并创建对应数量的帧缓存对象,对对应的所述离屏缓冲区变量进行初始化,并创建线程变量用于保存必要的线程变量数据;
所述帧缓存对象的交换通过eglSwapBuffers交换所述离屏缓冲区变量中的帧缓存对象,将渲染操作绘制到帧缓存对象中,并创建sync信号,提交到送显线程,获取并绑定新的帧缓存对象;
所述窗口显示通过glBindFramebuffer函数对应用程序绑定帧缓存对象依次执行获取线程前后文变量、获取离屏缓冲窗口、获取写入函数的帧缓存对象、执行绑定;
所述窗口显示位置调整通过eglSetSurfaceExt函数将不同的窗口放置到消费者的不同通道和层中。
5.根据权利要求4所述的基于Linux嵌入式***的多窗口实现方法,其特征在于,所述多窗口实现还包括:
通过eglGetDisplay指定窗口显示于对应的屏幕,若屏幕为第一次获取,将会创建对应屏幕的送显线程。
6.根据权利要求1所述的基于Linux嵌入式***的多窗口实现方法,其特征在于,所述Vsync处理线程包括:
对送显线程执行平滑送帧,并对同一个vsync周期限制送显一帧画面;
对用于同步窗口的循环使用的缓存进行归还处理;以及对需要vsync信号的应用发出渲染节拍。
7.根据权利要求1所述的基于Linux嵌入式***的多窗口实现方法,其特征在于,所述送显线程包括:同一个vsync周期限制送显一帧画面;同步渲染线程的sync信号管理;基于消费者角度对帧缓存对象的多缓存消费进行协调。
8.根据权利要求1所述的基于Linux嵌入式***的多窗口实现方法,其特征在于,所述该方法还包括对受影响的API函数进行消除副作用处理。
9.一种基于Linux嵌入式***的多窗口实现装置,该装置包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至8任一项所述的方法步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-8任一所述的方法步骤。
CN202111448378.4A 2021-11-30 2021-11-30 基于Linux嵌入式***的多窗口实现方法、装置及介质 Pending CN114237532A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111448378.4A CN114237532A (zh) 2021-11-30 2021-11-30 基于Linux嵌入式***的多窗口实现方法、装置及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111448378.4A CN114237532A (zh) 2021-11-30 2021-11-30 基于Linux嵌入式***的多窗口实现方法、装置及介质

Publications (1)

Publication Number Publication Date
CN114237532A true CN114237532A (zh) 2022-03-25

Family

ID=80752367

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111448378.4A Pending CN114237532A (zh) 2021-11-30 2021-11-30 基于Linux嵌入式***的多窗口实现方法、装置及介质

Country Status (1)

Country Link
CN (1) CN114237532A (zh)

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图形显示环境下管理显示缓存的方法及***
CN115361579A (zh) * 2022-07-28 2022-11-18 珠海全志科技股份有限公司 视频送显方法、装置、电子设备及存储介质
CN116302579A (zh) * 2023-05-25 2023-06-23 智成时空(西安)创新科技有限公司 面向Web端的时空大数据高效加载渲染方法及***

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103336816A (zh) * 2013-06-28 2013-10-02 广州市动景计算机科技有限公司 安卓***上基于GPU实现的Canvas元素渲染方法及装置
US20160323143A1 (en) * 2015-05-02 2016-11-03 Hyeung-Yun Kim Method and apparatus for neuroplastic internet of things by cloud computing infrastructure as a service incorporating reconfigurable hardware
CN106227594A (zh) * 2016-07-11 2016-12-14 中国人民解放军国防科学技术大学 一种基于分屏的多核cpu帧缓存显示优化方法
CN107291559A (zh) * 2017-06-30 2017-10-24 武汉斗鱼网络科技有限公司 一种控制cpu线程和gpu线程同步的方法及装置
CN108594844A (zh) * 2018-03-16 2018-09-28 深圳供电局有限公司 一种基于嵌入式Linux多进程编程的无人机自主避障***
CN108647368A (zh) * 2018-03-13 2018-10-12 北京航空航天大学 基于fpga的动态部分重构***及方法
CN109522000A (zh) * 2018-09-15 2019-03-26 谢琥 基于Linux的嵌入式GUI***及计算机程序产品
CN111179369A (zh) * 2019-12-27 2020-05-19 珠海全志科技股份有限公司 一种基于安卓***的gpu渲染方法及装置

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103336816A (zh) * 2013-06-28 2013-10-02 广州市动景计算机科技有限公司 安卓***上基于GPU实现的Canvas元素渲染方法及装置
US20160323143A1 (en) * 2015-05-02 2016-11-03 Hyeung-Yun Kim Method and apparatus for neuroplastic internet of things by cloud computing infrastructure as a service incorporating reconfigurable hardware
CN106227594A (zh) * 2016-07-11 2016-12-14 中国人民解放军国防科学技术大学 一种基于分屏的多核cpu帧缓存显示优化方法
CN107291559A (zh) * 2017-06-30 2017-10-24 武汉斗鱼网络科技有限公司 一种控制cpu线程和gpu线程同步的方法及装置
CN108647368A (zh) * 2018-03-13 2018-10-12 北京航空航天大学 基于fpga的动态部分重构***及方法
CN108594844A (zh) * 2018-03-16 2018-09-28 深圳供电局有限公司 一种基于嵌入式Linux多进程编程的无人机自主避障***
CN109522000A (zh) * 2018-09-15 2019-03-26 谢琥 基于Linux的嵌入式GUI***及计算机程序产品
CN111179369A (zh) * 2019-12-27 2020-05-19 珠海全志科技股份有限公司 一种基于安卓***的gpu渲染方法及装置

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115361579A (zh) * 2022-07-28 2022-11-18 珠海全志科技股份有限公司 视频送显方法、装置、电子设备及存储介质
CN115131488A (zh) * 2022-08-31 2022-09-30 麒麟软件有限公司 wayland图形显示环境下管理显示缓存的方法及***
CN115131488B (zh) * 2022-08-31 2022-11-29 麒麟软件有限公司 wayland图形显示环境下管理显示缓存的方法及***
CN116302579A (zh) * 2023-05-25 2023-06-23 智成时空(西安)创新科技有限公司 面向Web端的时空大数据高效加载渲染方法及***
CN116302579B (zh) * 2023-05-25 2023-08-04 智成时空(西安)创新科技有限公司 面向Web端的时空大数据高效加载渲染方法及***

Similar Documents

Publication Publication Date Title
CN114237532A (zh) 基于Linux嵌入式***的多窗口实现方法、装置及介质
US11487644B2 (en) Graphics processing unit application execution control
US10949944B2 (en) System and method for unified application programming interface and model
CN113791667B (zh) 通过使用欺骗时钟及细粒度频率控制实现的向后兼容性
TWI406185B (zh) 使用可程式硬體之即時顯示後處理
US7903120B2 (en) Method and system for synchronizing parallel engines in a graphics processing unit
US9292414B2 (en) System, method, and computer program product for debugging graphics programs locally utilizing a system with a single GPU
US8878833B2 (en) Systems, methods, and apparatus for recording of graphical display
CN107515759B (zh) 截屏方法、装置、电子设备及可读存储介质
EP3111318B1 (en) Cross-platform rendering engine
CN109213607B (zh) 一种多线程渲染的方法和装置
US11467717B2 (en) Optimizing window resize actions for remoted applications
US10803547B2 (en) Graphics processing systems using a subset of pipeline stages
CN111651079A (zh) 书写笔迹显示方法、装置、设备及计算机存储介质
US6952217B1 (en) Graphics processing unit self-programming
CN111080761A (zh) 一种渲染任务的调度方法、装置及计算机存储介质
CN111542872A (zh) 任意块渲染和显示帧重构
US8237725B1 (en) Vertex cache map mode for per-vertex state changes
KR101399473B1 (ko) 다중 프로세싱을 이용한 렌더링 처리 장치 및 방법
CN110730976B (zh) 用于与图形处理单元交接的基于交易的显示流水线的方法和***
CN112581575A (zh) 一种外视频做纹理***
US9159160B1 (en) Texture sharing between application modules
JP2009301473A (ja) ウィンドウ表示装置、ウィンドウ表示方法、ウィンドウ表示プログラム、ウィンドウ表示プログラムを記録した記録媒体、ウィンドウ表示集積回路

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