qemu/include/ui
Nikola Pavlica c4c00922cc display/gtk: get proper refreshrate
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 <pavlica.nikola@gmail.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Message-id: 20200108121342.29597-1-pavlica.nikola@gmail.com

[ kraxel: style tweak: add blank line between vars and code ]

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2020-01-14 07:26:36 +01:00
..
console.h ui: Print available display backends with '-display help' 2020-01-14 07:26:36 +01:00
egl-context.h
egl-helpers.h ui/egl: fix framebuffer reads 2019-09-17 13:42:02 +02:00
gtk.h display/gtk: get proper refreshrate 2020-01-14 07:26:36 +01:00
input.h include: Make headers more self-contained 2019-08-16 13:31:51 +02:00
kbd-state.h Normalize header guard symbol definition. 2019-05-13 08:58:55 +02:00
pixel_ops.h
qemu-pixman.h ui: add pixman image g_autoptr support 2020-01-02 13:54:57 +04:00
qemu-spice.h
sdl2.h kbd-state: use state tracker for sdl2 2019-02-05 10:45:44 +01:00
shader.h
spice-display.h Clean up inclusion of sysemu/sysemu.h 2019-08-16 13:31:53 +02:00