(19)国家知识产权局
(12)发明 专利申请
(10)申请公布号
(43)申请公布日
(21)申请 号 202210466651.4
(22)申请日 2022.04.29
(71)申请人 麒麟软件有限公司
地址 300450 天津市滨 海新区塘沽海 洋科
技园信安创业广场3号楼6 -8层
(72)发明人 李唯实 张铎 孙立明 谢明
(74)专利代理 机构 北京汇智英财专利代理事务
所(普通合伙) 11301
专利代理师 牛振娟
(51)Int.Cl.
G06F 3/14(2006.01)
G06F 9/451(2018.01)
G06F 9/455(2006.01)
(54)发明名称
减少VIRTIO-GPU额外性能损耗的方法
(57)摘要
本发明涉及一种减少VIRTIO ‑GPU额外性能
损耗的方法, 在VIRTIO ‑GPU将绘图命令发送给
Virglrenderer进行执行的过程中, 预先对绘图
命令进行监听, 当监听到命令中包含draw操作
时, 记录下draw操作涉及的窗口区域; 当VIRTI O‑
GPU接收到屏幕刷新命令时, VIRTIO ‑GPU又会到
该装置中获取记录下的窗口区域, 在调用
glReadPixel s接口时, 将根据窗口区域的位置和
大小来提取物理显卡帧缓存中的像素数据; 最
后, 将提取到的窗口像素数据与缓存的上一帧屏
幕画面进行数据合成后输出。 本发 明在大部分应
用场景下能够有效减少减少从宿主机物理显卡
中提取屏幕画面图像数据所造成的显卡性能损
耗, 从而提升VIRTIO ‑GPU的图像性能。
权利要求书1页 说明书7页 附图3页
CN 114968152 A
2022.08.30
CN 114968152 A
1.一种减少VIRTIO ‑GPU额外性能损耗的方法, 其特 征在于, 包括如下步骤:
步骤S1: 在虚拟机所依赖的QE MU中构建 绘图命令监听分析装置;
步骤S2: QEMU在内存中维护一张屏幕画面帧缓存, 用于缓存最近发送给远程客户端 的
屏幕画面;
步骤S3: VIRTIO ‑GPU接收到绘图命令后, 将绘图命令发送给绘图命令监听分析装置;
步骤S4: 绘图命令监听分析装置解析绘图命令, 在绘图命令是针对屏幕画面帧缓存且
包含特定的dr aw操作时, 对draw操作进行进一步分析, 得到并记录dr aw操作对应的窗口区
域的位置及大小, 得到窗口区域列表;
步骤S5: 绘图命令监听分析装置将绘图命令转发给virglrenderer组件, 通过
virglrenderer组件完成物理显卡上的图形绘制操作;
步骤S6: VIRTIO ‑GPU接收到虚拟机中VIRTIO ‑GPU驱动发送的屏幕刷新命令, 从绘 图命
令监听分析装置中获取步骤S4所得到的窗口区域列 表; 并根据该窗口区域列 表从屏幕画 面
帧缓存中提取 该窗口区域列表对应位置处的图像 像素数据;
步骤S7: QEMU将步骤S6得到的图像像素数据整合到步骤S2中在内存中维护的屏幕画面
帧缓存上, 将整合后的屏幕画面数据发送给远程 客户端进行呈现。
2.如权利 要求1所述的减少VIRTIO ‑GPU额外性能损耗的方法, 其特征在于: 所述步骤S4
中, 通过从dr aw操作中提取相关参数得到draw操作指定的映射区域的大小和位置, 将其作
为一个窗口区域记录 到窗口区域列表中。
3.如权利 要求1所述的减少VIRTIO ‑GPU额外性能损耗的方法, 其特征在于: 所述步骤S6
中, 通过glReadPix els函数从屏幕画面帧缓存中提取窗口区域列表对应位置处的图像像素
数据。
4.如权利 要求1所述的减少VIRTIO ‑GPU额外性能损耗的方法, 其特征在于: 所述步骤S7
中, QEMU以得到的图像像素数据替换内存中已有的屏幕画 面帧缓存 上对应窗口区域列 表中
的数据, 以得到整合后的屏幕画面数据。
5.如权利 要求1所述的减少VIRTIO ‑GPU额外性能损耗的方法, 其特征在于: 所述步骤S4
中, 绘图命令监听分析装置解析到绘图命令针对屏幕画面帧缓存且包含特定的draw操作
时, 对所有的draw操作进行分析, 得到完整绘图命令中所有draw操作对应的窗口区域位置
及大小。权 利 要 求 书 1/1 页
2
CN 114968152 A
2减少VIRTIO ‑GPU额外性能损耗的方 法
技术领域
[0001]本发明属于虚拟化桌面技术领域, 具体涉及减少VIRTIO ‑GPU额外性能损耗的方
法。
背景技术
[0002]云桌面是虚拟化和云计算时代的典型应用。 通过在云端数据中心搭建服务器集
群、 创建多个虚拟机、 用户通过云终端设备远程连入虚拟 机的方式, 云桌面可以提供给用户
与本地PC一致的使用体验。 这种技术使得管理人员只需云端数据中心进行集中的系统维
护, 大大降低了管理人员的工作量, 也使得使用人员无需担心因本地PC故障导致的数据丢
失问题, 越来越受到企业和个人的青睐。
[0003]目前, 大多数云桌面厂商使用QEMU/KVM的架构来实现桌面虚拟化, 并搭配使用
VGA、 QXL、 Cirrus等虚拟显卡进行图像输出。 这类虚拟显卡成本低廉、 易部署, 且兼容性较
好, 但因为虚拟显卡通常是借由宿主机CPU来模拟执行图像命令的缘故, 也存在性能不足、
无法胜任大 型3D应用的问题, 其应用范围有限。
[0004]为提升虚拟显卡的图像性能特别是3D 性能, 研究者们引入了 “Virgl”图形技术栈,
通过该图形技术栈所提供的组件, 虚拟机可以借助VirtIO ‑GPU虚拟显卡和Vieglrenderer
组件来访问宿主机OpenGL接口, 进而利用宿主机的物理显卡进行图形处理, 从而大大提高
虚拟机的图形性能。
[0005]由于处理后生成的屏幕画面均位于宿主机物理显卡的帧缓存中, 为了实现远端显
示屏上的云桌面屏幕画面的呈现, QEMU提供了egl ‑headless图形协议, 通过该协议, QEMU可
以将宿主机物理显卡的帧缓存中的屏幕画面提取到内存中, 并通过云桌面协 议发送到远端
显示屏上 呈现。
[0006]然而, 当egl ‑headless读取宿主机物理显卡的帧缓存时, 将不可避免地占用宿主
机物理显卡的执行时间和带宽, 造成额外的性能损耗, 而且这种性能损耗会随着虚拟机的
数量以及虚拟机中云桌面分辨率的增加而同步增加: 虚拟 机越多、 分辨率越大, 则额外性能
损耗越大。
[0007]这种额外的性能损耗也给VirtIO ‑GPU的图形性能造成了负面影响: 由于VirtIO ‑
GPU的图形性能依赖于宿 主机物理显卡的图形 处理性能, 额外性能损耗增加, 宿 主机物理显
卡能够分配给虚拟机VIRTIO ‑GPU的图形处理时间和带宽也就相应减少, 从而导致虚拟机
VIRTIO‑GPU的图形处 理能力的降低。
[0008]中国发明专利 “基于SPICE协议 的智能支持显卡直通和虚拟显卡 的显示方法 ”(专
利号: CN109358951B) 。 该发明具体涉及一种基于SPICE协议的智能支持显卡直通和虚拟显
卡的显示方法。 与现有技术相比较, 该发明沿用了原有SPICE协议, 可自适应物理显卡透传
和虚拟显卡两种方式, 展示虚拟桌面, 与 原有系统兼容性高。 虚拟机通过virtIO与服务端通
信, 不直接与客户端通信, 提高系统安全性。 该发明采用的是显卡直通方式来满足用户的高
性能显示需求, 并未采用VIRTIO ‑GPU方案, 也未涉及减少虚拟机画面提取造成的宿主机物说 明 书 1/7 页
3
CN 114968152 A
3
专利 减少VIRTIO-GPU额外性能损耗的方法
文档预览
中文文档
12 页
50 下载
1000 浏览
0 评论
309 收藏
3.0分
温馨提示:本文档共12页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
本文档由 人生无常 于 2024-03-18 11:25:58上传分享