From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:49289) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WyDpd-0003vx-25 for qemu-devel@nongnu.org; Sat, 21 Jun 2014 01:27:23 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WyDpW-0007n6-TY for qemu-devel@nongnu.org; Sat, 21 Jun 2014 01:27:16 -0400 Received: from gate.crashing.org ([63.228.1.57]:36800) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WyDpW-0007ls-Kd for qemu-devel@nongnu.org; Sat, 21 Jun 2014 01:27:10 -0400 Message-ID: <1403328422.4587.77.camel@pasglop> From: Benjamin Herrenschmidt Date: Sat, 21 Jun 2014 15:27:02 +1000 In-Reply-To: <1403094208-26235-5-git-send-email-kraxel@redhat.com> References: <1403094208-26235-1-git-send-email-kraxel@redhat.com> <1403094208-26235-5-git-send-email-kraxel@redhat.com> Content-Type: text/plain; charset="UTF-8" Mime-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH 4/4] console: stop using PixelFormat List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Gerd Hoffmann Cc: qemu-devel@nongnu.org, Anthony Liguori On Wed, 2014-06-18 at 14:23 +0200, Gerd Hoffmann wrote: > With this patch the qemu console core stops using PixelFormat and pixman > format codes side-by-side, pixman format code is the primary way to > specify the DisplaySurface format: > > * DisplaySurface stops carrying a PixelFormat field. > * qemu_create_displaysurface_from() expects a pixman format now. > > Functions to convert PixelFormat to pixman_format_code_t (and back) > exist for those who still use PixelFormat. As PixelFormat allows > easy access to masks and shifts it will probably continue to exist. Finally got to start playing with that stuff (got busy with other things for a while) and untangling vga.c (remove whole chunks of it actually since we know the target is always 32bpp when we need to convert or "draw" so it's a lot easier). While at it, I noticed this patch is missing this, feel free to fold in no need to add an ack or anything, it's trivial: diff --git a/hw/display/xenfb.c b/hw/display/xenfb.c index 032eb7a..f9cdd96 100644 --- a/hw/display/xenfb.c +++ b/hw/display/xenfb.c @@ -711,15 +711,17 @@ static void xenfb_update(void *opaque) /* resize if needed */ if (xenfb->do_resize) { + pixman_format_code_t format; + xenfb->do_resize = 0; switch (xenfb->depth) { case 16: case 32: /* console.c supported depth -> buffer can be used directly */ + format = qemu_default_pixman_format(xenfb->depth, true); surface = qemu_create_displaysurface_from - (xenfb->width, xenfb->height, xenfb->depth, - xenfb->row_stride, xenfb->pixels + xenfb->offset, - false); + (xenfb->width, xenfb->height, format, + xenfb->row_stride, xenfb->pixels + xenfb->offset); break; default: /* we must convert stuff */