申请/专利权人:麒麟软件有限公司
申请日:2024-03-18
公开(公告)日:2024-06-21
公开(公告)号:CN117992237B
主分类号:G06F9/50
分类号:G06F9/50;G06F9/30;G06F9/455;G06F11/30;G06T1/20;G06T15/00
优先权:
专利状态码:有效-授权
法律状态:2024.06.21#授权;2024.05.24#实质审查的生效;2024.05.07#公开
摘要:本发明涉及虚拟化桌面技术领域,具体提供一种基于virgl图形技术栈的渲染API转发方法,包括:向虚拟机发送virgl指令;虚拟显卡接收virgl指令,并将virgl指令缓存到virgl指令缓存队列中;依次处理virgl指令缓存队列中的一条virgl指令,并将处理后的virgl指令发送给宿主机mesa库;向虚拟显卡返回virgl指令处理完毕信号;虚拟显卡生成并发送virgl指令执行完毕信号给虚拟机;虚拟显卡生成并发送渲染同步指令给宿主机mesa库。解决了现有技术中在“virgl”图形技术栈实现的渲染API转发方案中,渲染同步阶段存在查询不及时、同步链路长等技术问题。
主权项:1.一种基于virgl图形技术栈的渲染API转发方法,其特征在于,包括以下步骤:virtio-gpu虚拟显卡通过对云桌面刷新时读取物理GPU显存中的云桌面图像耗时的统计,根据预设的频次判断物理GPU是否超载,若否,则执行以下操作:S11:向qemu虚拟机发送前台应用的opengl渲染指令对应的virgl指令;S12:qemu虚拟机上的virtio-gpu虚拟显卡接收所述virgl指令,并将virgl指令缓存到virgl指令缓存队列中;S13:调用virglrenderer库依次处理virgl指令缓存队列中的一条virgl指令,并将处理后的virgl指令发送给宿主机mesa库;S14:virglrenderer库向virtio-gpu虚拟显卡返回virgl指令处理完毕信号;S15:virtio-gpu虚拟显卡生成并发送virgl指令执行完毕信号给qemu虚拟机,用于生成后续virgl指令使qeum虚拟机接收;S16:virtio-gpu虚拟显卡通过virglrenderer库生成并发送渲染同步指令给宿主机mesa库;S17:当物理GPU执行到渲染同步指令时,宿主机mesa库生成并发送渲染同步完成信号添加到virglrenderer库的同步信号队列中;S18:当检测到有新增的渲染同步完成信号后,重复执行步骤S13至步骤S17。
全文数据:
权利要求:
百度查询: 麒麟软件有限公司 一种基于virgl图形技术栈的渲染API转发方法
免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。