0810238d22
Currently, ClutterFrameClock uses g_source_set_ready_time() to determine the usec timing of the next frame. That translates into a poll() with a millisecond timeout if no trigger occurs to break the poll() out early. To avoid spinning the CPU, GLib always rounds *up* to the next millisecond value unless a timeout of 0 was provided by a GSource. This means that timeouts for the ClutterFrameClock can easily skew beyond their expected time as the precision is too coarse. This applies the same concept as GNOME/glib!3949 but just for the ClutterFrameClock. That may be more ideal than adding a timerfd for every GMainContext, but we'll see if that lands upstream. I wanted to provide this here because it could easily be cherry-picked in the mean time if this is found to be useful. From a timer stability perspective, this improves things from erratically jumping between 100s and 1000s off of the expected awake time to single or low double digits. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3636>
135 lines
3.2 KiB
Plaintext
135 lines
3.2 KiB
Plaintext
/* The prefix for our gettext translation domains. */
|
|
#mesondefine GETTEXT_PACKAGE
|
|
|
|
/* Version number of package */
|
|
#mesondefine VERSION
|
|
|
|
/* Name of package */
|
|
#mesondefine PACKAGE_NAME
|
|
|
|
/* Version number of package */
|
|
#mesondefine PACKAGE_VERSION
|
|
|
|
/* Search path for plugins */
|
|
#mesondefine MUTTER_PLUGIN_DIR
|
|
|
|
/* */
|
|
#mesondefine MUTTER_LOCALEDIR
|
|
|
|
/* */
|
|
#mesondefine MUTTER_LIBEXECDIR
|
|
|
|
/* */
|
|
#mesondefine MUTTER_PKGDATADIR
|
|
|
|
/* Defined if EGL support is enabled */
|
|
#mesondefine HAVE_EGL
|
|
|
|
/* Defined if EGLDevice support is enabled */
|
|
#mesondefine HAVE_EGL_DEVICE
|
|
|
|
/* Have GLX for rendering */
|
|
#mesondefine HAVE_GLX
|
|
|
|
#mesondefine HAVE_EGL_PLATFORM_XLIB
|
|
|
|
/* Have GL for rendering */
|
|
#mesondefine HAVE_GL
|
|
|
|
/* Have GLES 2.0 for rendering */
|
|
#mesondefine HAVE_GLES2
|
|
|
|
/* Defined if EGLStream support is enabled */
|
|
#mesondefine HAVE_WAYLAND_EGLSTREAM
|
|
|
|
/* Building with gudev for device type detection */
|
|
#mesondefine HAVE_LIBGUDEV
|
|
|
|
/* Building with libwacom for advanced tablet management */
|
|
#mesondefine HAVE_LIBWACOM
|
|
|
|
/* Building with libsystemd */
|
|
#mesondefine HAVE_LIBSYSTEMD
|
|
|
|
/* Define if you want to enable the native (KMS) backend based on systemd */
|
|
#mesondefine HAVE_NATIVE_BACKEND
|
|
|
|
/* Define if you want to enable Wayland support */
|
|
#mesondefine HAVE_WAYLAND
|
|
|
|
/* Define if you want to enable XWayland support */
|
|
#mesondefine HAVE_XWAYLAND
|
|
|
|
/* Define if you want to enable X11 backend support */
|
|
#mesondefine HAVE_X11
|
|
|
|
/* Define if either XWayland or X11 backend are enabled */
|
|
#mesondefine HAVE_X11_CLIENT
|
|
|
|
/* Defined if screen cast and remote desktop support is enabled */
|
|
#mesondefine HAVE_REMOTE_DESKTOP
|
|
|
|
/* Defined if gnome-desktop is enabled */
|
|
#mesondefine HAVE_GNOME_DESKTOP
|
|
|
|
/* Defined if sound player is enabled */
|
|
#mesondefine HAVE_SOUND_PLAYER
|
|
|
|
/* Building with SM support */
|
|
#mesondefine HAVE_SM
|
|
|
|
/* Building with startup notification support */
|
|
#mesondefine HAVE_STARTUP_NOTIFICATION
|
|
|
|
/* Building with Sysprof profiling support */
|
|
#mesondefine HAVE_PROFILER
|
|
|
|
/* Path to Xwayland executable */
|
|
#mesondefine XWAYLAND_PATH
|
|
|
|
/* Xwayland applications allowed to issue keyboard grabs */
|
|
#mesondefine XWAYLAND_GRAB_DEFAULT_ACCESS_RULES
|
|
|
|
/* XKB base prefix */
|
|
#mesondefine XKB_BASE
|
|
|
|
/* Whether <sys/prctl.h> exists and it defines prctl() */
|
|
#mesondefine HAVE_SYS_PRCTL
|
|
|
|
/* Either <sys/random.h> or <linux/random.h> */
|
|
#mesondefine HAVE_SYS_RANDOM
|
|
#mesondefine HAVE_LINUX_RANDOM
|
|
|
|
/* Whether Xwayland has -initfd option */
|
|
#mesondefine HAVE_XWAYLAND_INITFD
|
|
|
|
/* Whether Xwayland has -listenfd option */
|
|
#mesondefine HAVE_XWAYLAND_LISTENFD
|
|
|
|
/* Whether the mkostemp function exists */
|
|
#mesondefine HAVE_MKOSTEMP
|
|
|
|
/* Whether the posix_fallocate function exists */
|
|
#mesondefine HAVE_POSIX_FALLOCATE
|
|
|
|
/* Whether the memfd_create function exists */
|
|
#mesondefine HAVE_MEMFD_CREATE
|
|
|
|
/* Whether the Xwayland -terminate supports a delay */
|
|
#mesondefine HAVE_XWAYLAND_TERMINATE_DELAY
|
|
|
|
/* Whether the Xwayland supports +/-byteswappedclients */
|
|
#mesondefine HAVE_XWAYLAND_BYTE_SWAPPED_CLIENTS
|
|
|
|
/* Defined if libdisplay-info is enabled */
|
|
#mesondefine HAVE_LIBDISPLAY_INFO
|
|
|
|
/* Whether the Xwayland has -enable-ei-portal option */
|
|
#mesondefine HAVE_XWAYLAND_ENABLE_EI_PORTAL
|
|
|
|
/* Supports PangoFt2 */
|
|
#mesondefine HAVE_PANGO_FT2
|
|
|
|
/* Supports timerfd_create/timerfd_settime */
|
|
#mesondefine HAVE_TIMERFD
|