If neither width nor height changes, nothing has to be done. Cc: Anthony Liguori <aligu...@us.ibm.com> Signed-off-by: Stefan Weil <s...@weilnetz.de> ---
This patch improves SDL for any host (for example with remote X displays), but the main reason why I wrote it was another problem: On w32 / w64 hosts, qemu-system-arm has a deadlock when it calls sdl_resize_displaysurface during Linux boot. One thread waits for a critical region, another thread waits inside SDL_SetVideoMode. The patch avoids this problem. Paolo, maybe you have an idea what could cause the deadlock. Debugging on wxx is terrible - up to now, I did not succeed in analysing the lock situation with gdb. Regards, Stefan W. ui/sdl.c | 7 +++++-- 1 files changed, 5 insertions(+), 2 deletions(-) diff --git a/ui/sdl.c b/ui/sdl.c index 8700b7a..8c1c71c 100644 --- a/ui/sdl.c +++ b/ui/sdl.c @@ -224,8 +224,11 @@ static void sdl_free_displaysurface(DisplaySurface *surface) static DisplaySurface* sdl_resize_displaysurface(DisplaySurface *surface, int width, int height) { - sdl_free_displaysurface(surface); - return sdl_create_displaysurface(width, height); + if (surface->width != width || surface->height != height) { + sdl_free_displaysurface(surface); + surface = sdl_create_displaysurface(width, height); + } + return surface; } /* generic keyboard conversion */ -- 1.7.9