CN112988103A - 一种数据显示方法及计算设备 - Google Patents
一种数据显示方法及计算设备 Download PDFInfo
- Publication number
- CN112988103A CN112988103A CN202110520486.1A CN202110520486A CN112988103A CN 112988103 A CN112988103 A CN 112988103A CN 202110520486 A CN202110520486 A CN 202110520486A CN 112988103 A CN112988103 A CN 112988103A
- Authority
- CN
- China
- Prior art keywords
- window
- video memory
- data
- mapped
- display
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 62
- 238000013507 mapping Methods 0.000 claims abstract description 17
- 230000006870 function Effects 0.000 claims description 22
- 238000009877 rendering Methods 0.000 claims description 2
- 239000003607 modifier Substances 0.000 abstract description 39
- 238000004891 communication Methods 0.000 description 16
- 238000010586 diagram Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 6
- 238000012545 processing Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 230000007723 transport mechanism Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000011295 pitch Substances 0.000 description 1
Images
Classifications
-
- 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/1423—Digital output to display device ; Cooperation and interconnection of the display device with other functional units controlling a plurality of local displays, e.g. CRT and flat panel display
-
- 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
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
本发明公开了一种数据显示方法及计算设备,方法包括步骤:获取GPU支持的显存数据格式和显存数据排列方式,其中,显存数据排列方式为显存块排列方式,从第一帧缓存中读取当前帧图像数据,通过窗口管理器、以已获取的显存数据格式和显存数据排列方式创建窗口,作为第一窗口,将当前帧图像数据映射至所述第一窗口,保存已映射的第一窗口至第二帧缓存中,从第二帧缓存读取已映射的所述第一窗口,发送至显示器,通过显示器显示已映射的第一窗口。从而通过KWIN窗口管理器创建的窗口是以GPU所支持的formats和modifiers创建的,能够以modifiers所对应的缓存块形式读取帧缓存,提高数据显示效率。
Description
技术领域
本发明涉及数据显示技术领域,特别涉及一种数据显示方法、计算设备及储存介质。
背景技术
Linux操作系统对应多个桌面环境,常用的包括GNOME和KDE桌面环境,桌面环境中包括窗口管理器,例如KDE桌面环境包括的窗口管理器KWIN,窗口管理器主要负责移动窗口、改变窗口大小、图标化(最小化)窗口和改变窗口层叠顺序等工作。
在KDE桌面环境的KWIN窗口管理器环境下,显示图像数据的过程如下:预先配置窗口(窗口即绘制表面surface)显示位置、窗口的宽、高和深度等数据,并基于已配置数据创建窗口,将帧缓存中的图像数据(图像数据为已经过图形处理器(Graphics ProcessingUnit,GPU)处理的数据)绘制至已创建的窗口,并将绘制后的窗口保存至帧缓存,之后从帧缓存中读取绘制后的窗口,并发送至显示器显示,从而显示帧缓存中的图像数据。但是,在KWIN窗口管理器环境下,帧缓存中的图像数据是以像素为单位存储的,即每一像素对应一个内存地址。需要线性读取图像数据的每一像素,即一次读取图像数据的一个像素,读取效率低,从而导致KWIN窗口管理器显示性能低下。
为此,本发明提供了一种提高KWIN窗口管理器显示性能的数据显示方法。
发明内容
为此,本发明提供一种数据显示方法,以力图解决或者至少缓解上面存在的问题。
根据本发明的一个方面,提供了一种数据显示方法,在计算设备中执行,方法包括步骤:
获取GPU支持的显存数据格式和显存数据排列方式,其中,显存数据排列方式为显存块排列方式;
从第一帧缓存中读取当前帧图像数据,其中,当前帧图像数据是根据已获取的显存数据格式和显存数据排列方式排列的,图像数据为经过GPU处理的数据;
通过窗口管理器、以已获取的显存数据格式和显存数据排列方式创建窗口,作为第一窗口;
将当前帧图像数据映射至所述第一窗口;
保存已映射的第一窗口至第二帧缓存中;
从第二帧缓存读取已映射的所述第一窗口,发送至显示器;
通过显示器显示已映射的第一窗口。
可选地,还包括步骤:
判断窗口管理器中支持已获取的数据格式和数据排列方式的功能是否开启,若是,则执行通过窗口管理器、以已获取的显存数据格式和显存数据排列方式创建窗口的步骤;
若否,则根据预设的显示数据创建窗口,将已读取的当前帧图像数据映射至第二窗口,通过显示器显示已映射的第二窗口。
可选地,根据预设的显示数据创建窗口,将已读取的所述当前帧图像数据映射至第二窗口,通过显示器显示已映射的第二窗口的步骤包括:
通过窗口管理器、以预设的显示数据创建所述第二窗口,其中,显示数据包括第二窗口的显示位置、第二窗口的宽、高和深度;
将已读取的当前帧图像数据映射至第二窗口;
保存已映射的第二窗口至第二帧缓存;
从第二帧缓存中读取已映射的第二窗口,发送至显示器;
通过显示器显示已映射的第二窗口。
可选地,保存已映射的第一窗口至第二帧缓存中的步骤包括:
基于已获取的显存数据格式和显存数据排列方式保存已映射的第一窗口至第二帧缓存中。
可选地,从第二帧缓存读取已映射的第一窗口的步骤包括:
基于已获取的显存数据格式和显存数据排列方式从第二帧缓存读取已映射的第一窗口。
可选地,还包括步骤:
查找GPU中待处理数据;
通过GPU、以已获取的显存数据格式和显存数据排列方式渲染已查找到的待处理数据,得到图像数据;
存储图像数据至所述第一帧缓存中。
可选地,窗口管理器为Kwin窗口管理器。
可选地,GPU为Mali型号的GPU。
根据本发明的一个方面,提供了一种计算设备,包括:至少一个处理器;以及存储器,存储有程序指令,其中,所述程序指令被配置为适于由所述至少一个处理器执行,所述程序指令包括用于执行如上所述方法的指令。
根据本发明的一个方面,提供了一种存储有程序指令的可读存储介质,当所述程序指令被计算设备读取并执行时,使得所述计算设备执行如上所述方法。
根据本发明的技术方案,提供了一种可提高KWIN窗口管理器显示效率的数据显示方法。该方法中,在KWIN窗口管理器环境下,能够实现以GPU所支持的显存数据格式(formats)和显存块排列方式(modifiers)创建帧缓存,以在KWIN窗口管理器环境下方便访问同一像素相邻的上下左右的像素,以显存块方式访问帧缓存,提高访问效率,从而提高数据显示效率。其次,通过KWIN窗口管理器创建的窗口是以GPU所支持的formats和modifiers创建的,使得创建的窗口支持以显存块的形式(支持一次读取图像数据的多个像素)映射当前帧图像数据,从而提高映射效率。并且在本方法中,KWIN窗口管理器还支持以formats和modifiers保存和读取已映射窗口,相比于线性方式(一次读取图像数据的一个像素),可提高保存和读取已映射窗口的效率。因此,通过本发明提供的数据显示方法,在KWIN窗口管理器环境下,能够进一步提高数据显示效率。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
为了实现上述以及相关目的,本文结合下面的描述和附图来描述某些说明性方面,这些方面指示了可以实践本文所公开的原理的各种方式,并且所有方面及其等效方面旨在落入所要求保护的主题的范围内。通过结合附图阅读下面的详细描述,本公开的上述以及其它目的、特征和优势将变得更加明显。遍及本公开,相同的附图标记通常指代相同的部件或元素。
图1示出了根据本发明一个实施例的计算设备100的示意图;
图2示出了根据本发明一个实施例的数据显示方法200的流程图;
图3示出了根据本发明一个实施例的显存块的水平排列方式示意图;以及
图4示出了根据本发明一个实施例的显存块的垂直排列方式示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
Linux操作系统对应多个桌面环境,常用的包括GNOME和KDE桌面环境,桌面环境中包括窗口管理器,窗口管理器可以通过渲染器合成图像数据到一个帧缓存Framebuffer中,以便显示器可以直接显示该帧缓存中的图像数据。其中,渲染器可以通过GPU提供的开放图形库(Open Graphics Library,OpenGL)实现图像数据的渲染。
例如,KDE桌面环境包括的窗口管理器KWIN,窗口管理器主要负责移动窗口、改变窗口大小、最小化窗口和改变窗口层叠顺序等工作,窗口是屏幕上的一个矩形区域,窗口管理器是这些矩形区域的管理者,它控制窗口的外表、位置和提供用户去操作这些窗口的方法。显示器显示的任何内容都包含在窗口中,窗口可以为任何尺寸,并且可在屏幕上一次显示多个窗口,甚至可以部分或整个窗口显示在其他窗口的前面。
在KDE桌面环境的KWIN窗口管理器环境下,预先配置窗口显示位置、窗口的宽、高和深度等数据,并基于已配置数据创建窗口,并将帧缓存中的图像数据(图像数据为已经过GPU处理的数据)绘制至已创建的窗口,并将绘制后的窗口保存至帧缓存,之后从帧缓存中读取绘制后的窗口,并发送至显示器显示,从而显示帧缓存中的图像数据。但是,目前在KWIN窗口管理器环境下,帧缓存中的图像数据是以像素为单位存储的,即每一像素对应一个内存地址。若要获取图像数据,需要线性读取图像数据的每一像素,即需要逐一访问像素指针,因而在读取图像数据、映射图像数据至窗口中、保存和读取已映射窗口的过程中均是以线性方式(支持一次读取图像数据的一个像素)实现的,映射窗口、保存和读取已映射窗口所需时间长,从而导致KWIN窗口管理器显示效率低下。
为了解决上述问题,本发明提出了一种可提高KWIN窗口管理器显示效率的数据显示方法。该方法中,在KWIN窗口管理器环境下,能够实现以GPU所支持的显存数据格式(formats)和显存块排列方式(modifiers)创建帧缓存,以在KWIN窗口管理器环境下方便访问同一像素相邻的上下左右的像素,以显存块方式访问帧缓存,提高访问帧缓存的效率。
其次,通过KWIN窗口管理器创建的窗口是以GPU所支持的formats和modifiers创建的,使得创建的窗口支持以显存块的形式(支持一次读取图像数据的多个像素)映射当前帧图像数据,从而提高映射效率。并且在本方法中,KWIN窗口管理器还支持以formats和modifiers形式保存和读取已映射窗口,相比于线性方式(一次读取图像数据的一个像素),可提高保存和读取已映射窗口的效率。
综上所述,通过本发明提供的数据显示方法,在KWIN窗口管理器环境下,能够提高数据显示效率。
本发明提供的数据显示方法在计算设备中执行,在一个实施例中,图1示出了根据本发明一个实施例的计算设备100的结构图。计算设备100的框图如图1所示,在基本配置102中,计算设备100典型地包括系统存储器106和一个或者多个处理器104。存储器总线108可以用于在处理器104和系统存储器106之间的通信。
取决于期望的配置,处理器104可以是任何类型的处理,包括但不限于:微处理器(µP)、微控制器(µC)、数字信息处理器(DSP)或者它们的任何组合。处理器104可以包括诸如一级高速缓存110和二级高速缓存112之类的一个或者多个级别的高速缓存、处理器核心114和寄存器116。示例的处理器核心114可以包括运算逻辑单元(ALU)、浮点数单元(FPU)、数字信号处理核心(DSP核心)或者它们的任何组合。示例的存储器控制器118可以与处理器104一起使用,或者在一些实现中,存储器控制器118可以是处理器104的一个内部部分。
取决于期望的配置,系统存储器106可以是任意类型的存储器,包括但不限于:易失性存储器(诸如RAM)、非易失性存储器(诸如ROM、闪存等)或者它们的任何组合。系统存储器106可以包括操作系统120、一个或者多个应用122以及程序数据124。在一些实施方式中,应用122可以布置为在操作系统上利用程序数据124进行操作。程序数据124包括指令,在根据本发明的计算设备100中,程序数据124包含用于执行数据显示方法200的指令。
计算设备100还包括储存设备132,储存设备132包括可移除储存器136和不可移除储存器138,可移除储存器136和不可移除储存器138均与储存接口总线134连接。本发明中,程序执行过程中发生的各事件的相关数据和指示各事件发生的时间信息,可存储于储存设备132中,操作系统120适于管理储存设备132。其中,储存设备132可为磁盘。
计算设备100还可以包括有助于从各种接口设备(例如,输出设备142、外设接口144和通信设备146)到基本配置102经由总线/接口控制器130的通信的接口总线140。示例的输出设备142包括图形处理单元148和音频处理单元150。它们可以被配置为有助于经由一个或者多个A/V端口152与诸如显示器或者扬声器之类的各种外部设备进行通信。示例外设接口144可以包括串行接口控制器154和并行接口控制器156,它们可以被配置为有助于经由一个或者多个I/O端口158和诸如输入设备(例如,键盘、鼠标、笔、语音输入设备、触摸输入设备)或者其他外设(例如打印机、扫描仪等)之类的外部设备进行通信。示例的通信设备146可以包括网络控制器160,其可以被布置为便于经由一个或者多个通信端口164与一个或者多个其他计算设备162通过网络通信链路的通信。
网络通信链路可以是通信介质的一个示例。通信介质通常可以体现为在诸如载波或者其他传输机制之类的调制数据信号中的计算机可读指令、数据结构、程序模块,并且可以包括任何信息递送介质。“调制数据信号”可以这样的信号,它的数据集中的一个或者多个或者它的改变可以在信号中编码信息的方式进行。作为非限制性的示例,通信介质可以包括诸如有线网络或者专线网络之类的有线介质,以及诸如声音、射频(RF)、微波、红外(IR)或者其它无线介质在内的各种无线介质。这里使用的术语计算机可读介质可以包括存储介质和通信介质二者。
计算设备100可以实现为服务器,例如文件服务器、数据库服务器、应用程序服务器和WEB服务器等,也可以实现为小尺寸便携(或者移动)电子设备的一部分,这些电子设备可以是诸如蜂窝电话、个人数字助理(PDA)、个人媒体播放器设备、无线网络浏览设备、个人头戴设备、应用专用设备、或者可以包括上面任何功能的混合设备。计算设备100还可以实现为包括桌面计算机和笔记本计算机配置的个人计算机。在一些实施例中,计算设备100的操作系统120被配置为执行根据本发明的一种数据显示方法200。
图2示出了根据本发明一个实施例的数据显示方法200的流程图。方法200适于在计算设备100(例如前述计算设备100)中执行,计算设备的操作系统对应KDE桌面环境,而KDE桌面环境包括KWIN窗口管理器。如图2所示,数据显示方法200始于步骤S210。
在执行步骤S210中,获取GPU支持的显存数据格式和显存数据排列方式。其中,由于不同的GPU支持的显存数据格式和显存数据排列方式会有所差别,本发明对此不做具体限定。下面以mali型号的GPU(mali显卡)所支持的一个显存数据格式(formats)和该显存数据格式对应的一个显存数据排列方式(modifiers)为例进行说明:
formats为RGBA8888,其中,RGBA8888中的RGBA分别占8bit,一个字节,每个像素对应四个通道数据,本示例示出的是第一个通道为R通道,占一个字节,第二个通道为G通道,占一个字节,第三个通道为R通道,占一个字节,第四个通道为A(透明度)通道,占一个字节。上述formats对应的一个modifiers为AFBC_FORMAT_MOD_TILED(),其中函数中的TILED为modifiers,表示显存数据以显存块形式排列。
在本发明中显存数据排列方式为显存块排列方式,显存块排列方式即为像素块排列方式,像素块排列方式是将多个像素组成的像素块存储于一个内存地址中,这样在访问一个指针时即可访问多个像素,也可访问某一像素的上下左右相邻像素,提高对图像数据的访问速度。例如显存块大小为32像素、32x8像素,当然,本发明对此不做限定。另需要说明的是,显存块的大小、数量需要根据实际应用场景预先配置,本发明对此不做限制,例如,本发明中的显存块大小可为4k,显存块数量为32x8。
在一个实施方式中,modifiers包括显存块的水平排列和显存块的垂直排列。如图3所示,图3为显存块的水平排列方式示意图,图3中每一显存块大小为4k、图像数据包括8x32(8表示行,32表示列)个显存块,图3中的OW为显存块的统称,0至255表示像素编号,可以看出每一显存块包括32个像素,该图像数据共包括8行32列。另外,如图4所示,图4为显存块的垂直排列方式示意图,图4中每一显存块大小为4k、图像数据包括32x8(8表示列,32表示行)个显存块,图4中的OW同样为显存块的统称,0至255同样表示像素编号,可以看出每一显存块包括32个像素,该图像数据共包括32行8列。
在一个实施方式中,同样以计算设备的GPU为华为的mali为例,那么获取GPU支持的formats和formats对应的modifiers的工作过程如下:
通过调用drm相关函数获取GPU所支持的formats和formats对应的modifiers,drm相关函数例如drmModeObjectGetProperties()函数、 drmModeGetProperty()函数、drmModeGetPropertyBlob()函数等。通过调用egl相关函数再次获取GPU所支持的formats和formats对应的modifiers,egl相关函数例如EGL_EXT_image_dma_buf_import()函数、EGL_EXT_image_dma_buf_import_modifiers()函数、EGL_EXT_image_dma_buf_import_modifiers()函数。并比较两次获取的formats和formats对应的modifiers是否相同,若相同,则将已获取的formats和formats对应的modifiers作为GPU所支持的formats和modifiers。
随后,判断窗口管理器(Kwin窗口管理器)中支持已获取的formats和formats对应的modifiers的功能是否开启,在一个实施方式中,判断窗口管理器的环境变量(KWIN_WAYLAND_MODIFIERS_SUPPORT)是否大于预设值,预设值可根据实际场景设置,例如预设值为1,那么当窗口管理器的环境变量是否大于1时,说明窗口管理器中支持已获取的数据格式和数据排列方式的功能已经开启,若窗口管理器的环境变量是否小于等于1时,说明窗口管理器中支持已获取的数据格式和数据排列方式的功能并未开启。
若窗口管理器中支持已获取的数据格式和数据排列方式的功能已经开启,则执行步骤S230,若窗口管理器中支持已获取的数据格式和数据排列方式的功能并未开启,则按照KWIN窗口管理器环境目前支持的线性方式(一次读取图像数据的一个像素)创建帧缓存、读取帧缓存并创建窗口,具体地:
根据预设的显示数据创建第二窗口,其中,显示数据包括第二窗口的显示位置、第二窗口的宽、高和深度,将已读取的当前帧图像数据(当前帧图像数据即帧缓存)映射至第二窗口,以线性方式保存已映射的第二窗口至第二帧缓存,并以线性方式从第二帧缓存中读取已映射的第二窗口,发送至显示器,通过显示器显示已映射的第二窗口。
以下为在KWIN窗口管理器环境下通过预设参数创建窗口的代码示例:
gbm_surface_create(struct gbm_device *gbm,
uint32_t width, uint32_t height,
uint32_t format, uint32_t flags);
其中,struct gbm_device *gbm 表示gbm指针、width代表窗口(surface)的宽、height代表窗口的高、format代表像素格式、flags表示指定修饰符(表示指定修饰符时,标志应为DRM_MODE_FB_MODIFIERS,否则为0)。
随后,在步骤S220,从第一帧缓存中读取当前帧图像数据(当前帧图像数据即帧缓存),具体地,查找GPU中待处理数据,通过GPU、以已获取的显存数据格式和显存数据排列方式渲染已查找到的待处理数据,得到图像数据,保存图像数据至第一帧缓存中。也就是说,本发明中的帧缓存也是根据GPU支持的modifiers创建的。
以下为本发明在KWIN窗口管理器环境下通过GPU支持的mofifiers创建帧缓存的代码示例:
int drmModeAddFB2WithModifiers(int fd, uint32_t width, uint32_theight,
uint32_t pixel_format, const uint32_t bo_handles[4],
const uint32_t pitches[4], const uint32_t offsets[4],
const uint64_t modifier[4], uint32_t *buf_id,
uint32_t flags);
上述代码中,fd表示打开的DRM设备的文件描述符,width表示帧缓存的宽(以像素为单位),height表示帧缓存的高(以像素为单位),pixel_format表示 bo_handle像素格式,bo_handles:表示四个用于缓冲区对象的句柄的数组(以提供内存支持,未使用的数组元素必须为NULL),pitches为包含缓存对象的间距(以字节为单位)的数组,offsets表示一个包含帧缓存对象的偏移量数组(以字节为单位),modifiers表示包含modifiers的数组(对于多平面格式,每个平面应具有相同的修改器值,可以使用IN_FORMATS平面属性获得受支持的修改器),buf_id表示如果成功创建帧缓存则接收创建的帧缓存的帧缓存ID,flags表示指定修饰符(表示指定修饰符时,标志应为DRM_MODE_FB_MODIFIERS,否则为0)。
接下来在步骤S230中,通过窗口管理器、以已获取的显存数据格式和显存数据排列方式创建窗口,作为第一窗口,例如,通过gbm_surface_create_with_modifiers()函数实现窗口管理器以已获取的显存数据格式和显存数据排列方式创建窗口,使得创建的窗口支持按照以已获取的显存块排列方式映射数据。
以下为本发明在KWIN窗口管理器环境下通过GPU支持的mofifiers创建窗口的代码示例:
gbm_surface_create_with_modifiers(struct gbm_device *gbm,
uint32_t width, uint32_t height,
uint32_t format,
const uint64_t *modifiers,
const unsigned int count);
上述代码中,gbm表示gbm指针,width表示要创建的窗口的宽,height表示 要创建的窗口的高,format:表示显示格式,modifiers表示modifiers指针,count表示modifiers的字节长度。
创建窗口后,在步骤S240中,将当前帧图像数据映射至第一窗口,由于创建的窗口支持按照以已获取的显存块排列方式映射数据,因此以显存块排列方式将当前帧图像数据映射至第一窗口,提高在KWIN窗口管理器环境下映射的效率。
随后在步骤S250中,保存已映射的第一窗口至第二帧缓存中,例如通过drmModeAddFB2WithModifiers()函数保存已映射的第一窗口至第二帧缓存中。以及在步骤S260中,从第二帧缓存读取已映射的第一窗口,发送至显示器。具体地,基于已获取的显存数据格式和显存数据排列方式保存已映射的第一窗口至第二帧缓存中,以及基于已获取的显存数据格式和显存数据排列方式从从第二帧缓存读取已映射的第一窗口,使得在KWIN窗口管理器环境下,创建的窗口支持以已获取的显存块排列方式保存和读取,提高保存和读取窗口的效率。最后在步骤S270中,通过显示器显示已映射的第一窗口,即通过显示区显示映射至第一窗口的图像数据。
本发明基于上述方法,实现了在KWIN窗口管理器环境下,支持图像数据以GPU支持的显存块排列方式(显存块排列方式即为modifiers)创建帧缓存,即,支持以GPU支持的显存块排列方式创建窗口,使得此窗口支持图像数据以显存块排列方进行映射,即一次映射图像数据的一个像素块(而不是已有技术中一次映射图像数据的一个像素),并且同样支持以GPU支持的显存块排列方式保存和读取已映射的窗口,从而在KWIN窗口管理器环境下,进一步提高数据显示效率,也即提高了KWIN窗口管理器环境下的数据显示性能。
这里描述的各种技术可结合硬件或软件,或者它们的组合一起实现。从而,本发明的方法和设备,或者本发明的方法和设备的某些方面或部分可采取嵌入有形媒介,例如可移动硬盘、U盘、软盘、CD-ROM或者其它任意机器可读的存储介质中的程序代码(即指令)的形式,其中当程序被载入诸如计算机之类的机器,并被所述机器执行时,所述机器变成实践本发明的设备。
在程序代码在可编程计算机上执行的情况下,计算设备一般包括处理器、处理器可读的存储介质(包括易失性和非易失性存储器和/或存储元件),至少一个输入装置,和至少一个输出装置。其中,存储器被配置用于存储程序代码;处理器被配置用于根据该存储器中存储的所述程序代码中的指令,执行本发明的数据显示方法。
以示例而非限制的方式,可读介质包括可读存储介质和通信介质。可读存储介质存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息。通信介质一般以诸如载波或其它传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其它数据,并且包括任何信息传递介质。以上的任一种的组合也包括在可读介质的范围之内。
在此处所提供的说明书中,算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与本发明的示例一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下被实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员应当理解在本文所公开的示例中的设备的模块或单元或组件可以布置在如该实施例中所描述的设备中,或者可替换地可以定位在与该示例中的设备不同的一个或多个设备中。前述示例中的模块可以组合为一个模块或者此外可以分成多个子模块。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
此外,所述实施例中的一些在此被描述成可以由计算机系统的处理器或者由执行所述功能的其它装置实施的方法或方法元素的组合。因此,具有用于实施所述方法或方法元素的必要指令的处理器形成用于实施该方法或方法元素的装置。此外,装置实施例的在此所述的元素是如下装置的例子:该装置用于实施由为了实施该发明的目的的元素所执行的功能。
如在此所使用的那样,除非另行规定,使用序数词“第一”、“第二”、“第三”等等来描述普通对象仅仅表示涉及类似对象的不同实例,并且并不意图暗示这样被描述的对象必须具有时间上、空间上、排序方面或者以任意其它方式的给定顺序。
尽管根据有限数量的实施例描述了本发明,但是受益于上面的描述,本技术领域内的技术人员明白,在由此描述的本发明的范围内,可以设想其它实施例。此外,应当注意,本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限定本发明的主题而选择的。因此,在不偏离所附权利要求书的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。对于本发明的范围,对本发明所做的公开是说明性的,而非限制性的,本发明的范围由所附权利要求书限定。
Claims (10)
1.一种数据显示方法,在计算设备中执行,所述方法包括步骤:
获取GPU支持的显存数据格式和显存数据排列方式,其中,所述显存数据排列方式为显存块排列方式;
从第一帧缓存中读取当前帧图像数据,其中,所述当前帧图像数据是根据已获取的显存数据格式和显存数据排列方式排列的,图像数据为经过GPU处理的数据;
通过窗口管理器、以已获取的显存数据格式和显存数据排列方式创建窗口,作为第一窗口;
将当前帧图像数据映射至所述第一窗口;
保存已映射的所述第一窗口至第二帧缓存中;
从所述第二帧缓存读取已映射的所述第一窗口,发送至显示器;
通过所述显示器显示已映射的所述第一窗口。
2.如权利要求1所述的方法,还包括步骤:
判断所述窗口管理器中支持已获取的数据格式和数据排列方式的功能是否开启,若是,则执行所述通过窗口管理器、以已获取的显存数据格式和显存数据排列方式创建窗口的步骤;
若否,则根据预设的显示数据创建窗口,将已读取的所述当前帧图像数据映射至第二窗口,通过所述显示器显示已映射的所述第二窗口。
3.如权利要求2所述的方法,其中,所述根据预设的显示数据创建窗口,将已读取的所述当前帧图像数据映射至所述第二窗口,通过所述显示器显示已映射的所述第二窗口的步骤包括:
通过窗口管理器、以预设的显示数据创建所述第二窗口,其中,所述预设的显示数据包括所述第二窗口的显示位置、所述第二窗口的宽、高和深度;
将已读取的所述当前帧图像数据映射至所述第二窗口;
保存已映射的所述第二窗口至所述第二帧缓存;
从所述第二帧缓存中读取已映射的所述第二窗口,发送至所述显示器;
通过所述显示器显示已映射的所述第二窗口。
4.如权利要求1至3中任一项所述的方法,其中,所述保存已映射的所述第一窗口至第二帧缓存中的步骤包括:
基于已获取的显存数据格式和显存数据排列方式保存已映射的所述第一窗口至第二帧缓存中。
5.如权利要求1所述的方法,其中,所述从所述第二帧缓存读取已映射的所述第一窗口的步骤包括:
基于已获取的显存数据格式和显存数据排列方式从所述第二帧缓存读取已映射的所述第一窗口。
6.如权利要求1所述的方法,还包括步骤:
查找GPU中待处理数据;
通过GPU、以已获取的显存数据格式和显存数据排列方式渲染已查找到的待处理数据,得到图像数据;
存储所述图像数据至所述第一帧缓存中。
7.如权利要求1所述的方法,其中,所述窗口管理器为Kwin窗口管理器。
8.如权利要求1所述的方法,其中,所述GPU为Mali型号的GPU。
9.一种计算设备,包括:
至少一个处理器;以及
存储器,存储有程序指令,其中,所述程序指令被配置为适于由所述至少一个处理器执行,所述程序指令包括用于执行如权利要求1-8中任一项所述的方法的指令。
10.一种存储有程序指令的可读存储介质,当所述程序指令被计算设备读取并执行时,使得所述计算设备执行如权利要求1-8中任一项所述方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110520486.1A CN112988103B (zh) | 2021-05-13 | 2021-05-13 | 一种数据显示方法及计算设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110520486.1A CN112988103B (zh) | 2021-05-13 | 2021-05-13 | 一种数据显示方法及计算设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112988103A true CN112988103A (zh) | 2021-06-18 |
CN112988103B CN112988103B (zh) | 2021-08-20 |
Family
ID=76337679
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110520486.1A Active CN112988103B (zh) | 2021-05-13 | 2021-05-13 | 一种数据显示方法及计算设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112988103B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113674132A (zh) * | 2021-07-23 | 2021-11-19 | 中标软件有限公司 | 一种通过检测显卡能力切换窗口管理渲染后端的方法 |
CN114567784A (zh) * | 2022-04-24 | 2022-05-31 | 银河麒麟软件(长沙)有限公司 | 一种用于飞腾显卡的vpu视频解码输出方法及系统 |
CN116737306A (zh) * | 2023-08-15 | 2023-09-12 | 麒麟软件有限公司 | 一种wayland环境下远程桌面获取显示数据后的优化方法 |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030081664A1 (en) * | 2001-08-29 | 2003-05-01 | Xiaolin Lu | Transmit and receive window synchronization |
WO2010117197A2 (en) * | 2009-04-06 | 2010-10-14 | Samsung Electronics Co., Ltd. | Apparatus and method for controlling sleep cycle synchronization of sleep mode in wireless communication system |
CN102810199A (zh) * | 2012-06-15 | 2012-12-05 | 成都平行视野科技有限公司 | 一种基于gpu的图像处理方法 |
US20130021524A1 (en) * | 2011-07-21 | 2013-01-24 | Tang Thomas W | Universal multiple image processor platform |
CN103164227A (zh) * | 2013-03-28 | 2013-06-19 | 北京视博云科技有限公司 | 一种窗口图像的采集方法及装置 |
CN103677792A (zh) * | 2013-06-15 | 2014-03-26 | 重庆绿色智能技术研究院 | 一种基于龙芯平台Linux操作系统下rdesktop的优化方法 |
CN105654541A (zh) * | 2015-12-31 | 2016-06-08 | 网易(杭州)网络有限公司 | 窗口图像处理方法和装置 |
CN108366288A (zh) * | 2018-03-01 | 2018-08-03 | 厦门普杰信息科技有限公司 | 一种用于高清视频的高效解码和播放方法及系统 |
CN109035131A (zh) * | 2017-06-12 | 2018-12-18 | 龙芯中科技术有限公司 | 显示图像的方法、装置、可读存储介质及电子设备 |
US20190317784A1 (en) * | 2016-12-27 | 2019-10-17 | Cloudminds (Shenzhen) Robotics Systems Co., Ltd. | Display method for use in multi-operating systems and electronic device |
CN110780962A (zh) * | 2019-10-15 | 2020-02-11 | 四川长虹电器股份有限公司 | X窗口管理器中应用窗口标题栏和窗口控件显示的方法 |
CN110928695A (zh) * | 2020-02-12 | 2020-03-27 | 南京芯瞳半导体技术有限公司 | 一种关于显存的管理方法、装置及计算机存储介质 |
CN112004041A (zh) * | 2019-05-27 | 2020-11-27 | 腾讯科技(深圳)有限公司 | 视频录制方法、装置、终端及存储介质 |
CN112000417A (zh) * | 2020-10-27 | 2020-11-27 | 统信软件技术有限公司 | 一种窗口展示效果的控制方法及计算设备 |
-
2021
- 2021-05-13 CN CN202110520486.1A patent/CN112988103B/zh active Active
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030081664A1 (en) * | 2001-08-29 | 2003-05-01 | Xiaolin Lu | Transmit and receive window synchronization |
WO2010117197A2 (en) * | 2009-04-06 | 2010-10-14 | Samsung Electronics Co., Ltd. | Apparatus and method for controlling sleep cycle synchronization of sleep mode in wireless communication system |
US20130021524A1 (en) * | 2011-07-21 | 2013-01-24 | Tang Thomas W | Universal multiple image processor platform |
CN102810199A (zh) * | 2012-06-15 | 2012-12-05 | 成都平行视野科技有限公司 | 一种基于gpu的图像处理方法 |
CN103164227A (zh) * | 2013-03-28 | 2013-06-19 | 北京视博云科技有限公司 | 一种窗口图像的采集方法及装置 |
CN103677792A (zh) * | 2013-06-15 | 2014-03-26 | 重庆绿色智能技术研究院 | 一种基于龙芯平台Linux操作系统下rdesktop的优化方法 |
CN105654541A (zh) * | 2015-12-31 | 2016-06-08 | 网易(杭州)网络有限公司 | 窗口图像处理方法和装置 |
US20190317784A1 (en) * | 2016-12-27 | 2019-10-17 | Cloudminds (Shenzhen) Robotics Systems Co., Ltd. | Display method for use in multi-operating systems and electronic device |
CN109035131A (zh) * | 2017-06-12 | 2018-12-18 | 龙芯中科技术有限公司 | 显示图像的方法、装置、可读存储介质及电子设备 |
CN108366288A (zh) * | 2018-03-01 | 2018-08-03 | 厦门普杰信息科技有限公司 | 一种用于高清视频的高效解码和播放方法及系统 |
CN112004041A (zh) * | 2019-05-27 | 2020-11-27 | 腾讯科技(深圳)有限公司 | 视频录制方法、装置、终端及存储介质 |
CN110780962A (zh) * | 2019-10-15 | 2020-02-11 | 四川长虹电器股份有限公司 | X窗口管理器中应用窗口标题栏和窗口控件显示的方法 |
CN110928695A (zh) * | 2020-02-12 | 2020-03-27 | 南京芯瞳半导体技术有限公司 | 一种关于显存的管理方法、装置及计算机存储介质 |
CN112000417A (zh) * | 2020-10-27 | 2020-11-27 | 统信软件技术有限公司 | 一种窗口展示效果的控制方法及计算设备 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113674132A (zh) * | 2021-07-23 | 2021-11-19 | 中标软件有限公司 | 一种通过检测显卡能力切换窗口管理渲染后端的方法 |
CN113674132B (zh) * | 2021-07-23 | 2024-05-14 | 中标软件有限公司 | 一种通过检测显卡能力切换窗口管理渲染后端的方法 |
CN114567784A (zh) * | 2022-04-24 | 2022-05-31 | 银河麒麟软件(长沙)有限公司 | 一种用于飞腾显卡的vpu视频解码输出方法及系统 |
CN116737306A (zh) * | 2023-08-15 | 2023-09-12 | 麒麟软件有限公司 | 一种wayland环境下远程桌面获取显示数据后的优化方法 |
CN116737306B (zh) * | 2023-08-15 | 2023-11-24 | 麒麟软件有限公司 | 一种wayland环境下远程桌面获取显示数据后的优化方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112988103B (zh) | 2021-08-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112988103B (zh) | 一种数据显示方法及计算设备 | |
EP3657327A1 (en) | Method for rendering game, and method, apparatus and device for generating game resource file | |
US7616218B1 (en) | Apparatus, system, and method for clipping graphics primitives | |
US9478002B2 (en) | Vertex parameter data compression | |
KR101952983B1 (ko) | 콘텐트의 타일-기반 렌더링을 위한 방법 및 콘텐트를 렌더링하기 위한 시스템 | |
CN107767431B (zh) | 一种Web动画制作方法及计算设备 | |
CN1329870C (zh) | 任意形状图像的基于块的旋转 | |
JP2005531833A (ja) | テクスチャ情報をコード化するための方法および装置 | |
CN110457102B (zh) | 可视对象的模糊方法、渲染方法及计算设备 | |
US6919908B2 (en) | Method and apparatus for graphics processing in a handheld device | |
JP2008142137A (ja) | データ処理装置、データ処理方法、およびプログラム | |
US7439988B1 (en) | Apparatus, system, and method for clipping graphics primitives with respect to a clipping plane | |
US9563932B2 (en) | Techniques to request stored data from memory | |
US6614443B1 (en) | Method and system for addressing graphics data for efficient data access | |
US8294731B2 (en) | Buffer management in vector graphics hardware | |
US20220005151A1 (en) | Method of processing picture, computing device, and computer-program product | |
CN111475665B (zh) | 图片播放方法、装置、终端及存储介质 | |
CN113504861A (zh) | 一种桌面管理方法、装置及计算设备 | |
CN111722823A (zh) | 自适应屏幕分辨率的方法、装置、存储介质及电子设备 | |
CN114780095B (zh) | 离屏渲染方法、装置、打印方法、计算设备和存储介质 | |
CN114281457A (zh) | 一种应用窗口显示方法、计算设备及存储介质 | |
US8233061B1 (en) | System, method, and computer program product for reducing a number of requests required to retrieve portions of memory | |
WO2023273828A1 (zh) | 界面管理方法、装置、设备及可读存储介质 | |
US7714877B1 (en) | Apparatus, system, and method for determining clipping distances | |
CN112698803A (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 |