[Bf-blender-cvs] [f4827d08bc9] blender-v3.2-release: Build: disable usage of GLEW, CLEW, CUDA, GLFW in OpenSubdiv

Brecht Van Lommel noreply at git.blender.org
Mon May 9 18:30:27 CEST 2022


Commit: f4827d08bc9be71e7eb5b44a2de73044e5a45174
Author: Brecht Van Lommel
Date:   Mon May 9 18:15:05 2022 +0200
Branches: blender-v3.2-release
https://developer.blender.org/rBf4827d08bc9be71e7eb5b44a2de73044e5a45174

Build: disable usage of GLEW, CLEW, CUDA, GLFW in OpenSubdiv

The previous 3.1 libraries (accidentally) used glApi instead of GLEW and were
working for GPU subdivision, so revert to that. There's a suspected conflict
with Blender's own bundled GLEW or other issue with GLEW, causing the crash in
T97737.

The current GPU subdivision implementation does not need OpenCL, CUDA or GLFW.
So also remove libraries needed for that. It's simpler to stick to compute
shaders in OpenGL/Vulkan/Metal and not involve additional APIs.

Ref T95206

Differential Revision: https://developer.blender.org/D14898

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

M	build_files/build_environment/CMakeLists.txt
D	build_files/build_environment/cmake/clew.cmake
D	build_files/build_environment/cmake/cuew.cmake
M	build_files/build_environment/cmake/download.cmake
D	build_files/build_environment/cmake/glfw.cmake
M	build_files/build_environment/cmake/opensubdiv.cmake
M	build_files/build_environment/cmake/versions.cmake
M	build_files/build_environment/dependencies.dot
D	build_files/build_environment/patches/cuew.diff

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

diff --git a/build_files/build_environment/CMakeLists.txt b/build_files/build_environment/CMakeLists.txt
index 8f4738d1f1c..b63e86a3ac2 100644
--- a/build_files/build_environment/CMakeLists.txt
+++ b/build_files/build_environment/CMakeLists.txt
@@ -54,9 +54,6 @@ include(cmake/freetype.cmake)
 include(cmake/freeglut.cmake)
 include(cmake/glew.cmake)
 include(cmake/alembic.cmake)
-include(cmake/glfw.cmake)
-include(cmake/clew.cmake)
-include(cmake/cuew.cmake)
 include(cmake/opensubdiv.cmake)
 include(cmake/sdl.cmake)
 include(cmake/opencollada.cmake)
diff --git a/build_files/build_environment/cmake/clew.cmake b/build_files/build_environment/cmake/clew.cmake
deleted file mode 100644
index 8c965d52d2c..00000000000
--- a/build_files/build_environment/cmake/clew.cmake
+++ /dev/null
@@ -1,12 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0-or-later
-
-set(CLEW_EXTRA_ARGS)
-
-ExternalProject_Add(external_clew
-  URL file://${PACKAGE_DIR}/${CLEW_FILE}
-  DOWNLOAD_DIR ${DOWNLOAD_DIR}
-  URL_HASH ${CLEW_HASH_TYPE}=${CLEW_HASH}
-  PREFIX ${BUILD_DIR}/clew
-  CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/clew -Wno-dev ${DEFAULT_CMAKE_FLAGS} ${CLEW_EXTRA_ARGS}
-  INSTALL_DIR ${LIBDIR}/clew
-)
diff --git a/build_files/build_environment/cmake/cuew.cmake b/build_files/build_environment/cmake/cuew.cmake
deleted file mode 100644
index 8beb8b4fade..00000000000
--- a/build_files/build_environment/cmake/cuew.cmake
+++ /dev/null
@@ -1,13 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0-or-later
-
-set(CUEW_EXTRA_ARGS)
-
-ExternalProject_Add(external_cuew
-  URL file://${PACKAGE_DIR}/${CUEW_FILE}
-  DOWNLOAD_DIR ${DOWNLOAD_DIR}
-  URL_HASH ${CUEW_HASH_TYPE}=${CUEW_HASH}
-  PREFIX ${BUILD_DIR}/cuew
-  PATCH_COMMAND ${PATCH_CMD} --verbose -p 0 -N -d ${BUILD_DIR}/cuew/src/external_cuew < ${PATCH_DIR}/cuew.diff
-  CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/cuew -Wno-dev ${DEFAULT_CMAKE_FLAGS} ${CUEW_EXTRA_ARGS}
-  INSTALL_DIR ${LIBDIR}/cuew
-)
diff --git a/build_files/build_environment/cmake/download.cmake b/build_files/build_environment/cmake/download.cmake
index 92dea453133..e305b05ee70 100644
--- a/build_files/build_environment/cmake/download.cmake
+++ b/build_files/build_environment/cmake/download.cmake
@@ -39,10 +39,6 @@ download_source(FREETYPE)
 download_source(GLEW)
 download_source(FREEGLUT)
 download_source(ALEMBIC)
