Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Glsl vulkan绑定在着色器中必须是连续的吗_Glsl_Vulkan - Fatal编程技术网

Glsl vulkan绑定在着色器中必须是连续的吗

Glsl vulkan绑定在着色器中必须是连续的吗,glsl,vulkan,Glsl,Vulkan,在vulkan中,制服、制服或属性的绑定必须是顺序的吗? 假设我们有 layout (std140, set = 0, binding = 0) uniform ubo1 {} layout (std140, set = 0, binding = 3) uniform ubo2 {} 允许吗?属性绑定也是如此。?是的,着色器代码中允许这样做。对实现不是很确定 您可以查看VkDescriptorSetLayoutCreateInfo的文档,了解定义描述符集布局所涉及的内容。您会注意到,VkDes

在vulkan中,制服、制服或属性的绑定必须是顺序的吗? 假设我们有

layout (std140, set = 0, binding = 0) uniform ubo1 {}
layout (std140, set = 0, binding = 3) uniform ubo2 {}

允许吗?属性绑定也是如此。?

是的,着色器代码中允许这样做。对实现不是很确定

您可以查看
VkDescriptorSetLayoutCreateInfo
的文档,了解定义描述符集布局所涉及的内容。您会注意到,
VkDescriptorSetLayoutBinding
允许在任意索引处指定绑定


出于个人偏好(我没有发现任何明确的措辞),我只是不相信实现能够直观地处理这个问题。因此,我创建空绑定来“填补空白”。

不,它们不必紧密打包。在描述符布局说明(13.2.1)中,规范说明:

未指定的绑定的descriptorCount和stageFlags为零,并且descriptorType被视为未定义。但是,即使未使用所有描述符绑定,VkDescriptorSetLayoutCreateInfo::pBindings数组中0到最大绑定号之间的所有绑定号都可能会消耗描述符集布局中的内存,尽管它不应该消耗描述符池中的额外内存

注意:指定的最大绑定数应尽可能紧凑,以避免浪费内存


我必须清空绑定才能删除segfault。