[Spice-devel] [PATCH] spice: fix simple display on bigendian hosts

Denis Kirjanov kirjanov at gmail.com
Tue Apr 14 07:27:32 PDT 2015


On 4/14/15, Denis Kirjanov <kirjanov at gmail.com> wrote:
> On 4/14/15, Gerd Hoffmann <kraxel at redhat.com> wrote:
>> Denis Kirjanov is busy getting spice run on ppc64 and trapped into this
>> one.  Spice wire format is little endian, so we have to explicitly say
>> we want little endian when letting pixman convert the data for us.
>>
>> Reported-by: Denis Kirjanov <kirjanov at gmail.com>
>> Signed-off-by: Gerd Hoffmann <kraxel at redhat.com>
>> ---
> Yeah, that fixes the issue. Thanks Gerd!

Looks like that the patch fixes the half of the problem: the inverted
colors appear on client reconnect to vm
>
>>  include/ui/qemu-pixman.h | 2 ++
>>  ui/spice-display.c       | 2 +-
>>  2 files changed, 3 insertions(+), 1 deletion(-)
>>
>> diff --git a/include/ui/qemu-pixman.h b/include/ui/qemu-pixman.h
>> index 5d7a9ac..e34c4ef 100644
>> --- a/include/ui/qemu-pixman.h
>> +++ b/include/ui/qemu-pixman.h
>> @@ -35,6 +35,7 @@
>>  # define PIXMAN_BE_r8g8b8a8   PIXMAN_r8g8b8a8
>>  # define PIXMAN_BE_x8b8g8r8   PIXMAN_x8b8g8r8
>>  # define PIXMAN_BE_a8b8g8r8   PIXMAN_a8b8g8r8
>> +# define PIXMAN_LE_x8r8g8b8   PIXMAN_b8g8r8x8
>>  #else
>>  # define PIXMAN_BE_r8g8b8     PIXMAN_b8g8r8
>>  # define PIXMAN_BE_x8r8g8b8   PIXMAN_b8g8r8x8
>> @@ -45,6 +46,7 @@
>>  # define PIXMAN_BE_r8g8b8a8   PIXMAN_a8b8g8r8
>>  # define PIXMAN_BE_x8b8g8r8   PIXMAN_r8g8b8x8
>>  # define PIXMAN_BE_a8b8g8r8   PIXMAN_r8g8b8a8
>> +# define PIXMAN_LE_x8r8g8b8   PIXMAN_x8r8g8b8
>>  #endif
>>
>>  /* --------------------------------------------------------------------
>> */
>> diff --git a/ui/spice-display.c b/ui/spice-display.c
>> index 1644185..1a64e07 100644
>> --- a/ui/spice-display.c
>> +++ b/ui/spice-display.c
>> @@ -178,7 +178,7 @@ static void
>> qemu_spice_create_one_update(SimpleSpiceDisplay *ssd,
>>      image->bitmap.palette = 0;
>>      image->bitmap.format = SPICE_BITMAP_FMT_32BIT;
>>
>> -    dest = pixman_image_create_bits(PIXMAN_x8r8g8b8, bw, bh,
>> +    dest = pixman_image_create_bits(PIXMAN_LE_x8r8g8b8, bw, bh,
>>                                      (void *)update->bitmap, bw * 4);
>>      pixman_image_composite(PIXMAN_OP_SRC, ssd->surface, NULL,
>> ssd->mirror,
>>                             rect->left, rect->top, 0, 0,
>> --
>> 1.8.3.1
>>
>> _______________________________________________
>> Spice-devel mailing list
>> Spice-devel at lists.freedesktop.org
>> http://lists.freedesktop.org/mailman/listinfo/spice-devel
>>
>
>
> --
> Regards,
> Denis
>


-- 
Regards,
Denis


More information about the Spice-devel mailing list