System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种多虚拟机系统的渲染与显示方法、装置和电子设备制造方法及图纸_技高网

一种多虚拟机系统的渲染与显示方法、装置和电子设备制造方法及图纸

技术编号:40922437 阅读:3 留言:0更新日期:2024-04-18 14:46
本公开涉及一种多虚拟机系统的渲染与显示方法、装置和电子设备。其中,多虚拟机系统的渲染与显示方法包括:虚拟化层,响应于接收到来自第一虚拟机的virtio‑gpu驱动的内存映射I/O请求,利用在虚拟化层实现的virtio设备,向运行在第二虚拟机的用户态的虚拟图形库服务发送渲染指令到达信息;虚拟图形库服务,响应于接收到渲染指令到达信息,利用ioctl机制,获取virtio‑gpu驱动存放于第一虚拟机和第二虚拟机之间的共享内存区域的用于执行目标渲染任务的第一渲染指令数据;以及根据第一渲染指令数据,利用第二虚拟机的硬件GPU设备,得到第一渲染指令数据对应的渲染结果;利用运行于第二虚拟机的显卡驱动,将根据渲染结果得到的待显示图像数据发送到第二虚拟机的硬件显卡。

【技术实现步骤摘要】

本公开涉及虚拟机,尤其涉及一种多虚拟机系统的渲染与显示方法、装置和电子设备


技术介绍

1、虚拟化技术是计算机领域中的一项重要技术,它允许在物理计算机上运行多个虚拟机,来提高计算机硬件的利用率。在虚拟机管理器中,gpu(图形处理单元)与显示虚拟化技术起着举足轻重的作用,它能够显著提高虚拟机的渲染性能,提升虚拟机管理器的可用性,满足虚拟机管理器在渲染与显示应用场景的需求。

2、相关技术中,在qemu虚拟机管理器中,可以借助kvm(kernel-based virtualmachine)的virtio-gpu协议,在hos主机实现来自虚拟机的图形的后端渲染,并通过sdl、gtk等图形ui框架在host主机上创建窗口用以完成显示任务。由于qemu是ii型虚拟机,ii型虚拟机与i型虚拟机拥有不同的系统架构,上述qemu的窗口显示虚拟化方法,无法运用在i型虚拟机管理器领域。并且,在上述qemu的窗口显示虚拟化方法中,需要在host主机的图形层再次对来自虚拟机的渲染后的图像进行合成,以实现在主机的窗口显示虚拟机的图像,因此,需要的处理的数据量较大,显示性能较低。而且,在嵌入式应用领域(例如,车载领域),显示虚拟化通常需要多个屏幕分别全屏显示画面,而上述qemu的窗口显示虚拟化方法只支持单屏显示且在全屏支持上效效果不佳。

3、因此,如何在i型虚拟机上,高效地实现硬件gpu的计算资源和显卡资源在多个虚拟环境中共享,且可以得到较好的全屏支持效果,是亟待解决的技术问题。


技术实现思路>

1、为克服相关技术中存在的问题,本公开提供一种多虚拟机系统的渲染与显示方法、装置和电子设备。

2、根据本公开实施例的第一方面,提供一种多虚拟机系统的渲染与显示方法,包括:所述虚拟化层,响应于接收到来自第一虚拟机的virtio-gpu驱动的内存映射i/o请求,利用在所述虚拟化层实现的virtio设备,向运行在第二虚拟机的用户态的虚拟图形库服务发送渲染指令到达信息;其中,所述第二虚拟机为拥有硬件gpu设备以及硬件显卡的虚拟机,所述第一虚拟机为所述多虚拟机系统中不拥有硬件gpu设备以及硬件显卡的虚拟机;所述虚拟图形库服务,响应于接收到所述渲染指令到达信息,利用ioctl机制,获取所述virtio-gpu驱动存放于所述第一虚拟机和所述第二虚拟机之间的共享内存区域的用于执行目标渲染任务的第一渲染指令数据;以及根据所述第一渲染指令数据,利用所述第二虚拟机的硬件gpu设备,得到所述第一渲染指令数据对应的渲染结果;利用运行于所述第二虚拟机的显卡驱动,将根据所述渲染结果得到的待显示图像数据发送到所述第二虚拟机的硬件显卡,以使所述硬件显卡,将所述渲染结果显示于与所述硬件显卡连接的目标显示设备。

3、在一些实施例中,所述virtio设备包括virtio代理设备和virtio桩设备;所述利用在所述虚拟化层实现的virtio设备,向运行在第二虚拟机的用户态的虚拟图形库服务发送渲染指令到达信息,包括:所述virtio代理设备,响应于监听到所述virtio-gpu驱动的内存映射i/o请求,指示所述virtio桩设备向所述虚拟图形库服务发送所述渲染指令到达信息。

4、在一些实施例中,所述virtio桩设备通过以下方式向所述虚拟图形库服务发送所述渲染指令到达信息:所述virtio桩设备,触发预设类型的中断;运行于所述第一虚拟机中的内核态的virtio桩设备的驱动程序,响应于接收到所述预设类型的中断,向所述虚拟图形库服务发送所述渲染指令到达信息。

5、在一些实施例中,所述利用ioctl机制,获取所述virtio-gpu驱动存放于所述第一虚拟机和所述第二虚拟机之间的共享内存区域的用于执行目标渲染任务的第一渲染指令数据,包括:所述虚拟图形库服务,利用所述virtio桩设备的驱动程序提供的ioctl接口函数,从所述virtio桩设备的驱动程序获取其从所述共享内存区域读取的所述第一渲染指令数据。

