* [Qemu-devel] [PULL 0/2] Vga 20180604 patches @ 2018-06-04 8:49 Gerd Hoffmann 2018-06-04 8:49 ` [Qemu-devel] [PULL 1/2] bochs-display: add missing break Gerd Hoffmann ` (2 more replies) 0 siblings, 3 replies; 5+ messages in thread From: Gerd Hoffmann @ 2018-06-04 8:49 UTC (permalink / raw) To: qemu-devel; +Cc: Gerd Hoffmann The following changes since commit 392fba9f583223786f844dce9b2e7f9a0ce0147a: Merge remote-tracking branch 'remotes/stsquad/tags/pull-travis-updates-010618-1' into staging (2018-06-01 17:32:30 +0100) are available in the git repository at: git://git.kraxel.org/qemu tags/vga-20180604-pull-request for you to fetch changes up to 6bc2fd57e1fc2d1957d1ff952793c53764130218: vga: cleanup surface handling (2018-06-04 09:44:10 +0200) ---------------------------------------------------------------- Two little vga fixes. ---------------------------------------------------------------- Gerd Hoffmann (2): bochs-display: add missing break vga: cleanup surface handling hw/display/bochs-display.c | 1 + hw/display/vga.c | 36 +++++++++++++++++++----------------- 2 files changed, 20 insertions(+), 17 deletions(-) -- 2.9.3 ^ permalink raw reply [flat|nested] 5+ messages in thread
* [Qemu-devel] [PULL 1/2] bochs-display: add missing break 2018-06-04 8:49 [Qemu-devel] [PULL 0/2] Vga 20180604 patches Gerd Hoffmann @ 2018-06-04 8:49 ` Gerd Hoffmann 2018-06-04 8:49 ` [Qemu-devel] [PULL 2/2] vga: cleanup surface handling Gerd Hoffmann 2018-06-04 15:40 ` [Qemu-devel] [PULL 0/2] Vga 20180604 patches Peter Maydell 2 siblings, 0 replies; 5+ messages in thread From: Gerd Hoffmann @ 2018-06-04 8:49 UTC (permalink / raw) To: qemu-devel; +Cc: Gerd Hoffmann Fixes: CID 1391291 Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Reviewed-by: Ján Tomko <jtomko@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Message-id: 20180525045344.28347-1-kraxel@redhat.com --- hw/display/bochs-display.c | 1 + 1 file changed, 1 insertion(+) diff --git a/hw/display/bochs-display.c b/hw/display/bochs-display.c index c33524b558..1187d77576 100644 --- a/hw/display/bochs-display.c +++ b/hw/display/bochs-display.c @@ -158,6 +158,7 @@ static int bochs_display_get_mode(BochsDisplayState *s, /* best effort: support native endianess only */ mode->format = PIXMAN_r5g6b5; mode->bytepp = 2; + break; case 32: mode->format = s->big_endian_fb ? PIXMAN_BE_x8r8g8b8 -- 2.9.3 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* [Qemu-devel] [PULL 2/2] vga: cleanup surface handling 2018-06-04 8:49 [Qemu-devel] [PULL 0/2] Vga 20180604 patches Gerd Hoffmann 2018-06-04 8:49 ` [Qemu-devel] [PULL 1/2] bochs-display: add missing break Gerd Hoffmann @ 2018-06-04 8:49 ` Gerd Hoffmann 2018-06-04 15:40 ` [Qemu-devel] [PULL 0/2] Vga 20180604 patches Peter Maydell 2 siblings, 0 replies; 5+ messages in thread From: Gerd Hoffmann @ 2018-06-04 8:49 UTC (permalink / raw) To: qemu-devel; +Cc: Gerd Hoffmann Just set the full_update flag if we need a new DisplaySurface. Create a new surface when the flag is set instead of having two places where qemu_create_displaysurface_from() is called. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Message-id: 20180525131318.28437-1-kraxel@redhat.com --- hw/display/vga.c | 36 +++++++++++++++++++----------------- 1 file changed, 19 insertions(+), 17 deletions(-) diff --git a/hw/display/vga.c b/hw/display/vga.c index a7794f6d1f..ed476e4e80 100644 --- a/hw/display/vga.c +++ b/hw/display/vga.c @@ -1548,12 +1548,31 @@ static void vga_draw_graphic(VGACommonState *s, int full_update) } else { share_surface = false; } + if (s->line_offset != s->last_line_offset || disp_width != s->last_width || height != s->last_height || s->last_depth != depth || s->last_byteswap != byteswap || share_surface != is_buffer_shared(surface)) { + /* display parameters changed -> need new display surface */ + s->last_scr_width = disp_width; + s->last_scr_height = height; + s->last_width = disp_width; + s->last_height = height; + s->last_line_offset = s->line_offset; + s->last_depth = depth; + s->last_byteswap = byteswap; + full_update = 1; + } + if (surface_data(surface) != s->vram_ptr + (s->start_addr * 4) + && is_buffer_shared(surface)) { + /* base address changed (page flip) -> shared display surfaces + * must be updated with the new base address */ + full_update = 1; + } + + if (full_update) { if (share_surface) { surface = qemu_create_displaysurface_from(disp_width, height, format, s->line_offset, @@ -1563,23 +1582,6 @@ static void vga_draw_graphic(VGACommonState *s, int full_update) qemu_console_resize(s->con, disp_width, height); surface = qemu_console_surface(s->con); } - s->last_scr_width = disp_width; - s->last_scr_height = height; - s->last_width = disp_width; - s->last_height = height; - s->last_line_offset = s->line_offset; - s->last_depth = depth; - s->last_byteswap = byteswap; - full_update = 1; - } else if (is_buffer_shared(surface) && - (full_update || surface_data(surface) != s->vram_ptr - + (s->start_addr * 4))) { - pixman_format_code_t format = - qemu_default_pixman_format(depth, !byteswap); - surface = qemu_create_displaysurface_from(disp_width, - height, format, s->line_offset, - s->vram_ptr + (s->start_addr * 4)); - dpy_gfx_replace_surface(s->con, surface); } if (shift_control == 0) { -- 2.9.3 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [Qemu-devel] [PULL 0/2] Vga 20180604 patches 2018-06-04 8:49 [Qemu-devel] [PULL 0/2] Vga 20180604 patches Gerd Hoffmann 2018-06-04 8:49 ` [Qemu-devel] [PULL 1/2] bochs-display: add missing break Gerd Hoffmann 2018-06-04 8:49 ` [Qemu-devel] [PULL 2/2] vga: cleanup surface handling Gerd Hoffmann @ 2018-06-04 15:40 ` Peter Maydell 2018-06-04 17:33 ` Peter Maydell 2 siblings, 1 reply; 5+ messages in thread From: Peter Maydell @ 2018-06-04 15:40 UTC (permalink / raw) To: Gerd Hoffmann; +Cc: QEMU Developers, Dr. David Alan Gilbert On 4 June 2018 at 09:49, Gerd Hoffmann <kraxel@redhat.com> wrote: > The following changes since commit 392fba9f583223786f844dce9b2e7f9a0ce0147a: > > Merge remote-tracking branch 'remotes/stsquad/tags/pull-travis-updates-010618-1' into staging (2018-06-01 17:32:30 +0100) > > are available in the git repository at: > > git://git.kraxel.org/qemu tags/vga-20180604-pull-request > > for you to fetch changes up to 6bc2fd57e1fc2d1957d1ff952793c53764130218: > > vga: cleanup surface handling (2018-06-04 09:44:10 +0200) > > ---------------------------------------------------------------- > Two little vga fixes. > > ---------------------------------------------------------------- > > Gerd Hoffmann (2): > bochs-display: add missing break > vga: cleanup surface handling > > hw/display/bochs-display.c | 1 + > hw/display/vga.c | 36 +++++++++++++++++++----------------- > 2 files changed, 20 insertions(+), 17 deletions(-) I got a failure in the migration tests with this applied: /i386/ahci/migrate/sanity: /home/petmay01/linaro/qemu-for-merges/migration/ qemu-file.c:119:15: runtime error: member access within misaligned address 0x101010101010101 for type 'QEMUFile' (aka ' struct QEMUFile'), which requires 8 byte alignment 0x101010101010101: note: pointer points here <memory cannot be printed> /home/petmay01/linaro/qemu-for-merges/migration/qemu-file.c:119:15: runtime error: load of misaligned address 0x1010101 01018545 for type 'int', which requires 4 byte alignment 0x101010101018545: note: pointer points here <memory cannot be printed> ahci-test: /home/petmay01/linaro/qemu-for-merges/tests/libqtest.c:113: void kill_qemu(QTestState *): Assertion `!WCORED UMP(wstatus)' failed. FAIL GTester: last random seed: R02S0741b59625080b71b3c3e7b5f47baf32 (pid=2216) something going wrong with a clearly bogus pointer... The file/line reference is to qemu_file_get_error(), so I guess something has wound up with a stale QEMUFile*. Unfortunately this doesn't seem to reproduce. I haven't seen it before, so my guess is this is an intermittent introduced by your earlier migration pullreq which is now in master ? Might only manifest when the host machine is under load or during a 'make check -j8' parallel test run. thanks -- PMM ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Qemu-devel] [PULL 0/2] Vga 20180604 patches 2018-06-04 15:40 ` [Qemu-devel] [PULL 0/2] Vga 20180604 patches Peter Maydell @ 2018-06-04 17:33 ` Peter Maydell 0 siblings, 0 replies; 5+ messages in thread From: Peter Maydell @ 2018-06-04 17:33 UTC (permalink / raw) To: Gerd Hoffmann; +Cc: QEMU Developers, Dr. David Alan Gilbert On 4 June 2018 at 16:40, Peter Maydell <peter.maydell@linaro.org> wrote: > On 4 June 2018 at 09:49, Gerd Hoffmann <kraxel@redhat.com> wrote: >> The following changes since commit 392fba9f583223786f844dce9b2e7f9a0ce0147a: >> >> Merge remote-tracking branch 'remotes/stsquad/tags/pull-travis-updates-010618-1' into staging (2018-06-01 17:32:30 +0100) >> >> are available in the git repository at: >> >> git://git.kraxel.org/qemu tags/vga-20180604-pull-request >> >> for you to fetch changes up to 6bc2fd57e1fc2d1957d1ff952793c53764130218: >> >> vga: cleanup surface handling (2018-06-04 09:44:10 +0200) >> >> ---------------------------------------------------------------- >> Two little vga fixes. >> >> ---------------------------------------------------------------- >> >> Gerd Hoffmann (2): >> bochs-display: add missing break >> vga: cleanup surface handling >> >> hw/display/bochs-display.c | 1 + >> hw/display/vga.c | 36 +++++++++++++++++++----------------- >> 2 files changed, 20 insertions(+), 17 deletions(-) > > I got a failure in the migration tests with this applied: > Unfortunately this doesn't seem to reproduce. I haven't seen > it before, so my guess is this is an intermittent introduced > by your earlier migration pullreq which is now in master ? > Might only manifest when the host machine is under load or > during a 'make check -j8' parallel test run. A rerun didn't show this up, and it doesn't look like it could be anything in this pull, so I've applied the pullreq. thanks -- PMM ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2018-06-04 17:34 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2018-06-04 8:49 [Qemu-devel] [PULL 0/2] Vga 20180604 patches Gerd Hoffmann 2018-06-04 8:49 ` [Qemu-devel] [PULL 1/2] bochs-display: add missing break Gerd Hoffmann 2018-06-04 8:49 ` [Qemu-devel] [PULL 2/2] vga: cleanup surface handling Gerd Hoffmann 2018-06-04 15:40 ` [Qemu-devel] [PULL 0/2] Vga 20180604 patches Peter Maydell 2018-06-04 17:33 ` Peter Maydell
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).