Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

how to enable vgpu? #47

Open
bondlei opened this issue Sep 5, 2024 · 12 comments
Open

how to enable vgpu? #47

bondlei opened this issue Sep 5, 2024 · 12 comments

Comments

@bondlei
Copy link

bondlei commented Sep 5, 2024

how to enable vgpu? when i enable the "vgpu" option in meson_options.txt,compiler report an error like below:

My host is Deepin V23 .

[154/179] Compiling C++ object mvisor.p/devices_virtio_virtio_vgpu.cc.o FAILED: mvisor.p/devices_virtio_virtio_vgpu.cc.o c++ -Imvisor.p -I. -I.. -I../include -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/sysprof-6 -I/usr/include/pixman-1 -I/usr/include/virgl -I/usr/include/SDL2 -fdiagnostics-color=always -D_GLIBCXX_ASSERTIONS=1 -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wextra -Werror -std=c++17 -O2 -g -Wno-address-of-packed-member -Wno-missing-field-initializers -mavx2 -D_REENTRANT -pthread -MD -MQ mvisor.p/devices_virtio_virtio_vgpu.cc.o -MF mvisor.p/devices_virtio_virtio_vgpu.cc.o.d -o mvisor.p/devices_virtio_virtio_vgpu.cc.o -c ../devices/virtio/virtio_vgpu.cc ../devices/virtio/virtio_vgpu.cc: In member function ‘void VirtioVgpu::CreateVirglContext(VirtElement*)’: ../devices/virtio/virtio_vgpu.cc:760:16: error: ‘virgl_renderer_context_create_with_flags’ was not declared in this scope; did you mean ‘virgl_renderer_context_create’? 760 | auto ret = virgl_renderer_context_create_with_flags(cmd->hdr.ctx_id, cmd->context_init, cmd->nlen, cmd->debug_name); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | virgl_renderer_context_create ../devices/virtio/virtio_vgpu.cc: In member function ‘void VirtioVgpu::CreateBlobResource(VirtElement*)’: ../devices/virtio/virtio_vgpu.cc:888:53: error: variable ‘VirtioVgpu::CreateBlobResource(VirtElement*)::virgl_renderer_resource_create_blob_args args’ has initializer but incomplete type 888 | struct virgl_renderer_resource_create_blob_args args = { | ^~~~ ../devices/virtio/virtio_vgpu.cc:899:11: error: ‘virgl_renderer_resource_create_blob’ was not declared in this scope; did you mean ‘virgl_renderer_resource_create_args’? 899 | ret = virgl_renderer_resource_create_blob(&args); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | virgl_renderer_resource_create_args ../devices/virtio/virtio_vgpu.cc: In member function ‘void VirtioVgpu::MapBlobResource(VirtElement*)’: ../devices/virtio/virtio_vgpu.cc:915:16: error: ‘virgl_renderer_resource_map’ was not declared in this scope; did you mean ‘virgl_renderer_resource_info’? 915 | auto ret = virgl_renderer_resource_map(cmd->resource_id, &map, &size); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ | virgl_renderer_resource_info ../devices/virtio/virtio_vgpu.cc:924:5: error: ‘virgl_renderer_resource_get_map_info’ was not declared in this scope; did you mean ‘virgl_renderer_resource_get_info’? 924 | virgl_renderer_resource_get_map_info(cmd->resource_id, &resp->map_info); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | virgl_renderer_resource_get_info ../devices/virtio/virtio_vgpu.cc: In member function ‘void VirtioVgpu::UnmapBlobResource(VirtElement*)’: ../devices/virtio/virtio_vgpu.cc:935:16: error: ‘virgl_renderer_resource_unmap’ was not declared in this scope; did you mean ‘virgl_renderer_resource_unref’? 935 | auto ret = virgl_renderer_resource_unmap(cmd->resource_id); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | virgl_renderer_resource_unref [163/179] Compiling C++ object mvisor.p/images_qcow2.cc.o

@78
Copy link
Collaborator

78 commented Sep 5, 2024

@nooodles2023

@nooodles2023
Copy link
Collaborator

Build virglrenderer from Mesa on host, these virgl_xxx functions was implemented in official libvirglrenderer.so

@bondlei
Copy link
Author

bondlei commented Sep 5, 2024

Build virglrenderer from Mesa on host, these virgl_xxx functions was implemented in official libvirglrenderer.so

什么意思?是可以不打开vgpu选项就可以直接使用?因为我目前的状态是meson_options.txt中不开vgpu选项就可以正常编译安装并创建虚拟机安装系统。

@78
Copy link
Collaborator

78 commented Sep 5, 2024

Yes. You don't need to enable the vgpu option unless virgl is what you want.

@bondlei
Copy link
Author

bondlei commented Sep 6, 2024

Yes. You don't need to enable the vgpu option unless virgl is what you want.

目前是我在不打开vgpu选项情况下,我可以正常编译通过并运行成功,也能正常安装win11系统,但在win11的设备管理中看不到“Mvisor VGPU“设备,同时启动时终端会报一个错:
[0.000] core/configuration.cc:275 LoadObjects() warn: object not found virtio-vgpu virtio-vgpu
我的vm yaml配置文件中打开了关于vgpu的配置:

  • class: virtio-vgpu
    memory: 2G
    staging: Yes
    blob: No
    node: /dev/dri/renderD128 #这是我主机中查到的渲染设备编号
    请问要如何处理?

@nooodles2023
Copy link
Collaborator

如果你不需要vgpu可以把virtio-vgpu从配置文件里面删掉,这样就不会有警告并且设备管理器也不会有未知设备了

@nooodles2023
Copy link
Collaborator

virtio-vgpu是为了给windows的客户端程序提供opengl4的支持

@bondlei
Copy link
Author

bondlei commented Sep 6, 2024

如果你不需要vgpu可以把virtio-vgpu从配置文件里面删掉,这样就不会有警告并且设备管理器也不会有未知设备了

我就是向着vgpu来的,平时主要使用qemu,但是困扰于它没有3d加速好多年啊,最近才看到你们的项目解决了这个问题,准备研究研究,成功了就在深度论坛里发个帖子。

@nooodles2023
Copy link
Collaborator

nooodles2023 commented Sep 6, 2024

https://gitlab.freedesktop.org/virgl/virglrenderer 在host上编译这个项目就可以开启vgpu编译mvisor
https://github.com/tenclass/mvisor-win-vgpu-driver 这里是guest驱动,项目是参考了virgl和qemu在linux下的工作方式,迁移到了windows和mvisor上

@bondlei
Copy link
Author

bondlei commented Sep 8, 2024

https://gitlab.freedesktop.org/virgl/virglrenderer 在host上编译这个项目就可以开启vgpu编译mvisor https://github.com/tenclass/mvisor-win-vgpu-driver 这里是guest驱动,项目是参考了virgl和qemu在linux下的工作方式,迁移到了windows和mvisor上

两个项目都编译安装成功了,但是在启动windows11的时候会蓝屏,且主机喇叭异响。附件是打开了debug参数后启动win11的日志以及蓝屏截图,有几次蓝屏上还提示 what failed:vgpu.sys.
vgpu-debug.txt

截图_mvisor_20240908193047

@nooodles2023
Copy link
Collaborator

nooodles2023 commented Sep 8, 2024

vgpu的guest驱动编译的是win10的版本,没有在win11上测试过,你可以在win10上测试一下。
后续可以在tenclass/mvisor-win-vgpu-driver#13 这个问题上讨论

@bondlei
Copy link
Author

bondlei commented Sep 18, 2024

另外发现一个bug,安装了guest-tools后(版本229),guest系统关机会卡在关机界面。

截图_mvisor_20240918153902
直接关闭窗口后,终端有个error,不知道是不是有关系。
截图_选择区域_20240918171534

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants