diff options
author | Rémi Verschelde <rverschelde@gmail.com> | 2020-10-29 12:45:10 +0100 |
---|---|---|
committer | Rémi Verschelde <rverschelde@gmail.com> | 2020-10-29 12:47:35 +0100 |
commit | 6a951267ae31a1e77469b32129ee4815c98de800 (patch) | |
tree | ddb4d5bff48f728aec340306499010a560a34a35 | |
parent | a4f70d7e6cb2b83f152717a69c9c042dd9424fc9 (diff) |
vulkan: Backport build fix for MinGW-w64 8.0.0
Taken from https://github.com/KhronosGroup/Vulkan-Loader/pull/475.
Supersedes and reverts #43119 since the upstream change removes the need for
that custom define.
-rw-r--r-- | drivers/vulkan/SCsub | 1 | ||||
-rw-r--r-- | thirdparty/vulkan/loader/loader.c | 7 | ||||
-rw-r--r-- | thirdparty/vulkan/patches/Vulkan-Loader-pr475.patch | 37 |
3 files changed, 44 insertions, 1 deletions
diff --git a/drivers/vulkan/SCsub b/drivers/vulkan/SCsub index ddd6be51bc..13fcaf16d2 100644 --- a/drivers/vulkan/SCsub +++ b/drivers/vulkan/SCsub @@ -64,7 +64,6 @@ elif env["builtin_vulkan"]: "VK_USE_PLATFORM_WIN32_KHR", "VULKAN_NON_CMAKE_BUILD", "WIN32_LEAN_AND_MEAN", - "STRSAFE_NO_DEPRECATE", 'API_NAME=\\"%s\\"' % "Vulkan", ] ) diff --git a/thirdparty/vulkan/loader/loader.c b/thirdparty/vulkan/loader/loader.c index a6b5522cd4..86ac79d963 100644 --- a/thirdparty/vulkan/loader/loader.c +++ b/thirdparty/vulkan/loader/loader.c @@ -71,6 +71,9 @@ #include <devpkey.h> #include <winternl.h> #include <strsafe.h> +#ifdef __MINGW32__ +#undef strcpy // fix error with redfined strcpy when building with MinGW-w64 +#endif #include <dxgi1_6.h> #include "adapters.h" @@ -695,7 +698,11 @@ VkResult loaderGetDeviceRegistryFiles(const struct loader_instance *inst, char * LPCSTR value_name) { static const wchar_t *softwareComponentGUID = L"{5c4c3332-344d-483c-8739-259e934c9cc8}"; static const wchar_t *displayGUID = L"{4d36e968-e325-11ce-bfc1-08002be10318}"; +#ifdef CM_GETIDLIST_FILTER_PRESENT const ULONG flags = CM_GETIDLIST_FILTER_CLASS | CM_GETIDLIST_FILTER_PRESENT; +#else + const ULONG flags = 0x300; +#endif wchar_t childGuid[MAX_GUID_STRING_LEN + 2]; // +2 for brackets {} ULONG childGuidSize = sizeof(childGuid); diff --git a/thirdparty/vulkan/patches/Vulkan-Loader-pr475.patch b/thirdparty/vulkan/patches/Vulkan-Loader-pr475.patch new file mode 100644 index 0000000000..5303768f5c --- /dev/null +++ b/thirdparty/vulkan/patches/Vulkan-Loader-pr475.patch @@ -0,0 +1,37 @@ +From e1c938170bba5879d95bf2d7b57b4d1d68557cd5 Mon Sep 17 00:00:00 2001 +From: Brecht Sanders <brecht@sanders.org> +Date: Tue, 29 Sep 2020 18:14:55 +0200 +Subject: [PATCH] loader: Fixes build with MinGW-w64 8.0.0. + +See http://winlibs.com for a release of such GCC compiler +See issue https://github.com/KhronosGroup/Vulkan-Loader/issues/474 +--- + loader/loader.c | 7 +++++++ + 1 file changed, 7 insertions(+), 0 deletions(-) + +diff --git a/loader/loader.c b/loader/loader.c +index 4d8865e13..509f2f420 100644 +--- a/loader/loader.c ++++ b/loader/loader.c +@@ -71,6 +71,9 @@ + #include <devpkey.h> + #include <winternl.h> + #include <strsafe.h> ++#ifdef __MINGW32__ ++#undef strcpy // fix error with redfined strcpy when building with MinGW-w64 ++#endif + #include <dxgi1_6.h> + #include "adapters.h" + +@@ -695,7 +698,11 @@ VkResult loaderGetDeviceRegistryFiles(const struct loader_instance *inst, char * + LPCSTR value_name) { + static const wchar_t *softwareComponentGUID = L"{5c4c3332-344d-483c-8739-259e934c9cc8}"; + static const wchar_t *displayGUID = L"{4d36e968-e325-11ce-bfc1-08002be10318}"; ++#ifdef CM_GETIDLIST_FILTER_PRESENT + const ULONG flags = CM_GETIDLIST_FILTER_CLASS | CM_GETIDLIST_FILTER_PRESENT; ++#else ++ const ULONG flags = 0x300; ++#endif + + wchar_t childGuid[MAX_GUID_STRING_LEN + 2]; // +2 for brackets {} + ULONG childGuidSize = sizeof(childGuid); |