Я почти полностью скопировал и вставил всю функцию CreateGraphicsPipeline() из руководства. код. Однако при вызове я получаю сообщение об ошибке сегментации: vkCreateGraphicsPipelines()
Пока кажется, что эта ошибка имеет тенденцию возникать, когда заявленный размер памяти шейдеров не соответствует Неверно, но я проверял это несколько раз, и мне кажется, все в порядке.
Судя по тому, что мне удалось изучить, проблема, скорее всего, находится внутри модуля шейдера. создание, так как недопустимый шейдер не приведет к любые ошибки или сообщения отладки до создания конвейера. Кто-то предположил, что ошибка может быть в строке:
Код: Выделить всё
createInfo.codeSize = code.size();И предложил:
Код: Выделить всё
createInfo.codeSize = code.size() * sizeof(uint32_t);My шейдеры идентичны его: вершина, фрагмент
И мои функции (извините за длину, это вулкан, и его трудно уменьшить):
Код: Выделить всё
static std::vector ReadFile(const std::string& filename) {
std::ifstream file(filename, std::ios::ate | std::ios::binary);
if (!file.is_open()) {
cout
Подробнее здесь: [url]https://stackoverflow.com/questions/54976261/segmentation-fault-when-calling-vkcreategraphicspipelines[/url]
Мобильная версия