* [Qemu-devel] [PATCH 0/2] Fix display resize bugs introduced after recent console revamp
@ 2013-03-19 19:44 Igor Mitsyanko
2013-03-19 19:44 ` [Qemu-devel] [PATCH 1/2] exynos4210_fimd.c: fix display resize bug introduced after " Igor Mitsyanko
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Igor Mitsyanko @ 2013-03-19 19:44 UTC (permalink / raw)
To: qemu-devel; +Cc: peter.maydell, kraxel, i.mitsyanko
Bad things were happening in display update functions every time a screen has to
be resized.
Igor Mitsyanko (2):
exynos4210_fimd.c: fix display resize bug introduced after console
revamp
hw/vmware_vga.c: fix screen resize bug introduced after console
revamp
hw/exynos4210_fimd.c | 7 ++++---
hw/vmware_vga.c | 3 ++-
2 files changed, 6 insertions(+), 4 deletions(-)
--
1.7.5.4
^ permalink raw reply [flat|nested] 4+ messages in thread
* [Qemu-devel] [PATCH 1/2] exynos4210_fimd.c: fix display resize bug introduced after console revamp
2013-03-19 19:44 [Qemu-devel] [PATCH 0/2] Fix display resize bugs introduced after recent console revamp Igor Mitsyanko
@ 2013-03-19 19:44 ` Igor Mitsyanko
2013-03-19 19:44 ` [Qemu-devel] [PATCH 2/2] hw/vmware_vga.c: fix screen " Igor Mitsyanko
2013-03-20 6:49 ` [Qemu-devel] [PATCH 0/2] Fix display resize bugs introduced after recent " Gerd Hoffmann
2 siblings, 0 replies; 4+ messages in thread
From: Igor Mitsyanko @ 2013-03-19 19:44 UTC (permalink / raw)
To: qemu-devel; +Cc: peter.maydell, kraxel, i.mitsyanko
In exynos4210 display update function, we were acquiring DisplaySurface
pointer before calling screen resize function, not paying attention that resize
procedure can replace current DisplaySurface with newly allocated one.
Right thing to do is to initialize DisplaySurface AFTER a call to resize function.
Signed-off-by: Igor Mitsyanko <i.mitsyanko@gmail.com>
---
hw/exynos4210_fimd.c | 7 ++++---
1 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/hw/exynos4210_fimd.c b/hw/exynos4210_fimd.c
index bf316c6..333456a 100644
--- a/hw/exynos4210_fimd.c
+++ b/hw/exynos4210_fimd.c
@@ -1243,7 +1243,7 @@ static void exynos4210_update_resolution(Exynos4210fimdState *s)
static void exynos4210_fimd_update(void *opaque)
{
Exynos4210fimdState *s = (Exynos4210fimdState *)opaque;
- DisplaySurface *surface = qemu_console_surface(s->console);
+ DisplaySurface *surface;
Exynos4210fimdWindow *w;
int i, line;
hwaddr fb_line_addr, inc_size;
@@ -1256,11 +1256,12 @@ static void exynos4210_fimd_update(void *opaque)
const int global_height = ((s->vidtcon[2] >> FIMD_VIDTCON2_VER_SHIFT) &
FIMD_VIDTCON2_SIZE_MASK) + 1;
- if (!s || !s->console || !surface_bits_per_pixel(surface) ||
- !s->enabled) {
+ if (!s || !s->console || !s->enabled ||
+ surface_bits_per_pixel(qemu_console_surface(s->console)) == 0) {
return;
}
exynos4210_update_resolution(s);
+ surface = qemu_console_surface(s->console);
for (i = 0; i < NUM_OF_WINDOWS; i++) {
w = &s->window[i];
--
1.7.5.4
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [Qemu-devel] [PATCH 2/2] hw/vmware_vga.c: fix screen resize bug introduced after console revamp
2013-03-19 19:44 [Qemu-devel] [PATCH 0/2] Fix display resize bugs introduced after recent console revamp Igor Mitsyanko
2013-03-19 19:44 ` [Qemu-devel] [PATCH 1/2] exynos4210_fimd.c: fix display resize bug introduced after " Igor Mitsyanko
@ 2013-03-19 19:44 ` Igor Mitsyanko
2013-03-20 6:49 ` [Qemu-devel] [PATCH 0/2] Fix display resize bugs introduced after recent " Gerd Hoffmann
2 siblings, 0 replies; 4+ messages in thread
From: Igor Mitsyanko @ 2013-03-19 19:44 UTC (permalink / raw)
To: qemu-devel; +Cc: peter.maydell, kraxel, i.mitsyanko
In vmsvga display update function, a pointer to DisplaySurface must be acquired
after a call to vmsvga_check_size since this function might replace current
DisplaySurface with a new one.
Signed-off-by: Igor Mitsyanko <i.mitsyanko@gmail.com>
---
hw/vmware_vga.c | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/hw/vmware_vga.c b/hw/vmware_vga.c
index 5b9ce8f..c0aac31 100644
--- a/hw/vmware_vga.c
+++ b/hw/vmware_vga.c
@@ -995,7 +995,7 @@ static inline void vmsvga_check_size(struct vmsvga_state_s *s)
static void vmsvga_update_display(void *opaque)
{
struct vmsvga_state_s *s = opaque;
- DisplaySurface *surface = qemu_console_surface(s->vga.con);
+ DisplaySurface *surface;
bool dirty = false;
if (!s->enable) {
@@ -1004,6 +1004,7 @@ static void vmsvga_update_display(void *opaque)
}
vmsvga_check_size(s);
+ surface = qemu_console_surface(s->vga.con);
vmsvga_fifo_run(s);
vmsvga_update_rect_flush(s);
--
1.7.5.4
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [Qemu-devel] [PATCH 0/2] Fix display resize bugs introduced after recent console revamp
2013-03-19 19:44 [Qemu-devel] [PATCH 0/2] Fix display resize bugs introduced after recent console revamp Igor Mitsyanko
2013-03-19 19:44 ` [Qemu-devel] [PATCH 1/2] exynos4210_fimd.c: fix display resize bug introduced after " Igor Mitsyanko
2013-03-19 19:44 ` [Qemu-devel] [PATCH 2/2] hw/vmware_vga.c: fix screen " Igor Mitsyanko
@ 2013-03-20 6:49 ` Gerd Hoffmann
2 siblings, 0 replies; 4+ messages in thread
From: Gerd Hoffmann @ 2013-03-20 6:49 UTC (permalink / raw)
To: Igor Mitsyanko; +Cc: peter.maydell, qemu-devel, i.mitsyanko
On 03/19/13 20:44, Igor Mitsyanko wrote:
> Bad things were happening in display update functions every time a screen has to
> be resized.
Good catch, added to the console patches.
thanks,
Gerd
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2013-03-20 6:49 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-03-19 19:44 [Qemu-devel] [PATCH 0/2] Fix display resize bugs introduced after recent console revamp Igor Mitsyanko
2013-03-19 19:44 ` [Qemu-devel] [PATCH 1/2] exynos4210_fimd.c: fix display resize bug introduced after " Igor Mitsyanko
2013-03-19 19:44 ` [Qemu-devel] [PATCH 2/2] hw/vmware_vga.c: fix screen " Igor Mitsyanko
2013-03-20 6:49 ` [Qemu-devel] [PATCH 0/2] Fix display resize bugs introduced after recent " Gerd Hoffmann
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).