* [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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.