You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
In short, I expected a VUID to be raised when VkExternalImageFormatProperties is in the pNext chain of VkImageFormatProperties2without having VkPhysicalDeviceExternalImageFormatInfo in the pNext chain of VkPhysicalDeviceImageFormatInfo2 while calling vkGetPhysicalDeviceImageFormatProperties2().
(while this becomes obvious when reading the documentation properly, too-quickly skimming it lead at least me to believe that VkExternalMemoryProperties::compatibleHandleTypes was going to be filled with all the handle types that the image might be imported/exported as...)
I.e. it is expected to be silently ignored (😞) when the struct is missing or its handleType set to 0?
Valid Usage IDs requested
There doesn't seem to be a VUID for this yet, because of the "will be ignored" clause above?
Additional context
Perhaps the documentation would have been easier to read if mentions of handleType were actually linking through to VkPhysicalDeviceExternalImageFormatInfo::handleType, and perhaps this struct should be mentioned in the # Name section or # C Specification, i.e. extending:
VkExternalMemoryProperties - Structure specifying external memory handle type capabilities
To something like:
VkExternalMemoryProperties - Structure specifying external memory handle type capabilities for an external handle specified in/by stype:VkPhysicalDeviceExternalImageFormatInfo
After all VkPhysicalDeviceExternalImageFormatInfo mentions VkExternalImageFormatProperties (but the link is broken?), there's just no obvious link in reverse.
In short, I expected a VUID to be raised when VkExternalImageFormatProperties is in the pNext chain of VkImageFormatProperties2 without having VkPhysicalDeviceExternalImageFormatInfo in the pNext chain of VkPhysicalDeviceImageFormatInfo2 while calling vkGetPhysicalDeviceImageFormatProperties2().
@cubanismo can you take a look at this. Happy to try write a VUID, but want to confirm if this an oversight or working as expected
Also note that will behave as if VkPhysicalDeviceExternalImageFormatInfo was not present does not appear to be explicitly defined anywhere except in the same quote, where it continues to sayand VkExternalImageFormatProperties will be ignored.
Describe the situation in which you encountered the missing validation
When having
VkExternalImageFormatProperties
inVkImageFormatProperties2
and calling
vkGetPhysicalDeviceImageFormatProperties2()
, all its fields remain uninitialized.When reading the description of the contained
VkExternalMemoryProperties
structure more closely, thehandleType
referenced in the# Members
section above appears to refer toVkPhysicalDeviceExternalImageFormatInfo
: it turns out this struct must be extendingVkPhysicalDeviceImageFormatInfo2
and set to the specific handle type one wishes to import or export before its features and compatibility with other handle types are exposed.In short, I expected a VUID to be raised when
VkExternalImageFormatProperties
is in thepNext
chain ofVkImageFormatProperties2
without havingVkPhysicalDeviceExternalImageFormatInfo
in thepNext
chain ofVkPhysicalDeviceImageFormatInfo2
while callingvkGetPhysicalDeviceImageFormatProperties2()
.(while this becomes obvious when reading the documentation properly, too-quickly skimming it lead at least me to believe that
VkExternalMemoryProperties::compatibleHandleTypes
was going to be filled with all the handle types that the image might be imported/exported as...)Perhaps such validation is not possible because of the following mention in
VkPhysicalDeviceExternalImageFormatInfo
's description:I.e. it is expected to be silently ignored (😞) when the struct is missing or its
handleType
set to0
?Valid Usage IDs requested
There doesn't seem to be a VUID for this yet, because of the "will be ignored" clause above?
Additional context
Perhaps the documentation would have been easier to read if mentions of
handleType
were actually linking through toVkPhysicalDeviceExternalImageFormatInfo::handleType
, and perhaps this struct should be mentioned in the# Name
section or# C Specification
, i.e. extending:To something like:
After all
VkPhysicalDeviceExternalImageFormatInfo
mentionsVkExternalImageFormatProperties
(but the link is broken?), there's just no obvious link in reverse.And maybe the surrounding
VkExternalImageFormatProperties
should mention the same?The text was updated successfully, but these errors were encountered: