From c388f408b538b38db83999fd20b17020d5fdf68f Mon Sep 17 00:00:00 2001 From: Thomas Huth Date: Wed, 8 Jan 2020 15:47:02 +0100 Subject: ui: Print available display backends with '-display help' MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit We already print availabled devices with "-device help", or available backends with "-netdev help" or "-chardev help". Let's provide a way for the users to query the available display backends, too. Reviewed-by: Philippe Mathieu-Daudé Tested-by: Philippe Mathieu-Daudé Signed-off-by: Thomas Huth Message-id: 20200108144702.29969-1-thuth@redhat.com Signed-off-by: Gerd Hoffmann --- include/ui/console.h | 1 + 1 file changed, 1 insertion(+) (limited to 'include') diff --git a/include/ui/console.h b/include/ui/console.h index 281f9c1..f35b4fc 100644 --- a/include/ui/console.h +++ b/include/ui/console.h @@ -442,6 +442,7 @@ void qemu_display_register(QemuDisplay *ui); bool qemu_display_find_default(DisplayOptions *opts); void qemu_display_early_init(DisplayOptions *opts); void qemu_display_init(DisplayState *ds, DisplayOptions *opts); +void qemu_display_help(void); /* vnc.c */ void vnc_display_init(const char *id, Error **errp); -- cgit v1.1 From c4c00922cc948bb5e879bfae60764eba1f8745f3 Mon Sep 17 00:00:00 2001 From: Nikola Pavlica Date: Wed, 8 Jan 2020 13:13:42 +0100 Subject: display/gtk: get proper refreshrate MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Because some VMs in QEMU can get GPU virtualization (using technologies such as iGVT-g, as mentioned previously), they could produce a video output that had a higher display refresh rate than of what the GTK display was displaying. (fxp. Playing a video game inside of a Windows VM at 60 Hz, while the output stood locked at 33 Hz because of defaults set in include/ui/console.h) Since QEMU does indeed have internal systems for determining frame times as defined in ui/console.c. The code checks for a variable called update_interval that it later uses for time calculation. This variable, however, isn't defined anywhere in ui/gtk.c and instead ui/console.c just sets it to GUI_REFRESH_INTERVAL_DEFAULT which is 30 update_interval represents the number of milliseconds per display refresh, and by doing some math we get that 1000/30 = 33.33... Hz This creates the mentioned problem and what this patch does is that it checks for the display refresh rate reported by GTK itself (we can take this as a safe value) and just converts it back to a number of milliseconds per display refresh. Signed-off-by: Nikola Pavlica Reviewed-by: Philippe Mathieu-Daudé Message-id: 20200108121342.29597-1-pavlica.nikola@gmail.com [ kraxel: style tweak: add blank line between vars and code ] Signed-off-by: Gerd Hoffmann --- include/ui/gtk.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'include') diff --git a/include/ui/gtk.h b/include/ui/gtk.h index d9eedad..d1b2308 100644 --- a/include/ui/gtk.h +++ b/include/ui/gtk.h @@ -28,6 +28,8 @@ #include "ui/egl-context.h" #endif +#define MILLISEC_PER_SEC 1000000 + typedef struct GtkDisplayState GtkDisplayState; typedef struct VirtualGfxConsole { -- cgit v1.1