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
2.04k stars 387 forks source link

VioGpuDod error 0xc00000e5 #1190

Open sebastian-de opened 1 day ago

sebastian-de commented 1 day ago

Describe the bug The VM display is not resized with the Window and the displayed VM output seems to be scaled down (see screenshot, taken on a 1920x1200 screen and the VM resolution set to 1680x1050).

Device Manager shows the following error for the Virtio graphics card:

<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
  <System>
    <Provider Name="Microsoft-Windows-Kernel-PnP" Guid="{9c205a39-1250-487d-abd7-e831c6290539}" />
    <EventID>411</EventID>
    <Version>0</Version>
    <Level>2</Level>
    <Task>0</Task>
    <Opcode>0</Opcode>
    <Keywords>0x4000000000000000</Keywords>
    <TimeCreated SystemTime="2024-11-13T08:08:44.8850326Z" />
    <EventRecordID>242</EventRecordID>
    <Correlation />
    <Execution ProcessID="4" ThreadID="76" />
    <Channel>Microsoft-Windows-Kernel-PnP/Configuration</Channel>
    <Computer>win-vm</Computer>
    <Security UserID="S-1-5-18" />
  </System>
  <EventData>
    <Data Name="DeviceInstanceId">PCI\VEN_1AF4&amp;DEV_1050&amp;SUBSYS_11001AF4&amp;REV_01\3&amp;11583659&amp;0&amp;08</Data>
    <Data Name="DriverName">oem6.inf</Data>
    <Data Name="ClassGuid">{4d36e968-e325-11ce-bfc1-08002be10318}</Data>
    <Data Name="ServiceName">VioGpuDod</Data>
    <Data Name="LowerFilters">
    </Data>
    <Data Name="UpperFilters">
    </Data>
    <Data Name="Problem">0x0</Data>
    <Data Name="Status">0xc00000e5</Data>
  </EventData>
</Event>

Expected behavior The VM display resolution is set to the current window size, output is not scaled.

Screenshots Screenshot_20241113_095834

Screenshot_20241113_094752

Host:

libvirt XML file ```xml win11 2e19dcf0-d5bb-48b4-b35e-43adbda260ce 16777216 16777216 8 hvm /usr/share/edk2/ovmf/OVMF_CODE_4M.secboot.qcow2 /var/lib/libvirt/qemu/nvram/win11_VARS.qcow2 destroy restart destroy /usr/bin/qemu-system-x86_64

VM:

vrozenfe commented 1 day ago

@sebastian-de

Can you please check if installing vgpusrv service ( https://issues.redhat.com/browse/RHEL-62926 ) helps to solve the problem? On Windows 11 you need to copy viogpudo\w11\amd64\viogpuap and viogpudo\w11\amd64\vgpusrv binaries to c:\windows\system32 directory and then, from the elevated cmd prompt, go to this directory and run the following command "vgpusrv.exe -i"

BR, Vadim.

sebastian-de commented 1 day ago

Thanks. I did the following:

PS C:\Windows\system32> cp "F:\viogpudo\w11\amd64\vgpusrv.exe" .
PS C:\Windows\system32> cp "F:\viogpudo\w11\amd64\viogpuap.exe" .
PS C:\Windows\system32> vgpusrv.exe -i
Service Installed
Service is starting...
Service RUNNING.

The output looks fine, but scaling still doesn't work.

vrozenfe commented 11 hours ago

@sebastian-de

What kind of scaling do you mean? The virtio-gpu driver itself doesn't support "hardware" scaling https://github.com/virtio-win/kvm-guest-drivers-windows/blob/master/viogpu/viogpudo/viogpudo.cpp#L612

But VNC scaling should work fine Screenshot from 2024-11-14 19-29-34

Screenshot from 2024-11-14 19-29-51

sebastian-de commented 5 hours ago

Sorry, I meant "Autoresize VM with window". What I expected was, that the VM display is set to the resolution, the Virt-Manager Window has. So that I can use my native resolution and there is no scaling needed at all. I thought this was possible with the virtio drivers.