-download_source(GLFW)
-download_source(CLEW)
-download_source(GLFW)
-download_source(CUEW)
 download_source(OPENSUBDIV)
 download_source(SDL)
 download_source(OPENCOLLADA)
diff --git a/build_files/build_environment/cmake/glfw.cmake b/build_files/build_environment/cmake/glfw.cmake
deleted file mode 100644
index 29fce7609e5..00000000000
--- a/build_files/build_environment/cmake/glfw.cmake
+++ /dev/null
@@ -1,12 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0-or-later
-
-set(GLFW_EXTRA_ARGS)
-
-ExternalProject_Add(external_glfw
-  URL file://${PACKAGE_DIR}/${GLFW_FILE}
-  DOWNLOAD_DIR ${DOWNLOAD_DIR}
-  URL_HASH ${GLFW_HASH_TYPE}=${GLFW_HASH}
-  PREFIX ${BUILD_DIR}/glfw
-  CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/glfw -Wno-dev ${DEFAULT_CMAKE_FLAGS} ${GLFW_EXTRA_ARGS}
-  INSTALL_DIR ${LIBDIR}/glfw
-)
diff --git a/build_files/build_environment/cmake/opensubdiv.cmake b/build_files/build_environment/cmake/opensubdiv.cmake
index 6d6e3568406..a142160b9cc 100644
--- a/build_files/build_environment/cmake/opensubdiv.cmake
+++ b/build_files/build_environment/cmake/opensubdiv.cmake
@@ -10,20 +10,16 @@ set(OPENSUBDIV_EXTRA_ARGS
   -DNO_OMP=ON
   -DNO_TBB=OFF
   -DNO_CUDA=ON
-  -DNO_OPENCL=OFF
-  -DNO_CLEW=OFF
+  -DNO_OPENCL=ON
+  -DNO_CLEW=ON
   -DNO_OPENGL=OFF
   -DNO_METAL=OFF
   -DNO_DX=ON
   -DNO_TESTS=ON
   -DNO_GLTESTS=ON
-  -DNO_GLEW=OFF
-  -DNO_GLFW=OFF
+  -DNO_GLEW=ON
+  -DNO_GLFW=ON
   -DNO_GLFW_X11=ON
-  -DGLEW_INCLUDE_DIR=${LIBDIR}/glew/include
-  -DGLEW_LIBRARY=${LIBDIR}/glew/lib/libGLEW${LIBEXT}
-  -DGLFW_INCLUDE_DIR=${LIBDIR}/glfw/include
-  -DGLFW_LIBRARIES=${LIBDIR}/glfw/lib/glfw3${LIBEXT}
 )
 
 if(WIN32)
@@ -31,19 +27,12 @@ if(WIN32)
     ${OPENSUBDIV_EXTRA_ARGS}
     -DTBB_INCLUDE_DIR=${LIBDIR}/tbb/include
     -DTBB_LIBRARIES=${LIBDIR}/tbb/lib/tbb.lib
-    -DCLEW_INCLUDE_DIR=${LIBDIR}/clew/include/CL
-    -DCLEW_LIBRARY=${LIBDIR}/clew/lib/clew${LIBEXT}
-    -DCUEW_INCLUDE_DIR=${LIBDIR}/cuew/include
-    -DCUEW_LIBRARY=${LIBDIR}/cuew/lib/cuew${LIBEXT}
   )
 else()
   set(OPENSUBDIV_EXTRA_ARGS
     ${OPENSUBDIV_EXTRA_ARGS}
     -DTBB_INCLUDE_DIR=${LIBDIR}/tbb/include
     -DTBB_tbb_LIBRARY=${LIBDIR}/tbb/lib/${LIBPREFIX}tbb_static${LIBEXT}
-    -DCUEW_INCLUDE_DIR=${LIBDIR}/cuew/include
-    -DCLEW_INCLUDE_DIR=${LIBDIR}/clew/include/CL
-    -DCLEW_LIBRARY=${LIBDIR}/clew/lib/static/${LIBPREFIX}clew${LIBEXT}
   )
 endif()
 
@@ -75,9 +64,5 @@ endif()
 
 add_dependencies(
   external_opensubdiv
-  external_glew
-  external_glfw
-  external_clew
-  external_cuew
   external_tbb
 )
