[Bf-blender-cvs] [eccd8af828e] master: Revert "GHOST/X11: enable EGL"

Brecht Van Lommel noreply at git.blender.org
Mon Aug 2 17:24:10 CEST 2021


Commit: eccd8af828ea9dea434905e0ed1c5348f77fbfd5
Author: Brecht Van Lommel
Date:   Mon Aug 2 17:15:53 2021 +0200
Branches: master
https://developer.blender.org/rBeccd8af828ea9dea434905e0ed1c5348f77fbfd5

Revert "GHOST/X11: enable EGL"

This is causing issues for some users launching Blender, because EGL indirectly
requires GLVND, which is not installed by default on e.g. Ubuntu.

This reverts commit 0b18a618b88b22663e05eca0f4d976875710e7cc.

Fixes T90374

Ref D12034

===================================================================

M	CMakeLists.txt
M	build_files/build_environment/install_deps.sh
M	build_files/cmake/platform/platform_unix.cmake

===================================================================

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 5072977215d..6c6408bee2c 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -251,6 +251,16 @@ if(WITH_GHOST_X11)
   option(WITH_X11_ALPHA     "Enable X11 transparent background"                     ON)
 endif()
 
+if(UNIX AND NOT APPLE)
+  option(WITH_SYSTEM_GLEW "Use GLEW OpenGL wrapper library provided by the operating system" OFF)
+  option(WITH_SYSTEM_GLES "Use OpenGL ES library provided by the operating system"           ON)
+else()
+  # not an option for other OS's
+  set(WITH_SYSTEM_GLEW OFF)
+  set(WITH_SYSTEM_GLES OFF)
+endif()
+
+
 if(UNIX AND NOT APPLE)
   option(WITH_SYSTEM_EIGEN3 "Use the systems Eigen3 library" OFF)
 endif()
@@ -475,32 +485,15 @@ endif()
 
 # OpenGL
 
-if(UNIX AND NOT APPLE)
-  # GLEW can only built with either GLX or EGL support and most binary
-  # distributions are built with GLX support. So we always compile GLEW
-  # with EGL support manually, and the options are no longer available.
-  set(WITH_SYSTEM_GLEW OFF)
-  set(WITH_SYSTEM_GLES ON)
-
-  # Always use EGL instead of GLX, for X11, Wayland and headless.
-  set(WITH_GL_EGL ON)
-else()
-  # System GLEW and GLES were never an option on other platforms.
-  set(WITH_SYSTEM_GLEW OFF)
-  set(WITH_SYSTEM_GLES OFF)
-
-  # Experimental EGL option.
-  option(WITH_GL_EGL "Use the EGL OpenGL system library instead of the platform specific OpenGL system library (CGL or WGL)" OFF)
-  mark_as_advanced(WITH_GL_EGL)
-endif()
-
 option(WITH_OPENGL              "When off limits visibility of the opengl headers to just bf_gpu and gawain (temporary option for development purposes)" ON)
 option(WITH_GLEW_ES             "Switches to experimental copy of GLEW that has support for OpenGL ES. (temporary option for development purposes)" OFF)
+option(WITH_GL_EGL              "Use the EGL OpenGL system library instead of the platform specific OpenGL system library (CGL, glX, or WGL)"       OFF)
 option(WITH_GL_PROFILE_ES20     "Support using OpenGL ES 2.0. (through either EGL or the AGL/WGL/XGL 'es20' profile)"                               OFF)
 
 mark_as_advanced(
   WITH_OPENGL
   WITH_GLEW_ES
+  WITH_GL_EGL
   WITH_GL_PROFILE_ES20
 )
 
diff --git a/build_files/build_environment/install_deps.sh b/build_files/build_environment/install_deps.sh
index fd4f59fcda7..26281887e1f 100755
--- a/build_files/build_environment/install_deps.sh
+++ b/build_files/build_environment/install_deps.sh
@@ -603,6 +603,9 @@ MP3LAME_DEV=""
 OPENJPEG_USE=false
 OPENJPEG_DEV=""
 
+# Whether to use system GLEW or not (OpenSubDiv needs recent glew to work).
+NO_SYSTEM_GLEW=false
+
 # Switch to english language, else some things (like check_package_DEB()) won't work!
 LANG_BACK=$LANG
 LANG=""
@@ -3982,9 +3985,13 @@ install_DEB() {
     version_ge $_glew "1.7.0"
     if [ $? -eq 1 ]; then
       WARNING "OpenSubdiv disabled because GLEW-$_glew is not enough"
+      WARNING "Blender will not use system GLEW library"
       OSD_SKIP=true
+      NO_SYSTEM_GLEW=true
     else
       WARNING "OpenSubdiv will compile with GLEW-$_glew but with limited capability"
+      WARNING "Blender will not use system GLEW library"
+      NO_SYSTEM_GLEW=true
     fi
   fi
 
@@ -5955,6 +5962,12 @@ print_info() {
     fi
   fi
 
+  if [ "$NO_SYSTEM_GLEW" = true ]; then
+    _1="-D WITH_SYSTEM_GLEW=OFF"
+    PRINT "  $_1"
+    _buildargs="$_buildargs $_1"
+  fi
+
   if [ "$FFMPEG_SKIP" = false ]; then
     _1="-D WITH_CODEC_FFMPEG=ON"
     _2="-D FFMPEG_LIBRARIES='avformat;avcodec;avutil;avdevice;swscale;swresample;lzma;rt;`print_info_ffmpeglink`'"
diff --git a/build_files/cmake/platform/platform_unix.cmake b/build_files/cmake/platform/platform_unix.cmake
index ffdbbc3f8c5..7f62399ac4f 100644
--- a/build_files/cmake/platform/platform_unix.cmake
+++ b/build_files/cmake/platform/platform_unix.cmake
@@ -581,6 +581,8 @@ if(WITH_GHOST_WAYLAND)
   pkg_check_modules(wayland-cursor REQUIRED wayland-cursor)
   pkg_check_modules(dbus REQUIRED dbus-1)
 
+  set(WITH_GL_EGL ON)
+
   list(APPEND PLATFORM_LINKLIBS
     ${wayland-client_LINK_LIBRARIES}
     ${wayland-egl_LINK_LIBRARIES}



More information about the Bf-blender-cvs mailing list