noautovalidity 在 Vulkan API 架构 (vk.xml) 中意味着什么?
What does noautovalidity mean in Vulkan API schema (vk.xml)?
noautovalidity
在 Vulkan API 架构 (vk.xml
) 中的结构成员定义中意味着什么?
registry.rnc
说 标签说明不应生成自动有效性语言
Vulkan 注册表规范说:防止为标记项生成自动有效性语言。仅抑制特定于项目的有效性 - 仍然捕获育儿问题等。当结构具有显式有效性时,它也必须用于没有隐式有效性的结构。
什么是自动有效语言?
没有自动有效性的示例是什么?在该示例中,被抑制的特定于项目的有效性是什么?以及为什么它决定被压制?
noautovalidity
表示不会为给定参数或结构成员生成大多数有效用法(隐式)条目。
这可能意味着隐式有效性规则不适用于给定的项目,尽管很多时候在其位置给出了非常相似的显式 VU。
示例:
VkWriteDescriptorSet::pImageInfo
有 noautovalidity
因为它共享 descriptorCount
。它可以防止生成类似“pImageInfo
必须是 descriptorCount
元素的数组”之类的内容。相反,给出显式 VU,例如:“如果 descriptorType
是 *_IMAGE
,则 pImageInfo
必须是 descriptorCount
元素的数组。
VkComputePipelineCreateInfo::basePipelineHandle
是 noautovalidity
,因为如果 flags
不包含 VK_PIPELINE_CREATE_DERIVATIVE_BIT
,API 允许忽略参数。如果没有该属性,规范将坚持句柄必须是有效的 VkPipeline
(如果 optional
,则另外允许为 VK_NULL_HANDLE
)。
极端情况示例:
VkViewport::x
是 noautovalidity
。它似乎不需要 noautovalidity
,但在这种情况下,它表示尽管该结构没有隐式有效性,但规范中可能存在一些显式有效性。
noautovalidity
在 Vulkan API 架构 (vk.xml
) 中的结构成员定义中意味着什么?
registry.rnc
说 标签说明不应生成自动有效性语言
Vulkan 注册表规范说:防止为标记项生成自动有效性语言。仅抑制特定于项目的有效性 - 仍然捕获育儿问题等。当结构具有显式有效性时,它也必须用于没有隐式有效性的结构。
什么是自动有效语言?
没有自动有效性的示例是什么?在该示例中,被抑制的特定于项目的有效性是什么?以及为什么它决定被压制?
noautovalidity
表示不会为给定参数或结构成员生成大多数有效用法(隐式)条目。
这可能意味着隐式有效性规则不适用于给定的项目,尽管很多时候在其位置给出了非常相似的显式 VU。
示例:
VkWriteDescriptorSet::pImageInfo
有 noautovalidity
因为它共享 descriptorCount
。它可以防止生成类似“pImageInfo
必须是 descriptorCount
元素的数组”之类的内容。相反,给出显式 VU,例如:“如果 descriptorType
是 *_IMAGE
,则 pImageInfo
必须是 descriptorCount
元素的数组。
VkComputePipelineCreateInfo::basePipelineHandle
是 noautovalidity
,因为如果 flags
不包含 VK_PIPELINE_CREATE_DERIVATIVE_BIT
,API 允许忽略参数。如果没有该属性,规范将坚持句柄必须是有效的 VkPipeline
(如果 optional
,则另外允许为 VK_NULL_HANDLE
)。
极端情况示例:
VkViewport::x
是 noautovalidity
。它似乎不需要 noautovalidity
,但在这种情况下,它表示尽管该结构没有隐式有效性,但规范中可能存在一些显式有效性。