diff --git a/build_files/build_environment/cmake/versions.cmake b/build_files/build_environment/cmake/versions.cmake
index 25267273db0..550be86b6b6 100644
--- a/build_files/build_environment/cmake/versions.cmake
+++ b/build_files/build_environment/cmake/versions.cmake
@@ -98,27 +98,6 @@ set(ALEMBIC_HASH 2cd8d6e5a3ac4a014e24a4b04f4fadf9)
 set(ALEMBIC_HASH_TYPE MD5)
 set(ALEMBIC_FILE alembic-${ALEMBIC_VERSION}.tar.gz)
 
-# hash is for 3.1.2
-set(GLFW_GIT_UID 30306e54705c3adae9fe082c816a3be71963485c)
-set(GLFW_URI https://github.com/glfw/glfw/archive/${GLFW_GIT_UID}.zip)
-set(GLFW_HASH 20cacb1613da7eeb092f3ac4f6b2b3d0)
-set(GLFW_HASH_TYPE MD5)
-set(GLFW_FILE glfw-${GLFW_GIT_UID}.zip)
-
-# latest uid in git as of 2016-04-01
-set(CLEW_GIT_UID 277db43f6cafe8b27c6f1055f69dc67da4aeb299)
-set(CLEW_URI https://github.com/OpenCLWrangler/clew/archive/${CLEW_GIT_UID}.zip)
-set(CLEW_HASH 2c699d10ed78362e71f56fae2a4c5f98)
-set(CLEW_HASH_TYPE MD5)
-set(CLEW_FILE clew-${CLEW_GIT_UID}.zip)
-
-# latest uid in git as of 2016-04-01
-set(CUEW_GIT_UID 1744972026de9cf27c8a7dc39cf39cd83d5f922f)
-set(CUEW_URI https://github.com/CudaWrangler/cuew/archive/${CUEW_GIT_UID}.zip)
-set(CUEW_HASH 86760d62978ebfd96cd93f5aa1abaf4a)
-set(CUEW_HASH_TYPE MD5)
-set(CUEW_FILE cuew-${CUEW_GIT_UID}.zip)
-
 set(OPENSUBDIV_VERSION v3_4_4)
 set(OPENSUBDIV_URI https://github.com/PixarAnimationStudios/OpenSubdiv/archive/${OPENSUBDIV_VERSION}.tar.gz)
 set(OPENSUBDIV_HASH 39ecc5caf0abebc943d1ce131855e76e)
diff --git a/build_files/build_environment/dependencies.dot b/build_files/build_environment/dependencies.dot
index 62949f3de62..7e8637fbced 100644
--- a/build_files/build_environment/dependencies.dot
+++ b/build_files/build_environment/dependencies.dot
@@ -37,10 +37,6 @@ graph[autosize = false, size = "25.7,8.3!", resolution = 300, overlap = false, s
 	external_openimageio -- external_webp;
 	external_openimageio -- external_opencolorio_extra;
 	external_openmp -- external_clang;
-	external_opensubdiv -- external_glew;
-	external_opensubdiv -- external_glfw;
-	external_opensubdiv -- external_clew;
-	external_opensubdiv -- external_cuew;
 	external_opensubdiv -- external_tbb;
 	openvdb -- external_tbb;
 	openvdb -- external_boost;
diff --git a/build_files/build_environment/patches/cuew.diff b/build_files/build_environment/patches/cuew.diff
deleted file mode 100644
index 0363034cd93..00000000000
--- a/build_files/build_environment/patches/cuew.diff
+++ /dev/null
@@ -1,26 +0,0 @@
---- CmakeLists.txt.orig	2015-12-31 03:46:41 -0700
-+++ CMakeLists.txt	2016-04-01 13:28:33 -0600
-@@ -22,3 +22,10 @@
- 
- add_executable(testcuew cuewTest/cuewTest.c include/cuew.h)
- target_link_libraries(testcuew cuew ${CMAKE_DL_LIBS})
-+
-+install(TARGETS cuew
-+  LIBRARY DESTINATION lib COMPONENT libraries
-+  ARCHIVE DESTINATION lib/static COMPONENT libraries)
-+
-+INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/include/cuew.h
-+  DESTINATION include/) 
-\ No newline at end of file
---- src/cuew.c	2016-04-01 13:41:43 -0600
-+++ src/cuew.c	2016-04-01 13:41:11 -0600
-@@ -15,7 +15,9 @@
-  */
- 
- #ifdef _MSC_VER
-+#if _MSC_VER < 1900
- #  define snprintf _snprintf
-+#endif 
- #  define popen _popen
- #  define pclose _pclose
- #  define _CRT_SECURE_NO_WARNINGS



More information about the Bf-blender-cvs mailing list