Skip to content

Commit

Permalink
Merge pull request #43182 from akien-mga/vulkan-loader-mingw-fixup
Browse files Browse the repository at this point in the history
vulkan: Backport build fix for MinGW-w64 8.0.0
  • Loading branch information
akien-mga committed Oct 29, 2020
2 parents a4f70d7 + 6a95126 commit 5bb7c7c
Show file tree
Hide file tree
Showing 3 changed files with 44 additions and 1 deletion.
1 change: 0 additions & 1 deletion drivers/vulkan/SCsub
Original file line number Diff line number Diff line change
Expand Up @@ -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",
]
)
Expand Down
7 changes: 7 additions & 0 deletions thirdparty/vulkan/loader/loader.c
Original file line number Diff line number Diff line change
Expand Up @@ -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"

Expand Down Expand Up @@ -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);
Expand Down
37 changes: 37 additions & 0 deletions thirdparty/vulkan/patches/Vulkan-Loader-pr475.patch
Original file line number Diff line number Diff line change
@@ -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);

0 comments on commit 5bb7c7c

Please sign in to comment.