virtio-win / kvm-guest-drivers-windows

Windows paravirtualized drivers for QEMU\KVM
https://www.linux-kvm.org/page/WindowsGuestDrivers
BSD 3-Clause "New" or "Revised" License
1.93k stars 377 forks source link

Add VirtIO-GPU full graphics driver (with DirectX support) #773

Open matheuswillder opened 2 years ago

matheuswillder commented 2 years ago

As commented in: https://github.com/virtio-win/kvm-guest-drivers-windows/issues/668#issuecomment-1139595028

fubar-1 commented 2 years ago

You might want to take a look at https://github.com/Arc-Compute/LibVF.IO

matheuswillder commented 2 years ago

You might want to take a look at https://github.com/Arc-Compute/LibVF.IO

Thank you! I think I've already read before about this project but I can't test it on my current computer (it's an old 2th Generation Intel with integrated GPU, so unsupported).

I've opened this issue here just to follow up when there's progress on this. The prices for CPUs and GPUs are currently extremely expensive in my country, so there's not much I can do.

But thank you anyway.

gogo2464 commented 1 year ago

Should it fix https://gitlab.com/qemu-project/qemu/-/issues/1610 please? @matheuswillder

matheuswillder commented 1 year ago

Sorry for the late I've been busy lately. If I understand correctly there is plans to document (and implement?) DirectX acceleration through QEMU but on Windows builds, correct? In this case I don't believe it should fix this issue as we were talking (in the comment linked above) about Linux hosts and Windows guests.

gogo2464 commented 1 year ago

I am very very confused. I openned a very very general issue on how to run direct x on qemu.

An accelerator does the trick on Linux but not on windows.

I was asking, could virtio-win replace the qemu PR about to handle directX11 support please?

best regards @matheuswillder !

Segment0895 commented 1 year ago

QEMU PR handles the 'engine' DirectX support. You still need to 'teach' Windows to use the acceleration made available by the 'engine', which is what this ticket is about. TL;DR: both tickets are required, and this one we're commenting on is non-trivial to implement.

gogo2464 commented 1 year ago

Should we start with virtio-win? If we finish virtio-win directX support, qemu with handle directx11. After we will need an accelerator for perf...

Segment0895 commented 1 year ago

I've no clue how it's made. Assuming you have 100+ hours you can use, my somewhat not very well founded suggestion would be to pickup the old GSoC project made in 2017 [1], be able to replicate and iterate from there. Interfaces probably changed a bit, you'll have to be stubborn.

[1] https://www.phoronix.com/news/QEMU-3D-Windows-Guests

matheuswillder commented 1 year ago

Related: #841.

matheuswillder commented 11 months ago

Pull request: https://github.com/virtio-win/kvm-guest-drivers-windows/pull/943

nooodles2023 commented 7 months ago

https://github.com/tenclass/mvisor-win-vgpu-driver I have implemented it for win10 guest with opengl4.2 support. For directx, maybe you can translate it to opengl?

matheuswillder commented 7 months ago

https://github.com/tenclass/mvisor-win-vgpu-driver I have implemented it for win10 guest with opengl4.2 support. For directx, maybe you can translate it to opengl?

I never had heard of mvisor project before, it sounds interesting. I'll test it later when I have some free time. Thanks for indication!

nooodles2023 commented 7 months ago

https://github.com/tenclass/mvisor-win-vgpu-driver I have implemented it for win10 guest with opengl4.2 support. For directx, maybe you can translate it to opengl?

I never had heard of mvisor project before, it sounds interesting. I'll test it later when I have some free time. Thanks for indication!

It's my pleasure. Mvisor is a mini virtual machine that is based on KVM. We built it using C++ instead of C, and we have been using Mvisor in our production for 2 years.

matheuswillder commented 7 months ago

It's my pleasure. Mvisor is a mini virtual machine that is based on KVM. We built it using C++ instead of C, and we have been using Mvisor in our production for 2 years.

I'll take a look soon, thanks again! If you can, I suggest you make a post announcing the project in places like r/linux and r/opensource on Reddit, there are certainly other users there that may be interested in using or even contributing to it. You can make announcements of new versions there too. But this is just a suggestion to make the project better known.