From b7f1f248e160f91a251a9089c893ebc7b83fc43a Mon Sep 17 00:00:00 2001 From: Mark Lobodzinski Date: Thu, 26 Nov 2015 10:59:58 -0700 Subject: wsi: Various fixes and Windows build issues --- CMakeLists.txt | 4 +++- layers/object_track.h | 12 +++++++++- layers/swapchain.cpp | 1 + loader/vk_loader_platform.h | 1 - vk-layer-generate.py | 53 ++++++++++++++++++++++++++++++--------------- 5 files changed, 51 insertions(+), 20 deletions(-) mode change 100644 => 100755 CMakeLists.txt diff --git a/CMakeLists.txt b/CMakeLists.txt old mode 100644 new mode 100755 index b3234f28..9510e31d --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -5,12 +5,14 @@ cmake_minimum_required(VERSION 2.8.11) project (VULKAN) # set (CMAKE_VERBOSE_MAKEFILE 1) + + # The MAJOR number of the version we're building, used in naming # vulkan-.dll (and other files). set(MAJOR "0") if(WIN32) - add_definitions(-DVK_USE_PLATFORM_WIN32_KHR) + add_definitions(-DVK_USE_PLATFORM_WIN32_KHR -DWIN32_LEAN_AND_MEAN) else() add_definitions(-DVK_USE_PLATFORM_XCB_KHR) endif() diff --git a/layers/object_track.h b/layers/object_track.h index ad9a44a7..43089178 100644 --- a/layers/object_track.h +++ b/layers/object_track.h @@ -407,7 +407,7 @@ initObjectTracker( { option_str = getLayerOption("ObjectTrackerLogFilename"); log_output = getLayerLogOutput(option_str, "ObjectTracker"); - layer_create_msg_callback(my_data->report_data, report_flags, log_callback, (void *) log_output, &my_data->logging_callback); + layer_create_msg_callback(my_data->report_data, report_flags, log_callback, (void *) log_output, &(my_data->logging_callback)); } if (!objLockInitialized) @@ -562,6 +562,16 @@ static void create_physical_device(VkInstance dispatchable_object, VkPhysicalDev numTotalObjs++; } +static void create_surface_khr(VkInstance instance, VkSurfaceKHR surface, VkDbgObjectType objType) +{ + // TODO: Add tracking of surface objects +} + +static void destroy_surface_khr(VkInstance instance, VkSurfaceKHR surface) +{ + // TODO: Add tracking of surface objects +} + static void alloc_command_buffer(VkDevice device, VkCommandPool commandPool, VkCommandBuffer vkObj, VkDbgObjectType objType) { log_msg(mdd(device), VK_DBG_REPORT_INFO_BIT, objType, reinterpret_cast(vkObj), 0, OBJTRACK_NONE, "OBJTRACK", diff --git a/layers/swapchain.cpp b/layers/swapchain.cpp index 0bc80f19..9348f7f7 100644 --- a/layers/swapchain.cpp +++ b/layers/swapchain.cpp @@ -26,6 +26,7 @@ #include #include +#include #include "swapchain.h" #include "vk_layer_extension_utils.h" diff --git a/loader/vk_loader_platform.h b/loader/vk_loader_platform.h index 45fe4290..257fdf2f 100644 --- a/loader/vk_loader_platform.h +++ b/loader/vk_loader_platform.h @@ -31,7 +31,6 @@ #if defined(_WIN32) // WinSock2.h must be included *BEFORE* windows.h -#define WIN32_LEAN_AND_MEAN #include #endif // _WIN32 diff --git a/vk-layer-generate.py b/vk-layer-generate.py index 0827704c..f38712a2 100755 --- a/vk-layer-generate.py +++ b/vk-layer-generate.py @@ -39,7 +39,7 @@ from source_line_info import sourcelineinfo from collections import defaultdict def proto_is_global(proto): - if proto.params[0].ty == "VkInstance" or proto.params[0].ty == "VkPhysicalDevice" or proto.name == "CreateInstance" or proto.name == "EnumerateInstanceLayerProperties" or proto.name == "EnumerateInstanceExtensionProperties" or proto.name == "EnumerateDeviceLayerProperties" or proto.name == "EnumerateDeviceExtensionProperties" or proto.name == "CreateXcbSurfaceKHR" or proto.name == "vkGetPhysicalDeviceXcbPresentationSupportKHR": + if proto.params[0].ty == "VkInstance" or proto.params[0].ty == "VkPhysicalDevice" or proto.name == "CreateInstance" or proto.name == "EnumerateInstanceLayerProperties" or proto.name == "EnumerateInstanceExtensionProperties" or proto.name == "EnumerateDeviceLayerProperties" or proto.name == "EnumerateDeviceExtensionProperties" or proto.name == "CreateXcbSurfaceKHR" or proto.name == "vkGetPhysicalDeviceXcbPresentationSupportKHR" or proto.name == "CreateWin32SurfaceKHR" or proto.name == "vkGetPhysicalDeviceWin32PresentationSupportKHR": return True else: return False @@ -1170,13 +1170,22 @@ class APIDumpSubcommand(Subcommand): def generate_body(self): self.layer_name = "APIDump" - instance_extensions=[('wsi_enabled', - ['vkGetPhysicalDeviceSurfaceSupportKHR', - 'vkGetPhysicalDeviceSurfaceCapabilitiesKHR', - 'vkGetPhysicalDeviceSurfaceFormatsKHR', - 'vkGetPhysicalDeviceSurfacePresentModesKHR', - 'vkCreateXcbSurfaceKHR', - 'vkGetPhysicalDeviceXcbPresentationSupportKHR'])] + if sys.platform == 'win32': + instance_extensions=[('wsi_enabled', + ['vkGetPhysicalDeviceSurfaceSupportKHR', + 'vkGetPhysicalDeviceSurfaceCapabilitiesKHR', + 'vkGetPhysicalDeviceSurfaceFormatsKHR', + 'vkGetPhysicalDeviceSurfacePresentModesKHR', + 'vkCreateWin32SurfaceKHR', + 'vkGetPhysicalDeviceWin32PresentationSupportKHR'])] + else: + instance_extensions=[('wsi_enabled', + ['vkGetPhysicalDeviceSurfaceSupportKHR', + 'vkGetPhysicalDeviceSurfaceCapabilitiesKHR', + 'vkGetPhysicalDeviceSurfaceFormatsKHR', + 'vkGetPhysicalDeviceSurfacePresentModesKHR', + 'vkCreateXcbSurfaceKHR', + 'vkGetPhysicalDeviceXcbPresentationSupportKHR'])] extensions=[('wsi_enabled', ['vkCreateSwapchainKHR', 'vkDestroySwapchainKHR', 'vkGetSwapchainImagesKHR', @@ -1601,7 +1610,7 @@ class ObjectTrackerSubcommand(Subcommand): '}' % (qual, decl, proto.c_call())) return "".join(funcs) # Temporarily prevent DestroySurface call from being generated until WSI layer support is fleshed out - elif 'DestroyInstance' in proto.name or 'DestroyDevice' in proto.name or 'SurfaceKHR' in proto.name: + elif 'DestroyInstance' in proto.name or 'DestroyDevice' in proto.name: # LUGMAL or 'SurfaceKHR' in proto.name: return "" else: if 'Create' in proto.name or 'Alloc' in proto.name: @@ -1713,14 +1722,24 @@ class ObjectTrackerSubcommand(Subcommand): ['vkCreateSwapchainKHR', 'vkDestroySwapchainKHR', 'vkGetSwapchainImagesKHR', 'vkAcquireNextImageKHR', 'vkQueuePresentKHR'])] - instance_extensions=[('msg_callback_get_proc_addr', []), - ('wsi_enabled', - ['vkGetPhysicalDeviceSurfaceSupportKHR', - 'vkGetPhysicalDeviceSurfaceCapabilitiesKHR', - 'vkGetPhysicalDeviceSurfaceFormatsKHR', - 'vkGetPhysicalDeviceSurfacePresentModesKHR', - 'vkCreateXcbSurfaceKHR', - 'vkGetPhysicalDeviceXcbPresentationSupportKHR'])] + if sys.platform == 'win32': + instance_extensions=[('msg_callback_get_proc_addr', []), + ('wsi_enabled', + ['vkGetPhysicalDeviceSurfaceSupportKHR', + 'vkGetPhysicalDeviceSurfaceCapabilitiesKHR', + 'vkGetPhysicalDeviceSurfaceFormatsKHR', + 'vkGetPhysicalDeviceSurfacePresentModesKHR', + 'vkCreateWin32SurfaceKHR', + 'vkGetPhysicalDeviceWin32PresentationSupportKHR'])] + else: + instance_extensions=[('msg_callback_get_proc_addr', []), + ('wsi_enabled', + ['vkGetPhysicalDeviceSurfaceSupportKHR', + 'vkGetPhysicalDeviceSurfaceCapabilitiesKHR', + 'vkGetPhysicalDeviceSurfaceFormatsKHR', + 'vkGetPhysicalDeviceSurfacePresentModesKHR', + 'vkCreateXcbSurfaceKHR', + 'vkGetPhysicalDeviceXcbPresentationSupportKHR'])] body = [self.generate_maps(), self.generate_procs(), self.generate_destroy_instance(), -- cgit v1.2.3