toytoolkit: Make the window resizing optimization optional
authorLouis-Francis Ratté-Boulianne <lfrb@collabora.com>
Wed, 22 May 2013 15:03:11 +0000 (18:03 +0300)
committerKristian Høgsberg <krh@bitplanet.net>
Wed, 22 May 2013 22:07:30 +0000 (18:07 -0400)
Whether or not a shm pool is used for resizing is now configurable at
build time (--disable-resize-optimization).

[pq: removed an unnecessary hunk from the patch]

clients/window.c
configure.ac

index 135ae5a..b2e1af7 100644 (file)
@@ -1063,6 +1063,7 @@ shm_surface_prepare(struct toysurface *base, int dx, int dy,
        if (leaf->cairo_surface)
                cairo_surface_destroy(leaf->cairo_surface);
 
+#ifdef USE_RESIZE_POOL
        if (resize_hint && !leaf->resize_pool) {
                /* Create a big pool to allocate from, while continuously
                 * resizing. Mmapping a new pool in the server
@@ -1073,6 +1074,7 @@ shm_surface_prepare(struct toysurface *base, int dx, int dy,
                leaf->resize_pool = shm_pool_create(surface->display,
                                                    6 * 1024 * 1024);
        }
+#endif
 
        rect.width = width;
        rect.height = height;
index 2aec1bb..323bd87 100644 (file)
@@ -239,6 +239,13 @@ if test x$enable_clients = xyes; then
   PKG_CHECK_MODULES(PANGO, [pangocairo], [have_pango=yes], [have_pango=no])
 fi
 
+AC_ARG_ENABLE(resize-optimization,
+              AS_HELP_STRING([--disable-resize-optimization],
+                             [disable resize optimization allocating a big buffer in toytoolkit]),,
+              enable_resize_optimization=yes)
+AS_IF([test "x$enable_resize_optimization" = "xyes"],
+      [AC_DEFINE([USE_RESIZE_POOL], [1], [Use resize memory pool as a performance optimization])])
+
 AC_ARG_ENABLE(weston-launch, [  --enable-weston-launch],, enable_weston_launch=yes)
 AM_CONDITIONAL(BUILD_WESTON_LAUNCH, test x$enable_weston_launch == xyes)
 if test x$enable_weston_launch == xyes; then