From 2cbd50fb733918db511f48aee5bbe6116b5a47c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Sat, 12 Sep 2020 20:45:03 +0200 Subject: [PATCH] package/ci: merge Vulkan Windows build into the GL ones. Otherwise I'd need to duplicate that for clang-cl, mingw and so on. It's enabled only on MSVC 2019 and newer, because I don'r really care about older versions -- those are mainly for compatibility with existing code, and Vulkan is not existing code yet. --- package/ci/appveyor-desktop-mingw.bat | 5 +- package/ci/appveyor-desktop-vulkan.bat | 74 -------------------------- package/ci/appveyor-desktop.bat | 5 +- package/ci/appveyor.yml | 24 +++++---- 4 files changed, 21 insertions(+), 87 deletions(-) delete mode 100644 package/ci/appveyor-desktop-vulkan.bat diff --git a/package/ci/appveyor-desktop-mingw.bat b/package/ci/appveyor-desktop-mingw.bat index 0823e3464..59d3a1edd 100644 --- a/package/ci/appveyor-desktop-mingw.bat +++ b/package/ci/appveyor-desktop-mingw.bat @@ -27,6 +27,7 @@ cmake .. ^ -DCMAKE_INSTALL_PREFIX=%APPVEYOR_BUILD_FOLDER%/deps ^ -DCMAKE_PREFIX_PATH="%APPVEYOR_BUILD_FOLDER%/SDL;%APPVEYOR_BUILD_FOLDER%/openal" ^ -DWITH_AUDIO=ON ^ + -DWITH_VK=ON ^ -DWITH_SDL2APPLICATION=ON ^ -DWITH_WINDOWLESSWGLAPPLICATION=ON ^ -DWITH_WGLCONTEXT=ON ^ @@ -49,15 +50,17 @@ cmake .. ^ -DWITH_SCENECONVERTER=ON ^ -DWITH_SHADERCONVERTER=ON ^ -DWITH_GL_INFO=ON ^ + -DWITH_VK_INFO=ON ^ -DWITH_AL_INFO=ON ^ -DBUILD_TESTS=ON ^ -DBUILD_GL_TESTS=ON ^ + -DBUILD_VK_TESTS=ON ^ -G Ninja || exit /b cmake --build . || exit /b rem Test set CORRADE_TEST_COLOR=ON -ctest -V -E GLTest || exit /b +ctest -V -E "(GL|Vk)Test" || exit /b rem Test install, after running the tests as for them it shouldn't be needed cmake --build . --target install || exit /b diff --git a/package/ci/appveyor-desktop-vulkan.bat b/package/ci/appveyor-desktop-vulkan.bat deleted file mode 100644 index 251c98f61..000000000 --- a/package/ci/appveyor-desktop-vulkan.bat +++ /dev/null @@ -1,74 +0,0 @@ -if "%APPVEYOR_BUILD_WORKER_IMAGE%" == "Visual Studio 2019" call "C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Auxiliary/Build/vcvarsall.bat" x64 || exit /b -set PATH=%APPVEYOR_BUILD_FOLDER%\deps\bin;%PATH% - -rem Build Corrade -git clone --depth 1 git://github.com/mosra/corrade.git || exit /b -cd corrade || exit /b -mkdir build && cd build || exit /b -cmake .. ^ - -DCMAKE_BUILD_TYPE=Debug ^ - -DCMAKE_INSTALL_PREFIX=%APPVEYOR_BUILD_FOLDER%/deps ^ - -DWITH_INTERCONNECT=OFF ^ - -DUTILITY_USE_ANSI_COLORS=ON ^ - -G Ninja || exit /b -cmake --build . || exit /b -cmake --build . --target install || exit /b -cd .. && cd .. - -rem Build the fastest Vulkan driver ever. See appveyor.yml for why Vulkan is -rem a separate build for now. -cl.exe /c package/ci/libvulkan.cpp || exit /b -lib.exe /OUT:%APPVEYOR_BUILD_FOLDER%/deps/lib/libvulkan.lib libvulkan.obj || exit /b - -rem Enabling only stuff that's directly affected by Vulkan (which means also -rem parts of Platform, which need Trade for icon import in tests), disabling -rem everything else. -mkdir build && cd build || exit /b -cmake .. ^ - -DCMAKE_BUILD_TYPE=Debug ^ - -DCMAKE_INSTALL_PREFIX=%APPVEYOR_BUILD_FOLDER%/deps ^ - -DCMAKE_PREFIX_PATH=%APPVEYOR_BUILD_FOLDER%/SDL ^ - -DVulkan_LIBRARY=%APPVEYOR_BUILD_FOLDER%/deps/lib/libvulkan.lib ^ - -DWITH_AUDIO=OFF ^ - -DWITH_DEBUGTOOLS=OFF ^ - -DWITH_GL=OFF ^ - -DWITH_MESHTOOLS=OFF ^ - -DWITH_PRIMITIVES=OFF ^ - -DWITH_SCENEGRAPH=OFF ^ - -DWITH_SHADERS=OFF ^ - -DWITH_TEXT=OFF ^ - -DWITH_TEXTURETOOLS=OFF ^ - -DWITH_TRADE=ON ^ - -DWITH_VK=ON ^ - -DWITH_ANYAUDIOIMPORTER=OFF ^ - -DWITH_ANYIMAGECONVERTER=OFF ^ - -DWITH_ANYIMAGEIMPORTER=OFF ^ - -DWITH_ANYSCENECONVERTER=ON ^ - -DWITH_ANYSCENEIMPORTER=OFF ^ - -DWITH_MAGNUMFONT=OFF ^ - -DWITH_MAGNUMFONTCONVERTER=OFF ^ - -DWITH_OBJIMPORTER=OFF ^ - -DWITH_TGAIMAGECONVERTER=OFF ^ - -DWITH_TGAIMPORTER=OFF ^ - -DWITH_WAVAUDIOIMPORTER=OFF ^ - -DWITH_DISTANCEFIELDCONVERTER=OFF ^ - -DWITH_FONTCONVERTER=OFF ^ - -DWITH_IMAGECONVERTER=OFF ^ - -DWITH_SCENECONVERTER=OFF ^ - -DWITH_GL_INFO=OFF ^ - -DWITH_VK_INFO=ON ^ - -DWITH_AL_INFO=OFF ^ - -DWITH_SDL2APPLICATION=ON ^ - -DWITH_GLFWAPPLICATION=ON ^ - -DBUILD_TESTS=ON ^ - -DBUILD_GL_TESTS=OFF ^ - -DBUILD_VK_TESTS=ON ^ - -G Ninja || exit /b -cmake --build . || exit /b - -rem Test -set CORRADE_TEST_COLOR=ON -ctest -V -E "(GL|Vk)Test" || exit /b - -rem Test install, after running the tests as for them it shouldn't be needed -cmake --build . --target install || exit /b diff --git a/package/ci/appveyor-desktop.bat b/package/ci/appveyor-desktop.bat index d1f59f643..260f23b13 100644 --- a/package/ci/appveyor-desktop.bat +++ b/package/ci/appveyor-desktop.bat @@ -33,6 +33,7 @@ cmake .. ^ -DCMAKE_INSTALL_PREFIX=%APPVEYOR_BUILD_FOLDER%/deps ^ -DCMAKE_PREFIX_PATH="%APPVEYOR_BUILD_FOLDER%/SDL;%APPVEYOR_BUILD_FOLDER%/openal" ^ -DWITH_AUDIO=ON ^ + -DWITH_VK=%ENABLE_VULKAN% ^ -DWITH_SDL2APPLICATION=ON ^ -DWITH_GLFWAPPLICATION=ON ^ -DWITH_WINDOWLESSWGLAPPLICATION=ON ^ @@ -56,9 +57,11 @@ cmake .. ^ -DWITH_SCENECONVERTER=ON ^ -DWITH_SHADERCONVERTER=ON ^ -DWITH_GL_INFO=ON ^ + -DWITH_VK_INFO=%ENABLE_VULKAN% ^ -DWITH_AL_INFO=ON ^ -DBUILD_TESTS=ON ^ -DBUILD_GL_TESTS=ON ^ + -DBUILD_VK_TESTS=%ENABLE_VULKAN% ^ -DBUILD_STATIC=%BUILD_STATIC% ^ -DBUILD_PLUGINS_STATIC=%BUILD_STATIC% ^ %COMPILER_EXTRA% -G Ninja || exit /b @@ -66,7 +69,7 @@ cmake --build . || exit /b rem Test set CORRADE_TEST_COLOR=ON -ctest -V -E GLTest || exit /b +ctest -V -E "(GL|Vk)Test" || exit /b rem Test install, after running the tests as for them it shouldn't be needed cmake --build . --target install || exit /b diff --git a/package/ci/appveyor.yml b/package/ci/appveyor.yml index e7e9fc550..f5612f166 100644 --- a/package/ci/appveyor.yml +++ b/package/ci/appveyor.yml @@ -8,24 +8,21 @@ environment: APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015 APPVEYOR_JOB_NAME: windows-msvc2015 CONFIGURATION: Debug + ENABLE_VULKAN: OFF - TARGET: desktop COMPILER: msvc PLATFORM: x64 APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017 APPVEYOR_JOB_NAME: windows-msvc2017 CONFIGURATION: Debug + ENABLE_VULKAN: OFF - TARGET: desktop COMPILER: msvc PLATFORM: x64 APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019 APPVEYOR_JOB_NAME: windows-msvc2019 CONFIGURATION: Debug - - TARGET: desktop-vulkan - COMPILER: msvc - PLATFORM: x64 - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019 - APPVEYOR_JOB_NAME: windows-vulkan-msvc2019 - CONFIGURATION: Debug + ENABLE_VULKAN: ON - TARGET: desktop COMPILER: msvc PLATFORM: x64 @@ -33,12 +30,14 @@ environment: APPVEYOR_JOB_NAME: windows-static-msvc2019 CONFIGURATION: Debug BUILD_STATIC: ON + ENABLE_VULKAN: ON - TARGET: desktop COMPILER: msvc-clang PLATFORM: x64 APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019 APPVEYOR_JOB_NAME: windows-msvc2019-clang CONFIGURATION: Debug + ENABLE_VULKAN: ON # Build at least one 32bit Release build, so we catch things that are not a # problem on either 64bit or Debug. - TARGET: desktop @@ -52,6 +51,7 @@ environment: COMPILER: mingw APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017 APPVEYOR_JOB_NAME: windows-mingw + ENABLE_VULKAN: ON - TARGET: desktop-gles TARGET_GLES2: ON APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017 @@ -105,7 +105,6 @@ install: # Build apps on both GL and Vulkan to verify these can build w/o GL as well. # Not on GLES, as there's not much GLES-dependent. - IF "%TARGET%" == "desktop" set BUILD_APPLICATIONS=YES -- IF "%TARGET%" == "desktop-vulkan" set BUILD_APPLICATIONS=YES - IF "%TARGET%" == "desktop-gles" set BUILD_APPLICATIONS=NO # SDL2 @@ -122,6 +121,13 @@ install: - IF "%BUILD_APPLICATIONS%" == "YES" IF "%COMPILER:~0,4%" == "msvc" copy glfw\lib-vc2015\glfw3.dll deps\bin\ && copy glfw\lib-vc2015\glfw3dll.lib deps\lib\glfw3.lib - IF "%BUILD_APPLICATIONS%" == "YES" IF "%COMPILER%" == "mingw" copy glfw\lib-mingw-w64\glfw3.dll deps\bin\ && copy glfw\lib-mingw-w64\libglfw3dll.a deps\lib\libglfw3.a +# SwiftShader for Vulkan + Vulkan loader +# TODO: re-enable SwiftShader when we figure out why vkCreateInstance fails +#- IF "%ENABLE_VULKAN%" == "ON" IF NOT EXIST %APPVEYOR_BUILD_FOLDER%\swiftshader-vulkan-r5464.a6940c8e6e-windows-2019.zip appveyor DownloadFile https://ci.magnum.graphics/swiftshader-vulkan-r5464.a6940c8e6e-windows-2019.zip +- IF "%ENABLE_VULKAN%" == "ON" IF NOT EXIST %APPVEYOR_BUILD_FOLDER%\vulkan-loader-1.2.153-windows-2019.zip appveyor DownloadFile https://ci.magnum.graphics/vulkan-loader-1.2.153-windows-2019.zip +#- IF "%ENABLE_VULKAN%" == "ON" 7z x swiftshader-vulkan-r5464.a6940c8e6e-windows-2019.zip -o%APPVEYOR_BUILD_FOLDER%\deps +- IF "%ENABLE_VULKAN%" == "ON" 7z x vulkan-loader-1.2.153-windows-2019.zip -o%APPVEYOR_BUILD_FOLDER%\deps + # Angle for WinRT. Zip from https://github.com/mosra/magnum-ci/tree/angle and # self-hosted because GH Actions would make it too simple for people if you # could just download the artifacts directly, right? RIGHT? @@ -132,10 +138,6 @@ build_script: - IF "%TARGET%" == "desktop" IF "%COMPILER:~0,4%" == "msvc" call package\ci\appveyor-desktop.bat - IF "%TARGET%" == "desktop" IF "%COMPILER%" == "mingw" call package\ci\appveyor-desktop-mingw.bat - IF "%TARGET%" == "desktop-gles" call package\ci\appveyor-desktop-gles.bat -# Vulkan needs to be in a separate build, because in the future it'll need -# C++14 and building it together with C++11 code would harm verifiability of -# C++11 compatibility. -- IF "%TARGET%" == "desktop-vulkan" call package\ci\appveyor-desktop-vulkan.bat - IF "%TARGET%" == "rt" call package\ci\appveyor-rt.bat cache: