device: 0.787 graphic: 0.731 vnc: 0.558 semantic: 0.450 network: 0.417 other: 0.408 performance: 0.376 boot: 0.373 permissions: 0.359 debug: 0.328 socket: 0.324 PID: 0.201 files: 0.148 KVM: 0.067 virtio_gpu_gl_update_cursor_data() ignores the cursor resource's pixel format Description of problem: The function virtio_gpu_gl_update_cursor_data() ignores the pixel format of the resource it's reading from. It literally uses memcpy() to copy the pointer data. This works just fins if both the guest OS and the display backend use the same pixel format. The SDL backend seems to use a different pixel format to the GTK display backend. So, you'll get the correct colours in one, but not the other. Steps to reproduce: 1. Run a VM using Virtio GPU using the GTK backend. Set the guest OS' mouse pointer to one that's red instead of white, and note the mouse pointer's actual colour 2. Now run the same VM using the SDL display backend. Check the colour of the mouse pointer (that should be red) NOTE: The choice of guest OS shouldn't matter.