Последствия неиспользованных привязок в `VkDescriptorSetLayout`?

У меня есть два фрагментных шейдера (написанных на GLSL), оба с массивом сэмплеров. Другие привязки идентичны, однако массив отличается между двумя размерами:

layout (binding = 2) uniform sampler2D tex[2];

против

layout (binding = 2) uniform sampler2D tex[4];

Я могу создать VkDescriptorSetLayout с VkDescriptorSetLayoutBinding соответствующий этому параметру:

VkDescriptorSetLayoutBinding parameter;
memset(&parameter, 0, sizeof(VkDescriptorSetLayoutBinding));
parameter.binding = 2;
parameter.descriptorType = VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER;
parameter.descriptorCount = 4;
parameter.stageFlags = VK_SHADER_STAGE_FRAGMENT_BIT;
// go on to call vkCreateDescriptorSetLayout with this VkDescriptorSetBinding (and others)

Созданный VkDescriptorSetLayout будет правильно работать для привязки к обоим шейдерам.

Два вопроса:

Является ли единственным следствием неиспользованных дескрипторов, что любой VkDescriptorSet будет больше, чем необходимо (в случае массива первого шейдера)?
Являются ли дополнительные выделенные дескрипторы большой проблемой производительности и / или памяти?

2

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]