* [Qemu-devel] [PATCH 0/5] pixman patch queue @ 2012-12-14 7:54 Gerd Hoffmann 2012-12-14 7:54 ` [Qemu-devel] [PATCH 1/5] pixman: fix version check for PIXMAN_TYPE_BGRA Gerd Hoffmann ` (6 more replies) 0 siblings, 7 replies; 8+ messages in thread From: Gerd Hoffmann @ 2012-12-14 7:54 UTC (permalink / raw) To: qemu-devel; +Cc: Gerd Hoffmann Hi, Pixman patch queue, fixing vnc tight/png and tackeling build issues. cheers, Gerd Gerd Hoffmann (5): pixman: fix version check for PIXMAN_TYPE_BGRA Revert "pixman: require 0.18.4 or newer" pixman: update internal copy to pixman-0.28.2 pixman: fix vnc tight png/jpeg support console: clip update rectangle configure | 4 ++-- console.h | 10 ++++++++++ hw/vga.c | 2 +- pixman | 2 +- qemu-pixman.c | 6 +++--- qemu-pixman.h | 2 +- ui/vnc-enc-tight.c | 4 ++-- ui/vnc.c | 2 +- 8 files changed, 21 insertions(+), 11 deletions(-) ^ permalink raw reply [flat|nested] 8+ messages in thread
* [Qemu-devel] [PATCH 1/5] pixman: fix version check for PIXMAN_TYPE_BGRA 2012-12-14 7:54 [Qemu-devel] [PATCH 0/5] pixman patch queue Gerd Hoffmann @ 2012-12-14 7:54 ` Gerd Hoffmann 2012-12-14 7:54 ` [Qemu-devel] [PATCH 2/5] Revert "pixman: require 0.18.4 or newer" Gerd Hoffmann ` (5 subsequent siblings) 6 siblings, 0 replies; 8+ messages in thread From: Gerd Hoffmann @ 2012-12-14 7:54 UTC (permalink / raw) To: qemu-devel; +Cc: Gerd Hoffmann Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> --- qemu-pixman.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/qemu-pixman.c b/qemu-pixman.c index e46e180..79e175b 100644 --- a/qemu-pixman.c +++ b/qemu-pixman.c @@ -21,7 +21,7 @@ int qemu_pixman_get_type(int rshift, int gshift, int bshift) if (rshift == 0) { type = PIXMAN_TYPE_ABGR; } else { -#if PIXMAN_VERSION >= PIXMAN_VERSION_ENCODE(0, 21, 8) +#if PIXMAN_VERSION >= PIXMAN_VERSION_ENCODE(0, 16, 0) type = PIXMAN_TYPE_BGRA; #endif } -- 1.7.1 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* [Qemu-devel] [PATCH 2/5] Revert "pixman: require 0.18.4 or newer" 2012-12-14 7:54 [Qemu-devel] [PATCH 0/5] pixman patch queue Gerd Hoffmann 2012-12-14 7:54 ` [Qemu-devel] [PATCH 1/5] pixman: fix version check for PIXMAN_TYPE_BGRA Gerd Hoffmann @ 2012-12-14 7:54 ` Gerd Hoffmann 2012-12-14 7:54 ` [Qemu-devel] [PATCH 3/5] pixman: update internal copy to pixman-0.28.2 Gerd Hoffmann ` (4 subsequent siblings) 6 siblings, 0 replies; 8+ messages in thread From: Gerd Hoffmann @ 2012-12-14 7:54 UTC (permalink / raw) To: qemu-devel; +Cc: Gerd Hoffmann This reverts commit 288fa40736e6eb63132d01aa6dc21ee831b796ae. The only reason old pixman versions didn't work was the missing PIXMAN_TYPE_BGRA, which is properly #ifdef'ed now. So we don't have to require a minimum pixman version. Conflicts: configure Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> --- configure | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/configure b/configure index 38b1cc6..ecdb33a 100755 --- a/configure +++ b/configure @@ -2127,7 +2127,7 @@ fi # pixman support probe if test "$pixman" = ""; then - if $pkg_config --atleast-version=0.18.4 pixman-1 > /dev/null 2>&1; then + if $pkg_config pixman-1 > /dev/null 2>&1; then pixman="system" else pixman="internal" @@ -2138,7 +2138,7 @@ if test "$pixman" = "system"; then pixman_libs=`$pkg_config --libs pixman-1 2>/dev/null` else if test ! -d ${source_path}/pixman/pixman; then - echo "ERROR: pixman not present (or older than 0.18.4). Your options:" + echo "ERROR: pixman not present. Your options:" echo " (1) Preferred: Install the pixman devel package (any recent" echo " distro should have packages as Xorg needs pixman too)." echo " (2) Fetch the pixman submodule, using:" -- 1.7.1 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* [Qemu-devel] [PATCH 3/5] pixman: update internal copy to pixman-0.28.2 2012-12-14 7:54 [Qemu-devel] [PATCH 0/5] pixman patch queue Gerd Hoffmann 2012-12-14 7:54 ` [Qemu-devel] [PATCH 1/5] pixman: fix version check for PIXMAN_TYPE_BGRA Gerd Hoffmann 2012-12-14 7:54 ` [Qemu-devel] [PATCH 2/5] Revert "pixman: require 0.18.4 or newer" Gerd Hoffmann @ 2012-12-14 7:54 ` Gerd Hoffmann 2012-12-14 7:54 ` [Qemu-devel] [PATCH 4/5] pixman: fix vnc tight png/jpeg support Gerd Hoffmann ` (3 subsequent siblings) 6 siblings, 0 replies; 8+ messages in thread From: Gerd Hoffmann @ 2012-12-14 7:54 UTC (permalink / raw) To: qemu-devel; +Cc: Gerd Hoffmann Some w64 fixes by Stefan Weil found their way into 0.28.2, so update the internal copy to that version to improve windows support. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> --- pixman | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/pixman b/pixman index 97336fa..a5e5179 160000 --- a/pixman +++ b/pixman @@ -1 +1 @@ -Subproject commit 97336fad32acf802003855cd8bd6477fa49a12e3 +Subproject commit a5e5179b5624c99c812e9bf6e7b907e355a811e8 -- 1.7.1 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* [Qemu-devel] [PATCH 4/5] pixman: fix vnc tight png/jpeg support 2012-12-14 7:54 [Qemu-devel] [PATCH 0/5] pixman patch queue Gerd Hoffmann ` (2 preceding siblings ...) 2012-12-14 7:54 ` [Qemu-devel] [PATCH 3/5] pixman: update internal copy to pixman-0.28.2 Gerd Hoffmann @ 2012-12-14 7:54 ` Gerd Hoffmann 2012-12-14 7:54 ` [Qemu-devel] [PATCH 5/5] console: clip update rectangle Gerd Hoffmann ` (2 subsequent siblings) 6 siblings, 0 replies; 8+ messages in thread From: Gerd Hoffmann @ 2012-12-14 7:54 UTC (permalink / raw) To: qemu-devel; +Cc: 1087974, Gerd Hoffmann, qemu-stable This patch adds an x argument to qemu_pixman_linebuf_fill so it can also be used to convert a partial scanline. Then fix tight + png/jpeg encoding by passing in the x+y offset, so the data is read from the correct screen location instead of the upper left corner. Cc: 1087974@bugs.launchpad.net Cc: qemu-stable@nongnu.org Reported-by: Tim Hardeneck <thardeck@suse.de> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> --- hw/vga.c | 2 +- qemu-pixman.c | 4 ++-- qemu-pixman.h | 2 +- ui/vnc-enc-tight.c | 4 ++-- ui/vnc.c | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/hw/vga.c b/hw/vga.c index 2b0200a..c266161 100644 --- a/hw/vga.c +++ b/hw/vga.c @@ -2413,7 +2413,7 @@ void ppm_save(const char *filename, struct DisplaySurface *ds, Error **errp) } linebuf = qemu_pixman_linebuf_create(PIXMAN_BE_r8g8b8, width); for (y = 0; y < height; y++) { - qemu_pixman_linebuf_fill(linebuf, ds->image, width, y); + qemu_pixman_linebuf_fill(linebuf, ds->image, width, 0, y); clearerr(f); ret = fwrite(pixman_image_get_data(linebuf), 1, pixman_image_get_stride(linebuf), f); diff --git a/qemu-pixman.c b/qemu-pixman.c index 79e175b..e7263fb 100644 --- a/qemu-pixman.c +++ b/qemu-pixman.c @@ -52,10 +52,10 @@ pixman_image_t *qemu_pixman_linebuf_create(pixman_format_code_t format, } void qemu_pixman_linebuf_fill(pixman_image_t *linebuf, pixman_image_t *fb, - int width, int y) + int width, int x, int y) { pixman_image_composite(PIXMAN_OP_SRC, fb, NULL, linebuf, - 0, y, 0, 0, 0, 0, width, 1); + x, y, 0, 0, 0, 0, width, 1); } pixman_image_t *qemu_pixman_mirror_create(pixman_format_code_t format, diff --git a/qemu-pixman.h b/qemu-pixman.h index bee55eb..3c05c83 100644 --- a/qemu-pixman.h +++ b/qemu-pixman.h @@ -31,7 +31,7 @@ pixman_format_code_t qemu_pixman_get_format(PixelFormat *pf); pixman_image_t *qemu_pixman_linebuf_create(pixman_format_code_t format, int width); void qemu_pixman_linebuf_fill(pixman_image_t *linebuf, pixman_image_t *fb, - int width, int y); + int width, int x, int y); pixman_image_t *qemu_pixman_mirror_create(pixman_format_code_t format, pixman_image_t *image); void qemu_pixman_image_unref(pixman_image_t *image); diff --git a/ui/vnc-enc-tight.c b/ui/vnc-enc-tight.c index 9ae4cab..62d0fde 100644 --- a/ui/vnc-enc-tight.c +++ b/ui/vnc-enc-tight.c @@ -1212,7 +1212,7 @@ static int send_jpeg_rect(VncState *vs, int x, int y, int w, int h, int quality) buf = (uint8_t *)pixman_image_get_data(linebuf); row[0] = buf; for (dy = 0; dy < h; dy++) { - qemu_pixman_linebuf_fill(linebuf, vs->vd->server, w, dy); + qemu_pixman_linebuf_fill(linebuf, vs->vd->server, w, x, y + dy); jpeg_write_scanlines(&cinfo, row, 1); } qemu_pixman_image_unref(linebuf); @@ -1356,7 +1356,7 @@ static int send_png_rect(VncState *vs, int x, int y, int w, int h, if (color_type == PNG_COLOR_TYPE_PALETTE) { memcpy(buf, vs->tight.tight.buffer + (dy * w), w); } else { - qemu_pixman_linebuf_fill(linebuf, vs->vd->server, w, dy); + qemu_pixman_linebuf_fill(linebuf, vs->vd->server, w, x, y + dy); } png_write_row(png_ptr, buf); } diff --git a/ui/vnc.c b/ui/vnc.c index ba30362..04afcff 100644 --- a/ui/vnc.c +++ b/ui/vnc.c @@ -2569,7 +2569,7 @@ static int vnc_refresh_server_surface(VncDisplay *vd) uint8_t *server_ptr; if (vd->guest.format != VNC_SERVER_FB_FORMAT) { - qemu_pixman_linebuf_fill(tmpbuf, vd->guest.fb, width, y); + qemu_pixman_linebuf_fill(tmpbuf, vd->guest.fb, width, 0, y); guest_ptr = (uint8_t *)pixman_image_get_data(tmpbuf); } else { guest_ptr = guest_row; -- 1.7.1 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* [Qemu-devel] [PATCH 5/5] console: clip update rectangle 2012-12-14 7:54 [Qemu-devel] [PATCH 0/5] pixman patch queue Gerd Hoffmann ` (3 preceding siblings ...) 2012-12-14 7:54 ` [Qemu-devel] [PATCH 4/5] pixman: fix vnc tight png/jpeg support Gerd Hoffmann @ 2012-12-14 7:54 ` Gerd Hoffmann 2012-12-14 17:31 ` [Qemu-devel] [PATCH 0/5] pixman patch queue Stefan Weil 2012-12-15 9:04 ` Blue Swirl 6 siblings, 0 replies; 8+ messages in thread From: Gerd Hoffmann @ 2012-12-14 7:54 UTC (permalink / raw) To: qemu-devel; +Cc: Gerd Hoffmann Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> --- console.h | 10 ++++++++++ 1 files changed, 10 insertions(+), 0 deletions(-) diff --git a/console.h b/console.h index 50a0512..edb1950 100644 --- a/console.h +++ b/console.h @@ -229,6 +229,16 @@ static inline void unregister_displaychangelistener(DisplayState *ds, static inline void dpy_gfx_update(DisplayState *s, int x, int y, int w, int h) { struct DisplayChangeListener *dcl; + int width = pixman_image_get_width(s->surface->image); + int height = pixman_image_get_height(s->surface->image); + + x = MAX(x, 0); + y = MAX(y, 0); + x = MIN(x, width); + y = MIN(y, height); + w = MIN(w, width - x); + h = MIN(h, height - y); + QLIST_FOREACH(dcl, &s->listeners, next) { if (dcl->dpy_gfx_update) { dcl->dpy_gfx_update(s, x, y, w, h); -- 1.7.1 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [Qemu-devel] [PATCH 0/5] pixman patch queue 2012-12-14 7:54 [Qemu-devel] [PATCH 0/5] pixman patch queue Gerd Hoffmann ` (4 preceding siblings ...) 2012-12-14 7:54 ` [Qemu-devel] [PATCH 5/5] console: clip update rectangle Gerd Hoffmann @ 2012-12-14 17:31 ` Stefan Weil 2012-12-15 9:04 ` Blue Swirl 6 siblings, 0 replies; 8+ messages in thread From: Stefan Weil @ 2012-12-14 17:31 UTC (permalink / raw) Cc: Blue Swirl, Anthony Liguori, Gerd Hoffmann, qemu-devel Am 14.12.2012 08:54, schrieb Gerd Hoffmann: > Hi, > > Pixman patch queue, fixing vnc tight/png and tackeling build issues. > > cheers, > Gerd > > Gerd Hoffmann (5): > pixman: fix version check for PIXMAN_TYPE_BGRA > Revert "pixman: require 0.18.4 or newer" > pixman: update internal copy to pixman-0.28.2 > pixman: fix vnc tight png/jpeg support > console: clip update rectangle > > configure | 4 ++-- > console.h | 10 ++++++++++ > hw/vga.c | 2 +- > pixman | 2 +- > qemu-pixman.c | 6 +++--- > qemu-pixman.h | 2 +- > ui/vnc-enc-tight.c | 4 ++-- > ui/vnc.c | 2 +- > 8 files changed, 21 insertions(+), 11 deletions(-) Anthony or Blue, could you please commit these patches with high priority? They should fix configure failures on several buildbots and a bug in the vnc code. I suggest to commit them to QEMU 1.3, too, after some test time in git master. Regards, Stefan W. ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Qemu-devel] [PATCH 0/5] pixman patch queue 2012-12-14 7:54 [Qemu-devel] [PATCH 0/5] pixman patch queue Gerd Hoffmann ` (5 preceding siblings ...) 2012-12-14 17:31 ` [Qemu-devel] [PATCH 0/5] pixman patch queue Stefan Weil @ 2012-12-15 9:04 ` Blue Swirl 6 siblings, 0 replies; 8+ messages in thread From: Blue Swirl @ 2012-12-15 9:04 UTC (permalink / raw) To: Gerd Hoffmann; +Cc: qemu-devel On Fri, Dec 14, 2012 at 7:54 AM, Gerd Hoffmann <kraxel@redhat.com> wrote: > Hi, > > Pixman patch queue, fixing vnc tight/png and tackeling build issues. Thanks, applied all. > > cheers, > Gerd > > Gerd Hoffmann (5): > pixman: fix version check for PIXMAN_TYPE_BGRA > Revert "pixman: require 0.18.4 or newer" > pixman: update internal copy to pixman-0.28.2 > pixman: fix vnc tight png/jpeg support > console: clip update rectangle > > configure | 4 ++-- > console.h | 10 ++++++++++ > hw/vga.c | 2 +- > pixman | 2 +- > qemu-pixman.c | 6 +++--- > qemu-pixman.h | 2 +- > ui/vnc-enc-tight.c | 4 ++-- > ui/vnc.c | 2 +- > 8 files changed, 21 insertions(+), 11 deletions(-) > > ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2012-12-15 9:04 UTC | newest] Thread overview: 8+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2012-12-14 7:54 [Qemu-devel] [PATCH 0/5] pixman patch queue Gerd Hoffmann 2012-12-14 7:54 ` [Qemu-devel] [PATCH 1/5] pixman: fix version check for PIXMAN_TYPE_BGRA Gerd Hoffmann 2012-12-14 7:54 ` [Qemu-devel] [PATCH 2/5] Revert "pixman: require 0.18.4 or newer" Gerd Hoffmann 2012-12-14 7:54 ` [Qemu-devel] [PATCH 3/5] pixman: update internal copy to pixman-0.28.2 Gerd Hoffmann 2012-12-14 7:54 ` [Qemu-devel] [PATCH 4/5] pixman: fix vnc tight png/jpeg support Gerd Hoffmann 2012-12-14 7:54 ` [Qemu-devel] [PATCH 5/5] console: clip update rectangle Gerd Hoffmann 2012-12-14 17:31 ` [Qemu-devel] [PATCH 0/5] pixman patch queue Stefan Weil 2012-12-15 9:04 ` Blue Swirl
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).