6、在一些实施例中,根据所述第一渲染指令数据,利用所述第二虚拟机的硬件gpu设备,得到所述第一渲染指令数据对应的渲染结果,包括:利用预设算法,根据所述第一渲染指令数据,生成与所述硬件gpu适配的第二渲染指令数据;利用运行于内核态的gpu驱动,将所述第二渲染指令数据发送到所述硬件gpu设备,以使所述硬件gpu设备根据所述第二渲染指令数据,生成所述目标渲染任务的渲染结果;从所述内核态的gpu驱动,获取其从所述硬件gpu设备读取的所述渲染结果。

7、在一些实施例中,所述第一渲染指令数据为tgsi指令数据,所述第二渲染指令数据为glsl指令数据;所述利用预设算法,根据所述第一渲染指令数据,生成与所述硬件gpu适配的第二渲染指令数据,包括:所述虚拟图形库服务,利用virglrenderer,将所述tgsi指令数据解析为glsl指令数据;所述利用运行于内核态的gpu驱动,将所述第二渲染指令数据发送到所述硬件gpu设备,包括:利用与所述硬件gpu设备适配的libgles,将所述glsl指令数据解析为与所述gpu驱动适配的控制指令;调用所述gpu驱动提供的接口函数,执行所述控制指令,以将所述glsl指令数据写入到所述硬件gpu设备;所述从所述内核态的gpu驱动,获取其从所述硬件gpu设备读取的所述渲染结果,包括:利用绑定在virglrenderer上的eglcontext,通过与所述硬件gpu设备适配的libgles,从所述gpu驱动读取其从所述硬件gpu设备获取的渲染结果。

8、根据本公开实施例的第二方面,提供一种多虚拟机系统的渲染与显示装置,包括:发送模块,用于使所述虚拟化层,响应于接收到来自第一虚拟机的virtio-gpu驱动的内存映射i/o请求,利用在所述虚拟化层实现的virtio设备,向运行在第二虚拟机的用户态的虚拟图形库服务发送渲染指令到达信息;其中,所述第二虚拟机为拥有硬件gpu设备以及硬件显卡资源的虚拟机,所述第一虚拟机为所述多虚拟机系统中不拥有硬件gpu设备以及硬件显卡资源的虚拟机;第一获取模块,用于使所述虚拟图形库服务,响应于接收到所述渲染指令到达信息,利用ioctl机制,获取所述virtio-gpu驱动存放于所述第一虚拟机和所述第二虚拟机之间的共享内存区域的用于执行目标渲染任务的第一渲染指令数据;第二获取模块,用于根据所述第一渲染指令数据,利用所述第二虚拟机的硬件gpu设备,得到所述第一渲染指令数据对应的渲染结果;显示模块,用于利用运行于所述第二虚拟机的显卡驱动,将根据所述渲染结果得到的待显示图像数据发送到所述第二虚拟机的硬件显卡,以使所述硬件显卡,将所述渲染结果显示于与所述硬件显卡连接的目标显示设备。

9、根据本公开实施例的第三方面,提供一种车辆,存储有一组指令集,所述指令集被所述车辆执行,以实现本公开第一方面所提供的多虚拟机系统的渲染与显示方法。

10、根据本公开实施例的第四方面,提供一种电子设备,包括:处理器;用于存储所述处理器可执行指令的存储器;所述处理器本文档来自技高网...

【技术保护点】

1.一种多虚拟机系统的渲染与显示方法,其特征在于,对所述多虚拟机系统中的多个虚拟机通过虚拟化层共享包括硬件GPU设备以及硬件显卡的片上系统,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述virtio设备包括virtio代理设备和virtio桩设备;

3.根据权利要求2所述的方法,其特征在于,所述virtio桩设备通过以下方式向所述虚拟图形库服务发送所述渲染指令到达信息:

4.根据权利要求3所述的方法,其特征在于,所述利用ioctl机制,获取所述virtio-gpu驱动存放于所述第一虚拟机和所述第二虚拟机之间的共享内存区域的用于执行目标渲染任务的第一渲染指令数据,包括:

5.根据权利要求4所述的方法,其特征在于,根据所述第一渲染指令数据,利用所述第二虚拟机的硬件GPU设备,得到所述第一渲染指令数据对应的渲染结果,包括:

6.根据权利要求5所述的方法,其特征在于,所述第一渲染指令数据为TGSI指令数据,所述第二渲染指令数据为GLSL指令数据;

7.一种多虚拟机系统的渲染与显示装置,其特征在于,包括

8.一种电子设备,其特征在于,包括:

9.一种计算机可读存储介质,其上存储有计算机程序指令,其特征在于,该程序指令被处理器执行时,以实现所述权利要求1-6中任一所述的多虚拟机系统的渲染与显示方法的步骤。

10.一种车辆,其特征在于,

...

【技术特征摘要】

1.一种多虚拟机系统的渲染与显示方法,其特征在于,对所述多虚拟机系统中的多个虚拟机通过虚拟化层共享包括硬件gpu设备以及硬件显卡的片上系统,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述virtio设备包括virtio代理设备和virtio桩设备;

3.根据权利要求2所述的方法,其特征在于,所述virtio桩设备通过以下方式向所述虚拟图形库服务发送所述渲染指令到达信息:

4.根据权利要求3所述的方法,其特征在于,所述利用ioctl机制,获取所述virtio-gpu驱动存放于所述第一虚拟机和所述第二虚拟机之间的共享内存区域的用于执行目标渲染任务的第一渲染指令数据,包括:

...

【专利技术属性】
技术研发人员:丁磊
申请(专利权)人:国科础石重庆软件有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1