blob: 77736e598710b94a39891aad4161b9d010416870 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
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.
|