Динамический буфер Vulkan с различной текстурой на объект - PullRequest
0 голосов
/ 07 мая 2018

В настоящее время я использую динамический буфер для хранения униформы нескольких объектов и обновления их по отдельности без изменения шейдера. Проблема в том, что когда я добавляю VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER в мой дескриптор, рендеринг будет this (я не могу публиковать изображения из-за низкой репутации)! Просто цвет фона текстуры. Это моя инициализация дескриптора ().

descriptorWrites[0].sType = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET;
    descriptorWrites[0].dstSet = descriptorSet;
    descriptorWrites[0].pNext = NULL;
    descriptorWrites[0].dstBinding = 0;
    descriptorWrites[0].dstArrayElement = 0;
    descriptorWrites[0].descriptorType = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC;
    descriptorWrites[0].descriptorCount = 1;
    descriptorWrites[0].pBufferInfo = &bufferInfo;

    descriptorWrites[1].sType = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET;
    descriptorWrites[1].dstSet = descriptorSet;
    descriptorWrites[1].pNext = NULL;
    descriptorWrites[1].dstBinding = 1;
    descriptorWrites[1].dstArrayElement = 0;
    descriptorWrites[1].descriptorType = VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER;
    descriptorWrites[1].descriptorCount = 1;
    descriptorWrites[1].pImageInfo = &imageInfo;

А это мой фрагментный шейдер:

#version 450
#extension GL_ARB_separate_shader_objects : enable

layout(set=0, binding = 1) uniform sampler2D texSampler;

layout(location = 0) in vec3 fragColor;
layout(location = 1) in vec2 fragTexCoord;


layout(location = 0) out vec4 outColor;

void main() {
    outColor = texture(texSampler, fragTexCoord*2);
}

Что может быть причиной этого? Я обновил макет дескриптора, и слой проверки не выдавал никаких ошибок, и динамический буфер работал отлично даже для нескольких объектов. Повреждение привязки или что-то подобное?

...