summaryrefslogtreecommitdiff
path: root/graphics/vulkan-validation-layers/files/patch-revert
diff options
context:
space:
mode:
authorJan Beich <jbeich@FreeBSD.org>2021-12-21 17:05:00 +0000
committerJan Beich <jbeich@FreeBSD.org>2021-12-25 14:02:26 +0000
commit3bb7181ff8ad19b68fb0f32284c46275c7126f75 (patch)
tree9126804b9d575bb6e003a37e93e269ea46dd658b /graphics/vulkan-validation-layers/files/patch-revert
parentsecurity/p5-IO-Socket-SSL: update to 2.073 (diff)
graphics/vulkan-validation-layers: update to 1.2.203
Changes: https://github.com/KhronosGroup/Vulkan-ValidationLayers/compare/v1.2.201...v1.2.203 Reported by: Repology
Diffstat (limited to 'graphics/vulkan-validation-layers/files/patch-revert')
-rw-r--r--graphics/vulkan-validation-layers/files/patch-revert312
1 files changed, 312 insertions, 0 deletions
diff --git a/graphics/vulkan-validation-layers/files/patch-revert b/graphics/vulkan-validation-layers/files/patch-revert
new file mode 100644
index 000000000000..17c3058659c5
--- /dev/null
+++ b/graphics/vulkan-validation-layers/files/patch-revert
@@ -0,0 +1,312 @@
+Revert https://github.com/KhronosGroup/Vulkan-ValidationLayers/commit/2c2b81c05189
+as it breaks overriding via *_INSTALL_DIR e.g.,
+
+CMake Error at CMakeLists.txt:254 (find_package):
+ Could not find a package configuration file provided by "robin_hood" with
+ any of the following names:
+
+ robin_hoodConfig.cmake
+ robin_hood-config.cmake
+
+ Add the installation prefix of "robin_hood" to CMAKE_PREFIX_PATH or set
+ "robin_hood_DIR" to a directory containing one of the above files. If
+ "robin_hood" provides a separate development package or SDK, be sure it has
+ been installed.
+
+--- CMakeLists.txt.orig 2021-12-21 17:05:00 UTC
++++ CMakeLists.txt
+@@ -102,21 +102,7 @@ else()
+ message("********************************************************************************")
+ find_package(PythonInterp 3 QUIET)
+ endif()
+-#backwards compatability settings for other parts of the build system that don't use find_package() variables yet
+-if (ROBIN_HOOD_HASHING_INSTALL_DIR)
+- list(APPEND CMAKE_PREFIX_PATH ${ROBIN_HOOD_HASHING_INSTALL_DIR})
+-endif()
+-if (SPIRV_HEADERS_INSTALL_DIR)
+- list(APPEND CMAKE_PREFIX_PATH ${SPIRV_HEADERS_INSTALL_DIR})
+-endif()
+-if (SPIRV_TOOLS_INSTALL_DIR)
+- list(APPEND CMAKE_PREFIX_PATH ${SPIRV_TOOLS_INSTALL_DIR})
+-endif()
+-if (GOOGLETEST_INSTALL_DIR)
+- list(APPEND CMAKE_PREFIX_PATH ${GOOGLETEST_INSTALL_DIR})
+-endif()
+
+-
+ if (TARGET Vulkan::Headers)
+ message(STATUS "Using Vulkan headers from Vulkan::Headers target")
+ get_target_property(VulkanHeaders_INCLUDE_DIRS Vulkan::Headers INTERFACE_INCLUDE_DIRECTORIES)
+@@ -251,13 +237,12 @@ option(BUILD_LAYERS "Build layers" ON)
+ option(BUILD_LAYER_SUPPORT_FILES "Generate layer files" OFF) # For generating files when not building layers
+ option(USE_ROBIN_HOOD_HASHING "Use robin-hood-hashing" ON)
+ if (USE_ROBIN_HOOD_HASHING)
+- find_package(robin_hood REQUIRED CONFIG)
++ if(NOT ROBIN_HOOD_HASHING_INSTALL_DIR)
++ set(ROBIN_HOOD_HASHING_INSTALL_DIR $ENV{ROBIN_HOOD_HASHING_INSTALL_DIR} PATH "Path to robin-hood-hashing repository")
++ endif()
++ set(ROBIN_HOOD_HASHING_INCLUDE_DIR "${ROBIN_HOOD_HASHING_INSTALL_DIR}/src/include" PATH "Path to robin-hood-hashing/src/include")
+ endif()
+
+-if(BUILD_LAYERS OR BUILD_TESTS)
+- find_package(SPIRV-Headers REQUIRED CONFIG)
+-endif()
+-
+ if(BUILD_TESTS)
+ set(GLSLANG_INSTALL_DIR "GLSLANG-NOTFOUND" CACHE PATH "Absolute path to a glslang install directory")
+ if(NOT GLSLANG_INSTALL_DIR AND NOT DEFINED ENV{GLSLANG_INSTALL_DIR} AND NOT TARGET glslang)
+@@ -269,7 +254,20 @@ if(BUILD_TESTS)
+ set(GLSLANG_INSTALL_DIR $ENV{GLSLANG_INSTALL_DIR})
+ endif()
+
++ # CMake command line option overrides environment variable
++ if(NOT SPIRV_HEADERS_INSTALL_DIR)
++ set(SPIRV_HEADERS_INSTALL_DIR $ENV{SPIRV_HEADERS_INSTALL_DIR})
++ endif()
++
++ if(NOT SPIRV_TOOLS_INSTALL_DIR)
++ set(SPIRV_TOOLS_INSTALL_DIR $ENV{SPIRV_TOOLS_INSTALL_DIR})
++ endif()
++
+ if (NOT TARGET glslang)
++ if(NOT SPIRV_HEADERS_INSTALL_DIR)
++ message(FATAL_ERROR "Must define location of SPIRV-Headers -- see BUILD.md")
++ endif()
++
+ message(STATUS "Using glslang install located at ${GLSLANG_INSTALL_DIR}")
+ set(GLSLANG_SEARCH_PATH "${GLSLANG_INSTALL_DIR}/lib")
+ set(GLSLANG_DEBUG_SEARCH_PATH "${GLSLANG_INSTALL_DIR}/lib")
+@@ -304,6 +302,34 @@ if(BUILD_TESTS)
+ endif()
+ endif()
+
++if(BUILD_TESTS OR BUILD_LAYERS)
++ # spirv-tools
++ if (NOT TARGET SPIRV-Tools)
++ if(NOT SPIRV_TOOLS_INSTALL_DIR)
++ set(SPIRV_TOOLS_INSTALL_DIR "${GLSLANG_INSTALL_DIR}")
++ endif()
++
++ set(SPIRV_HEADERS_INCLUDE_DIR "${SPIRV_HEADERS_INSTALL_DIR}/include" CACHE PATH "Path to spirv-headers")
++ set(SPIRV_TOOLS_BINARY_ROOT "${SPIRV_TOOLS_INSTALL_DIR}/lib"
++ CACHE PATH "User defined path to the SPIRV-Tools binaries for this project")
++ set(SPIRV_TOOLS_OPT_BINARY_ROOT "${SPIRV_TOOLS_INSTALL_DIR}/lib"
++ CACHE PATH "User defined path to the SPIRV-Tools-opt binaries for this project")
++ set(SPIRV_TOOLS_INCLUDE_DIR "${SPIRV_TOOLS_INSTALL_DIR}/include" CACHE PATH "Path to spirv tools headers")
++ set(SPIRV_TOOLS_SEARCH_PATH "${SPIRV_TOOLS_INSTALL_DIR}/lib")
++ set(SPIRV_TOOLS_DEBUG_SEARCH_PATH "${SPIRV_TOOLS_INSTALL_DIR}/lib")
++ set(SPIRV_TOOLS_OPT_SEARCH_PATH "${SPIRV_TOOLS_INSTALL_DIR}/lib")
++ set(SPIRV_TOOLS_OPT_DEBUG_SEARCH_PATH "${SPIRV_TOOLS_INSTALL_DIR}/lib")
++
++ find_library(SPIRV_TOOLS_LIB NAMES SPIRV-Tools HINTS ${SPIRV_TOOLS_SEARCH_PATH})
++ find_library(SPIRV_TOOLS_OPT_LIB NAMES SPIRV-Tools-opt HINTS ${SPIRV_TOOLS_OPT_SEARCH_PATH})
++
++ set(SPIRV_TOOLS_LIBRARIES ${SPIRV_TOOLS_OPT_LIB} ${SPIRV_TOOLS_LIB})
++ else()
++ set(SPIRV_TOOLS_LIBRARIES SPIRV-Tools SPIRV-Tools-opt)
++ set(SPIRV_TOOLS_INCLUDE_DIR "${spirv-tools_SOURCE_DIR}/include" CACHE PATH "Path to spirv tools headers")
++ endif()
++endif()
++
+ # Generate dependent helper files ------------------------------------------------------------------------------------------------
+
+ set(SCRIPTS_DIR "${PROJECT_SOURCE_DIR}/scripts")
+@@ -346,7 +372,7 @@ target_include_directories(VkLayer_utils
+ ${VulkanHeaders_INCLUDE_DIR})
+
+ if (USE_ROBIN_HOOD_HASHING)
+- target_link_libraries(VkLayer_utils PUBLIC robin_hood::robin_hood)
++ target_include_directories(VkLayer_utils PUBLIC ${ROBIN_HOOD_HASHING_INCLUDE_DIR})
+ target_compile_definitions(VkLayer_utils PUBLIC USE_ROBIN_HOOD_HASHING)
+ endif()
+
+@@ -387,8 +413,37 @@ endif()
+
+ if(BUILD_TESTS)
+ # Attempt to enable googletest if available.
+- find_package(GTest REQUIRED CONFIG)
+- add_subdirectory(tests ${CMAKE_BINARY_DIR}/tests)
++
++ if(TARGET gtest_main)
++ # Already enabled as a target (perhaps by a project enclosing this one)
++ message(STATUS "Vulkan-ValidationLayers/external: " "googletest already configured - using it")
++ elseif(IS_DIRECTORY "${GOOGLETEST_INSTALL_DIR}")
++ # The googletest directory exists, so enable it as a target.
++ message(STATUS "Vulkan-ValidationLayers/external: " "googletest found - configuring it for tests")
++ set(BUILD_GTEST ON CACHE BOOL "Builds the googletest subproject")
++ set(BUILD_GMOCK OFF CACHE BOOL "Builds the googlemock subproject")
++ set(gtest_force_shared_crt ON CACHE BOOL "Link gtest runtimes dynamically")
++ set(BUILD_SHARED_LIBS ON CACHE BOOL "Build shared libraries")
++ # EXCLUDE_FROM_ALL keeps the install target from installing GTEST files.
++ add_subdirectory("${GOOGLETEST_INSTALL_DIR}" ${CMAKE_BINARY_DIR}/googletest)
++ else()
++ message(SEND_ERROR "Could not find googletest directory. Be sure to run update_deps.py with the --tests option to download the appropriate version of googletest")
++ set(BUILD_TESTS OFF)
++ endif()
++
++ if (WIN32)
++ set_target_properties(gtest PROPERTIES FOLDER ${LAYERS_HELPER_FOLDER})
++ set_target_properties(gtest_main PROPERTIES FOLDER ${LAYERS_HELPER_FOLDER})
++ endif()
++
++ if(CMAKE_CXX_COMPILER_ID MATCHES "GNU" OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
++ set_target_properties(gtest PROPERTIES COMPILE_OPTIONS "-w")
++ set_target_properties(gtest_main PROPERTIES COMPILE_OPTIONS "-w")
++ endif()
++
++ if (BUILD_TESTS)
++ add_subdirectory(tests ${CMAKE_BINARY_DIR}/tests)
++ endif()
+ endif()
+
+ if(BUILD_LAYERS OR BUILD_LAYER_SUPPORT_FILES)
+--- layers/CMakeLists.txt.orig 2021-12-21 17:05:00 UTC
++++ layers/CMakeLists.txt
+@@ -269,8 +269,6 @@ if(INSTRUMENT_OPTICK)
+ endif()
+
+ if(BUILD_LAYERS)
+- find_package(SPIRV-Tools REQUIRED CONFIG)
+- find_package(SPIRV-Tools-opt REQUIRED CONFIG)
+ AddVkLayer(khronos_validation "${KHRONOS_LAYER_COMPILE_DEFINITIONS}"
+ ${CHASSIS_LIBRARY_FILES}
+ ${CORE_VALIDATION_LIBRARY_FILES}
+@@ -298,14 +296,15 @@ if(BUILD_LAYERS)
+
+ # Khronos validation additional dependencies
+ target_include_directories(VkLayer_khronos_validation PRIVATE ${GLSLANG_INCLUDE_DIR})
++ target_include_directories(VkLayer_khronos_validation PRIVATE ${SPIRV_TOOLS_INCLUDE_DIR})
++ target_include_directories(VkLayer_khronos_validation PRIVATE ${SPIRV_HEADERS_INCLUDE_DIR})
+ if(INSTRUMENT_OPTICK)
+ target_include_directories(VkLayer_khronos_validation PRIVATE ${OPTICK_SOURCE_DIR})
+ endif()
+ if (USE_ROBIN_HOOD_HASHING)
+ target_include_directories(VkLayer_khronos_validation PRIVATE ${ROBIN_HOOD_HASHING_INCLUDE_DIR})
+ endif()
+- target_link_libraries(VkLayer_khronos_validation PRIVATE SPIRV-Headers::SPIRV-Headers SPIRV-Tools-static SPIRV-Tools-opt)
+-
++ target_link_libraries(VkLayer_khronos_validation PRIVATE ${SPIRV_TOOLS_LIBRARIES})
+
+ # The output file needs Unix "/" separators or Windows "\" separators On top of that, Windows separators actually need to be doubled
+ # because the json format uses backslash escapes
+--- scripts/common_ci.py.orig 2021-12-21 17:05:00 UTC
++++ scripts/common_ci.py
+@@ -76,6 +76,16 @@ def BuildVVL(args, build_tests=False):
+ cmake_ver_cmd = 'cmake --version'
+ RunShellCmd(cmake_ver_cmd)
+
++ GTEST_DIR = RepoRelative("external/googletest")
++ if not os.path.exists(GTEST_DIR):
++ print("Clone Testing Framework Source Code")
++ clone_gtest_cmd = f'git clone https://github.com/google/googletest.git {GTEST_DIR}'
++ RunShellCmd(clone_gtest_cmd)
++
++ print("Get Specified Testing Source")
++ gtest_checkout_cmd = 'git checkout tags/release-1.8.1'
++ RunShellCmd(gtest_checkout_cmd, GTEST_DIR)
++
+ utils.make_dirs(VVL_BUILD_DIR)
+ print("Run CMake for Validation Layers")
+ cmake_cmd = f'cmake -DUPDATE_DEPS=ON -DCMAKE_BUILD_TYPE={args.configuration.capitalize()} {args.cmake} ..'
+--- scripts/known_good.json.orig 2021-12-21 17:05:00 UTC
++++ scripts/known_good.json
+@@ -43,24 +43,18 @@
+ "name": "robin-hood-hashing",
+ "url": "https://github.com/martinus/robin-hood-hashing.git",
+ "sub_dir": "robin-hood-hashing",
+- "build_dir": "robin-hood-hashing/build",
+- "install_dir": "robin-hood-hashing/build/install",
+- "cmake_options": [
+- "-DRH_STANDALONE_PROJECT=OFF"
+- ],
++ "build_dir": "robin-hood-hashing",
++ "install_dir": "robin-hood-hashing",
++ "build_step": "skip",
+ "commit": "3.11.3"
+ },
+ {
+ "name": "googletest",
+ "url": "https://github.com/google/googletest.git",
+ "sub_dir": "googletest",
+- "build_dir": "googletest/build",
+- "install_dir": "googletest/build/install",
+- "cmake_options": [
+- "-DBUILD_GMOCK=OFF",
+- "-Dgtest_force_shared_crt=ON",
+- "-DBUILD_SHARED_LIBS=OFF"
+- ],
++ "build_dir": "googletest",
++ "install_dir": "googletest",
++ "build_step": "skip",
+ "commit": "release-1.8.1",
+ "optional": ["tests"]
+ }
+--- tests/CMakeLists.txt.orig 2021-12-21 17:05:00 UTC
++++ tests/CMakeLists.txt
+@@ -66,9 +66,6 @@ else()
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
+ endif()
+
+-find_package(SPIRV-Tools REQUIRED CONFIG)
+-find_package(SPIRV-Tools-opt REQUIRED CONFIG)
+-
+ set(LIBGLM_INCLUDE_DIR ${PROJECT_SOURCE_DIR}/libs)
+
+ set(COMMON_CPP
+@@ -120,16 +117,25 @@ add_executable(vk_layer_validation_tests
+ ${COMMON_CPP})
+ add_test(NAME vk_layer_validation_tests COMMAND vk_layer_validation_tests)
+ add_dependencies(vk_layer_validation_tests VkLayer_khronos_validation VkLayer_khronos_validation-json)
++if(NOT GTEST_IS_STATIC_LIB)
++ set_target_properties(vk_layer_validation_tests PROPERTIES COMPILE_DEFINITIONS "GTEST_LINKED_AS_SHARED_LIBRARY=1")
++endif()
++# Note that there is no need to add GTEST directories here due to googletest exporting them via the gtest target.
+ target_include_directories(vk_layer_validation_tests
+ PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}
+ ${PROJECT_SOURCE_DIR}/layers
+ ${PROJECT_SOURCE_DIR}/layers/generated
+ ${GLSLANG_INCLUDE_DIR}
++ ${SPIRV_TOOLS_INCLUDE_DIR}
++ ${SPIRV_HEADERS_INCLUDE_DIR}
+ ${CMAKE_CURRENT_BINARY_DIR}
+ ${CMAKE_BINARY_DIR}
+ ${PROJECT_BINARY_DIR}
+ ${VulkanHeaders_INCLUDE_DIR}
+ ${PROJECT_BINARY_DIR}/layers)
++if (USE_ROBIN_HOOD_HASHING)
++ target_include_directories(vk_layer_validation_tests PUBLIC ${ROBIN_HOOD_HASHING_INCLUDE_DIR})
++endif()
+ add_dependencies(vk_layer_validation_tests
+ VkLayer_utils)
+
+@@ -151,10 +157,10 @@ endif()
+ # Specify target_link_libraries
+ target_link_libraries(vk_layer_validation_tests
+ PRIVATE VkLayer_utils
++ gtest
++ gtest_main
+ ${GLSLANG_LIBRARIES}
+- SPIRV-Headers::SPIRV-Headers
+- SPIRV-Tools-static SPIRV-Tools-opt
+- GTest::gtest GTest::gtest_main)
++ ${SPIRV_TOOLS_LIBRARIES})
+
+ if(NOT WIN32)
+ target_link_libraries(vk_layer_validation_tests PRIVATE dl)
+@@ -162,6 +168,16 @@ if(NOT WIN32)
+ target_link_libraries(vk_layer_validation_tests
+ PRIVATE ${XCB_LIBRARIES}
+ ${X11_LIBRARIES})
++ endif()
++endif()
++
++if(WIN32)
++ # For Windows, copy necessary gtest DLLs to the right spot for the vk_layer_tests...
++ if(NOT GTEST_IS_STATIC_LIB)
++ file(TO_NATIVE_PATH ${CMAKE_BINARY_DIR}/googletest/googletest/$<CONFIG>/*.dll SRC_GTEST_DLLS)
++ file(TO_NATIVE_PATH ${CMAKE_CURRENT_BINARY_DIR}/$<CONFIG> DST_GTEST_DLLS)
++ add_custom_command(TARGET vk_layer_validation_tests POST_BUILD
++ COMMAND xcopy /Y /I ${SRC_GTEST_DLLS} ${DST_GTEST_DLLS})
+ endif()
+ endif()
+