From 146ba4106f459fd37d130a34da02ef737ac166e4 Mon Sep 17 00:00:00 2001 From: Gergely Kis Date: Thu, 26 Sep 2024 21:46:48 +0200 Subject: Move Vulkan includes to a central godot_vulkan.h header Also fixes Vulkan build problem with recent Clang. --- drivers/vulkan/godot_vulkan.h | 42 ++++++++++++++++++++++ drivers/vulkan/rendering_context_driver_vulkan.h | 6 +--- drivers/vulkan/rendering_device_driver_vulkan.h | 6 +--- drivers/vulkan/vulkan_hooks.h | 6 +--- .../rendering_context_driver_vulkan_android.cpp | 6 +--- platform/ios/display_server_ios.h | 6 +--- platform/ios/os_ios.mm | 6 +--- .../rendering_context_driver_vulkan_wayland.cpp | 6 +--- .../x11/rendering_context_driver_vulkan_x11.cpp | 6 +--- .../rendering_context_driver_vulkan_windows.cpp | 6 +--- .../VKEnumStringHelper-use-godot-vulkan.patch | 13 +++++++ .../patches/VKEnumStringHelper-use-volk.patch | 17 --------- .../vulkan/patches/VMA-use-godot-vulkan.patch | 18 ++++++++++ thirdparty/vulkan/patches/VMA-use-volk.patch | 17 --------- thirdparty/vulkan/vk_enum_string_helper.h | 6 +--- thirdparty/vulkan/vk_mem_alloc.h | 6 +--- 16 files changed, 84 insertions(+), 89 deletions(-) create mode 100644 drivers/vulkan/godot_vulkan.h create mode 100644 thirdparty/vulkan/patches/VKEnumStringHelper-use-godot-vulkan.patch delete mode 100644 thirdparty/vulkan/patches/VKEnumStringHelper-use-volk.patch create mode 100644 thirdparty/vulkan/patches/VMA-use-godot-vulkan.patch delete mode 100644 thirdparty/vulkan/patches/VMA-use-volk.patch diff --git a/drivers/vulkan/godot_vulkan.h b/drivers/vulkan/godot_vulkan.h new file mode 100644 index 0000000000..f911c5520a --- /dev/null +++ b/drivers/vulkan/godot_vulkan.h @@ -0,0 +1,42 @@ +/**************************************************************************/ +/* godot_vulkan.h */ +/**************************************************************************/ +/* This file is part of: */ +/* GODOT ENGINE */ +/* https://godotengine.org */ +/**************************************************************************/ +/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */ +/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */ +/* */ +/* Permission is hereby granted, free of charge, to any person obtaining */ +/* a copy of this software and associated documentation files (the */ +/* "Software"), to deal in the Software without restriction, including */ +/* without limitation the rights to use, copy, modify, merge, publish, */ +/* distribute, sublicense, and/or sell copies of the Software, and to */ +/* permit persons to whom the Software is furnished to do so, subject to */ +/* the following conditions: */ +/* */ +/* The above copyright notice and this permission notice shall be */ +/* included in all copies or substantial portions of the Software. */ +/* */ +/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */ +/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */ +/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. */ +/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */ +/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */ +/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */ +/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ +/**************************************************************************/ + +#ifndef GODOT_VULKAN_H +#define GODOT_VULKAN_H + +#ifdef USE_VOLK +#include +#else +#include +#define VK_NO_STDINT_H +#include +#endif + +#endif // GODOT_VULKAN_H diff --git a/drivers/vulkan/rendering_context_driver_vulkan.h b/drivers/vulkan/rendering_context_driver_vulkan.h index f9352d617b..26de386206 100644 --- a/drivers/vulkan/rendering_context_driver_vulkan.h +++ b/drivers/vulkan/rendering_context_driver_vulkan.h @@ -40,11 +40,7 @@ #define VK_TRACK_DEVICE_MEMORY #endif -#ifdef USE_VOLK -#include -#else -#include -#endif +#include "drivers/vulkan/godot_vulkan.h" class RenderingContextDriverVulkan : public RenderingContextDriver { public: diff --git a/drivers/vulkan/rendering_device_driver_vulkan.h b/drivers/vulkan/rendering_device_driver_vulkan.h index 81f4256941..cc15c0a0fe 100644 --- a/drivers/vulkan/rendering_device_driver_vulkan.h +++ b/drivers/vulkan/rendering_device_driver_vulkan.h @@ -43,11 +43,7 @@ #endif #include "thirdparty/vulkan/vk_mem_alloc.h" -#ifdef USE_VOLK -#include -#else -#include -#endif +#include "drivers/vulkan/godot_vulkan.h" // Design principles: // - Vulkan structs are zero-initialized and fields not requiring a non-zero value are omitted (except in cases where expresivity reasons apply). diff --git a/drivers/vulkan/vulkan_hooks.h b/drivers/vulkan/vulkan_hooks.h index bb30b29cec..82bcc9a064 100644 --- a/drivers/vulkan/vulkan_hooks.h +++ b/drivers/vulkan/vulkan_hooks.h @@ -31,11 +31,7 @@ #ifndef VULKAN_HOOKS_H #define VULKAN_HOOKS_H -#ifdef USE_VOLK -#include -#else -#include -#endif +#include "drivers/vulkan/godot_vulkan.h" class VulkanHooks { private: diff --git a/platform/android/rendering_context_driver_vulkan_android.cpp b/platform/android/rendering_context_driver_vulkan_android.cpp index a306a121f8..51fb1ca18f 100644 --- a/platform/android/rendering_context_driver_vulkan_android.cpp +++ b/platform/android/rendering_context_driver_vulkan_android.cpp @@ -32,11 +32,7 @@ #ifdef VULKAN_ENABLED -#ifdef USE_VOLK -#include -#else -#include -#endif +#include "drivers/vulkan/godot_vulkan.h" const char *RenderingContextDriverVulkanAndroid::_get_platform_surface_extension() const { return VK_KHR_ANDROID_SURFACE_EXTENSION_NAME; diff --git a/platform/ios/display_server_ios.h b/platform/ios/display_server_ios.h index bbb758074d..0631b50f0a 100644 --- a/platform/ios/display_server_ios.h +++ b/platform/ios/display_server_ios.h @@ -41,11 +41,7 @@ #if defined(VULKAN_ENABLED) #import "rendering_context_driver_vulkan_ios.h" -#ifdef USE_VOLK -#include -#else -#include -#endif +#include "drivers/vulkan/godot_vulkan.h" #endif // VULKAN_ENABLED #if defined(METAL_ENABLED) diff --git a/platform/ios/os_ios.mm b/platform/ios/os_ios.mm index 35b87ea647..590238be77 100644 --- a/platform/ios/os_ios.mm +++ b/platform/ios/os_ios.mm @@ -56,11 +56,7 @@ #import #if defined(VULKAN_ENABLED) -#ifdef USE_VOLK -#include -#else -#include -#endif +#include "drivers/vulkan/godot_vulkan.h" #endif // VULKAN_ENABLED #endif diff --git a/platform/linuxbsd/wayland/rendering_context_driver_vulkan_wayland.cpp b/platform/linuxbsd/wayland/rendering_context_driver_vulkan_wayland.cpp index 0417ba95eb..8abcc464ba 100644 --- a/platform/linuxbsd/wayland/rendering_context_driver_vulkan_wayland.cpp +++ b/platform/linuxbsd/wayland/rendering_context_driver_vulkan_wayland.cpp @@ -32,11 +32,7 @@ #include "rendering_context_driver_vulkan_wayland.h" -#ifdef USE_VOLK -#include -#else -#include -#endif +#include "drivers/vulkan/godot_vulkan.h" const char *RenderingContextDriverVulkanWayland::_get_platform_surface_extension() const { return VK_KHR_WAYLAND_SURFACE_EXTENSION_NAME; diff --git a/platform/linuxbsd/x11/rendering_context_driver_vulkan_x11.cpp b/platform/linuxbsd/x11/rendering_context_driver_vulkan_x11.cpp index 3f505d000c..cbcf07852b 100644 --- a/platform/linuxbsd/x11/rendering_context_driver_vulkan_x11.cpp +++ b/platform/linuxbsd/x11/rendering_context_driver_vulkan_x11.cpp @@ -32,11 +32,7 @@ #include "rendering_context_driver_vulkan_x11.h" -#ifdef USE_VOLK -#include -#else -#include -#endif +#include "drivers/vulkan/godot_vulkan.h" const char *RenderingContextDriverVulkanX11::_get_platform_surface_extension() const { return VK_KHR_XLIB_SURFACE_EXTENSION_NAME; diff --git a/platform/windows/rendering_context_driver_vulkan_windows.cpp b/platform/windows/rendering_context_driver_vulkan_windows.cpp index 445388af89..8ca677fe64 100644 --- a/platform/windows/rendering_context_driver_vulkan_windows.cpp +++ b/platform/windows/rendering_context_driver_vulkan_windows.cpp @@ -34,11 +34,7 @@ #include "rendering_context_driver_vulkan_windows.h" -#ifdef USE_VOLK -#include -#else -#include -#endif +#include "drivers/vulkan/godot_vulkan.h" const char *RenderingContextDriverVulkanWindows::_get_platform_surface_extension() const { return VK_KHR_WIN32_SURFACE_EXTENSION_NAME; diff --git a/thirdparty/vulkan/patches/VKEnumStringHelper-use-godot-vulkan.patch b/thirdparty/vulkan/patches/VKEnumStringHelper-use-godot-vulkan.patch new file mode 100644 index 0000000000..6b56d60181 --- /dev/null +++ b/thirdparty/vulkan/patches/VKEnumStringHelper-use-godot-vulkan.patch @@ -0,0 +1,13 @@ +diff --git a/thirdparty/vulkan/vk_enum_string_helper.h b/thirdparty/vulkan/vk_enum_string_helper.h +index 8026787ad4..7a54b12a38 100644 +--- a/thirdparty/vulkan/vk_enum_string_helper.h ++++ b/thirdparty/vulkan/vk_enum_string_helper.h +@@ -13,7 +13,7 @@ + #ifdef __cplusplus + #include + #endif +-#include ++#include "drivers/vulkan/godot_vulkan.h" + static inline const char* string_VkResult(VkResult input_value) { + switch (input_value) { + case VK_SUCCESS: diff --git a/thirdparty/vulkan/patches/VKEnumStringHelper-use-volk.patch b/thirdparty/vulkan/patches/VKEnumStringHelper-use-volk.patch deleted file mode 100644 index 8517b277d0..0000000000 --- a/thirdparty/vulkan/patches/VKEnumStringHelper-use-volk.patch +++ /dev/null @@ -1,17 +0,0 @@ -diff --git a/thirdparty/vulkan/vk_enum_string_helper.h b/thirdparty/vulkan/vk_enum_string_helper.h -index 9d2af46344..d61dbb1290 100644 ---- a/thirdparty/vulkan/vk_enum_string_helper.h -+++ b/thirdparty/vulkan/vk_enum_string_helper.h -@@ -13,7 +13,11 @@ - #ifdef __cplusplus - #include - #endif --#include -+#ifdef USE_VOLK -+ #include -+#else -+ #include -+#endif - static inline const char* string_VkResult(VkResult input_value) { - switch (input_value) { - case VK_SUCCESS: diff --git a/thirdparty/vulkan/patches/VMA-use-godot-vulkan.patch b/thirdparty/vulkan/patches/VMA-use-godot-vulkan.patch new file mode 100644 index 0000000000..a6c546e3d8 --- /dev/null +++ b/thirdparty/vulkan/patches/VMA-use-godot-vulkan.patch @@ -0,0 +1,18 @@ +diff --git a/thirdparty/vulkan/vk_mem_alloc.h b/thirdparty/vulkan/vk_mem_alloc.h +index 2307325d4e..ecb84094b9 100644 +--- a/thirdparty/vulkan/vk_mem_alloc.h ++++ b/thirdparty/vulkan/vk_mem_alloc.h +@@ -122,12 +122,12 @@ for user-defined purpose without allocating any real GPU memory. + See documentation chapter: \ref statistics. + */ + ++#include "drivers/vulkan/godot_vulkan.h" + + #ifdef __cplusplus + extern "C" { + #endif + +-#include + + #if !defined(VMA_VULKAN_VERSION) + #if defined(VK_VERSION_1_3) diff --git a/thirdparty/vulkan/patches/VMA-use-volk.patch b/thirdparty/vulkan/patches/VMA-use-volk.patch deleted file mode 100644 index e2e5ea5ad4..0000000000 --- a/thirdparty/vulkan/patches/VMA-use-volk.patch +++ /dev/null @@ -1,17 +0,0 @@ -diff --git a/thirdparty/vulkan/vk_mem_alloc.h b/thirdparty/vulkan/vk_mem_alloc.h -index 711f486571..e5eaa80e74 100644 ---- a/thirdparty/vulkan/vk_mem_alloc.h -+++ b/thirdparty/vulkan/vk_mem_alloc.h -@@ -127,7 +127,11 @@ See documentation chapter: \ref statistics. - extern "C" { - #endif - --#include -+#ifdef USE_VOLK -+ #include -+#else -+ #include -+#endif - - #if !defined(VMA_VULKAN_VERSION) - #if defined(VK_VERSION_1_3) diff --git a/thirdparty/vulkan/vk_enum_string_helper.h b/thirdparty/vulkan/vk_enum_string_helper.h index 598453e745..7a54b12a38 100644 --- a/thirdparty/vulkan/vk_enum_string_helper.h +++ b/thirdparty/vulkan/vk_enum_string_helper.h @@ -13,11 +13,7 @@ #ifdef __cplusplus #include #endif -#ifdef USE_VOLK - #include -#else - #include -#endif +#include "drivers/vulkan/godot_vulkan.h" static inline const char* string_VkResult(VkResult input_value) { switch (input_value) { case VK_SUCCESS: diff --git a/thirdparty/vulkan/vk_mem_alloc.h b/thirdparty/vulkan/vk_mem_alloc.h index b39b73b17d..ecb84094b9 100644 --- a/thirdparty/vulkan/vk_mem_alloc.h +++ b/thirdparty/vulkan/vk_mem_alloc.h @@ -122,16 +122,12 @@ for user-defined purpose without allocating any real GPU memory. See documentation chapter: \ref statistics. */ +#include "drivers/vulkan/godot_vulkan.h" #ifdef __cplusplus extern "C" { #endif -#ifdef USE_VOLK - #include -#else - #include -#endif #if !defined(VMA_VULKAN_VERSION) #if defined(VK_VERSION_1_3) -- cgit v1.2.3