Hi all, This is a some sort of code preview announcement forvirtio-gpu WDDM Display Only Driver which is just theinitial step toward implementing Full WDDM virtio-gpu driver we started working on. Along with that I wouldlike to send some very brief summary regarding to currentand future work toward adding 3D support for Windows Guests. ----------------------------------------------------------------------- 0. Outline: ----------------------------------------------------------------------- - I. Display Only Driver - II. OpenGL Support - III. Full/Render WDDM Driver - IV. Direct3D User Mode Display Driver - V. Vulkan and OpenCL Installable Client Drivers ------------------------------------------------------------------------ I. Display Only Driver ------------------------------------------------------------------------ We choose Display Only Driver as an entry point for working on virtio-gpu for Windows Guests project mostly because DOD architecture provides us with a quite simple and already good known way how to prototypeand build Kernel Mode Display Driver for Windows. Status, known bugs/problems, future work and repository: Status: - the driver is mostly functional, can be build, installed and survive most of the normal operation cases. Known problems: - interrupts mode. Currently works in triggered mode only. MSI fails at OS level, when TranslatedResourcesList is NULL which means resources allocation problem in PCI bus driver. - colored accelerated cursor generally works but has some glitches. I prefer keep this feature turned off for now. - supported resolutions are hard-coded. - custom resolution. Partially works, but need some more time to make this feature fully functional. Future work: - virtio. Currently virtio-gpu driver linked against virtio-win library shamelessly taken from our virtio-win project. This part of the project will be replaced with a new virtio C++ implementation. This work is almost done but needs some more testing before being merged into the project. Repository: https://gitlab.com/spice/virtio-gpu-wddm/virtio-gpu-wddm-dod.git ------------------------------------------------------------------------ II. OpenGL Support ------------------------------------------------------------------------ This project is conducted by Nathan Gauër. Nathan is a GSOC 2017 students who decided to spend this summer working on proof of concept for this project . The idea was to bypass OpenGL traffic from Windows OpenGL app through virtio-gpu driver to host. At the beginning we were not absolutely sure if Full WDDM driver is required to be involved or justDOD driver will be enough. Unfortunately only FULL WDDM driver cancommunicate properly with OpenGL Installiable Client Driver. While FullWDDM driver is still under development, Nathan is making a good a progress on hooking DxgkDdiEscape routine to pass OpenGL related requests from guest to host. Status, repositories and future work: Status: - Nathan is going to push his work into gitlab shortly. Meanwhile, anyone who is interested in his work is welcome to visit Nathan's blog at http://www.studiopixl.com/blog and check his git repositories at github https://github.com/Keenuts/virtio-gpu-win-icd https://github.com/Keenuts/virtio-gpu-win/tree/userland to get a better understanding about the work, that Nathan has done so far. Future work: - at some point, after implementing command buffers support in Full WDDM driver,we have to start transforming this project into OpenGL ICD. ------------------------------------------------------------------------ III. Full/Render WDDM Driver ------------------------------------------------------------------------ We currently have some prototype, which already implementsthe basic WDDM rendering operation flow. However, DMA and Command buffers support is not fully implemented yet. Status: - work in progress ------------------------------------------------------------------------ IV. Direct3D User Mode Display Driver ------------------------------------------------------------------------ Direct3D Support. Just like OpenGL ICD driver, this project needs Full WDDM driver to be implementedfirst. After that, we are going to start working on user mode display driver to supportDirect3D DDI. Right now we are thinking about building D3D support on top of OpenGL. For the sake of POC it probably will be the simplest and the fastest way for prototyping D3D support. ------------------------------------------------------------------------ V. Vulkan and OpenCL Installable Client Drivers ------------------------------------------------------------------------ Not now. But who knows, maybe one day we will start working on these two projects as well.These two projects will mostly depend on QEMU backend and Full WDDM driver. All the best, Vadim. _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/spice-devel