diff --git a/VulkanHppGenerator.cpp b/VulkanHppGenerator.cpp index d181faf..38fc9c7 100644 --- a/VulkanHppGenerator.cpp +++ b/VulkanHppGenerator.cpp @@ -1173,7 +1173,10 @@ void VulkanHppGenerator::appendDispatchLoaderDynamic(std::string & str) // This interface is designed to be used for per-device function pointers in combination with a linked vulkan library. void init(VULKAN_HPP_NAMESPACE::Instance const& instance, VULKAN_HPP_NAMESPACE::Device const& device) VULKAN_HPP_NOEXCEPT { - init(static_cast(instance), ::vkGetInstanceProcAddr, static_cast(device), device ? ::vkGetDeviceProcAddr : nullptr); + static vk::DynamicLoader dl; + PFN_vkGetInstanceProcAddr getInstanceProcAddr = dl.getProcAddress("vkGetInstanceProcAddr"); + PFN_vkGetDeviceProcAddr getDeviceProcAddr = dl.getProcAddress("vkGetDeviceProcAddr"); + init(static_cast(instance), getInstanceProcAddr, static_cast(device), device ? getDeviceProcAddr : nullptr); } #endif // !defined(VK_NO_PROTOTYPES) diff --git a/samples/01_InitInstance/CMakeLists.txt b/samples/01_InitInstance/CMakeLists.txt index 61dd871..d623e5c 100644 --- a/samples/01_InitInstance/CMakeLists.txt +++ b/samples/01_InitInstance/CMakeLists.txt @@ -26,8 +26,6 @@ set(SOURCES source_group(headers FILES ${HEADERS}) source_group(sources FILES ${SOURCES}) -add_definitions(-DVULKAN_HPP_DISPATCH_LOADER_DYNAMIC=0) - add_executable(01_InitInstance ${HEADERS} ${SOURCES} diff --git a/samples/02_EnumerateDevices/CMakeLists.txt b/samples/02_EnumerateDevices/CMakeLists.txt index 6cad21e..cc35691 100644 --- a/samples/02_EnumerateDevices/CMakeLists.txt +++ b/samples/02_EnumerateDevices/CMakeLists.txt @@ -34,4 +34,4 @@ add_executable(02_EnumerateDevices ) set_target_properties(02_EnumerateDevices PROPERTIES FOLDER "Samples") -target_link_libraries(02_EnumerateDevices "${Vulkan_LIBRARIES}") +target_compile_definitions(02_EnumerateDevices PUBLIC VULKAN_HPP_DISPATCH_LOADER_DYNAMIC=1) diff --git a/samples/03_InitDevice/CMakeLists.txt b/samples/03_InitDevice/CMakeLists.txt index 944e093..d169289 100644 --- a/samples/03_InitDevice/CMakeLists.txt +++ b/samples/03_InitDevice/CMakeLists.txt @@ -34,4 +34,4 @@ add_executable(03_InitDevice ) set_target_properties(03_InitDevice PROPERTIES FOLDER "Samples") -target_link_libraries(03_InitDevice "${Vulkan_LIBRARIES}") +target_compile_definitions(03_InitDevice PUBLIC VULKAN_HPP_DISPATCH_LOADER_DYNAMIC=1) diff --git a/samples/04_InitCommandBuffer/CMakeLists.txt b/samples/04_InitCommandBuffer/CMakeLists.txt index 150af6d..a935fd8 100644 --- a/samples/04_InitCommandBuffer/CMakeLists.txt +++ b/samples/04_InitCommandBuffer/CMakeLists.txt @@ -34,4 +34,4 @@ add_executable(04_InitCommandBuffer ) set_target_properties(04_InitCommandBuffer PROPERTIES FOLDER "Samples") -target_link_libraries(04_InitCommandBuffer "${Vulkan_LIBRARIES}") +target_compile_definitions(04_InitCommandBuffer PUBLIC VULKAN_HPP_DISPATCH_LOADER_DYNAMIC=1) diff --git a/samples/05_InitSwapchain/CMakeLists.txt b/samples/05_InitSwapchain/CMakeLists.txt index 74aaffb..3baf4e4 100644 --- a/samples/05_InitSwapchain/CMakeLists.txt +++ b/samples/05_InitSwapchain/CMakeLists.txt @@ -34,4 +34,4 @@ add_executable(05_InitSwapchain ) set_target_properties(05_InitSwapchain PROPERTIES FOLDER "Samples") -target_link_libraries(05_InitSwapchain "${Vulkan_LIBRARIES}") +target_compile_definitions(05_InitSwapchain PUBLIC VULKAN_HPP_DISPATCH_LOADER_DYNAMIC=1) diff --git a/samples/06_InitDepthBuffer/CMakeLists.txt b/samples/06_InitDepthBuffer/CMakeLists.txt index bf13043..1a3dd79 100644 --- a/samples/06_InitDepthBuffer/CMakeLists.txt +++ b/samples/06_InitDepthBuffer/CMakeLists.txt @@ -34,4 +34,4 @@ add_executable(06_InitDepthBuffer ) set_target_properties(06_InitDepthBuffer PROPERTIES FOLDER "Samples") -target_link_libraries(06_InitDepthBuffer "${Vulkan_LIBRARIES}") +target_compile_definitions(06_InitDepthBuffer PUBLIC VULKAN_HPP_DISPATCH_LOADER_DYNAMIC=1) diff --git a/samples/07_InitUniformBuffer/CMakeLists.txt b/samples/07_InitUniformBuffer/CMakeLists.txt index 8810c0e..cc19fc7 100644 --- a/samples/07_InitUniformBuffer/CMakeLists.txt +++ b/samples/07_InitUniformBuffer/CMakeLists.txt @@ -34,4 +34,4 @@ add_executable(07_InitUniformBuffer ) set_target_properties(07_InitUniformBuffer PROPERTIES FOLDER "Samples") -target_link_libraries(07_InitUniformBuffer "${Vulkan_LIBRARIES}") +target_compile_definitions(07_InitUniformBuffer PUBLIC VULKAN_HPP_DISPATCH_LOADER_DYNAMIC=1) diff --git a/samples/08_InitPipelineLayout/CMakeLists.txt b/samples/08_InitPipelineLayout/CMakeLists.txt index 2c60a48..2b3ccea 100644 --- a/samples/08_InitPipelineLayout/CMakeLists.txt +++ b/samples/08_InitPipelineLayout/CMakeLists.txt @@ -34,4 +34,4 @@ add_executable(08_InitPipelineLayout ) set_target_properties(08_InitPipelineLayout PROPERTIES FOLDER "Samples") -target_link_libraries(08_InitPipelineLayout "${Vulkan_LIBRARIES}") +target_compile_definitions(08_InitPipelineLayout PUBLIC VULKAN_HPP_DISPATCH_LOADER_DYNAMIC=1) diff --git a/samples/09_InitDescriptorSet/CMakeLists.txt b/samples/09_InitDescriptorSet/CMakeLists.txt index 8f6e836..96e7674 100644 --- a/samples/09_InitDescriptorSet/CMakeLists.txt +++ b/samples/09_InitDescriptorSet/CMakeLists.txt @@ -36,4 +36,4 @@ add_executable(09_InitDescriptorSet ) set_target_properties(09_InitDescriptorSet PROPERTIES FOLDER "Samples") -target_link_libraries(09_InitDescriptorSet "${Vulkan_LIBRARIES}") +target_compile_definitions(09_InitDescriptorSet PUBLIC VULKAN_HPP_DISPATCH_LOADER_DYNAMIC=1) diff --git a/samples/10_InitRenderPass/CMakeLists.txt b/samples/10_InitRenderPass/CMakeLists.txt index 74e5f12..ca23be9 100644 --- a/samples/10_InitRenderPass/CMakeLists.txt +++ b/samples/10_InitRenderPass/CMakeLists.txt @@ -34,4 +34,4 @@ add_executable(10_InitRenderPass ) set_target_properties(10_InitRenderPass PROPERTIES FOLDER "Samples") -target_link_libraries(10_InitRenderPass "${Vulkan_LIBRARIES}") +target_compile_definitions(10_InitRenderPass PUBLIC VULKAN_HPP_DISPATCH_LOADER_DYNAMIC=1) diff --git a/samples/11_InitShaders/CMakeLists.txt b/samples/11_InitShaders/CMakeLists.txt index f8b1440..21b639c 100644 --- a/samples/11_InitShaders/CMakeLists.txt +++ b/samples/11_InitShaders/CMakeLists.txt @@ -37,6 +37,6 @@ add_executable(11_InitShaders ) set_target_properties(11_InitShaders PROPERTIES FOLDER "Samples") +target_compile_definitions(11_InitShaders PUBLIC VULKAN_HPP_DISPATCH_LOADER_DYNAMIC=1) target_include_directories(11_InitShaders PUBLIC ${CMAKE_SOURCE_DIR}/glslang) -target_link_libraries(11_InitShaders PUBLIC glslang SPIRV "${Vulkan_LIBRARIES}" -) +target_link_libraries(11_InitShaders PUBLIC glslang SPIRV) diff --git a/samples/12_InitFrameBuffers/CMakeLists.txt b/samples/12_InitFrameBuffers/CMakeLists.txt index bc0f9f7..cb16200 100644 --- a/samples/12_InitFrameBuffers/CMakeLists.txt +++ b/samples/12_InitFrameBuffers/CMakeLists.txt @@ -34,4 +34,4 @@ add_executable(12_InitFrameBuffers ) set_target_properties(12_InitFrameBuffers PROPERTIES FOLDER "Samples") -target_link_libraries(12_InitFrameBuffers PUBLIC "${Vulkan_LIBRARIES}") +target_compile_definitions(12_InitFrameBuffers PUBLIC VULKAN_HPP_DISPATCH_LOADER_DYNAMIC=1) diff --git a/samples/13_InitVertexBuffer/CMakeLists.txt b/samples/13_InitVertexBuffer/CMakeLists.txt index 7a34254..e32bece 100644 --- a/samples/13_InitVertexBuffer/CMakeLists.txt +++ b/samples/13_InitVertexBuffer/CMakeLists.txt @@ -35,4 +35,4 @@ add_executable(13_InitVertexBuffer ) set_target_properties(13_InitVertexBuffer PROPERTIES FOLDER "Samples") -target_link_libraries(13_InitVertexBuffer PUBLIC "${Vulkan_LIBRARIES}") +target_compile_definitions(13_InitVertexBuffer PUBLIC VULKAN_HPP_DISPATCH_LOADER_DYNAMIC=1) diff --git a/samples/14_InitPipeline/CMakeLists.txt b/samples/14_InitPipeline/CMakeLists.txt index 908ab42..0d63b17 100644 --- a/samples/14_InitPipeline/CMakeLists.txt +++ b/samples/14_InitPipeline/CMakeLists.txt @@ -40,6 +40,6 @@ add_executable(14_InitPipeline ) set_target_properties(14_InitPipeline PROPERTIES FOLDER "Samples") +target_compile_definitions(14_InitPipeline PUBLIC VULKAN_HPP_DISPATCH_LOADER_DYNAMIC=1) target_include_directories(14_InitPipeline PUBLIC ${CMAKE_SOURCE_DIR}/glslang) -target_link_libraries(14_InitPipeline PUBLIC glslang SPIRV "${Vulkan_LIBRARIES}" -) +target_link_libraries(14_InitPipeline PUBLIC glslang SPIRV) diff --git a/samples/15_DrawCube/CMakeLists.txt b/samples/15_DrawCube/CMakeLists.txt index b7b7470..e3d15a7 100644 --- a/samples/15_DrawCube/CMakeLists.txt +++ b/samples/15_DrawCube/CMakeLists.txt @@ -40,6 +40,6 @@ add_executable(15_DrawCube ) set_target_properties(15_DrawCube PROPERTIES FOLDER "Samples") +target_compile_definitions(15_DrawCube PUBLIC VULKAN_HPP_DISPATCH_LOADER_DYNAMIC=1) target_include_directories(15_DrawCube PUBLIC ${CMAKE_SOURCE_DIR}/glslang) -target_link_libraries(15_DrawCube PUBLIC glslang SPIRV "${Vulkan_LIBRARIES}" -) +target_link_libraries(15_DrawCube PUBLIC glslang SPIRV) diff --git a/samples/16_Vulkan_1_1/CMakeLists.txt b/samples/16_Vulkan_1_1/CMakeLists.txt index 674933b..41d4cce 100644 --- a/samples/16_Vulkan_1_1/CMakeLists.txt +++ b/samples/16_Vulkan_1_1/CMakeLists.txt @@ -34,4 +34,4 @@ add_executable(16_Vulkan_1_1 ) set_target_properties(16_Vulkan_1_1 PROPERTIES FOLDER "Samples") -target_link_libraries(16_Vulkan_1_1 PUBLIC "${Vulkan_LIBRARIES}") +target_compile_definitions(16_Vulkan_1_1 PUBLIC VULKAN_HPP_DISPATCH_LOADER_DYNAMIC=1) diff --git a/samples/CMakeLists.txt b/samples/CMakeLists.txt index b21f9c1..2203889 100644 --- a/samples/CMakeLists.txt +++ b/samples/CMakeLists.txt @@ -26,8 +26,6 @@ else() message(FATAL_ERROR, "unhandled platform !") endif() -add_definitions(-DVULKAN_HPP_DISPATCH_LOADER_DYNAMIC=1) - FILE (GLOB linkunits ${CMAKE_CURRENT_SOURCE_DIR}/*) if (SAMPLES_BUILD_WITH_LOCAL_VULKAN_HPP) diff --git a/samples/CopyBlitImage/CMakeLists.txt b/samples/CopyBlitImage/CMakeLists.txt index 6704745..fc331ad 100644 --- a/samples/CopyBlitImage/CMakeLists.txt +++ b/samples/CopyBlitImage/CMakeLists.txt @@ -34,4 +34,4 @@ add_executable(CopyBlitImage ) set_target_properties(CopyBlitImage PROPERTIES FOLDER "Samples") -target_link_libraries(CopyBlitImage PUBLIC "${Vulkan_LIBRARIES}") +target_compile_definitions(CopyBlitImage PUBLIC VULKAN_HPP_DISPATCH_LOADER_DYNAMIC=1) diff --git a/samples/CreateDebugUtilsMessenger/CMakeLists.txt b/samples/CreateDebugUtilsMessenger/CMakeLists.txt index 8a2500a..e6a202f 100644 --- a/samples/CreateDebugUtilsMessenger/CMakeLists.txt +++ b/samples/CreateDebugUtilsMessenger/CMakeLists.txt @@ -26,8 +26,6 @@ set(SOURCES source_group(headers FILES ${HEADERS}) source_group(sources FILES ${SOURCES}) -add_definitions(-DVULKAN_HPP_DISPATCH_LOADER_DYNAMIC=0) - add_executable(CreateDebugUtilsMessenger ${HEADERS} ${SOURCES} diff --git a/samples/DrawTexturedCube/CMakeLists.txt b/samples/DrawTexturedCube/CMakeLists.txt index 062c72c..03934f2 100644 --- a/samples/DrawTexturedCube/CMakeLists.txt +++ b/samples/DrawTexturedCube/CMakeLists.txt @@ -40,5 +40,6 @@ add_executable(DrawTexturedCube ) set_target_properties(DrawTexturedCube PROPERTIES FOLDER "Samples") +target_compile_definitions(DrawTexturedCube PUBLIC VULKAN_HPP_DISPATCH_LOADER_DYNAMIC=1) target_include_directories(DrawTexturedCube PUBLIC ${CMAKE_SOURCE_DIR}/glslang) -target_link_libraries(DrawTexturedCube PUBLIC glslang SPIRV "${Vulkan_LIBRARIES}") +target_link_libraries(DrawTexturedCube PUBLIC glslang SPIRV) diff --git a/samples/DynamicUniform/CMakeLists.txt b/samples/DynamicUniform/CMakeLists.txt index 2f7f721..0b168e9 100644 --- a/samples/DynamicUniform/CMakeLists.txt +++ b/samples/DynamicUniform/CMakeLists.txt @@ -40,5 +40,6 @@ add_executable(DynamicUniform ) set_target_properties(DynamicUniform PROPERTIES FOLDER "Samples") +target_compile_definitions(DynamicUniform PUBLIC VULKAN_HPP_DISPATCH_LOADER_DYNAMIC=1) target_include_directories(DynamicUniform PUBLIC ${CMAKE_SOURCE_DIR}/glslang) -target_link_libraries(DynamicUniform PUBLIC glslang SPIRV "${Vulkan_LIBRARIES}") +target_link_libraries(DynamicUniform PUBLIC glslang SPIRV) diff --git a/samples/EnableValidationWithCallback/CMakeLists.txt b/samples/EnableValidationWithCallback/CMakeLists.txt index 1951ccd..1415ebf 100644 --- a/samples/EnableValidationWithCallback/CMakeLists.txt +++ b/samples/EnableValidationWithCallback/CMakeLists.txt @@ -26,8 +26,6 @@ set(SOURCES source_group(headers FILES ${HEADERS}) source_group(sources FILES ${SOURCES}) -add_definitions(-DVULKAN_HPP_DISPATCH_LOADER_DYNAMIC=0) - add_executable(EnableValidationWithCallback ${HEADERS} ${SOURCES} diff --git a/samples/EnumerateDevicesAdvanced/CMakeLists.txt b/samples/EnumerateDevicesAdvanced/CMakeLists.txt index c057ece..99ecc37 100644 --- a/samples/EnumerateDevicesAdvanced/CMakeLists.txt +++ b/samples/EnumerateDevicesAdvanced/CMakeLists.txt @@ -34,4 +34,4 @@ add_executable(EnumerateDevicesAdvanced ) set_target_properties(EnumerateDevicesAdvanced PROPERTIES FOLDER "Samples") -target_link_libraries(EnumerateDevicesAdvanced "${Vulkan_LIBRARIES}") +target_compile_definitions(EnumerateDevicesAdvanced PUBLIC VULKAN_HPP_DISPATCH_LOADER_DYNAMIC=1) diff --git a/samples/Events/CMakeLists.txt b/samples/Events/CMakeLists.txt index 6c57fcf..568b758 100644 --- a/samples/Events/CMakeLists.txt +++ b/samples/Events/CMakeLists.txt @@ -34,4 +34,4 @@ add_executable(Events ) set_target_properties(Events PROPERTIES FOLDER "Samples") -target_link_libraries(Events PUBLIC "${Vulkan_LIBRARIES}") +target_compile_definitions(Events PUBLIC VULKAN_HPP_DISPATCH_LOADER_DYNAMIC=1) diff --git a/samples/ImmutableSampler/CMakeLists.txt b/samples/ImmutableSampler/CMakeLists.txt index 0550be0..17b8e6f 100644 --- a/samples/ImmutableSampler/CMakeLists.txt +++ b/samples/ImmutableSampler/CMakeLists.txt @@ -40,5 +40,6 @@ add_executable(ImmutableSampler ) set_target_properties(ImmutableSampler PROPERTIES FOLDER "Samples") +target_compile_definitions(ImmutableSampler PUBLIC VULKAN_HPP_DISPATCH_LOADER_DYNAMIC=1) target_include_directories(ImmutableSampler PUBLIC ${CMAKE_SOURCE_DIR}/glslang) -target_link_libraries(ImmutableSampler PUBLIC glslang SPIRV "${Vulkan_LIBRARIES}") +target_link_libraries(ImmutableSampler PUBLIC glslang SPIRV) diff --git a/samples/InitTexture/CMakeLists.txt b/samples/InitTexture/CMakeLists.txt index 9de257d..c9860a7 100644 --- a/samples/InitTexture/CMakeLists.txt +++ b/samples/InitTexture/CMakeLists.txt @@ -40,5 +40,6 @@ add_executable(InitTexture ) set_target_properties(InitTexture PROPERTIES FOLDER "Samples") +target_compile_definitions(InitTexture PUBLIC VULKAN_HPP_DISPATCH_LOADER_DYNAMIC=1) target_include_directories(InitTexture PUBLIC ${CMAKE_SOURCE_DIR}/glslang) -target_link_libraries(InitTexture PUBLIC glslang SPIRV "${Vulkan_LIBRARIES}") +target_link_libraries(InitTexture PUBLIC glslang SPIRV) diff --git a/samples/InputAttachment/CMakeLists.txt b/samples/InputAttachment/CMakeLists.txt index 0098df8..9da7e8a 100644 --- a/samples/InputAttachment/CMakeLists.txt +++ b/samples/InputAttachment/CMakeLists.txt @@ -40,5 +40,6 @@ add_executable(InputAttachment ) set_target_properties(InputAttachment PROPERTIES FOLDER "Samples") +target_compile_definitions(InputAttachment PUBLIC VULKAN_HPP_DISPATCH_LOADER_DYNAMIC=1) target_include_directories(InputAttachment PUBLIC ${CMAKE_SOURCE_DIR}/glslang) -target_link_libraries(InputAttachment PUBLIC glslang SPIRV "${Vulkan_LIBRARIES}") +target_link_libraries(InputAttachment PUBLIC glslang SPIRV) diff --git a/samples/InstanceExtensionProperties/CMakeLists.txt b/samples/InstanceExtensionProperties/CMakeLists.txt index 7559c3d..474703f 100644 --- a/samples/InstanceExtensionProperties/CMakeLists.txt +++ b/samples/InstanceExtensionProperties/CMakeLists.txt @@ -26,8 +26,6 @@ set(SOURCES source_group(headers FILES ${HEADERS}) source_group(sources FILES ${SOURCES}) -add_definitions(-DVULKAN_HPP_DISPATCH_LOADER_DYNAMIC=0) - add_executable(InstanceExtensionProperties ${HEADERS} ${SOURCES} diff --git a/samples/InstanceLayerExtensionProperties/CMakeLists.txt b/samples/InstanceLayerExtensionProperties/CMakeLists.txt index e2ab9c2..12990cf 100644 --- a/samples/InstanceLayerExtensionProperties/CMakeLists.txt +++ b/samples/InstanceLayerExtensionProperties/CMakeLists.txt @@ -26,8 +26,6 @@ set(SOURCES source_group(headers FILES ${HEADERS}) source_group(sources FILES ${SOURCES}) -add_definitions(-DVULKAN_HPP_DISPATCH_LOADER_DYNAMIC=0) - add_executable(InstanceLayerExtensionProperties ${HEADERS} ${SOURCES} diff --git a/samples/InstanceLayerProperties/CMakeLists.txt b/samples/InstanceLayerProperties/CMakeLists.txt index ee605d9..6a3205f 100644 --- a/samples/InstanceLayerProperties/CMakeLists.txt +++ b/samples/InstanceLayerProperties/CMakeLists.txt @@ -26,8 +26,6 @@ set(SOURCES source_group(headers FILES ${HEADERS}) source_group(sources FILES ${SOURCES}) -add_definitions(-DVULKAN_HPP_DISPATCH_LOADER_DYNAMIC=0) - add_executable(InstanceLayerProperties ${HEADERS} ${SOURCES} diff --git a/samples/InstanceVersion/CMakeLists.txt b/samples/InstanceVersion/CMakeLists.txt index 8f8f01a..b98dfd2 100644 --- a/samples/InstanceVersion/CMakeLists.txt +++ b/samples/InstanceVersion/CMakeLists.txt @@ -26,8 +26,6 @@ set(SOURCES source_group(headers FILES ${HEADERS}) source_group(sources FILES ${SOURCES}) -add_definitions(-DVULKAN_HPP_DISPATCH_LOADER_DYNAMIC=0) - add_executable(InstanceVersion ${HEADERS} ${SOURCES} diff --git a/samples/MultipleSets/CMakeLists.txt b/samples/MultipleSets/CMakeLists.txt index c9b6f35..dc04080 100644 --- a/samples/MultipleSets/CMakeLists.txt +++ b/samples/MultipleSets/CMakeLists.txt @@ -40,5 +40,6 @@ add_executable(MultipleSets ) set_target_properties(MultipleSets PROPERTIES FOLDER "Samples") +target_compile_definitions(MultipleSets PUBLIC VULKAN_HPP_DISPATCH_LOADER_DYNAMIC=1) target_include_directories(MultipleSets PUBLIC ${CMAKE_SOURCE_DIR}/glslang) -target_link_libraries(MultipleSets PUBLIC glslang SPIRV "${Vulkan_LIBRARIES}") +target_link_libraries(MultipleSets PUBLIC glslang SPIRV) diff --git a/samples/OcclusionQuery/CMakeLists.txt b/samples/OcclusionQuery/CMakeLists.txt index adbdd0d..5609f23 100644 --- a/samples/OcclusionQuery/CMakeLists.txt +++ b/samples/OcclusionQuery/CMakeLists.txt @@ -40,5 +40,6 @@ add_executable(OcclusionQuery ) set_target_properties(OcclusionQuery PROPERTIES FOLDER "Samples") +target_compile_definitions(OcclusionQuery PUBLIC VULKAN_HPP_DISPATCH_LOADER_DYNAMIC=1) target_include_directories(OcclusionQuery PUBLIC ${CMAKE_SOURCE_DIR}/glslang) -target_link_libraries(OcclusionQuery PUBLIC glslang SPIRV "${Vulkan_LIBRARIES}") +target_link_libraries(OcclusionQuery PUBLIC glslang SPIRV) diff --git a/samples/PhysicalDeviceExtensions/CMakeLists.txt b/samples/PhysicalDeviceExtensions/CMakeLists.txt index aa65064..773b1de 100644 --- a/samples/PhysicalDeviceExtensions/CMakeLists.txt +++ b/samples/PhysicalDeviceExtensions/CMakeLists.txt @@ -34,5 +34,4 @@ add_executable(PhysicalDeviceExtensions ) set_target_properties(PhysicalDeviceExtensions PROPERTIES FOLDER "Samples") -target_link_libraries(PhysicalDeviceExtensions PUBLIC "$ENV{VULKAN_SDK}/Lib/vulkan-1.lib" -) +target_compile_definitions(PhysicalDeviceExtensions PUBLIC VULKAN_HPP_DISPATCH_LOADER_DYNAMIC=1) diff --git a/samples/PhysicalDeviceFeatures/CMakeLists.txt b/samples/PhysicalDeviceFeatures/CMakeLists.txt index 425aa41..6488938 100644 --- a/samples/PhysicalDeviceFeatures/CMakeLists.txt +++ b/samples/PhysicalDeviceFeatures/CMakeLists.txt @@ -34,5 +34,4 @@ add_executable(PhysicalDeviceFeatures ) set_target_properties(PhysicalDeviceFeatures PROPERTIES FOLDER "Samples") -target_link_libraries(PhysicalDeviceFeatures PUBLIC "$ENV{VULKAN_SDK}/Lib/vulkan-1.lib" -) +target_compile_definitions(PhysicalDeviceFeatures PUBLIC VULKAN_HPP_DISPATCH_LOADER_DYNAMIC=1) diff --git a/samples/PhysicalDeviceGroups/CMakeLists.txt b/samples/PhysicalDeviceGroups/CMakeLists.txt index d523e4f..47ab00a 100644 --- a/samples/PhysicalDeviceGroups/CMakeLists.txt +++ b/samples/PhysicalDeviceGroups/CMakeLists.txt @@ -34,5 +34,4 @@ add_executable(PhysicalDeviceGroups ) set_target_properties(PhysicalDeviceGroups PROPERTIES FOLDER "Samples") -target_link_libraries(PhysicalDeviceGroups PUBLIC "$ENV{VULKAN_SDK}/Lib/vulkan-1.lib" -) +target_compile_definitions(PhysicalDeviceGroups PUBLIC VULKAN_HPP_DISPATCH_LOADER_DYNAMIC=1) diff --git a/samples/PhysicalDeviceMemoryProperties/CMakeLists.txt b/samples/PhysicalDeviceMemoryProperties/CMakeLists.txt index 8a75be0..1a62f09 100644 --- a/samples/PhysicalDeviceMemoryProperties/CMakeLists.txt +++ b/samples/PhysicalDeviceMemoryProperties/CMakeLists.txt @@ -34,5 +34,4 @@ add_executable(PhysicalDeviceMemoryProperties ) set_target_properties(PhysicalDeviceMemoryProperties PROPERTIES FOLDER "Samples") -target_link_libraries(PhysicalDeviceMemoryProperties PUBLIC "$ENV{VULKAN_SDK}/Lib/vulkan-1.lib" -) +target_compile_definitions(PhysicalDeviceMemoryProperties PUBLIC VULKAN_HPP_DISPATCH_LOADER_DYNAMIC=1) diff --git a/samples/PhysicalDeviceProperties/CMakeLists.txt b/samples/PhysicalDeviceProperties/CMakeLists.txt index 5d6bbf5..2cb995a 100644 --- a/samples/PhysicalDeviceProperties/CMakeLists.txt +++ b/samples/PhysicalDeviceProperties/CMakeLists.txt @@ -34,5 +34,4 @@ add_executable(PhysicalDeviceProperties ) set_target_properties(PhysicalDeviceProperties PROPERTIES FOLDER "Samples") -target_link_libraries(PhysicalDeviceProperties PUBLIC "$ENV{VULKAN_SDK}/Lib/vulkan-1.lib" -) +target_compile_definitions(PhysicalDeviceProperties PUBLIC VULKAN_HPP_DISPATCH_LOADER_DYNAMIC=1) diff --git a/samples/PhysicalDeviceQueueFamilyProperties/CMakeLists.txt b/samples/PhysicalDeviceQueueFamilyProperties/CMakeLists.txt index dba3c40..93582d3 100644 --- a/samples/PhysicalDeviceQueueFamilyProperties/CMakeLists.txt +++ b/samples/PhysicalDeviceQueueFamilyProperties/CMakeLists.txt @@ -34,5 +34,4 @@ add_executable(PhysicalDeviceQueueFamilyProperties ) set_target_properties(PhysicalDeviceQueueFamilyProperties PROPERTIES FOLDER "Samples") -target_link_libraries(PhysicalDeviceQueueFamilyProperties PUBLIC "$ENV{VULKAN_SDK}/Lib/vulkan-1.lib" -) +target_compile_definitions(PhysicalDeviceQueueFamilyProperties PUBLIC VULKAN_HPP_DISPATCH_LOADER_DYNAMIC=1) diff --git a/samples/PipelineCache/CMakeLists.txt b/samples/PipelineCache/CMakeLists.txt index d80eb92..624ae0a 100644 --- a/samples/PipelineCache/CMakeLists.txt +++ b/samples/PipelineCache/CMakeLists.txt @@ -40,5 +40,6 @@ add_executable(PipelineCache ) set_target_properties(PipelineCache PROPERTIES FOLDER "Samples") +target_compile_definitions(PipelineCache PUBLIC VULKAN_HPP_DISPATCH_LOADER_DYNAMIC=1) target_include_directories(PipelineCache PUBLIC ${CMAKE_SOURCE_DIR}/glslang) -target_link_libraries(PipelineCache PUBLIC glslang SPIRV "${Vulkan_LIBRARIES}") +target_link_libraries(PipelineCache PUBLIC glslang SPIRV) diff --git a/samples/PipelineDerivative/CMakeLists.txt b/samples/PipelineDerivative/CMakeLists.txt index 0efbee9..9a5f984 100644 --- a/samples/PipelineDerivative/CMakeLists.txt +++ b/samples/PipelineDerivative/CMakeLists.txt @@ -40,5 +40,6 @@ add_executable(PipelineDerivative ) set_target_properties(PipelineDerivative PROPERTIES FOLDER "Samples") +target_compile_definitions(PipelineDerivative PUBLIC VULKAN_HPP_DISPATCH_LOADER_DYNAMIC=1) target_include_directories(PipelineDerivative PUBLIC ${CMAKE_SOURCE_DIR}/glslang) -target_link_libraries(PipelineDerivative PUBLIC glslang SPIRV "${Vulkan_LIBRARIES}") +target_link_libraries(PipelineDerivative PUBLIC glslang SPIRV) diff --git a/samples/PushConstants/CMakeLists.txt b/samples/PushConstants/CMakeLists.txt index 1cce82e..e18dfb2 100644 --- a/samples/PushConstants/CMakeLists.txt +++ b/samples/PushConstants/CMakeLists.txt @@ -40,5 +40,6 @@ add_executable(PushConstants ) set_target_properties(PushConstants PROPERTIES FOLDER "Samples") +target_compile_definitions(PushConstants PUBLIC VULKAN_HPP_DISPATCH_LOADER_DYNAMIC=1) target_include_directories(PushConstants PUBLIC ${CMAKE_SOURCE_DIR}/glslang) -target_link_libraries(PushConstants PUBLIC glslang SPIRV "${Vulkan_LIBRARIES}") +target_link_libraries(PushConstants PUBLIC glslang SPIRV) diff --git a/samples/PushDescriptors/CMakeLists.txt b/samples/PushDescriptors/CMakeLists.txt index 5dedb5f..4c843b5 100644 --- a/samples/PushDescriptors/CMakeLists.txt +++ b/samples/PushDescriptors/CMakeLists.txt @@ -40,5 +40,6 @@ add_executable(PushDescriptors ) set_target_properties(PushDescriptors PROPERTIES FOLDER "Samples") +target_compile_definitions(PushDescriptors PUBLIC VULKAN_HPP_DISPATCH_LOADER_DYNAMIC=1) target_include_directories(PushDescriptors PUBLIC ${CMAKE_SOURCE_DIR}/glslang) -target_link_libraries(PushDescriptors PUBLIC glslang SPIRV "${Vulkan_LIBRARIES}") +target_link_libraries(PushDescriptors PUBLIC glslang SPIRV) diff --git a/samples/RayTracing/CMakeLists.txt b/samples/RayTracing/CMakeLists.txt index 87efec9..604ab88 100644 --- a/samples/RayTracing/CMakeLists.txt +++ b/samples/RayTracing/CMakeLists.txt @@ -39,6 +39,7 @@ add_executable(RayTracing ) set_target_properties(RayTracing PROPERTIES FOLDER "Samples") +target_compile_definitions(RayTracing PUBLIC VULKAN_HPP_DISPATCH_LOADER_DYNAMIC=1) target_include_directories(RayTracing PUBLIC ${CMAKE_SOURCE_DIR}/glslang ${CMAKE_SOURCE_DIR}/glfw/include @@ -51,5 +52,4 @@ target_include_directories(RayTracing PUBLIC target_link_libraries(RayTracing PUBLIC glslang SPIRV legacy_stdio_definitions.lib ${CMAKE_SOURCE_DIR}/builds/VS2017_64/glfw/src/Debug/glfw3.lib - "${Vulkan_LIBRARIES}" ) diff --git a/samples/RayTracing/RayTracing.cpp b/samples/RayTracing/RayTracing.cpp index 4af981b..1d57910 100644 --- a/samples/RayTracing/RayTracing.cpp +++ b/samples/RayTracing/RayTracing.cpp @@ -1063,7 +1063,7 @@ int main(int /*argc*/, char** /*argv*/) // Cleanup device->waitIdle(); swapChainData.swapChain.reset(); // need to reset swapChain before destroying the surface ! - vkDestroySurfaceKHR(*instance, surface, nullptr); + VULKAN_HPP_DEFAULT_DISPATCHER.vkDestroySurfaceKHR(*instance, surface, nullptr); glfwDestroyWindow(window); glfwTerminate(); } diff --git a/samples/SecondaryCommandBuffer/CMakeLists.txt b/samples/SecondaryCommandBuffer/CMakeLists.txt index 43f473f..f22eabe 100644 --- a/samples/SecondaryCommandBuffer/CMakeLists.txt +++ b/samples/SecondaryCommandBuffer/CMakeLists.txt @@ -40,5 +40,6 @@ add_executable(SecondaryCommandBuffer ) set_target_properties(SecondaryCommandBuffer PROPERTIES FOLDER "Samples") +target_compile_definitions(SecondaryCommandBuffer PUBLIC VULKAN_HPP_DISPATCH_LOADER_DYNAMIC=1) target_include_directories(SecondaryCommandBuffer PUBLIC ${CMAKE_SOURCE_DIR}/glslang) -target_link_libraries(SecondaryCommandBuffer PUBLIC glslang SPIRV "${Vulkan_LIBRARIES}") +target_link_libraries(SecondaryCommandBuffer PUBLIC glslang SPIRV) diff --git a/samples/SeparateImageSampler/CMakeLists.txt b/samples/SeparateImageSampler/CMakeLists.txt index f9471fb..d4760bc 100644 --- a/samples/SeparateImageSampler/CMakeLists.txt +++ b/samples/SeparateImageSampler/CMakeLists.txt @@ -40,5 +40,6 @@ add_executable(SeparateImageSampler ) set_target_properties(SeparateImageSampler PROPERTIES FOLDER "Samples") +target_compile_definitions(SeparateImageSampler PUBLIC VULKAN_HPP_DISPATCH_LOADER_DYNAMIC=1) target_include_directories(SeparateImageSampler PUBLIC ${CMAKE_SOURCE_DIR}/glslang) -target_link_libraries(SeparateImageSampler PUBLIC glslang SPIRV "${Vulkan_LIBRARIES}") +target_link_libraries(SeparateImageSampler PUBLIC glslang SPIRV) diff --git a/samples/SurfaceCapabilities/CMakeLists.txt b/samples/SurfaceCapabilities/CMakeLists.txt index e028c25..019e6db 100644 --- a/samples/SurfaceCapabilities/CMakeLists.txt +++ b/samples/SurfaceCapabilities/CMakeLists.txt @@ -34,5 +34,4 @@ add_executable(SurfaceCapabilities ) set_target_properties(SurfaceCapabilities PROPERTIES FOLDER "Samples") -target_link_libraries(SurfaceCapabilities PUBLIC "$ENV{VULKAN_SDK}/Lib/vulkan-1.lib" -) +target_compile_definitions(SurfaceCapabilities PUBLIC VULKAN_HPP_DISPATCH_LOADER_DYNAMIC=1) diff --git a/samples/SurfaceFormats/CMakeLists.txt b/samples/SurfaceFormats/CMakeLists.txt index 876b4d1..c10b298 100644 --- a/samples/SurfaceFormats/CMakeLists.txt +++ b/samples/SurfaceFormats/CMakeLists.txt @@ -34,5 +34,4 @@ add_executable(SurfaceFormats ) set_target_properties(SurfaceFormats PROPERTIES FOLDER "Samples") -target_link_libraries(SurfaceFormats PUBLIC "$ENV{VULKAN_SDK}/Lib/vulkan-1.lib" -) +target_compile_definitions(SurfaceFormats PUBLIC VULKAN_HPP_DISPATCH_LOADER_DYNAMIC=1) diff --git a/samples/Template/CMakeLists.txt b/samples/Template/CMakeLists.txt index e2f5263..5b0acc1 100644 --- a/samples/Template/CMakeLists.txt +++ b/samples/Template/CMakeLists.txt @@ -40,5 +40,6 @@ add_executable(Template ) set_target_properties(Template PROPERTIES FOLDER "Samples") +target_compile_definitions(Template PUBLIC VULKAN_HPP_DISPATCH_LOADER_DYNAMIC=1) target_include_directories(Template PUBLIC ${CMAKE_SOURCE_DIR}/glslang) -target_link_libraries(Template PUBLIC glslang SPIRV "${Vulkan_LIBRARIES}") +target_link_libraries(Template PUBLIC glslang SPIRV) diff --git a/samples/TexelBuffer/CMakeLists.txt b/samples/TexelBuffer/CMakeLists.txt index d01971a..77b5e6f 100644 --- a/samples/TexelBuffer/CMakeLists.txt +++ b/samples/TexelBuffer/CMakeLists.txt @@ -40,5 +40,6 @@ add_executable(TexelBuffer ) set_target_properties(TexelBuffer PROPERTIES FOLDER "Samples") +target_compile_definitions(TexelBuffer PUBLIC VULKAN_HPP_DISPATCH_LOADER_DYNAMIC=1) target_include_directories(TexelBuffer PUBLIC ${CMAKE_SOURCE_DIR}/glslang) -target_link_libraries(TexelBuffer PUBLIC glslang SPIRV "${Vulkan_LIBRARIES}") +target_link_libraries(TexelBuffer PUBLIC glslang SPIRV) diff --git a/vulkan/vulkan.hpp b/vulkan/vulkan.hpp index ed7aa45..4b7097c 100644 --- a/vulkan/vulkan.hpp +++ b/vulkan/vulkan.hpp @@ -66779,7 +66779,10 @@ namespace VULKAN_HPP_NAMESPACE // This interface is designed to be used for per-device function pointers in combination with a linked vulkan library. void init(VULKAN_HPP_NAMESPACE::Instance const& instance, VULKAN_HPP_NAMESPACE::Device const& device) VULKAN_HPP_NOEXCEPT { - init(static_cast(instance), ::vkGetInstanceProcAddr, static_cast(device), device ? ::vkGetDeviceProcAddr : nullptr); + static vk::DynamicLoader dl; + PFN_vkGetInstanceProcAddr getInstanceProcAddr = dl.getProcAddress("vkGetInstanceProcAddr"); + PFN_vkGetDeviceProcAddr getDeviceProcAddr = dl.getProcAddress("vkGetDeviceProcAddr"); + init(static_cast(instance), getInstanceProcAddr, static_cast(device), device ? getDeviceProcAddr : nullptr); } #endif // !defined(VK_NO_PROTOTYPES)