device: 0.787 mistranslation: 0.777 graphic: 0.731 vnc: 0.558 virtual: 0.537 peripherals: 0.517 risc-v: 0.469 semantic: 0.450 VMM: 0.433 network: 0.417 register: 0.398 architecture: 0.388 performance: 0.376 ppc: 0.375 boot: 0.373 permissions: 0.359 hypervisor: 0.341 debug: 0.328 socket: 0.324 TCG: 0.249 i386: 0.230 user-level: 0.225 PID: 0.201 arm: 0.184 kernel: 0.179 x86: 0.179 files: 0.148 assembly: 0.120 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.