From f5ae29c4f5498a352fdb778097607ce1ed22e608 Mon Sep 17 00:00:00 2001 From: Mark Young Date: Mon, 3 Dec 2018 03:02:35 -0700 Subject: [PATCH] debug_utils: Fix issues discovered by @krOoze (#794) Fixing a few items discovered by @krOoze with the EXT_debug_utils extension spec language validation. Namely in two issues: Issue #789: The problem was the manual VUs should have been applied to the `vkSetDebugUtilsObjectNameEXT` command and not the general `VkDebugUtilsObjectNameInfoEXT` structure. Issue #790: Here, we needed to remove the "noautovalidity" tag on the XML and add the "optional" tag to `pObjects` and `objectCount`. --- chapters/VK_EXT_debug_utils.txt | 43 +++++++++++++++++++++++++-------- xml/vk.xml | 8 +++--- 2 files changed, 37 insertions(+), 14 deletions(-) diff --git a/chapters/VK_EXT_debug_utils.txt b/chapters/VK_EXT_debug_utils.txt index 48add891..26cdb270 100644 --- a/chapters/VK_EXT_debug_utils.txt +++ b/chapters/VK_EXT_debug_utils.txt @@ -42,6 +42,12 @@ include::../api/protos/vkSetDebugUtilsObjectNameEXT.txt[] slink:VkDebugUtilsObjectNameInfoEXT structure specifying the parameters of the name to set on the object. +.Valid Usage +**** + * pname:pNameInfo\->pname:objectType must: not be ename:VK_OBJECT_TYPE_UNKNOWN + * pname:pNameInfo\->pname:objectHandle must: not be dlink:VK_NULL_HANDLE +**** + include::../validity/protos/vkSetDebugUtilsObjectNameEXT.txt[] -- @@ -68,13 +74,14 @@ removed. .Valid Usage **** - * [[VUID-VkDebugUtilsObjectNameInfoEXT-objectType-01905]] - pname:objectType must: not be ename:VK_OBJECT_TYPE_UNKNOWN - * [[VUID-VkDebugUtilsObjectNameInfoEXT-objectHandle-01906]] + * If pname:objectType is ename:VK_OBJECT_TYPE_UNKNOWN, pname:objectHandle must: not be dlink:VK_NULL_HANDLE - * [[VUID-VkDebugUtilsObjectNameInfoEXT-objectHandle-01907]] - pname:objectHandle must: be a Vulkan object of the type associated with - pname:objectType as defined in <>. + * If pname:objectType is not ename:VK_OBJECT_TYPE_UNKNOWN, + pname:objectHandle must: be dlink:VK_NULL_HANDLE or + a valid Vulkan handle of the type associated with pname:objectType + as defined in the + <> + table **** include::../validity/structs/VkDebugUtilsObjectNameInfoEXT.txt[] @@ -134,11 +141,11 @@ be used by that implementation. **** * [[VUID-VkDebugUtilsObjectTagInfoEXT-objectType-01908]] pname:objectType must: not be ename:VK_OBJECT_TYPE_UNKNOWN - * [[VUID-VkDebugUtilsObjectTagInfoEXT-objectHandle-01909]] - pname:objectHandle must: not be dlink:VK_NULL_HANDLE * [[VUID-VkDebugUtilsObjectTagInfoEXT-objectHandle-01910]] - pname:objectHandle must: be a Vulkan object of the type associated with - pname:objectType as defined in <>. + pname:objectHandle must: be a valid Vulkan handle of the type associated + with pname:objectType as defined in the + <> + table **** include::../validity/structs/VkDebugUtilsObjectTagInfoEXT.txt[] @@ -378,6 +385,10 @@ include::../api/protos/vkCreateDebugUtilsMessengerEXT.txt[] include::../validity/protos/vkCreateDebugUtilsMessengerEXT.txt[] +The application must: ensure that flink:vkCreateDebugUtilsMessengerEXT is not +executed in parallel with any Vulkan command that is also called with +pname:instance or child of pname:instance as the dispatchable argument. + -- [open,refpage='VkDebugUtilsMessengerCreateInfoEXT',desc='Structure specifying parameters of a newly created debug messenger',type='structs'] @@ -664,8 +675,16 @@ The parameters are passed on to the callback in addition to the pname:pUserData value that was defined at the time the messenger was registered. +.Valid Usage +**** + * pname:objectType member of each element of + pname:pCallbackData\->pname:pObjects must: not be + ename:VK_OBJECT_TYPE_UNKNOWN +**** + include::../validity/protos/vkSubmitDebugUtilsMessageEXT.txt[] + -- [open,refpage='vkDestroyDebugUtilsMessengerEXT',desc='Destroy a debug messenger object',type='protos'] @@ -696,5 +715,9 @@ include::../api/protos/vkDestroyDebugUtilsMessengerEXT.txt[] include::../validity/protos/vkDestroyDebugUtilsMessengerEXT.txt[] +The application must: ensure that flink:vkDestroyDebugUtilsMessengerEXT is not +executed in parallel with any Vulkan command that is also called with +pname:instance or child of pname:instance as the dispatchable argument. + -- diff --git a/xml/vk.xml b/xml/vk.xml index 86e0589f..acf7b76b 100644 --- a/xml/vk.xml +++ b/xml/vk.xml @@ -2988,11 +2988,11 @@ server. int32_t messageIdNumber const char* pMessage uint32_t queueLabelCount - VkDebugUtilsLabelEXT* pQueueLabels + const VkDebugUtilsLabelEXT* pQueueLabels uint32_t cmdBufLabelCount - VkDebugUtilsLabelEXT* pCmdBufLabels - uint32_t objectCount - VkDebugUtilsObjectNameInfoEXT* pObjects + const VkDebugUtilsLabelEXT* pCmdBufLabels + uint32_t objectCount + const VkDebugUtilsObjectNameInfoEXT* pObjects VkStructureType sType