一种基于云桌面的虚拟显卡实现方法和装置与流程

    专利2022-07-08  176


    本发明涉及虚拟显示处理技术,尤其涉及一种基于云桌面的虚拟显卡实现方法和装置。



    背景技术:

    近年来,随着云计算技术的蓬勃发展,云桌面作为一个重要的云计算分支技术也得到越来越多的应用。相对于其他云计算技术,云桌面的一个重要特点是存在图形的虚拟化。需要在虚拟机种运行图形化的应用程序,通过图形虚拟化技术将对应的应用程序图形化桌面数据按照特定的协议传输给客户端,从而实现客户端与云端的虚拟机桌面环境的图形化交互。

    云桌面图形虚拟化技术中关键技术就是虚拟显卡,尽管当前很多的云桌面应用对图形虚拟化技术的性能要求越来越高,虚拟显卡似乎无法满足需求,也涌现出很多利用宿主机物理显卡的虚拟化技术,比如显卡穿透技术,基于物理显卡的虚拟化技术等,但是由于这些技术的成本相对较高,而且各种服务器架构通用性比较差。因此,基于cpu模拟的虚拟显卡技术依然在普通办公等对图形性能要求不高的场景中应用广泛。通过模拟的虚拟显卡,能够使得虚拟机中运行的客户机操作系统实现图形化的绘制,同时能够使得宿主机上的程序能够获得客户机操作系统中的图形绘制指令,并将指令通过相应的云桌面传输协议处理,提供给客户端进行图像的还原和显示。

    现有的虚拟显卡实现技术中,从客户机操作系统中传递过来的绘制指令,携带有原始的图像数据,而且一般客户机操作系统中的设置显卡的显示模式,显示分辨率比较大,显卡刷新率比较高,对于一些图形显示变化比较块,刷新区域比较大的图形应用场景,从客户机操作系统中获取到的绘制指令的相应数据量就比较大。在现有技术中,一般是在云桌面传输协议模块中对绘制指令的相应图形原始数据进行压缩编码,并在客户端进行解码显示,从而降低网络传输的数据量。由于绘制指令从客户机操作系统产生的那个时刻所携带的原始图形数据在经过云桌面传输协议处理并发送给客户端,会存在比较大的处理延时,当网络环境比较差,或者宿主机负载比较大的情况下,就会导致绘制指令在云桌面传输协议模块形成积压,从而导致客户端操作显示时延比较大,体验比较差。现有的一些处理技术中,也有通过在云桌面传输协议模块采用丢帧的方式将积压的绘制指令丢弃掉,但是为了不影响显示,必须保证只能丢掉区域重复的绘制指令,在一些刷新区域并不是一致的客户机操作系统应用场景中,效果也不明显。

    针对这个问题,也存在云桌面传输协议服务端进行离屏渲染的处理技术。将从客户机操作系统获取到的绘制指令在宿主机的云桌面传输协议服务端模块还原成对应图像数据,再根据宿主机的实际环境进行相应显示控制,从而保证在比较差的条件下保证显示的效果,但是这种技术同样存在离屏渲染比较耗时,也容易形成绘制指令的积压,同时这种方法会进行图形数据的多次拷贝,针对变化区域比较大,分辨率比较高的这种场景,容易增加处理耗时及宿主机cpu和内存等资源的消耗。



    技术实现要素:

    本发明要解决的技术问题就在于:针对现有技术存在的技术问题,本发明提供一种基于云桌面的虚拟显卡实现方法和装置,能够降低处理延时,同时降低宿主机cpu和内存等资源的消耗。

    为解决上述技术问题,本发明提出的技术方案为:

    一种基于云桌面的虚拟显卡实现方法,包括以下步骤:

    s1)虚拟机获取宿主机操作系统提供的用户进程内存空间,将用户进程内存空间虚拟化为虚拟机的虚拟显卡的虚拟显存,同时将虚拟显存映射成虚拟机的客户机操作系统能够直接访问的虚拟内存空间并保存映射关系后传递给虚拟机或宿主机的云桌面传输协议模块;

    s2)所述客户机操作系统生成绘制指令请求并发送给虚拟显卡,所述虚拟显卡将所述绘制指令请求分离为原始的图像数据和对应的其他绘制信息,将所述图像数据绘制在虚拟显存中,将所述其他绘制信息加入绘制指令缓冲队列后发送给所述云桌面传输协议模块;

    s3)所述云桌面传输协议模块获取绘制指令缓冲队列中的其他绘制信息,根据虚拟显存和虚拟内存空间的映射关系在虚拟显存中读取对应的图像数据,将所述图像数据通过云桌面传输协议编码传输至云桌面客户端。

    进一步的,步骤s1)具体包括:虚拟机通过宿主机操作系统提供的接口获得用户进程内存空间,然后通过虚拟总线技术将所述用户进程内存空间虚拟化为虚拟机的客户机操作系统能识别的物理内存;客户机操作系统中的虚拟显卡驱动程序初始化时通过虚拟总线驱动提供的接口获取物理内存信息,将物理内存作为虚拟机的虚拟显卡的虚拟显存;客户机操作系统中的虚拟显卡驱动程序通过客户机操作系统的内存映射接口将虚拟显卡的虚拟显存映射成客户机操作系统能够直接访问的虚拟内存空间,将映射关系存储在对应的数据结构中,然后将映射关系和用户进程内存空间对应的内存地址段传递给虚拟机或宿主机的云桌面传输协议模块。

    进一步的,步骤s2)具体包括:客户机操作系统的资源管理器将绘制指令提交给图形化引擎,通过客户机操作系统中的图形化引擎将绘制指令请求转化成对客户机操作系统中的虚拟显卡驱动程序提供的绘制接口的调用,接口调用产生的处理图形数据包括包含原始的图像数据的bitmap位图数据和对应的绘制类型及绘制目标区域信息;客户机操作系统中的虚拟显卡驱动程序将图形化引擎的绘制操作进行数据分离,通过客户机操作系统中的图形引擎提供的接口从虚拟显存中开辟bitmap缓冲区,将原始的图像数据绘制到bitmap缓冲区中;客户机操作系统中的虚拟显卡驱动程序将对应的绘制类型及绘制目标区域信息封装成简化的绘制指令,将简化的绘制指令加入虚拟显卡的虚拟显存中抽象出来的绘制指令缓冲队列并发送给云桌面传输协议模块。

    进一步的,步骤s3)具体包括:云桌面传输协议模块获取简化的绘制指令,解析出绘制类型及绘制目标区域信息;按照虚拟显存和虚拟内存空间的映射关系获取宿主机的用户进程内存空间中bitmap缓冲区对应的地址段;根据绘制类型及绘制目标区域信息计算获取对应原始图像数据所在的存储区,将所述存储区内的图像数据通过云桌面传输协议编码传输至云桌面客户端。

    本发明还提出一种虚拟显卡装置,包括:

    宿主机,用于运行宿主机操作系统;

    虚拟机,用于运行客户机操作系统;还用于获取宿主机操作系统提供的用户进程内存空间;

    所述虚拟机包括虚拟显卡,所述虚拟显卡用于将用户进程内存空间虚拟化为虚拟显存,同时将虚拟显存映射成客户机操作系统能够直接访问的虚拟内存空间并保存映射关系后传递给云桌面传输协议模块;还用于获取客户机操作系统中的绘制指令请求,将所述绘制指令请求分离为原始的图像数据和对应的其他绘制信息,将所述图像数据绘制在虚拟显存中,将所述其他绘制信息加入绘制指令缓冲队列并发送给云桌面传输协议模块;

    云桌面传输协议模块,用于获取绘制指令缓冲队列中的绘制信息,根据虚拟显存和虚拟内存空间的映射关系在虚拟显卡模块的虚拟显存中读取对应的图像数据,通过云桌面传输协议编码传输至云桌面客户端;

    所述云桌面传输协议模块在宿主机操作系统或客户机操作系统中运行。

    本发明还提出一种基于云桌面的虚拟显卡实现装置,包括计算机,所述计算机被编程或配置以执行上述的基于云桌面的虚拟显卡实现方法。

    本发明还提出一种计算机可读存储介质,所述计算机可读存储介质存储有被编程或配置以执行上述的基于云桌面的虚拟显卡实现方法的计算机程序。

    与现有技术相比,本发明的优点在于:

    本发明的方法能够实现虚拟显卡对客户机操作系统中的绘制指令进行数据分离,虚拟显卡将绘制指令中原始的图形数据直接绘制到虚拟显存中,而绘制指令中诸如指令类型以及绘制区域大小等其他信息,则通过指令缓冲队列进行传递给云桌面传输协议模块,云桌面传输协议模块再通过进程内部的缓冲队列的处理方法获取对应的绘制信息,并根据绘制信息中的类型及区域信息从经过内存映射处理的虚拟显存中读取对应的图像数据后通过云桌面传输协议编码传输给云桌面客户端进行显示。从而云桌面传输协议模块不需要处理绘制指令中的图形数据,避免了绘制指令积压,能够降低处理延时,同时降低宿主机cpu和内存等资源的消耗。

    附图说明

    图1为本发明实施例的方法的流程图。

    图2为本发明实施例的装置的结构示意图。

    图3为本发明实施例的装置的处理流程图。

    具体实施方式

    以下结合说明书附图和具体优选的实施例对本发明作进一步描述,但并不因此而限制本发明的保护范围。

    实施例一

    如图1所示,本发明的基于云桌面的虚拟显卡实现方法,包括以下步骤:

    s1)虚拟机获取宿主机操作系统提供的用户进程内存空间,将用户进程内存空间虚拟化为虚拟机的虚拟显卡的虚拟显存,同时将虚拟显存映射成虚拟机的客户机操作系统能够直接访问的虚拟内存空间并保存映射关系后传递给虚拟机或宿主机的云桌面传输协议模块,具体包括:

    虚拟机通过宿主机操作系统提供的接口获得用户进程内存空间,然后通过虚拟总线技术将所述用户进程内存空间虚拟化为虚拟机的客户机操作系统能识别的物理内存;客户机操作系统中的虚拟显卡驱动程序初始化时通过虚拟总线驱动提供的接口获取物理内存信息,将物理内存作为虚拟机的虚拟显卡的虚拟显存;客户机操作系统中的虚拟显卡驱动程序通过客户机操作系统的内存映射接口将虚拟显卡的虚拟显存映射成客户机操作系统能够直接访问的虚拟内存空间,将映射关系存储在对应的数据结构中,然后将映射关系和用户进程内存空间对应的内存地址段传递给虚拟机或宿主机的云桌面传输协议模块;

    s2)所述客户机操作系统生成绘制指令请求并发送给虚拟显卡,所述虚拟显卡将所述绘制指令请求分离为原始的图像数据和对应的其他绘制信息,将所述图像数据绘制在虚拟显存中,将所述其他绘制信息加入绘制指令缓冲队列并发送给所述云桌面传输协议模块,具体包括:

    虚拟机的客户机操作系统中的资源管理器将绘制指令提交给图形化引擎,通过客户机操作系统的图形化引擎将绘制指令请求转化成对客户机操作系统中的虚拟显卡驱动程序提供的绘制接口的调用,接口调用产生的处理图形数据包括包含原始的图像数据的bitmap位图数据和对应的绘制类型及绘制目标区域信息;客户机操作系统中的虚拟显卡驱动程序将图形化引擎的绘制操作进行数据分离,通过客户机操作系统中的图形引擎提供的接口从虚拟显存中开辟bitmap缓冲区,将原始的图像数据所在的bitmap位图数据绘制到bitmap缓冲区中;客户机操作系统中的虚拟显卡驱动程序将对应的绘制类型及绘制目标区域信息封装成简化的绘制指令,将简化的绘制指令加入虚拟显卡的虚拟显存中抽象出来的绘制指令缓冲队列并发送给虚拟机或宿主机的云桌面传输协议模块;

    s3)所述云桌面传输协议模块获取绘制指令缓冲队列中的其他绘制信息,根据虚拟显存和虚拟内存空间的映射关系在虚拟显存中读取对应的图像数据,将所述图像数据通过云桌面传输协议编码传输至云桌面客户端,具体包括:

    虚拟机或宿主机的云桌面传输协议模块获取简化的绘制指令,解析出绘制类型及绘制目标区域信息;按照虚拟显存和虚拟内存空间的映射关系获取宿主机的用户进程内存空间中bitmap缓冲区对应的地址段;根据绘制类型及绘制目标区域信息计算获取对应原始图像数据所在的存储区,将所述存储区内的图像数据通过云桌面传输协议编码传输至云桌面客户端。

    通过上述步骤,本实施例的基于云桌面的虚拟显卡实现方法能够实现虚拟显卡对客户机操作系统中的绘制指令进行数据分离,虚拟显卡将绘制指令中原始的图形数据直接绘制到虚拟显存中,而绘制指令中诸如指令类型以及绘制区域大小等其他信息则通过指令缓冲队列进行传递给云桌面传输协议模块,云桌面传输协议模块再通过进程内部的缓冲队列的处理方法获取对应的绘制信息,并根据绘制信息中的类型及区域信息从经过内存映射处理的虚拟显存中读取对应的图像数据,并通过云桌面传输协议编码传输给云桌面客户端进行显示。从而云桌面传输协议不需要处理绘制指令中原始的图形数据,避免了绘制指令积压,能够降低处理延时,同时降低宿主机cpu和内存等资源的消耗。

    如图2所示,本发明还提出一种虚拟显卡装置,包括:

    宿主机,用于运行宿主机操作系统;

    虚拟机,用于运行客户机操作系统;还用于获取宿主机操作系统提供的用户进程内存空间;

    所述虚拟机包括虚拟显卡,所述虚拟显卡用于将用户进程内存空间虚拟化为虚拟显存,同时将虚拟显存映射成客户机操作系统能够直接访问的虚拟内存空间并保存映射关系后传递给云桌面传输协议模块;还用于获取客户机操作系统中的绘制指令请求,将所述绘制指令请求分离为原始的图像数据和对应的其他绘制信息,将所述图像数据绘制在虚拟显存中,将所述其他绘制信息加入绘制指令缓冲队列并发送给云桌面传输协议模块;

    云桌面传输协议模块,用于获取绘制指令缓冲队列中的绘制信息,根据虚拟显存和虚拟内存空间的映射关系在虚拟显卡模块的虚拟显存中读取对应的图像数据,通过云桌面传输协议编码传输至云桌面客户端;

    所述云桌面传输协议模块在宿主机操作系统或客户机操作系统中运行。

    本实施例的虚拟显卡装置中,通过虚拟总线技术,比如虚拟的pci总线,或者virtio等技术,将虚拟机运行的客户机操作系统的绘制指令请求通过io读写或者内存映射的指令缓冲队列的方式给到虚拟显卡,而虚拟显卡将绘制指令存储到所述的虚拟显存,虚拟显存是由宿主机操作系统提供的用户进程内存空间映射出来的,而这部分的用户进程内存空间通过进程消息同步的方法将用户进程内存空间对应的内存地址段及相应映射关系提供给云桌面传输协议模块,使得云桌面传输协议模块访问经过内存映射处理的虚拟显存,实现虚拟显卡与云桌面传输协议模块间的数据同步。

    本实施例中,虚拟机为qemu虚拟机,虚拟显卡采用qemu的显卡虚拟化模块qxl,客户机操作系统为windows系统,云桌面传输协议模块在在宿主机操作系统中运行,作为整个虚拟机进程的一个子线程,本实施例中实现虚拟显卡与云桌面传输协议模块间的数据同步的步骤包括:

    根据步骤s1),qemu虚拟机进程通过宿主操作系统提供的接口获得用户进程内存空间,并通过显卡虚拟化的虚拟总线技术,将用户进程内存空间虚拟化成客户机操作系统能识别的物理内存,如windows系统中物理内存资源;windows系统中的虚拟显卡驱动程序在初始化的时候,能够通过虚拟总线驱动提供的接口,获取到这段物理内存信息,包括起始地址,内存长度等信息,并将其作为虚拟显卡的虚拟显存;虚拟显卡驱动程序调用windows系统的mmap(内存映射文件)接口,将虚拟显卡的虚拟显存映射成windows操作系统能够直接访问使用的虚拟内存空间,虚拟显卡驱动程序将这种映射关系存储在对应的数据结构中,并通过io读写的方式,将这种映射关系传递给显卡虚拟化模块qxl,然后由显卡虚拟化模块qxl通过进程内部的消息机制将映射关系以及用户进程内存空间对应的内存地址段传递给云桌面传输协议模块,实现映射关系的同步。

    如图3所示,本实施例中虚拟显卡对于客户机操作系统中的图形引擎产生的绘制指令进行分离的步骤包括:根据步骤s2),windows操作系统中的资源管理器需要将图形化界面的绘制方法以及绘制区域等信息提交给windows的图形化引擎——gdi,gdi将绘制指令请求转化成对windows系统中的虚拟显卡驱动程序提供的绘制接口的调用,接口调用产生的处理图形数据中携带有包含原始图像数据的bitmap位图数据,以及对应的绘制类型及绘制目标区域信息;windows系统中的虚拟显卡驱动程序,通过hook技术,获取到gdi引擎的当前绘制调用产生的处理图形数据,该数据包含了绘制指令中的原始图像数据,绘制类型,绘制目标区域等信息,虚拟显卡驱动程序同时通过windows图形引擎gdi提供的接口,从虚拟显存中获取一段的存储空间作为gdi绘制所需要的bitmap缓冲区,然后虚拟显卡驱动程序通过调用gdi提供的punt模式接口直接将绘制指令中原始图像数据的bitmap位图数据绘制到所述的bitmap缓冲区中,从而实现将绘制指令中原始的图像数据分离并存储在虚拟显存中;对于由虚拟显卡驱动程序分离产生的绘制指令中的绘制类型和目标区域等信息,虚拟显卡驱动程序能够将原始的图像数据对应的绘制类型,绘制目标区域等信息封装成一个简化的绘制指令,并通过虚拟显存中抽象出来的指令缓冲队列资源传递给qemu中的显卡虚拟化模块qxl,显卡虚拟化模块qxl则通过进程内部的消息机制以及指令缓冲队列对应的存储空间共享的方式直接将简化的绘制指令透传给云桌面传输协议模块。

    本实施例中云桌面传输协议模块的处理步骤包括:根据步骤s3),云桌面传输协议处理模块通过进程内部的缓冲队列的处理方法在获取到简化的绘制指令之后,解析出绘制类型以及绘制目标区域等信息,并根据这些信息,从显卡虚拟化模块qxl同步给云桌面传输模块的虚拟显存对应的bitmap缓冲区中,按照虚拟显存与虚拟内存空间的映射关系解析出对应区域的地址段,并根据绘制目标区域信息中bitmap位图数据的对应宽,高以及每个像素的位宽等信息,计算获取所述地址段中目标区域对应的图像数据的存储区,并将该存储区内的图像数据进行编码传输至云桌面客户端。

    本发明还提出一种基于云桌面的虚拟显卡实现装置,包括计算机,所述计算机被编程或配置以执行上述的基于云桌面的虚拟显卡实现方法。

    本发明还提出一种计算机可读存储介质,所述计算机可读存储介质存储有被编程或配置以执行上述的基于云桌面的虚拟显卡实现方法的计算机程序。

    实施例二

    本实施例与实施例一基本相同,区别在于云桌面传输协议模块在客户机操作系统中运行,虚拟显卡驱动与云桌面传输协议模块在windows中通过显卡驱动程序与用户程序间的共享内存实现实现对bitmap缓冲区的访问,比如文件映射,sectionobject共享,内核存储map技术等,而同样的实现了绘制指令中原始图像数据与其他绘制信息的分离。

    实施例三

    本实施例与实施例一基本相同,区别在于客户机操作系统为linux,而在linux中的虚拟显卡驱动同样的可以按照实施例一中的步骤s1)获取到显卡虚拟化模块qxl的虚拟显存,并将这个虚拟显存映射到linux系统中。而在linux系统中可以使用显卡虚拟化模块qxl的ums驱动,将xorgserver的图形化引擎中产生的绘制指令请求对应的原始的图像数据通过mesa的软件接口直接绘制到虚拟显存对应的bitmap缓冲区中,而云桌面传输协议模块根据简化的绘制指令,从相应的虚拟显存中按目标区域所指定的存储空间中取出图像数据进行编码传输。

    实施例四

    本实施例与实施例二基本相同,区别在于客户机操作系统替换成linux,同时云桌面传输协议模块也是运行在linux系统中,并根据linux的ums驱动与云桌面传输协议模块间的共享内存访问方式,比如文件映射,sectionobject共享,内核存储map技术等,实现云桌面传输协议模块对ums驱动绘制的bitmap缓冲区的访问,并实现绘制指令中原始的图像数据与其他绘制信息的分离。

    上述只是本发明的较佳实施例,并非对本发明作任何形式上的限制。虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明。因此,凡是未脱离本发明技术方案的内容,依据本发明技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均应落在本发明技术方案保护的范围内。


    技术特征:

    1.一种基于云桌面的虚拟显卡实现方法,其特征在于,包括以下步骤:

    s1)虚拟机获取宿主机操作系统提供的用户进程内存空间,将用户进程内存空间虚拟化为虚拟机的虚拟显卡的虚拟显存,同时将虚拟显存映射成虚拟机的客户机操作系统能够直接访问的虚拟内存空间并保存映射关系后传递给虚拟机或宿主机的云桌面传输协议模块;

    s2)所述客户机操作系统生成绘制指令请求并发送给虚拟显卡,所述虚拟显卡将所述绘制指令请求分离为原始的图像数据和对应的其他绘制信息,将所述图像数据绘制在虚拟显存中,将所述其他绘制信息加入绘制指令缓冲队列后发送给所述云桌面传输协议模块;

    s3)所述云桌面传输协议模块获取绘制指令缓冲队列中的其他绘制信息,根据虚拟显存和虚拟内存空间的映射关系在虚拟显存中读取对应的图像数据,将所述图像数据通过云桌面传输协议编码传输至云桌面客户端。

    2.根据权利要求1所述的基于云桌面的虚拟显卡实现方法,其特征在于,步骤s1)具体包括:虚拟机通过宿主机操作系统提供的接口获得用户进程内存空间,然后通过虚拟总线技术将所述用户进程内存空间虚拟化为虚拟机的客户机操作系统能识别的物理内存;客户机操作系统中的虚拟显卡驱动程序初始化时通过虚拟总线驱动提供的接口获取物理内存信息,将物理内存作为虚拟机的虚拟显卡的虚拟显存;客户机操作系统中的虚拟显卡驱动程序通过客户机操作系统的内存映射接口将虚拟显卡的虚拟显存映射成客户机操作系统能够直接访问的虚拟内存空间,将映射关系存储在对应的数据结构中,然后将映射关系和用户进程内存空间对应的内存地址段传递给虚拟机或宿主机的云桌面传输协议模块。

    3.根据权利要求1所述的基于云桌面的虚拟显卡实现方法,其特征在于,步骤s2)具体包括:客户机操作系统中的资源管理器将绘制指令提交给图形化引擎,通过客户机操作系统的图形化引擎将绘制指令请求转化成对客户机操作系统中的虚拟显卡驱动程序提供的绘制接口的调用,接口调用产生的处理图形数据包括包含原始的图像数据的bitmap位图数据和对应的绘制类型及绘制目标区域信息;客户机操作系统中的虚拟显卡驱动程序将图形化引擎的绘制操作进行数据分离,通过客户机操作系统中的图形引擎提供的接口从虚拟显存中开辟bitmap缓冲区,将原始的图像数据所在的bitmap位图数据绘制到bitmap缓冲区中;客户机操作系统中的虚拟显卡驱动程序将对应的绘制类型及绘制目标区域信息封装成简化的绘制指令,将简化的绘制指令加入虚拟显卡的虚拟显存中抽象出来的绘制指令缓冲队列并发送给云桌面传输协议模块。

    4.根据权利要求3所述的基于云桌面的虚拟显卡实现方法,其特征在于,步骤s3)具体包括:云桌面传输协议模块获取简化的绘制指令,解析出绘制类型及绘制目标区域信息;按照虚拟显存和虚拟内存空间的映射关系获取宿主机的用户进程内存空间中bitmap缓冲区对应的地址段;根据绘制类型及绘制目标区域信息计算获取对应原始图像数据所在的存储区,将所述存储区内的图像数据通过云桌面传输协议编码传输至云桌面客户端。

    5.一种虚拟显卡装置,其特征在于,包括:

    宿主机,用于运行宿主机操作系统;

    虚拟机,用于运行客户机操作系统;还用于获取宿主机操作系统提供的用户进程内存空间;

    所述虚拟机包括虚拟显卡,所述虚拟显卡用于将用户进程内存空间虚拟化为虚拟显存,同时将虚拟显存映射成客户机操作系统能够直接访问的虚拟内存空间并保存映射关系后传递给云桌面传输协议模块;还用于获取客户机操作系统中的绘制指令请求,将所述绘制指令请求分离为原始的图像数据和对应的其他绘制信息,将所述图像数据绘制在虚拟显存中,将所述其他绘制信息加入绘制指令缓冲队列并发送给云桌面传输协议模块;

    云桌面传输协议模块,用于获取绘制指令缓冲队列中的绘制信息,根据虚拟显存和虚拟内存空间的映射关系在虚拟显卡模块的虚拟显存中读取对应的图像数据,通过云桌面传输协议编码传输至云桌面客户端;

    所述云桌面传输协议模块在宿主机操作系统或客户机操作系统中运行。

    6.一种基于云桌面的虚拟显卡实现装置,其特征在于,包括计算机,所述计算机被编程或配置以执行权利要求1~4任一所述的基于云桌面的虚拟显卡实现方法。

    7.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有被编程或配置以执行权利要求1~4任一所述的基于云桌面的虚拟显卡实现方法的计算机程序。

    技术总结
    本发明提供一种基于云桌面的虚拟显卡实现方法和装置,方法包括:虚拟机获取宿主机操作系统提供的用户进程内存空间,将用户进程内存空间虚拟化为虚拟显卡的虚拟显存,同时将虚拟显存映射成客户机操作系统能够直接访问的虚拟内存空间并保存映射关系后传递给云桌面传输协议模块;客户机操作系统生成绘制指令请求,虚拟显卡将其中的图像数据绘制在虚拟显存中,将其他的绘制信息加入绘制指令缓冲队列;云桌面传输协议模块获取绘制指令缓冲队列中的绘制信息,根据虚拟显存和虚拟内存空间的映射关系在虚拟显存中读取对应的图像数据,通过云桌面传输协议编码传输至云桌面客户端。本发明能够降低处理延时,同时降低宿主机CPU和内存等资源的消耗。

    技术研发人员:邓旺波;欧阳殷朝;孙利杰;杨鹏举;夏华;胡智峰;颜跃进;陈松政;刘文清;杨涛
    受保护的技术使用者:湖南麒麟信安科技股份有限公司
    技术研发日:2020.11.25
    技术公布日:2021.03.12

    转载请注明原文地址:https://wp.8miu.com/read-23118.html

    最新回复(0)