// 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;
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) {
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;
+ }
}
}
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;
// 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);
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_