diff --git a/dep/vulkan-loader/CMakeLists.txt b/dep/vulkan-loader/CMakeLists.txt index 89fdb6322..baf945a9d 100644 --- a/dep/vulkan-loader/CMakeLists.txt +++ b/dep/vulkan-loader/CMakeLists.txt @@ -1,4 +1,5 @@ set(SRCS + include/vulkan_entry_points.h include/vulkan_loader.h include/vulkan/vulkan_android.h include/vulkan/vulkan_win32.h diff --git a/dep/vulkan-loader/include/vulkan_entry_points.h b/dep/vulkan-loader/include/vulkan_entry_points.h new file mode 100644 index 000000000..192d31494 --- /dev/null +++ b/dep/vulkan-loader/include/vulkan_entry_points.h @@ -0,0 +1,189 @@ +#pragma once + +// We abuse the preprocessor here to only need to specify function names once. +// Function names are prefixed so to not conflict with system symbols at runtime. +#define VULKAN_MODULE_ENTRY_POINT(name, required) extern PFN_##name ds_##name; +#define VULKAN_INSTANCE_ENTRY_POINT(name, required) extern PFN_##name ds_##name; +#define VULKAN_DEVICE_ENTRY_POINT(name, required) extern PFN_##name ds_##name; +#define VULKAN_DEFINE_NAME_PREFIX ds_ +#include "vulkan_entry_points.inl" +#undef VULKAN_DEFINE_NAME_PREFIX +#undef VULKAN_DEVICE_ENTRY_POINT +#undef VULKAN_INSTANCE_ENTRY_POINT +#undef VULKAN_MODULE_ENTRY_POINT + +#define vkCreateInstance ds_vkCreateInstance +#define vkGetInstanceProcAddr ds_vkGetInstanceProcAddr +#define vkEnumerateInstanceExtensionProperties ds_vkEnumerateInstanceExtensionProperties +#define vkEnumerateInstanceLayerProperties ds_vkEnumerateInstanceLayerProperties +#define vkEnumerateInstanceVersion ds_vkEnumerateInstanceVersion + +#define vkGetDeviceProcAddr ds_vkGetDeviceProcAddr +#define vkDestroyInstance ds_vkDestroyInstance +#define vkEnumeratePhysicalDevices ds_vkEnumeratePhysicalDevices +#define vkGetPhysicalDeviceFeatures ds_vkGetPhysicalDeviceFeatures +#define vkGetPhysicalDeviceFormatProperties ds_vkGetPhysicalDeviceFormatProperties +#define vkGetPhysicalDeviceImageFormatProperties ds_vkGetPhysicalDeviceImageFormatProperties +#define vkGetPhysicalDeviceProperties ds_vkGetPhysicalDeviceProperties +#define vkGetPhysicalDeviceQueueFamilyProperties ds_vkGetPhysicalDeviceQueueFamilyProperties +#define vkGetPhysicalDeviceMemoryProperties ds_vkGetPhysicalDeviceMemoryProperties +#define vkCreateDevice ds_vkCreateDevice +#define vkEnumerateDeviceExtensionProperties ds_vkEnumerateDeviceExtensionProperties +#define vkEnumerateDeviceLayerProperties ds_vkEnumerateDeviceLayerProperties +#define vkGetPhysicalDeviceSparseImageFormatProperties ds_vkGetPhysicalDeviceSparseImageFormatProperties +#define vkDestroySurfaceKHR ds_vkDestroySurfaceKHR +#define vkGetPhysicalDeviceSurfaceSupportKHR ds_vkGetPhysicalDeviceSurfaceSupportKHR +#define vkGetPhysicalDeviceSurfaceCapabilitiesKHR ds_vkGetPhysicalDeviceSurfaceCapabilitiesKHR +#define vkGetPhysicalDeviceSurfaceFormatsKHR ds_vkGetPhysicalDeviceSurfaceFormatsKHR +#define vkGetPhysicalDeviceSurfacePresentModesKHR ds_vkGetPhysicalDeviceSurfacePresentModesKHR +#define vkCreateWin32SurfaceKHR ds_vkCreateWin32SurfaceKHR +#define vkGetPhysicalDeviceWin32PresentationSupportKHR ds_vkGetPhysicalDeviceWin32PresentationSupportKHR +#define vkCreateXlibSurfaceKHR ds_vkCreateXlibSurfaceKHR +#define vkGetPhysicalDeviceXlibPresentationSupportKHR ds_vkGetPhysicalDeviceXlibPresentationSupportKHR +#define vkCreateWaylandSurfaceKHR ds_vkCreateWaylandSurfaceKHR +#define vkCreateAndroidSurfaceKHR ds_vkCreateAndroidSurfaceKHR +#define vkCreateMacOSSurfaceMVK ds_vkCreateMacOSSurfaceMVK +#define vkCreateMetalSurfaceEXT ds_vkCreateMetalSurfaceEXT +#define vkCreateDebugReportCallbackEXT ds_vkCreateDebugReportCallbackEXT +#define vkDestroyDebugReportCallbackEXT ds_vkDestroyDebugReportCallbackEXT +#define vkDebugReportMessageEXT ds_vkDebugReportMessageEXT +#define vkGetPhysicalDeviceProperties2 ds_vkGetPhysicalDeviceProperties2 +#define vkGetPhysicalDeviceSurfaceCapabilities2KHR ds_vkGetPhysicalDeviceSurfaceCapabilities2KHR +#define vkGetPhysicalDeviceDisplayPropertiesKHR ds_vkGetPhysicalDeviceDisplayPropertiesKHR +#define vkGetPhysicalDeviceDisplayPlanePropertiesKHR ds_vkGetPhysicalDeviceDisplayPlanePropertiesKHR +#define vkGetDisplayPlaneSupportedDisplaysKHR ds_vkGetDisplayPlaneSupportedDisplaysKHR +#define vkGetDisplayModePropertiesKHR ds_vkGetDisplayModePropertiesKHR +#define vkCreateDisplayModeKHR ds_vkCreateDisplayModeKHR +#define vkGetDisplayPlaneCapabilitiesKHR ds_vkGetDisplayPlaneCapabilitiesKHR +#define vkCreateDisplayPlaneSurfaceKHR ds_vkCreateDisplayPlaneSurfaceKHR + +#define vkDestroyDevice ds_vkDestroyDevice +#define vkGetDeviceQueue ds_vkGetDeviceQueue +#define vkQueueSubmit ds_vkQueueSubmit +#define vkQueueWaitIdle ds_vkQueueWaitIdle +#define vkDeviceWaitIdle ds_vkDeviceWaitIdle +#define vkAllocateMemory ds_vkAllocateMemory +#define vkFreeMemory ds_vkFreeMemory +#define vkMapMemory ds_vkMapMemory +#define vkUnmapMemory ds_vkUnmapMemory +#define vkFlushMappedMemoryRanges ds_vkFlushMappedMemoryRanges +#define vkInvalidateMappedMemoryRanges ds_vkInvalidateMappedMemoryRanges +#define vkGetDeviceMemoryCommitment ds_vkGetDeviceMemoryCommitment +#define vkBindBufferMemory ds_vkBindBufferMemory +#define vkBindImageMemory ds_vkBindImageMemory +#define vkGetBufferMemoryRequirements ds_vkGetBufferMemoryRequirements +#define vkGetImageMemoryRequirements ds_vkGetImageMemoryRequirements +#define vkGetImageSparseMemoryRequirements ds_vkGetImageSparseMemoryRequirements +#define vkQueueBindSparse ds_vkQueueBindSparse +#define vkCreateFence ds_vkCreateFence +#define vkDestroyFence ds_vkDestroyFence +#define vkResetFences ds_vkResetFences +#define vkGetFenceStatus ds_vkGetFenceStatus +#define vkWaitForFences ds_vkWaitForFences +#define vkCreateSemaphore ds_vkCreateSemaphore +#define vkDestroySemaphore ds_vkDestroySemaphore +#define vkCreateEvent ds_vkCreateEvent +#define vkDestroyEvent ds_vkDestroyEvent +#define vkGetEventStatus ds_vkGetEventStatus +#define vkSetEvent ds_vkSetEvent +#define vkResetEvent ds_vkResetEvent +#define vkCreateQueryPool ds_vkCreateQueryPool +#define vkDestroyQueryPool ds_vkDestroyQueryPool +#define vkGetQueryPoolResults ds_vkGetQueryPoolResults +#define vkCreateBuffer ds_vkCreateBuffer +#define vkDestroyBuffer ds_vkDestroyBuffer +#define vkCreateBufferView ds_vkCreateBufferView +#define vkDestroyBufferView ds_vkDestroyBufferView +#define vkCreateImage ds_vkCreateImage +#define vkDestroyImage ds_vkDestroyImage +#define vkGetImageSubresourceLayout ds_vkGetImageSubresourceLayout +#define vkCreateImageView ds_vkCreateImageView +#define vkDestroyImageView ds_vkDestroyImageView +#define vkCreateShaderModule ds_vkCreateShaderModule +#define vkDestroyShaderModule ds_vkDestroyShaderModule +#define vkCreatePipelineCache ds_vkCreatePipelineCache +#define vkDestroyPipelineCache ds_vkDestroyPipelineCache +#define vkGetPipelineCacheData ds_vkGetPipelineCacheData +#define vkMergePipelineCaches ds_vkMergePipelineCaches +#define vkCreateGraphicsPipelines ds_vkCreateGraphicsPipelines +#define vkCreateComputePipelines ds_vkCreateComputePipelines +#define vkDestroyPipeline ds_vkDestroyPipeline +#define vkCreatePipelineLayout ds_vkCreatePipelineLayout +#define vkDestroyPipelineLayout ds_vkDestroyPipelineLayout +#define vkCreateSampler ds_vkCreateSampler +#define vkDestroySampler ds_vkDestroySampler +#define vkCreateDescriptorSetLayout ds_vkCreateDescriptorSetLayout +#define vkDestroyDescriptorSetLayout ds_vkDestroyDescriptorSetLayout +#define vkCreateDescriptorPool ds_vkCreateDescriptorPool +#define vkDestroyDescriptorPool ds_vkDestroyDescriptorPool +#define vkResetDescriptorPool ds_vkResetDescriptorPool +#define vkAllocateDescriptorSets ds_vkAllocateDescriptorSets +#define vkFreeDescriptorSets ds_vkFreeDescriptorSets +#define vkUpdateDescriptorSets ds_vkUpdateDescriptorSets +#define vkCreateFramebuffer ds_vkCreateFramebuffer +#define vkDestroyFramebuffer ds_vkDestroyFramebuffer +#define vkCreateRenderPass ds_vkCreateRenderPass +#define vkDestroyRenderPass ds_vkDestroyRenderPass +#define vkGetRenderAreaGranularity ds_vkGetRenderAreaGranularity +#define vkCreateCommandPool ds_vkCreateCommandPool +#define vkDestroyCommandPool ds_vkDestroyCommandPool +#define vkResetCommandPool ds_vkResetCommandPool +#define vkAllocateCommandBuffers ds_vkAllocateCommandBuffers +#define vkFreeCommandBuffers ds_vkFreeCommandBuffers +#define vkBeginCommandBuffer ds_vkBeginCommandBuffer +#define vkEndCommandBuffer ds_vkEndCommandBuffer +#define vkResetCommandBuffer ds_vkResetCommandBuffer +#define vkCmdBindPipeline ds_vkCmdBindPipeline +#define vkCmdSetViewport ds_vkCmdSetViewport +#define vkCmdSetScissor ds_vkCmdSetScissor +#define vkCmdSetLineWidth ds_vkCmdSetLineWidth +#define vkCmdSetDepthBias ds_vkCmdSetDepthBias +#define vkCmdSetBlendConstants ds_vkCmdSetBlendConstants +#define vkCmdSetDepthBounds ds_vkCmdSetDepthBounds +#define vkCmdSetStencilCompareMask ds_vkCmdSetStencilCompareMask +#define vkCmdSetStencilWriteMask ds_vkCmdSetStencilWriteMask +#define vkCmdSetStencilReference ds_vkCmdSetStencilReference +#define vkCmdBindDescriptorSets ds_vkCmdBindDescriptorSets +#define vkCmdBindIndexBuffer ds_vkCmdBindIndexBuffer +#define vkCmdBindVertexBuffers ds_vkCmdBindVertexBuffers +#define vkCmdDraw ds_vkCmdDraw +#define vkCmdDrawIndexed ds_vkCmdDrawIndexed +#define vkCmdDrawIndirect ds_vkCmdDrawIndirect +#define vkCmdDrawIndexedIndirect ds_vkCmdDrawIndexedIndirect +#define vkCmdDispatch ds_vkCmdDispatch +#define vkCmdDispatchIndirect ds_vkCmdDispatchIndirect +#define vkCmdCopyBuffer ds_vkCmdCopyBuffer +#define vkCmdCopyImage ds_vkCmdCopyImage +#define vkCmdBlitImage ds_vkCmdBlitImage +#define vkCmdCopyBufferToImage ds_vkCmdCopyBufferToImage +#define vkCmdCopyImageToBuffer ds_vkCmdCopyImageToBuffer +#define vkCmdUpdateBuffer ds_vkCmdUpdateBuffer +#define vkCmdFillBuffer ds_vkCmdFillBuffer +#define vkCmdClearColorImage ds_vkCmdClearColorImage +#define vkCmdClearDepthStencilImage ds_vkCmdClearDepthStencilImage +#define vkCmdClearAttachments ds_vkCmdClearAttachments +#define vkCmdResolveImage ds_vkCmdResolveImage +#define vkCmdSetEvent ds_vkCmdSetEvent +#define vkCmdResetEvent ds_vkCmdResetEvent +#define vkCmdWaitEvents ds_vkCmdWaitEvents +#define vkCmdPipelineBarrier ds_vkCmdPipelineBarrier +#define vkCmdBeginQuery ds_vkCmdBeginQuery +#define vkCmdEndQuery ds_vkCmdEndQuery +#define vkCmdResetQueryPool ds_vkCmdResetQueryPool +#define vkCmdWriteTimestamp ds_vkCmdWriteTimestamp +#define vkCmdCopyQueryPoolResults ds_vkCmdCopyQueryPoolResults +#define vkCmdPushConstants ds_vkCmdPushConstants +#define vkCmdBeginRenderPass ds_vkCmdBeginRenderPass +#define vkCmdNextSubpass ds_vkCmdNextSubpass +#define vkCmdEndRenderPass ds_vkCmdEndRenderPass +#define vkCmdExecuteCommands ds_vkCmdExecuteCommands +#define vkCreateSwapchainKHR ds_vkCreateSwapchainKHR +#define vkDestroySwapchainKHR ds_vkDestroySwapchainKHR +#define vkGetSwapchainImagesKHR ds_vkGetSwapchainImagesKHR +#define vkAcquireNextImageKHR ds_vkAcquireNextImageKHR +#define vkQueuePresentKHR ds_vkQueuePresentKHR + +#ifdef SUPPORTS_VULKAN_EXCLUSIVE_FULLSCREEN +#define vkAcquireFullScreenExclusiveModeEXT ds_vkAcquireFullScreenExclusiveModeEXT +#define vkReleaseFullScreenExclusiveModeEXT ds_vkReleaseFullScreenExclusiveModeEXT +#endif diff --git a/dep/vulkan-loader/include/vulkan_loader.h b/dep/vulkan-loader/include/vulkan_loader.h index 1da06fe46..bf6eb17b4 100644 --- a/dep/vulkan-loader/include/vulkan_loader.h +++ b/dep/vulkan-loader/include/vulkan_loader.h @@ -92,14 +92,7 @@ #endif -// We abuse the preprocessor here to only need to specify function names once. -#define VULKAN_MODULE_ENTRY_POINT(name, required) extern PFN_##name name; -#define VULKAN_INSTANCE_ENTRY_POINT(name, required) extern PFN_##name name; -#define VULKAN_DEVICE_ENTRY_POINT(name, required) extern PFN_##name name; -#include "vulkan_entry_points.inl" -#undef VULKAN_DEVICE_ENTRY_POINT -#undef VULKAN_INSTANCE_ENTRY_POINT -#undef VULKAN_MODULE_ENTRY_POINT +#include "vulkan_entry_points.h" namespace Vulkan { diff --git a/dep/vulkan-loader/src/vulkan_loader.cpp b/dep/vulkan-loader/src/vulkan_loader.cpp index 0d580c219..d51376521 100644 --- a/dep/vulkan-loader/src/vulkan_loader.cpp +++ b/dep/vulkan-loader/src/vulkan_loader.cpp @@ -20,9 +20,9 @@ #include #endif -#define VULKAN_MODULE_ENTRY_POINT(name, required) PFN_##name name; -#define VULKAN_INSTANCE_ENTRY_POINT(name, required) PFN_##name name; -#define VULKAN_DEVICE_ENTRY_POINT(name, required) PFN_##name name; +#define VULKAN_MODULE_ENTRY_POINT(name, required) PFN_##name ds_##name; +#define VULKAN_INSTANCE_ENTRY_POINT(name, required) PFN_##name ds_##name; +#define VULKAN_DEVICE_ENTRY_POINT(name, required) PFN_##name ds_##name; #include "vulkan_entry_points.inl" #undef VULKAN_DEVICE_ENTRY_POINT #undef VULKAN_INSTANCE_ENTRY_POINT @@ -32,9 +32,9 @@ namespace Vulkan { void ResetVulkanLibraryFunctionPointers() { -#define VULKAN_MODULE_ENTRY_POINT(name, required) name = nullptr; -#define VULKAN_INSTANCE_ENTRY_POINT(name, required) name = nullptr; -#define VULKAN_DEVICE_ENTRY_POINT(name, required) name = nullptr; +#define VULKAN_MODULE_ENTRY_POINT(name, required) ds_##name = nullptr; +#define VULKAN_INSTANCE_ENTRY_POINT(name, required) ds_##name = nullptr; +#define VULKAN_DEVICE_ENTRY_POINT(name, required) ds_##name = nullptr; #include "vulkan_entry_points.inl" #undef VULKAN_DEVICE_ENTRY_POINT #undef VULKAN_INSTANCE_ENTRY_POINT diff --git a/dep/vulkan-loader/vulkan-loader.vcxproj b/dep/vulkan-loader/vulkan-loader.vcxproj index 67b6b2ad0..dc01a9654 100644 --- a/dep/vulkan-loader/vulkan-loader.vcxproj +++ b/dep/vulkan-loader/vulkan-loader.vcxproj @@ -70,6 +70,7 @@ + diff --git a/dep/vulkan-loader/vulkan-loader.vcxproj.filters b/dep/vulkan-loader/vulkan-loader.vcxproj.filters index 548474ca8..72b7cca37 100644 --- a/dep/vulkan-loader/vulkan-loader.vcxproj.filters +++ b/dep/vulkan-loader/vulkan-loader.vcxproj.filters @@ -59,6 +59,7 @@ vulkan +