aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Schuchardt <mikes@lunarg.com>2017-03-21 16:30:37 -0600
committerMark Lobodzinski <mark@lunarg.com>2017-03-27 14:36:45 -0600
commitb32e7b50376440417c4a7e59a895e052504b561e (patch)
tree57c87aca7f103ae9797a390870cdcfe15923fbd5
parent029efe9b7dc0b10ce0fa6109b82d90000dae9089 (diff)
downloadusermoji-b32e7b50376440417c4a7e59a895e052504b561e.tar.xz
layers: Expose core validation extension info
Change-Id: I94d854ad59d42ea4a0de0b76c7fb3829baf52abb
-rw-r--r--layers/core_validation.cpp16
-rw-r--r--layers/core_validation_types.h13
2 files changed, 19 insertions, 10 deletions
diff --git a/layers/core_validation.cpp b/layers/core_validation.cpp
index 1d4e7315..f5928e48 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<VkSwapchainKHR, unique_ptr<SWAPCHAIN_NODE>> swapchainMap;
- unordered_map<VkImage, VkSwapchainKHR> 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 f80a5853..b55e4f86 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<VkSwapchainKHR, std::unique_ptr<SWAPCHAIN_NODE>> swapchainMap;
+ std::unordered_map<VkImage, VkSwapchainKHR> 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<ImageSubresourcePair, IMAGE_LAYOUT_NODE> *GetImageLayoutMap(l
std::unordered_map<VkBuffer, std::unique_ptr<BUFFER_STATE>> *GetBufferMap(layer_data *device_data);
std::unordered_map<VkBufferView, std::unique_ptr<BUFFER_VIEW_STATE>> *GetBufferViewMap(layer_data *device_data);
std::unordered_map<VkImageView, std::unique_ptr<IMAGE_VIEW_STATE>> *GetImageViewMap(layer_data *device_data);
+const devExts *GetDeviceExtensions(const layer_data *);
}
#endif // CORE_VALIDATION_TYPES_H_