diff -Naur Vulkan-LoaderAndValidationLayers-sdk-1.0.46.0-orig/CMakeLists.txt Vulkan-LoaderAndValidationLayers-sdk-1.0.46.0/CMakeLists.txt --- Vulkan-LoaderAndValidationLayers-sdk-1.0.46.0-orig/CMakeLists.txt 2017-04-05 00:36:39.000000000 +0300 +++ Vulkan-LoaderAndValidationLayers-sdk-1.0.46.0/CMakeLists.txt 2017-06-29 08:34:52.393725000 +0300 @@ -61,6 +61,16 @@ endif() endif() +if (WIN32) + if(${CMAKE_SIZEOF_VOID_P} EQUAL 8) + set(DEFFILE_SUFFIX "") + set(WINBITS Win64) + else() + set(DEFFILE_SUFFIX "-x86") + set(WINBITS Win32) + endif() +endif() + if(WIN32) # Treat warnings as errors add_compile_options("$<$:/WX>") diff -Naur Vulkan-LoaderAndValidationLayers-sdk-1.0.46.0-orig/loader/CMakeLists.txt Vulkan-LoaderAndValidationLayers-sdk-1.0.46.0/loader/CMakeLists.txt --- Vulkan-LoaderAndValidationLayers-sdk-1.0.46.0-orig/loader/CMakeLists.txt 2017-06-29 08:19:36.448133100 +0300 +++ Vulkan-LoaderAndValidationLayers-sdk-1.0.46.0/loader/CMakeLists.txt 2017-06-29 08:42:41.322355600 +0300 @@ -137,6 +137,7 @@ set_target_properties(loader_gen_files PROPERTIES FOLDER ${LOADER_HELPER_FOLDER}) if(WIN32) + if(MSVC) # Use static MSVCRT libraries foreach(configuration in @@ -156,6 +157,7 @@ "${${configuration}}") endif() endforeach() + endif() if(ENABLE_WIN10_ONECORE) # Note: When linking your app or driver to OneCore.lib, be sure to remove any links to non-umbrella libs (such as @@ -190,24 +192,32 @@ $ $ $ - ${CMAKE_CURRENT_SOURCE_DIR}/vulkan-1.def + ${CMAKE_CURRENT_SOURCE_DIR}/vulkan-1${DEFFILE_SUFFIX}.def ${CMAKE_CURRENT_SOURCE_DIR}/loader.rc) + if(MSVC) set_target_properties(vulkan PROPERTIES LINK_FLAGS_DEBUG "/ignore:4098" OUTPUT_NAME vulkan-1) + else() + set_target_properties(vulkan + PROPERTIES + LIBRARY_OUTPUT_NAME vulkan + RUNTIME_OUTPUT_NAME vulkan-1 + ARCHIVE_OUTPUT_NAME vulkan) + endif() target_link_libraries(vulkan Vulkan::Headers) else() add_library(vulkan STATIC $ $ $) set_target_properties(vulkan PROPERTIES OUTPUT_NAME VKstatic.1) endif() - if(ENABLE_WIN10_ONECORE) + if(ENABLE_WIN10_ONECORE AND MSVC) target_link_libraries(vulkan OneCoreUAP.lib LIBCMT.LIB LIBCMTD.LIB LIBVCRUNTIME.LIB LIBUCRT.LIB) set_target_properties(vulkan PROPERTIES LINK_FLAGS "/NODEFAULTLIB") else() diff -Naur Vulkan-LoaderAndValidationLayers-sdk-1.0.46.0-orig/loader/vulkan-1-x86.def Vulkan-LoaderAndValidationLayers-sdk-1.0.46.0/loader/vulkan-1-x86.def --- Vulkan-LoaderAndValidationLayers-sdk-1.0.46.0-orig/loader/vulkan-1-x86.def 1970-01-01 03:00:00.000000000 +0300 +++ Vulkan-LoaderAndValidationLayers-sdk-1.0.46.0/loader/vulkan-1-x86.def 2017-04-05 00:36:39.000000000 +0300 @@ -0,0 +1,221 @@ + +;;;; Begin Copyright Notice ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; Copyright (c) 2015-2017 The Khronos Group Inc. +; Copyright (c) 2015-2017 Valve Corporation +; Copyright (c) 2015-2017 LunarG, Inc. +; +; Licensed under the Apache License, Version 2.0 (the "License"); +; you may not use this file except in compliance with the License. +; You may obtain a copy of the License at +; +; http://www.apache.org/licenses/LICENSE-2.0 +; +; Unless required by applicable law or agreed to in writing, software +; distributed under the License is distributed on an "AS IS" BASIS, +; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +; See the License for the specific language governing permissions and +; limitations under the License. +; +; Author: Courtney Goeltzenleuchter +; +;;;; End Copyright Notice ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +LIBRARY vulkan-1.dll +EXPORTS + vkCreateInstance@12 + vkDestroyInstance@8 + vkEnumeratePhysicalDevices@12 + vkGetPhysicalDeviceFeatures@8 + vkGetPhysicalDeviceFormatProperties@12 + vkGetPhysicalDeviceImageFormatProperties@28 + vkGetPhysicalDeviceProperties@8 + vkGetPhysicalDeviceQueueFamilyProperties@12 + vkGetPhysicalDeviceMemoryProperties@8 + vkGetInstanceProcAddr@8 + vkGetDeviceProcAddr@8 + vkCreateDevice@16 + vkDestroyDevice@8 + vkEnumerateInstanceExtensionProperties@12 + vkEnumerateDeviceExtensionProperties@16 + vkEnumerateInstanceLayerProperties@8 + vkEnumerateDeviceLayerProperties@12 + vkGetDeviceQueue@16 + vkQueueSubmit@20 + vkQueueWaitIdle@4 + vkDeviceWaitIdle@4 + vkAllocateMemory@16 + vkFreeMemory@16 + vkMapMemory@36 + vkUnmapMemory@12 + vkFlushMappedMemoryRanges@12 + vkInvalidateMappedMemoryRanges@12 + vkGetDeviceMemoryCommitment@16 + vkBindBufferMemory@28 + vkBindImageMemory@28 + vkGetBufferMemoryRequirements@16 + vkGetImageMemoryRequirements@16 + vkGetImageSparseMemoryRequirements@20 + vkGetPhysicalDeviceSparseImageFormatProperties@32 + vkQueueBindSparse@20 + vkCreateFence@16 + vkDestroyFence@16 + vkResetFences@12 + vkGetFenceStatus@12 + vkWaitForFences@24 + vkCreateSemaphore@16 + vkDestroySemaphore@16 + vkCreateEvent@16 + vkDestroyEvent@16 + vkGetEventStatus@12 + vkSetEvent@12 + vkResetEvent@12 + vkCreateQueryPool@16 + vkDestroyQueryPool@16 + vkGetQueryPoolResults@40 + vkCreateBuffer@16 + vkDestroyBuffer@16 + vkCreateBufferView@16 + vkDestroyBufferView@16 + vkCreateImage@16 + vkDestroyImage@16 + vkGetImageSubresourceLayout@20 + vkCreateImageView@16 + vkDestroyImageView@16 + vkCreateShaderModule@16 + vkDestroyShaderModule@16 + vkCreatePipelineCache@16 + vkDestroyPipelineCache@16 + vkGetPipelineCacheData@20 + vkMergePipelineCaches@20 + vkCreateGraphicsPipelines@28 + vkCreateComputePipelines@28 + vkDestroyPipeline@16 + vkCreatePipelineLayout@16 + vkDestroyPipelineLayout@16 + vkCreateSampler@16 + vkDestroySampler@16 + vkCreateDescriptorSetLayout@16 + vkDestroyDescriptorSetLayout@16 + vkCreateDescriptorPool@16 + vkDestroyDescriptorPool@16 + vkResetDescriptorPool@16 + vkAllocateDescriptorSets@12 + vkFreeDescriptorSets@20 + vkUpdateDescriptorSets@20 + vkCreateFramebuffer@16 + vkDestroyFramebuffer@16 + vkCreateRenderPass@16 + vkDestroyRenderPass@16 + vkGetRenderAreaGranularity@16 + vkCreateCommandPool@16 + vkDestroyCommandPool@16 + vkResetCommandPool@16 + vkAllocateCommandBuffers@12 + vkFreeCommandBuffers@20 + vkBeginCommandBuffer@8 + vkEndCommandBuffer@4 + vkResetCommandBuffer@8 + vkCmdBindPipeline@16 + vkCmdSetViewport@16 + vkCmdSetScissor@16 + vkCmdSetLineWidth@8 + vkCmdSetDepthBias@16 + vkCmdSetBlendConstants@8 + vkCmdSetDepthBounds@12 + vkCmdSetStencilCompareMask@12 + vkCmdSetStencilWriteMask@12 + vkCmdSetStencilReference@12 + vkCmdBindDescriptorSets@36 + vkCmdBindIndexBuffer@24 + vkCmdBindVertexBuffers@20 + vkCmdDraw@20 + vkCmdDrawIndexed@24 + vkCmdDrawIndirect@28 + vkCmdDrawIndexedIndirect@28 + vkCmdDispatch@16 + vkCmdDispatchIndirect@20 + vkCmdCopyBuffer@28 + vkCmdCopyImage@36 + vkCmdBlitImage@40 + vkCmdCopyBufferToImage@32 + vkCmdCopyImageToBuffer@32 + vkCmdUpdateBuffer@32 + vkCmdFillBuffer@32 + vkCmdClearColorImage@28 + vkCmdClearDepthStencilImage@28 + vkCmdClearAttachments@20 + vkCmdResolveImage@36 + vkCmdSetEvent@16 + vkCmdResetEvent@16 + vkCmdWaitEvents@44 + vkCmdPipelineBarrier@40 + vkCmdBeginQuery@20 + vkCmdEndQuery@16 + vkCmdResetQueryPool@20 + vkCmdWriteTimestamp@20 + vkCmdCopyQueryPoolResults@48 + vkCmdPushConstants@28 + vkCmdBeginRenderPass@12 + vkCmdNextSubpass@8 + vkCmdEndRenderPass@4 + vkCmdExecuteCommands@12 + vkDestroySurfaceKHR@16 + vkGetPhysicalDeviceSurfaceSupportKHR@20 + vkGetPhysicalDeviceSurfaceCapabilitiesKHR@16 + vkGetPhysicalDeviceSurfaceFormatsKHR@20 + vkGetPhysicalDeviceSurfacePresentModesKHR@20 + vkCreateSwapchainKHR@16 + vkDestroySwapchainKHR@16 + vkGetSwapchainImagesKHR@20 + vkAcquireNextImageKHR@40 + vkQueuePresentKHR@8 + vkGetPhysicalDeviceDisplayPropertiesKHR@12 + vkGetPhysicalDeviceDisplayPlanePropertiesKHR@12 + vkGetDisplayPlaneSupportedDisplaysKHR@16 + vkGetDisplayModePropertiesKHR@20 + vkCreateDisplayModeKHR@24 + vkGetDisplayPlaneCapabilitiesKHR@20 + vkCreateDisplayPlaneSurfaceKHR@16 + vkCreateSharedSwapchainsKHR@20 + vkCreateWin32SurfaceKHR@16 + vkGetPhysicalDeviceWin32PresentationSupportKHR@8 + + vkEnumerateInstanceVersion@4 + vkEnumeratePhysicalDeviceGroups@12 + vkGetPhysicalDeviceFeatures2@8 + vkGetPhysicalDeviceProperties2@8 + vkGetPhysicalDeviceFormatProperties2@12 + vkGetPhysicalDeviceQueueFamilyProperties2@12 + vkGetPhysicalDeviceMemoryProperties2@8 + vkGetPhysicalDeviceSparseImageFormatProperties2@16 + vkGetPhysicalDeviceExternalBufferProperties@12 + vkGetPhysicalDeviceExternalSemaphoreProperties@12 + vkGetPhysicalDeviceExternalFenceProperties@12 + vkBindBufferMemory2@12 + vkBindImageMemory2@12 + vkGetDeviceGroupPeerMemoryFeatures@20 + vkCmdSetDeviceMask@8 + vkCmdDispatchBase@28 + vkGetImageMemoryRequirements2@12 + vkGetBufferMemoryRequirements2@12 + vkTrimCommandPool@16 + vkGetDeviceQueue2@12 + vkCreateSamplerYcbcrConversion@16 + vkDestroySamplerYcbcrConversion@16 + vkGetDescriptorSetLayoutSupport@12 + vkGetDeviceGroupPresentCapabilitiesKHR@8 + vkGetDeviceGroupSurfacePresentModesKHR@16 + vkGetPhysicalDevicePresentRectanglesKHR@20 + vkAcquireNextImage2KHR@12 + vkCreateDescriptorUpdateTemplate@16 + vkDestroyDescriptorUpdateTemplate@16 + vkUpdateDescriptorSetWithTemplate@24 + + vkGetPhysicalDeviceDisplayProperties2KHR@12 + vkGetPhysicalDeviceDisplayPlaneProperties2KHR@12 + vkGetDisplayModeProperties2KHR@20 + vkGetDisplayPlaneCapabilities2KHR@12 + + vkGetImageSparseMemoryRequirements2@16 + vkGetPhysicalDeviceImageFormatProperties2@12 diff -Naur Vulkan-LoaderAndValidationLayers-sdk-1.0.46.0-orig/tests/layers/CMakeLists.txt Vulkan-LoaderAndValidationLayers-sdk-1.0.46.0/tests/layers/CMakeLists.txt --- Vulkan-LoaderAndValidationLayers-sdk-1.1.73.0-orig/tests/layers/CMakeLists.txt 2017-04-05 00:36:39.000000000 +0300 +++ Vulkan-LoaderAndValidationLayers-sdk-1.1.73.0/tests/layers/CMakeLists.txt 2017-06-29 08:39:07.115088000 +0300 @@ -19,12 +19,12 @@ if(WIN32) macro(AddVkLayer target) - file(TO_NATIVE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/VkLayer_${target}.def DEF_FILE) + file(TO_NATIVE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/VkLayer_${target}${DEFFILE_SUFFIX}.def DEF_FILE) add_custom_target(copy-${target}-def-file ALL - COMMAND ${CMAKE_COMMAND} -E copy_if_different ${DEF_FILE} VkLayer_${target}.def + COMMAND ${CMAKE_COMMAND} -E copy_if_different ${DEF_FILE} VkLayer_${target}${DEFFILE_SUFFIX}.def VERBATIM) set_target_properties(copy-${target}-def-file PROPERTIES FOLDER ${LOADER_HELPER_FOLDER}) - add_library(VkLayer_${target} SHARED ${ARGN} VkLayer_${target}.def) + add_library(VkLayer_${target} SHARED ${ARGN} VkLayer_${target}${DEFFILE_SUFFIX}.def) target_compile_options(VkLayer_${target} PUBLIC ${MSVC_LOADER_COMPILE_OPTIONS}) add_dependencies(VkLayer_${target} generate_helper_files) endmacro() diff -Naur Vulkan-LoaderAndValidationLayers-sdk-1.0.46.0-orig/tests/layers/VkLayer_test-x86.def Vulkan-LoaderAndValidationLayers-sdk-1.0.46.0/tests/layers/VkLayer_test-x86.def --- Vulkan-LoaderAndValidationLayers-sdk-1.0.46.0-orig/tests/layers/VkLayer_test-x86.def 1970-01-01 03:00:00.000000000 +0300 +++ Vulkan-LoaderAndValidationLayers-sdk-1.0.46.0/tests/layers/VkLayer_test-x86.def 2017-04-05 00:36:39.000000000 +0300 @@ -0,0 +1,32 @@ +; THIS FILE IS GENERATED. DO NOT EDIT. + +;;;; Begin Copyright Notice ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; Vulkan +; +; Copyright (c) 2015-2016 The Khronos Group Inc. +; Copyright (c) 2015-2016 Valve Corporation +; Copyright (c) 2015-2016 LunarG, Inc. +; +; Licensed under the Apache License, Version 2.0 (the "License"); +; you may not use this file except in compliance with the License. +; You may obtain a copy of the License at +; +; http://www.apache.org/licenses/LICENSE-2.0 +; +; Unless required by applicable law or agreed to in writing, software +; distributed under the License is distributed on an "AS IS" BASIS, +; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +; See the License for the specific language governing permissions and +; limitations under the License. +; +; Author: Courtney Goeltzenleuchter +;;;; End Copyright Notice ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +; The following is required on Windows, for exporting symbols from the DLL + +LIBRARY VkLayer_test +EXPORTS +vkGetInstanceProcAddr@8 +vkGetDeviceProcAddr@8 +vkEnumerateInstanceLayerProperties@8 +vkEnumerateInstanceExtensionProperties@12 diff -Naur Vulkan-LoaderAndValidationLayers-sdk-1.0.46.0-orig/tests/layers/VkLayer_wrap_objects-x86.def Vulkan-LoaderAndValidationLayers-sdk-1.0.46.0/tests/layers/VkLayer_wrap_objects-x86.def --- Vulkan-LoaderAndValidationLayers-sdk-1.0.46.0-orig/tests/layers/VkLayer_wrap_objects-x86.def 1970-01-01 03:00:00.000000000 +0300 +++ Vulkan-LoaderAndValidationLayers-sdk-1.0.46.0/tests/layers/VkLayer_wrap_objects-x86.def 2017-04-05 00:36:39.000000000 +0300 @@ -0,0 +1,32 @@ +; THIS FILE IS GENERATED. DO NOT EDIT. + +;;;; Begin Copyright Notice ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; Vulkan +; +; Copyright (c) 2015-2016 The Khronos Group Inc. +; Copyright (c) 2015-2016 Valve Corporation +; Copyright (c) 2015-2016 LunarG, Inc. +; +; Licensed under the Apache License, Version 2.0 (the "License"); +; you may not use this file except in compliance with the License. +; You may obtain a copy of the License at +; +; http://www.apache.org/licenses/LICENSE-2.0 +; +; Unless required by applicable law or agreed to in writing, software +; distributed under the License is distributed on an "AS IS" BASIS, +; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +; See the License for the specific language governing permissions and +; limitations under the License. +; +; Author: Courtney Goeltzenleuchter +;;;; End Copyright Notice ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +; The following is required on Windows, for exporting symbols from the DLL + +LIBRARY VkLayer_wrap_objects +EXPORTS +vkGetInstanceProcAddr@8 +vkGetDeviceProcAddr@8 +vkEnumerateInstanceLayerProperties@8 +vkEnumerateInstanceExtensionProperties@12