diff --git a/CMakeLists.txt b/CMakeLists.txt index a1eac2c68..b935c9b7e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1766,7 +1766,7 @@ set(LOVE_SRC_3P_VMA src/libraries/vma/vk_mem_alloc.h) set(LOVE_SRC_3P_VOLK src/libraries/volk/volk.h - src/libraries/volk/volk.cpp) + src/libraries/volk/volk.c) add_library(love_3p_volk ${LOVE_SRC_3P_VOLK}) diff --git a/platform/unix/configure.ac b/platform/unix/configure.ac index 42c85fe20..6fcae8391 100644 --- a/platform/unix/configure.ac +++ b/platform/unix/configure.ac @@ -18,7 +18,7 @@ AC_C_BIGENDIAN AC_LANG([C++]) dnl Workaround for old aclocal versions -m4_include([platform/unix/cpp11.m4]) +m4_include([platform/unix/cpp14.m4]) m4_include([platform/unix/deps.m4]) includes= @@ -26,8 +26,8 @@ includes= AC_DEFUN([LOVE_MSG_ERROR], [AC_MSG_ERROR([LÖVE needs "$1"[,] please install "$1" with development files and try again])]) -# C++11 support in cpp11.m4 -ACLOVE_CPP11_TEST +# C++14 support in cpp14.m4 +ACLOVE_CPP14_TEST # Allow people on OSX to use autotools, they need their platform files AC_ARG_ENABLE([osx], @@ -81,6 +81,8 @@ AS_VAR_IF([enable_module_filesystem], [yes], [enable_library_physfs=yes], [enabl AS_VAR_IF([enable_module_physics], [yes], [enable_library_box2d=yes], [enable_library_box2d=no]) AS_VAR_IF([enable_module_image], [yes], [enable_library_ddsparse=yes], [enable_library_ddsparse=no]) AS_VAR_IF([enable_module_graphics], [yes], [enable_library_glad=yes], [enable_library_glad=no]) +AS_VAR_IF([enable_module_graphics], [yes], [enable_library_spirv_cross=yes], [enable_library_spirv_cross=no]) +AS_VAR_IF([enable_module_graphics], [yes], [enable_library_volk=yes], [enable_library_volk=no]) AS_VAR_IF([enable_module_graphics], [yes], [enable_library_glslang=yes], [enable_library_glslang=no]) AS_VAR_IF([enable_module_image], [yes], [enable_library_lodepng=yes], [enable_library_lodepng=no]) AS_VAR_IF([enable_module_data], [yes], [enable_library_lua53=yes], []) diff --git a/platform/unix/cpp11.m4 b/platform/unix/cpp14.m4 similarity index 52% rename from platform/unix/cpp11.m4 rename to platform/unix/cpp14.m4 index 924c9689d..42a884ecd 100644 --- a/platform/unix/cpp11.m4 +++ b/platform/unix/cpp14.m4 @@ -22,48 +22,47 @@ AC_DEFUN([ACLOVE_GET_CLANG_VERSION], [ AC_COMPUTE_INT(aclove_clang_version_patch, __clang_patchlevel__,, aclove_clang_version_found="no") ]) -AC_DEFUN([ACLOVE_CPP11_TEST_FLAG], [ - aclove_cpp11_test_cxx11name="no" - ACLOVE_CXX_FLAG_TEST([-std=c++0x], aclove_cpp11_test_cxx11name="c++0x", []) - ACLOVE_CXX_FLAG_TEST([-std=c++11], aclove_cpp11_test_cxx11name="c++11", []) - AS_VAR_IF([aclove_cpp11_test_cxx11name], [no], - [AC_MSG_ERROR([LÖVE needs a C++ compiler with C++11 support])], - [CXXFLAGS="$CXXFLAGS -std=$aclove_cpp11_test_cxx11name"]) +AC_DEFUN([ACLOVE_CPP14_TEST_FLAG], [ + aclove_cpp14_test_cxx14name="no" + ACLOVE_CXX_FLAG_TEST([-std=c++14], aclove_cpp14_test_cxx14name="c++14", []) + AS_VAR_IF([aclove_cpp14_test_cxx14name], [no], + [AC_MSG_ERROR([LÖVE needs a C++ compiler with C++14 support])], + [CXXFLAGS="$CXXFLAGS -std=$aclove_cpp14_test_cxx14name"]) ]) -AC_DEFUN([ACLOVE_CPP11_CHECK_VERSION], [ dnl compiler, targetmajor, targetminor, on-failure - aclove_cpp11_check_version_status="no" +AC_DEFUN([ACLOVE_CPP14_CHECK_VERSION], [ dnl compiler, targetmajor, targetminor, on-failure + aclove_cpp14_check_version_status="no" AC_MSG_CHECKING([whether $1 version is at least $2.$3]) - AS_IF([test "$aclove_[]$1[]_version_major" -gt $2], aclove_cpp11_check_version_status="yes") - AS_IF([test "$aclove_[]$1[]_version_major" -eq $2 && test "$aclove_[]$1[]_version_minor" -ge $3], aclove_cpp11_check_version_status="yes") - AC_MSG_RESULT([$aclove_cpp11_check_version_status]) - AS_VAR_IF([aclove_cpp11_check_version_status], [no], + AS_IF([test "$aclove_[]$1[]_version_major" -gt $2], aclove_cpp14_check_version_status="yes") + AS_IF([test "$aclove_[]$1[]_version_major" -eq $2 && test "$aclove_[]$1[]_version_minor" -ge $3], aclove_cpp14_check_version_status="yes") + AC_MSG_RESULT([$aclove_cpp14_check_version_status]) + AS_VAR_IF([aclove_cpp14_check_version_status], [no], [$4]) ]) -AC_DEFUN([ACLOVE_CPP11_TEST_VERSION_GCC], [ - ACLOVE_CPP11_CHECK_VERSION([gcc], 4, 7, - [AC_MSG_ERROR([LÖVE needs a GCC version of at least 4.7])]) +AC_DEFUN([ACLOVE_CPP14_TEST_VERSION_GCC], [ + ACLOVE_CPP14_CHECK_VERSION([gcc], 4, 9, + [AC_MSG_ERROR([LÖVE needs a GCC version of at least 4.9])]) ]) -AC_DEFUN([ACLOVE_CPP11_TEST_VERSION_CLANG], [ - ACLOVE_CPP11_CHECK_VERSION([clang], 3, 1, - [AC_MSG_ERROR([LÖVE needs a clang version of at least 3.1])]) +AC_DEFUN([ACLOVE_CPP14_TEST_VERSION_CLANG], [ + ACLOVE_CPP14_CHECK_VERSION([clang], 3, 4, + [AC_MSG_ERROR([LÖVE needs a clang version of at least 3.4])]) ]) -AC_DEFUN([ACLOVE_CPP11_TEST], [ - ACLOVE_CPP11_TEST_FLAG +AC_DEFUN([ACLOVE_CPP14_TEST], [ + ACLOVE_CPP14_TEST_FLAG ACLOVE_GET_GCC_VERSION ACLOVE_GET_CLANG_VERSION # Since clang also sets gcc headers, check clang after - aclove_cpp11_test_compiler="unknown" - AS_VAR_IF([aclove_gcc_version_found], [yes], aclove_cpp11_test_compiler="gcc") - AS_VAR_IF([aclove_clang_version_found], [yes], aclove_cpp11_test_compiler="clang") + aclove_cpp14_test_compiler="unknown" + AS_VAR_IF([aclove_gcc_version_found], [yes], aclove_cpp14_test_compiler="gcc") + AS_VAR_IF([aclove_clang_version_found], [yes], aclove_cpp14_test_compiler="clang") - AS_CASE([$aclove_cpp11_test_compiler], - [gcc], [ACLOVE_CPP11_TEST_VERSION_GCC], - [clang], [ACLOVE_CPP11_TEST_VERSION_CLANG], + AS_CASE([$aclove_cpp14_test_compiler], + [gcc], [ACLOVE_CPP14_TEST_VERSION_GCC], + [clang], [ACLOVE_CPP14_TEST_VERSION_CLANG], [AC_MSG_WARN([Could not determine compiler version])]) ]) diff --git a/src/libraries/volk/volk.cpp b/src/libraries/volk/volk.c similarity index 100% rename from src/libraries/volk/volk.cpp rename to src/libraries/volk/volk.c diff --git a/src/modules/graphics/vulkan/Graphics.cpp b/src/modules/graphics/vulkan/Graphics.cpp index e8cbddcc5..5b57813a2 100644 --- a/src/modules/graphics/vulkan/Graphics.cpp +++ b/src/modules/graphics/vulkan/Graphics.cpp @@ -2541,16 +2541,16 @@ static void eraseUnusedObjects( { std::vector deletionKeys; - for (const auto &[key, val] : objects) + for (const auto &entry : objects) { - if (!usages[val]) + if (!usages[entry.second]) { - deletionKeys.push_back(key); - usages.erase(val); - deleter(device, val, nullptr); + deletionKeys.push_back(entry.first); + usages.erase(entry.second); + deleter(device, entry.second, nullptr); } else - usages[val] = false; + usages[entry.second] = false; } for (const auto &key : deletionKeys)