Vulkan API模式(vk.xml)中的noautovalidity是什么意思?

时间:2018-11-08 17:59:24

标签: vulkan

noautovalidity在Vulkan API模式(vk.xml)中的结构成员定义上意味着什么?

registry.rnc标签,表明不应该生成自动有效性语言

Vulkan注册中心规范说:防止为标记的项目生成自动有效性语言。仅禁止特定于项目的有效性-育儿问题等仍被捕获。当具有隐式有效性的结构具有显式有效性时,也必须使用它。

什么是自动有效性语言

什么是不具有自动有效性的示例,而该示例抑制了特定于项目的有效性是什么?为什么决定要压制它?

1 个答案:

答案 0 :(得分:3)

咨询XML schema doc

noautovalidity意味着将不会为给定的参数或结构成员生成大多数有效用法(隐式)条目。

这可能意味着隐式有效性规则不适用于给定的项目,尽管在很多情况下都使用了非常相似的显式VU。

示例:

VkWriteDescriptorSet::pImageInfo之所以拥有noautovalidity,是因为它共享descriptorCount。它可以防止生成类似“ pImageInfo必须是descriptorCount个元素的数组”的信息。而是给出了显式VU,例如:“如果descriptorType*_IMAGE,则pImageInfo必须是descriptorCount个元素的数组。

VkComputePipelineCreateInfo::basePipelineHandlenoautovalidity,因为如果flags不包含VK_PIPELINE_CREATE_DERIVATIVE_BIT,API会忽略该参数。如果没有该属性,则规范会坚持要求句柄必须为有效的VkPipeline(如果为VK_NULL_HANDLE,则句柄必须为optional)。

案例案例:

VkViewport::xnoautovalidity。它似乎不需要noautovalidity,但在这种情况下,它表示尽管该结构没有隐式有效性,但规范中可能存在某些显式有效性。