stype 字段的用途是什么?

What is the purpose of stype field?

在 Vulkan 中,某些函数需要您传递包含各种参数的结构。其中一个字段名为 stype,需要设置为它的结构类型。

stype 用法示例:

VkInstanceCreateInfo info;
info.stype = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO;
...
VkInstance instance;
vkCreateInstance(&info, nullptr, &instance);

函数vkCreateInstance接受一个const VkInstanceCreateInfo*作为参数,那么stype字段有什么意义呢?他们通过添加字段解决了存在的问题是什么?

以便将来的版本可以通过更改类型来更新结构,而无需新的入口点。

但是目前它用于通过 pNext 链表找到的扩展结构。并使所有结构具有这样的统一布局不会花费任何费用。该实现可以简单地忽略第一个字段并假设它是正确的。

来自https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkInstanceCreateInfo.html

sType用于描述结构的类型。它必须在每个结构中填写。