CN116339993A - 一种窗口渲染加速方法、装置与计算设备 - Google Patents
一种窗口渲染加速方法、装置与计算设备 Download PDFInfo
- Publication number
- CN116339993A CN116339993A CN202310317522.3A CN202310317522A CN116339993A CN 116339993 A CN116339993 A CN 116339993A CN 202310317522 A CN202310317522 A CN 202310317522A CN 116339993 A CN116339993 A CN 116339993A
- Authority
- CN
- China
- Prior art keywords
- rendering
- picture
- window
- memory
- video memory
- 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
Links
- 238000009877 rendering Methods 0.000 title claims abstract description 137
- 238000000034 method Methods 0.000 title claims abstract description 67
- 230000001133 acceleration Effects 0.000 title claims abstract description 36
- 238000011068 loading method Methods 0.000 claims abstract description 25
- 230000002452 interceptive effect Effects 0.000 claims abstract description 11
- 230000006870 function Effects 0.000 claims description 14
- 230000008569 process Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 6
- 230000008901 benefit Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000005315 distribution function Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5055—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering software capabilities, i.e. software resources associated or available to the machine
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Image Generation (AREA)
Abstract
本发明公开了一种窗口渲染加速方法、装置与计算设备,涉及GPU渲染技术领域。上述窗口渲染加速方法包括:响应于图形用户界面应用程序启动,判断窗口渲染方式;当判断结果为使用图形处理器渲染时,通过调用内核的交互接口将图片加载到显存并解析成纹理;在窗口画面上叠加纹理,并将叠加了纹理的窗口画面渲染到显存中,得到显存画面数据;以及将显存画面数据提交至窗口管理器进行渲染。上述方法能够有效降低CPU资源的占用率,提高GPU渲染的效率。
Description
技术领域
本发明涉及GPU渲染技术领域,尤其是一种窗口渲染加速方法、装置与计算设备。
背景技术
在Qt(一种跨平台C++图形用户界面应用程序开发框架)或者gtk(GIMP Toolkit,一种跨平台C++图形用户界面应用程序开发框架)提供的UI(User Interface,用户界面)框架下,界面的显示通常使用中央处理器(Central Processing Unit,CPU)进行渲染,所以上述UI提供的图片加载方法都是将图片直接加载到内存中。所以在这种UI框架下,当需要使用图形处理器(Graphics Processing Unit,GPU)渲染界面的时候,需要将界面中的图片数据拷贝到显存中,然后转换成GPU能够识别的数据才能完成渲染工作。
如图1所示,图形用户界面(Graphical User Interface,GUI)程序启动以后,执行如下步骤:1、调用内存分配(memory allocation,malloc)函数为图片分配内存,并将图片加载到内存;2、判断渲染方式;3、如果渲染方式为使用CPU渲染,则将窗口画面渲染到内存中,然后提交画面数据到窗口管理器,完成渲染;4、如果渲染为使用GPU渲染,则调用纹理生成函数(glTexlmagte2D)根据内存中的图片生成纹理,然后将内存中的图片拷贝到显存,在显存中存储的纹理图片的基础上,将窗口画面渲染到显存中,然后提交画面数据到窗口管理器,完成渲染。
使用GPU渲染的目的是减少CPU资源的占用,从而提升系统运行性能。但是根据上述渲染流程可知,加载到内存的图片数据需要拷贝到显存中才能给GPU使用,这样在使用GPU渲染的时候就多了一次内存拷贝的过程,这种内存拷贝会消耗CPU资源,导致CPU占用率不仅不会明显降低,反而在界面图片元素较多的情况下,还会增加CPU资源的占用。
综上,上述现有GPU渲染技术存在无法有效降低CPU资源占用的问题。
发明内容
为此,本发明提供了一种窗口渲染加速方法、装置与计算设备,以力图解决或者至少缓解上面存在的至少一个问题。
根据本发明的一个方面,提供了一种窗口渲染加速方法,包括:响应于图形用户界面应用程序启动,判断窗口渲染方式;当判断结果为使用图形处理器渲染时,通过调用内核的交互接口将图片加载到显存并解析成纹理;在窗口画面上叠加所述纹理,并将叠加了所述纹理的窗口画面渲染到显存中,得到显存画面数据;以及将所述显存画面数据提交至窗口管理器进行渲染。
可选地,在根据本发明的窗口渲染加速方法中,所述将图片加载到显存并解析成纹理包括:通过直接渲染管理器创建显存的缓存;将图片数据解码到所述显存的缓存中;将解码后的图片数据的缓存转换成直接存储访问的内存句柄;以及根据所述直接存储访问的内存句柄生成图片的纹理。
可选地,在根据本发明的窗口渲染加速方法中,所述方法通过硬解码方式将图片数据解码到所述显存的缓存中。
可选地,在根据本发明的窗口渲染加速方法中,所述根据所述直接存储访问的内存句柄生成图片的纹理包括:调用纹理生成函数,并将所述直接存储访问的内存句柄作为所述纹理生成函数的输入;以及将所述纹理生成函数的输出作为所述纹理的身份识别码。
可选地,在根据本发明的窗口渲染加速方法中,所述判断窗口渲染方式包括:根据图形用户界面应用程序的环境变量判断是否使用图形处理器渲染。
可选地,在根据本发明的窗口渲染加速方法中,所述方法还包括:当判断结果为使用中央处理器渲染时,将图片加载到内存;将窗口画面渲染到所述内存中,得到内存画面数据;以及将所述内存画面数据提交至窗口管理器。
根据本发明的另一方面,还提供了窗口渲染加速方法装置,包括:判断单元,适于响应于图形用户界面应用程序启动,判断窗口渲染方式;第一加载单元,适于当判断结果为使用图形处理器渲染时,通过调用内核的交互接口将图片加载到显存并解析成纹理;第一渲染单元,适于在窗口画面上叠加所述纹理,并将叠加了所述纹理的窗口画面渲染到显存中,得到显存画面数据;以及第一数据提交单元,适于将所述显存画面数据提交至窗口管理器进行渲染。
可选地,在根据本发明的窗口渲染加速装置中,所述将图片加载到显存并解析成纹理包括:通过直接渲染管理器创建显存的缓存;将图片数据解码到所述显存的缓存中;将解码后的图片数据的缓存转换成直接存储访问的内存句柄;以及根据所述直接存储访问的内存句柄生成图片的纹理。
根据本发明的另一方面,还提供了一种计算设备,包括:至少一个处理器和存储有程序指令的存储器;当程序指令被处理器读取并执行时,使得计算设备执行如上的窗口渲染加速方法。
根据本发明的再一方面,还提供了一种存储有程序指令的可读存储介质,当程序指令被计算设备读取并执行时,使得计算设备执行如上的窗口渲染加速方法。
本发明的窗口渲染加速方法在渲染前判断使用GPU渲染还是使用CPU渲染,如果使用GPU渲染,则调用内核的交互接口直接将图片加载到显存,以供GPU渲染使用。
根据本发明的窗口渲染加速方法、装置与计算设备,能够实现以下有益效果中的至少一种:节省了GPU渲染过程中将图片从内存拷贝到显存的时间,不仅提高了GPU的利用率,而且有效降低了CPU资源的占用率,提高了GPU渲染的效率。
附图说明
为了实现上述以及相关目的,本文结合下面的描述和附图来描述某些说明性方面,这些方面指示了可以实践本文所公开的原理的各种方式,并且所有方面及其等效方面旨在落入所要求保护的主题的范围内。通过结合附图阅读下面的详细描述,本公开的上述以及其它目的、特征和优势将变得更加明显。遍及本公开,相同的附图标记通常指代相同的部件或元素。
图1示出了根据本发明背景技术部分图形用户界面程序的流程图;
图2示出了根据本发明一个实施例的计算设备200的示意图;
图3示出了根据本发明一个实施例的窗口渲染加速方法300的流程图;
图4示出了根据本发明一个实施例的窗口渲染加速方法300的原理示意图;
图5示出了根据本发明一个实施例的窗口渲染加速装置500的示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
针对现有GPU渲染技术存在无法有效降低CPU资源占用的问题,本发明提供了一种窗口渲染加速方法,在使用GPU渲染时能够有效减少图片数据拷贝所占用的CPU资源。
图2示出了根据本发明一个实施例的计算设备200的示意图。需要说明的是,图2所示的计算设备200仅为一个示例,在实践中,用于实施本发明的窗口渲染加速方法的计算设备可以是任意型号的设备,其硬件配置情况可以与图2所示的计算设备200相同,也可以与图2所示的计算设备200不同。实践中用于实施本发明的窗口渲染加速方法的计算设备可以对图2所示的计算设备200的硬件组件进行增加或删减,本发明对计算设备的具体硬件配置情况不做限制。
如图2所示,计算设备200典型地包括中央处理器210、图形处理器220、硬盘230、内存240以及显示设备接口250。
硬盘230存储有执行本申请实施例的窗口渲染加速方法的程序指令,中央处理器210读取并执行这些程序指令。采用中央处理器210渲染时,图片加载到内存240中;而采用图形处理器220渲染时,图片则直接加载到显存250中。中央处理器210渲染的画面数据和图形处理器220渲染的画面数据最终通过显示设备接口250发送至显示设备进行显示。
计算设备200可以实现为服务器,例如文件服务器、数据库服务器、应用程序服务器和WEB服务器等,也可以实现为包括桌面计算机和笔记本计算机配置的个人计算机。当然,计算设备200也可以实现为小尺寸便携(或者移动)电子设备的一部分。在根据本发明的实施例中,计算设备200被配置为执行根据本发明的窗口渲染加速方法300。
根据本发明实施例的一种窗口渲染加速方法300包括:响应于图形用户界面应用程序启动,判断窗口渲染方式;当判断结果为使用图形处理器渲染时,通过调用内核的交互接口将图片加载到显存并解析成纹理;在窗口画面上叠加所述纹理,并将叠加了所述纹理的窗口画面渲染到显存中,得到显存画面数据;以及将显存画面数据提交至窗口管理器进行渲染。
图3示出了根据本发明一个实施例的窗口渲染加速方法300的流程图。方法300在计算设备(例如前述计算设备200)中执行。如图3所示,方法300始于310。
在310中,响应于图形用户界面应用程序启动,判断窗口渲染方式。
GUI应用程序的窗口需要渲染才能呈现给用户,GUI应用程序的某些界面仅使用CPU渲染即可,但是对于某些特殊情况,例如3D画面或者视频播放则需要使用GPU渲染。以媒体播放器为例,播放的画面需要使用GPU渲染,但是播放器界面的其他内容,例如控件等使用CPU就可以渲染。因此,本质上是根据渲染的内容决定否使用GPU渲染。
在一个实施例中,在GUI应用程序启动后,根据系统是否安装有GPU驱动来判断是否使用GPU渲染,例如,查看系统是否支持OpenGL驱动,如果支持OpenGL驱动,则否使用GPU渲染,否则使用CPU渲染。
在另一个实施例中,部分GUI应用程序在程序底层嵌入了用于开启GPU渲染的环境变量,可以在应用程序启动之前根据环境变量来判断应用界面是否使用GPU渲染。
除以上两种判断以外,还可以否使用其他方式来判断是否使用GPU渲染,本申请对判断的具体方式不作限定。
接下来,在320中,当判断结果为使用图形处理器渲染时,通过调用内核的交互接口将图片加载到显存并解析成纹理。
将图片加载到显存需要调用内核的交互接口(ioctl),ioctl属于交互接口,通过ioctl可以使用GPU驱动将图片加载到显存。
在一个实施中,如图4所示,ioctl接口通过以下方式将图片加载到显存并解析成纹理:首先通过直接渲染管理器(Direct Rendering Manager,DRM)创建显存的缓存(buffer),需要说明的是,这里的buffer指代一张图片的buffer;然后将图片数据解码到所创建的buffer中,解码方式采用现有方式即可,优选为硬解码;接下来将buffer中解码后的图片数据通过DRM的接口转换成直接存储访问的内存句柄(dmafd);最后,调用eglCreateImageKHR接口,向eglCreateImageKHR接口传入dmafd、以及egldisplay等参数,eglCreateImageKHR接口将图片的buffer制作成纹理,并返回纹理的ID。
接下来,在330中,在窗口画面上叠加纹理,并将叠加了纹理的窗口画面渲染到显存中,得到显存画面数据。这里的窗口画面指代最终要呈现给用户的画面,以媒体播放器为例,窗口画面不仅包含媒体播放器播放的内容,还包括背景、控件等内容,将这些内容合成到一起形成窗口画面。
首先,调用纹理生成函数glTexlmagte2D生成上述图片的纹理,然后将待渲染的窗口画面渲染到上述纹理上,得到显存画面数据。
接下来,在340中,将显存画面数据提交至窗口管理器进行渲染。窗口管理器负责将显存画面数据显示在应用窗口中。
方法300还包括CPU渲染流程。在310的判断结果为使用CPU渲染的情况下,跳转至CPU渲染流程,如图4所示。
在一个实施例中,CPU渲染流程包括:通过内存分配函数malloc分配内存,并将图片加载到内存;在上述图片的基础上,将窗口中的所有元素通过CPU渲染到内存buffer中,得到内存画面数据;以及将内存画面数据提交至窗口管理器进行渲染。
方法300在渲染之前先判断使用CPU渲染还是GPU渲染,如果使用GPU渲染,则直接调用驱动相关的ioctl接口将图片数据加载到显存,为GPU渲染做好准备。由于在320之前并没有将图片加载到内存,因此GPU做纹理时省略了将图片数据从内存拷贝到显存的操作,不仅提高了GPU的利用率、降低了对CPU资源的占用率,而且节省了图片数据拷贝的时间,提高了窗口渲染的效率。界面包含图片元素的组件越多,这一技术效果体现得越明显。在具体实现方式上,现有技术中的libjpeg图片解码库主要通过创建共享内存的方式来创建解码buffer,将图片数据解码到创建好的内存buffer,GPU使用glTexImage2D将内存buffer做成一块纹理,然后合成窗口画面,GPU渲染管线在访问内存buffer过程中,需要将内存buffer拷贝到临时显存,然后GPU再从临时显存中访问数据;而本实施例提出了一个新的ioctl,这个ioctl利用GPU将图片数据加载到显存buffer,通过DRM对显存buffer进行处理得到dmafd,并传输给GUI框架中的GPU渲染引擎,GPU渲染管线在合成过程中可以访问显存buffer数据,能够直接访问到图片解码显存中的数据,不需要做内存到显存的拷贝。
本发明的实施例还提供了一种窗口渲染加速装置500,该装置能够执行如上文所描述的窗口渲染加速方法300的处理。下面,结合图5来描述上述窗口渲染加速装置500。
如图5所示,窗口渲染加速装置500包括判断单元510、第一加载单元520、第一渲染单元530以及第一数据提交单元540。
判断单元510适于响应于图形用户界面应用程序启动,判断窗口渲染方式。
第一加载单元520适于当判断结果为使用图形处理器渲染时,通过调用内核的交互接口将图片加载到显存并解析成纹理。
第一渲染单元530适于在窗口画面上叠加所述纹理,并将叠加了所述纹理的窗口画面渲染到显存中,得到显存画面数据。
第一数据提交单元540适于将显存画面数据提交至窗口管理器进行渲染。
在一个实施例中,上述将图片加载到显存并解析成纹理包括:通过直接渲染管理器创建显存的缓存;将图片数据解码到显存的缓存中;将解码后的图片数据的缓存转换成直接存储访问的内存句柄;以及根据直接存储访问的内存句柄生成图片的纹理。
在一个实施例中,第一加载单元520通过硬解码方式将图片数据解码到显存的缓存中。
在一个实施例中,根据直接存储访问的内存句柄生成图片的纹理包括:调用纹理生成函数,并将直接存储访问的内存句柄作为纹理生成函数的输入;以及将纹理生成函数的输出作为所述纹理的身份识别码。
在一个实施例中,判断单元510根据图形用户界面应用程序的环境变量判断是否使用图形处理器渲染。
在一个实施例中,装置500还包括第二加载单元、第二渲染单元以及第二数据提交单元。第二加载单元适于将图片加载到内存。第二渲染单元适于将窗口画面渲染到内存中,得到内存画面数据。第二数据提交单元适于将内存画面数据提交至窗口管理器进行渲染。
这里描述的各种技术可结合硬件或软件,或者它们的组合一起实现。从而,本发明的方法和设备,或者本发明的方法和设备的某些方面或部分可采取嵌入有形媒介,例如可移动硬盘、U盘、软盘、CD-ROM或者其它任意机器可读的存储介质中的程序代码(即指令)的形式,其中当程序被载入诸如计算机之类的机器,并被所述机器执行时,所述机器变成实践本发明的设备。
在程序代码在可编程计算机上执行的情况下,计算设备一般包括处理器、处理器可读的存储介质(包括易失性和非易失性存储器和/或存储元件),至少一个输入装置,和至少一个输出装置。其中,存储器被配置用于存储程序代码;处理器被配置用于根据该存储器中存储的所述程序代码中的指令,执行本发明的窗口渲染加速方法。
以示例而非限制的方式,可读介质包括可读存储介质和通信介质。可读存储介质存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息。通信介质一般以诸如载波或其它传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其它数据,并且包括任何信息传递介质。以上的任一种的组合也包括在可读介质的范围之内。
在此处所提供的说明书中,算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与本发明的示例一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的优选实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下被实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多特征。本领域那些技术人员应当理解在本文所公开的示例中的设备的模块或单元或组件可以布置在如该实施例中所描述的设备中,或者可替换地可以定位在与该示例中的设备不同的一个或多个设备中。前述示例中的模块可以组合为一个模块或者此外可以分成多个子模块。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。此外,所述实施例中的一些在此被描述成可以由计算机系统的处理器或者由执行所述功能的其它装置实施的方法或方法元素的组合。因此,具有用于实施所述方法或方法元素的必要指令的处理器形成用于实施该方法或方法元素的装置。此外,装置实施例的在此所述的元素是如下装置的例子:该装置用于实施由为了实施该发明的目的的元素所执行的功能。
如在此所使用的那样,除非另行规定,使用序数词“第一”、“第二”、“第三”等等来描述普通对象仅仅表示涉及类似对象的不同实例,并且并不意图暗示这样被描述的对象必须具有时间上、空间上、排序方面或者以任意其它方式的给定顺序。
尽管根据有限数量的实施例描述了本发明,但是受益于上面的描述,本技术领域内的技术人员明白,在由此描述的本发明的范围内,可以设想其它实施例。此外,应当注意,本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限定本发明的主题而选择的。
Claims (10)
1.一种窗口渲染加速方法,包括:
响应于图形用户界面应用程序启动,判断窗口渲染方式;
当判断结果为使用图形处理器渲染时,通过调用内核的交互接口将图片加载到显存并解析成纹理;
在窗口画面上叠加所述纹理,并将叠加了所述纹理的窗口画面渲染到显存中,得到显存画面数据;以及
将所述显存画面数据提交至窗口管理器进行渲染。
2.如权利要求1所述的窗口渲染加速方法,其中,所述将图片加载到显存并解析成纹理包括:
通过直接渲染管理器创建显存的缓存;
将图片数据解码到所述显存的缓存中;
将解码后的图片数据的缓存转换成直接存储访问的内存句柄;以及
根据所述直接存储访问的内存句柄生成图片的纹理。
3.如权利要求2所述的方法,其中,所述方法通过硬解码方式将图片数据解码到所述显存的缓存中。
4.如权利要求2所述的方法,其中,所述根据所述直接存储访问的内存句柄生成图片的纹理包括:
调用纹理生成函数,并将所述直接存储访问的内存句柄作为所述纹理生成函数的输入;以及
将所述纹理生成函数的输出作为所述纹理的身份识别码。
5.如权利要求1至4中任一项所述的方法,其中,所述判断窗口渲染方式包括:
根据图形用户界面应用程序的环境变量判断是否使用图形处理器渲染。
6.如权利要求1至5中任一项所述的方法,还包括:
当判断结果为使用中央处理器渲染时,将图片加载到内存;
将窗口画面渲染到所述内存中,得到内存画面数据;以及
将所述内存画面数据提交至窗口管理器进行渲染。
7.一种窗口渲染加速装置,包括:
判断单元,适于响应于图形用户界面应用程序启动,判断窗口渲染方式;
第一加载单元,适于当判断结果为使用图形处理器渲染时,通过调用内核的交互接口将图片加载到显存并解析成纹理;
第一渲染单元,适于在窗口画面上叠加所述纹理,并将叠加了所述纹理的窗口画面渲染到显存中,得到显存画面数据;以及
第一数据提交单元,适于将所述显存画面数据提交至窗口管理器进行渲染。
8.如要求7所述的窗口渲染加速装置,其中,所述将图片加载到显存并解析成纹理包括:
通过直接渲染管理器创建显存的缓存;
将图片数据解码到所述显存的缓存中;
将解码后的图片数据的缓存转换成直接存储访问的内存句柄;以及
根据所述直接存储访问的内存句柄生成图片的纹理。
9.一种计算设备,包括:
至少一个处理器和存储有程序指令的存储器;
当所述程序指令被所述处理器读取并执行时,使得所述计算设备执行如权利要求1-6中任一项所述的窗口渲染加速方法。
10.一种存储有程序指令的可读存储介质,当所述程序指令被计算设备读取并执行时,使得所述计算设备执行如权利要求1-6中任一项所述的窗口渲染加速方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310317522.3A CN116339993A (zh) | 2023-03-28 | 2023-03-28 | 一种窗口渲染加速方法、装置与计算设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310317522.3A CN116339993A (zh) | 2023-03-28 | 2023-03-28 | 一种窗口渲染加速方法、装置与计算设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116339993A true CN116339993A (zh) | 2023-06-27 |
Family
ID=86885406
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310317522.3A Pending CN116339993A (zh) | 2023-03-28 | 2023-03-28 | 一种窗口渲染加速方法、装置与计算设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116339993A (zh) |
-
2023
- 2023-03-28 CN CN202310317522.3A patent/CN116339993A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10026211B2 (en) | Hardware-accelerated graphics for web applications using native code modules | |
US8675000B2 (en) | Command buffers for web-based graphics rendering | |
KR102695571B1 (ko) | 머신 러닝 워크로드들에서 텐서 오브젝트 지원을 위한 방법들 및 장치 | |
US10026147B1 (en) | Graphics scenegraph rendering for web applications using native code modules | |
US9715750B2 (en) | System and method for layering using tile-based renderers | |
US9164798B2 (en) | Method, apparatus and computer for loading resource file for game engine | |
US11232535B2 (en) | Systems and methods for using EGL with an OpenGL API and a Vulkan graphics driver | |
US9542715B2 (en) | Memory space mapping techniques for server based graphics processing | |
US9805439B2 (en) | Memory space mapping techniques for server based graphics processing | |
CN116391205A (zh) | 用于图形处理单元混合渲染的装置和方法 | |
CN102054051B (zh) | 记录显示屏幕的内容 | |
CN116339993A (zh) | 一种窗口渲染加速方法、装置与计算设备 | |
CN113784075B (zh) | 一种屏幕录像读取方法、系统及计算设备 | |
US7487516B1 (en) | Desktop composition for incompatible graphics applications | |
KR20180015564A (ko) | 타일-기반 렌더링을 수행하는 방법 및 장치 | |
TWI556167B (zh) | 用於多重本機軟體應用程式使用者介面組成之系統及方法 | |
US11790478B2 (en) | Methods and apparatus for mapping source location for input data to a graphics processing unit | |
US20240220425A1 (en) | Reserving a secure address range | |
US20230169622A1 (en) | Image processing | |
CN113127123A (zh) | 一种窗口效果的生成方法及计算设备 | |
CN116166364A (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 |