From: Mike Schuchardt Date: Tue, 21 Mar 2017 22:30:37 +0000 (-0600) Subject: layers: Expose core validation extension info X-Git-Tag: upstream/1.1.92~1392 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=b32e7b50376440417c4a7e59a895e052504b561e;p=platform%2Fupstream%2FVulkan-Tools.git layers: Expose core validation extension info Change-Id: I94d854ad59d42ea4a0de0b76c7fb3829baf52abb --- diff --git a/layers/core_validation.cpp b/layers/core_validation.cpp index 1d4e731..f5928e4 100644 --- a/layers/core_validation.cpp +++ b/layers/core_validation.cpp @@ -102,16 +102,6 @@ static const VkDeviceMemory MEMORY_UNBOUND = VkDeviceMemory(~((uint64_t)(0)) - 1 // by the extent of a swapchain targeting the surface. static const uint32_t kSurfaceSizeFromSwapchain = 0xFFFFFFFFu; -struct devExts { - bool wsi_enabled; - bool wsi_display_swapchain_enabled; - bool nv_glsl_shader_enabled; - bool khr_descriptor_update_template_enabled; - bool khr_shader_draw_parameters_enabled; - unordered_map> swapchainMap; - unordered_map imageToSwapchainMap; -}; - // fwd decls struct shader_module; @@ -3851,6 +3841,7 @@ static void checkDeviceRegisterExtensions(const VkDeviceCreateInfo *pCreateInfo, dev_data->device_extensions.nv_glsl_shader_enabled = false; dev_data->device_extensions.khr_descriptor_update_template_enabled = false; dev_data->device_extensions.khr_shader_draw_parameters_enabled = false; + dev_data->device_extensions.khr_maintenance1_enabled = false; for (i = 0; i < pCreateInfo->enabledExtensionCount; i++) { if (strcmp(pCreateInfo->ppEnabledExtensionNames[i], VK_KHR_SWAPCHAIN_EXTENSION_NAME) == 0) { @@ -3868,6 +3859,9 @@ static void checkDeviceRegisterExtensions(const VkDeviceCreateInfo *pCreateInfo, if (strcmp(pCreateInfo->ppEnabledExtensionNames[i], VK_KHR_SHADER_DRAW_PARAMETERS_EXTENSION_NAME) == 0) { dev_data->device_extensions.khr_shader_draw_parameters_enabled = true; } + if (strcmp(pCreateInfo->ppEnabledExtensionNames[i], VK_KHR_MAINTENANCE1_EXTENSION_NAME) == 0) { + dev_data->device_extensions.khr_maintenance1_enabled = true; + } } } @@ -6186,6 +6180,8 @@ const VkPhysicalDeviceFeatures *GetEnabledFeatures(const layer_data *device_data return &device_data->enabled_features; } +const devExts *GetDeviceExtensions(const layer_data *device_data) { return &device_data->device_extensions; } + VKAPI_ATTR VkResult VKAPI_CALL CreateImage(VkDevice device, const VkImageCreateInfo *pCreateInfo, const VkAllocationCallbacks *pAllocator, VkImage *pImage) { VkResult result = VK_ERROR_VALIDATION_FAILED_EXT; diff --git a/layers/core_validation_types.h b/layers/core_validation_types.h index f80a585..b55e4f8 100644 --- a/layers/core_validation_types.h +++ b/layers/core_validation_types.h @@ -783,6 +783,18 @@ public: // Fwd declarations of layer_data and helpers to look-up/validate state from layer_data maps namespace core_validation { struct layer_data; + +struct devExts { + bool wsi_enabled; + bool wsi_display_swapchain_enabled; + bool nv_glsl_shader_enabled; + bool khr_descriptor_update_template_enabled; + bool khr_shader_draw_parameters_enabled; + bool khr_maintenance1_enabled; + std::unordered_map> swapchainMap; + std::unordered_map imageToSwapchainMap; +}; + cvdescriptorset::DescriptorSet *GetSetNode(const layer_data *, VkDescriptorSet); cvdescriptorset::DescriptorSetLayout const *GetDescriptorSetLayout(layer_data const *, VkDescriptorSetLayout); DESCRIPTOR_POOL_STATE *GetDescriptorPoolState(const layer_data *, const VkDescriptorPool); @@ -847,6 +859,7 @@ std::unordered_map *GetImageLayoutMap(l std::unordered_map> *GetBufferMap(layer_data *device_data); std::unordered_map> *GetBufferViewMap(layer_data *device_data); std::unordered_map> *GetImageViewMap(layer_data *device_data); +const devExts *GetDeviceExtensions(const layer_data *); } #endif // CORE_VALIDATION_TYPES_H_