Hi, Here is a two-in-one patch series.
The first part makes the console code use pixman format codes internally. It also adds some helper functions for gfx emulation code. If you wanna see that in action check the second part of the series ;) I consider the first part being close to ready for merging. The second part starts switching over the pl110 emulation to use pixman for pixel ops. For framebuffer formats which pixman can handle natively we can even avoid copying around the framebuffer content and create a DisplaySurface backed by guest memory. Tested with linux guests and pl110 framebuffer driver, which covers only the simple lblp (little-endian-bytes + little-endian-pixels) + bgr case. It is not complete yet, but should already show nicely how one can use pixman in the display emulation code. cheers, Gerd Benjamin Herrenschmidt (1): console: Remove unused QEMU_BIG_ENDIAN_FLAG Gerd Hoffmann (13): console: add qemu_pixelformat_from_pixman console: add qemu_default_pixman_format console: reimplement qemu_default_pixelformat console: stop using PixelFormat console: add qemu_create_displaysurface_guestmem console: add dpy_gfx_update_dirty console: add qemu_pixman_linebuf_copy pl110: add framebuffer_update_display_swap_pixman pl100: Drop support for depths other than 32bpp. pl110: move resize [wip] pl110: start using pixman [wip] pl110: switch some conversions to swap+pixman mode [wip] pl110: start handling paletted images via pixman hw/display/framebuffer.c | 131 +++++++++++++++++++++++ hw/display/framebuffer.h | 18 ++++ hw/display/pl110.c | 146 ++++++++++++------------- hw/display/pl110_template.h | 181 ++++++++++++++++++------------- hw/display/qxl-render.c | 7 +- hw/display/vga.c | 12 ++- hw/display/vmware_vga.c | 6 +- hw/display/xenfb.c | 8 +- include/ui/console.h | 25 +++-- include/ui/qemu-pixman.h | 4 + trace-events | 2 +- ui/console.c | 253 +++++++++++++++++++------------------------- ui/qemu-pixman.c | 90 ++++++++++++++++ ui/sdl.c | 5 +- ui/vnc-enc-tight.c | 12 +-- 15 files changed, 570 insertions(+), 330 deletions(-) -- 1.8.3.1