[GTK] Disable ACCELERATED_2D_CANVAS by default
authormcatanzaro@igalia.com <mcatanzaro@igalia.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 26 Aug 2015 18:46:04 +0000 (18:46 +0000)
committermcatanzaro@igalia.com <mcatanzaro@igalia.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 26 Aug 2015 18:46:04 +0000 (18:46 +0000)
https://bugs.webkit.org/show_bug.cgi?id=148473

Reviewed by Martin Robinson.

Currently ACCELERATED_2D_CANVAS is enabled by default on most systems (which have CairoGL)
but not on Debian (which does not). We've known this was problematic for a while, since it
means we have two different sets of distro-dependent bugs, but never decided whether that
outweighed the benefits of CarioGL or not. I'm making the call now: it's more important to
have the same bugs everywhere. We can turn this on again for other distros when we're ready
to turn it on for Debian.

Also, properly fail the build if ENABLE_ACCELERATED_2D_CANVAS is enabled but CairoGL is not
available.

* Source/cmake/OptionsGTK.cmake:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@188973 268f45cc-cd09-0410-ab3c-d52691b4dbfc

ChangeLog
Source/cmake/OptionsGTK.cmake

index d72116d..dd84bd3 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,22 @@
+2015-08-26  Michael Catanzaro  <mcatanzaro@igalia.com>
+
+        [GTK] Disable ACCELERATED_2D_CANVAS by default
+        https://bugs.webkit.org/show_bug.cgi?id=148473
+
+        Reviewed by Martin Robinson.
+
+        Currently ACCELERATED_2D_CANVAS is enabled by default on most systems (which have CairoGL)
+        but not on Debian (which does not). We've known this was problematic for a while, since it
+        means we have two different sets of distro-dependent bugs, but never decided whether that
+        outweighed the benefits of CarioGL or not. I'm making the call now: it's more important to
+        have the same bugs everywhere. We can turn this on again for other distros when we're ready
+        to turn it on for Debian.
+
+        Also, properly fail the build if ENABLE_ACCELERATED_2D_CANVAS is enabled but CairoGL is not
+        available.
+
+        * Source/cmake/OptionsGTK.cmake:
+
 2015-08-25  Commit Queue  <commit-queue@webkit.org>
 
         Unreviewed, rolling out r188919.
index 71efa11..32312e4 100644 (file)
@@ -112,27 +112,7 @@ else ()
     WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_MEMORY_SAMPLER PUBLIC OFF)
 endif ()
 
-if (OPENGL_FOUND)
-    if (GLX_FOUND)
-        list(APPEND CAIROGL_COMPONENTS cairo-glx)
-    endif ()
-    if (EGL_FOUND)
-        list(APPEND CAIROGL_COMPONENTS cairo-egl)
-    endif ()
-endif ()
-find_package(CairoGL 1.10.2 COMPONENTS ${CAIROGL_COMPONENTS})
-
-# Normally we do not set the value of options automatically. However, CairoGL is special. Currently
-# most major distros compile Cario with --enable-gl, but Debian and derivitives are a major
-# exception. You very probably want accelerated 2D canvas if Cario has been compiled with CarioGL,
-# and very probably do not want to recompile Cario otherwise. So we expect some major distros will
-# enable this feature, and others will not, and that is just fine for the time being. Once Debian
-# enables CairoGL, then it will be time to force this ON by default. Note that if GLX is installed,
-# EGL is not, and ENABLE_X11_TARGET is OFF, this guess is wrong and the user must override it. We
-# can't check ENABLE_X11_TARGET at this point because we don't know whether it's enabled until
-# WEBKIT_OPTION_END has been called, and at that point it's too late to change default values.
-WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_ACCELERATED_2D_CANVAS PUBLIC CAIROGL_FOUND)
-
+WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_ACCELERATED_2D_CANVAS PUBLIC OFF)
 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_CREDENTIAL_STORAGE PUBLIC ON)
 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_DRAG_SUPPORT PUBLIC ON)
 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_GEOLOCATION PUBLIC ON)
@@ -241,6 +221,20 @@ if (ENABLE_GAMEPAD_DEPRECATED OR ENABLE_GEOLOCATION)
 endif ()
 find_package(GLIB 2.36 REQUIRED COMPONENTS ${glib_components})
 
+if (ENABLE_ACCELERATED_2D_CANVAS)
+    if (GLX_FOUND)
+        list(APPEND CAIROGL_COMPONENTS cairo-glx)
+    endif ()
+    if (EGL_FOUND)
+        list(APPEND CAIROGL_COMPONENTS cairo-egl)
+    endif ()
+
+    find_package(CairoGL 1.10.2 COMPONENTS ${CAIROGL_COMPONENTS})
+    if (NOT CAIROGL_FOUND)
+        message(FATAL_ERROR "CairoGL is needed for ENABLE_ACCELERATED_2D_CANVAS")
+    endif ()
+endif ()
+
 if (ENABLE_CREDENTIAL_STORAGE)
     find_package(Libsecret)
     if (NOT LIBSECRET_FOUND)