-
Notifications
You must be signed in to change notification settings - Fork 25
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
vgpu not detected by GpuTest #2
Comments
Can you post the mvisor log? did it output some error information? |
|
|
Use q35.yaml instead of i440fx.
|
@purplepalmdash how about other tests in GpuTest ? |
all of the tests in GpuTest under current config(i440fx) got the same result(blank window and no result), I'm currently trying the q35 way. |
You can use ProcessHack to check if the guest dll were loaded. |
GpuTest_GUI would create sub process to test opengl, check if the sub process loaded opengl32.dll. |
As you see, the MvisorVGPUx64.dll is the entrance of vgpu device, it implements the opengl api in opengl32.dll and transport all the request to kernel driver(Mvisor VGPU). |
oh~You may need to debug it why the IOCTL_VIRTIO_VGPU_GET_CAPS got failed. It was the beginning of VGPU initialization. |
Yes, I think so, I'll debug it later, thanks for the advice! |
If the driver didn't output anything error, the problem maybe the |
Of course, I will find a free time to test it. |
Hello nooodles, Happy New Year! Recently I try to debug MvisorVGPUx64.dll by following the steps:
At this time I found that gputest did not load MvisorVGPUx64.dll.
I found that the size of MvisorVGPUx64.dll I built was 23MB, but the pre-built dll was only 20MB. My compile command line is as follows: Some environmental information:
Did I make a mistake somewhere? |
Another question, Can you tell me what the function of opengl32.dll in the pre-built package? It doesn't seem to be used in install.bat. |
so, you made it !!!? |
Yes, the windows already got the openg32.dll in system32, the dll was just a interface collections, it needed implemention from GPU driver. |
Yes, I got MvisorVGPUx64.dll from sources code sucessfully and copy it to C:\Windows\System32, but gputest can not load it. |
Thanks, I get it, maybe I don't need to care about opengl32.dll that build from sources. |
Oh, maybe there are some other dlls depended lost. For example, zlib.dll or zstd.dll |
Maybe, I'll check the deps later. |
it's works after add dll deps, i print some information in But it looks like it returns a handle normally. |
failed=31 means that the vgpu device didn't work. it was windows error. Print the handle value |
@w568w IOCTL_VIRTIO_VGPU_GET_CAPS has always succeeded in my env. Could you help me to debug it in mvisor to ensure the case VIRTIO_GPU_CMD_GET_CAPSET was successfully called |
This looks pretty strange. The error log mvisor-win-vgpu-driver/usermode/mesa-virgl-icd-for-windows.patch Lines 2703 to 2711 in 45ab463
Here, So, if we assume that mvisor-win-vgpu-driver/kernelmode/vgpu/control.c Lines 204 to 254 in 45ab463
But we don't see any log printed, which really confuses me. Is [1] https://github.com/reactos/reactos/blob/90de2b660b12919c2f60f2f31ad41e37c123d662/sdk/lib/rtl/error.c#L463-L465 |
Maybe there are sth wrong with the params of DeviceIoControl. |
Can you confirm this? I prepended
All above are printed during the system boot, i.e., when the driver is loading. When I run GpuTest or something graphic, nothing is printed anymore. Also, I have several hypotheses:
I have no idea how to verify them. Maybe a kernel driver debugger is necessary.
By the way, could you share your VM config and images? I want to check whether it is a system environment or image issue. |
try to fix the ctl_get_caps like ths |
Okay, but I have no experience in compiling Mesa on Windows. Will have a try this week. |
I tried all of the above with the release driver but I don't get any errors with Here is what I get (because I enabled for a while CaptureEvents.) I can see Mvisor VGPU name: Default configuration
base: q35.yaml
machine:
memory: 8G
vcpu: 4
# Set vcpu thread priority value [-20, 19]
# A higher value means a lower priority
priority: 1
# Turn on BIOS output and performance measurement
debug: Yes
# Turn on hypervisor to lower CPU usage (Hyper-V is used for Windows)
hypervisor: Yes
objects:
- name: cmos
# gmtime for linux, localtime for windows
rtc: localtime
- class: qxl
- class: spice-agent
- class: usb-tablet
- class: virtio-network
mac: 00:50:00:11:22:33
map: tcp:0.0.0.0:8022-:22
# If you have configured the tap interface, you can uncomment the following lines
# backend: tap
# ifname: tap0
# - class: ata-cdrom
# image: /home/zhifan/Documents/iso/Win11_23H2_English_x64v2.iso
# - class: ata-cdrom
# image: /home/zhifan/Documents/iso/virtio-win-0.1.262.iso
- class: virtio-block
image: /home/zhifan/Documents/vms/win11-2.qcow2
snapshot: No
# - class: floppy
# image: /data/images/floppy.img
# - class: virtio-block
# image: /data/empty.qcow2
# snapshot: No
# - class: virtio-fs
# path: /tmp/fuse
# disk_name: mvisor-fs
# disk_size: 2G
# inode_count: 200
# - class: vfio-pci
# sysfs: /sys/bus/mdev/devices/c2e088ba-954f-11ec-8584-525400666f2b
# debug: Yes
- class: virtio-vgpu
memory: 1G
staging: No
blob: Yes
# node: /dev/dri/renderD128
# - class: virtio-cuda
# memory: 1G
# gpu_memory: 8G
# visible_gpus: GPU-0 Here is my config And this is libvirglrenderer version I also noticed that when I close mvisor I get this output Error of failed request: BadAccess (attempt to access private resource denied)
Major opcode of failed request: 150 (GLX)
Minor opcode of failed request: 26 (X_GLXMakeContextCurrent)
Serial number of failed request: 112
Current serial number in output stream: 112 And this is my GPU
|
What's your question when you run GPUtest? |
@teleport-10032 @w568w Maybe this is the key for this bug. |
Oh, have you compiled and tested the user-space part? I was trying to compile Mesa with this patch last week but failed. Will appreciate it if you can build one for testing. 🚀 |
I have fixed, use release v1.0.1 and rebuild virglrenderer in host with old version(8df4cba170940dad9350a99900293adbcef39b6c) |
Thanks a lot! I will try v1.0.1 and provide feedback as soon as I get some time. Being really busy recently :( |
I have tried installing the driver, disabling the device, enabling the device, going into GPUTest, restarting Mvisor, recompiling an older commit of libvirglrenderer, reconfiguring my yaml several times over changing variables in the VGPU section, and the VGPU doesn't work. |
Turns out, I needed to specify LD_PRELOAD in my command to launch Mvisor due to Arch not recognizing the library path. |
Hi, I installed the prebuilt driver in win10 vm, but gputest could not use this device, during the test it shows nothing then exit.
From the issue #1 you could see GpuTest could detect graphical infos during testing , but in my vm it show nothing, just a blank window then exit.
From the mvisor's log I couldn't find any log related to
virtio_vgpu.cc
like in #1Mvisor VGPU
device seems OK in device manager:My enviroment is listed as following:
nvidia-smi output:
vgpu config:
Any suggestions?
The text was updated successfully, but these errors were encountered: