Ошибка сегментации при вызове vkCreateGraphicsPipelinesC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Ошибка сегментации при вызове vkCreateGraphicsPipelines

Сообщение Anonymous »

Я следовал руководству по Vulkan, когда столкнулся с проблемой.

Я почти полностью скопировал и вставил всю функцию CreateGraphicsPipeline() из руководства. код. Однако при вызове я получаю сообщение об ошибке сегментации: vkCreateGraphicsPipelines()

Пока кажется, что эта ошибка имеет тенденцию возникать, когда заявленный размер памяти шейдеров не соответствует Неверно, но я проверял это несколько раз, и мне кажется, все в порядке.

Судя по тому, что мне удалось изучить, проблема, скорее всего, находится внутри модуля шейдера. создание, так как недопустимый шейдер не приведет к любые ошибки или сообщения отладки до создания конвейера. Кто-то предположил, что ошибка может быть в строке:

Код: Выделить всё

createInfo.codeSize = code.size();


И предложил:

Код: Выделить всё

createInfo.codeSize = code.size() * sizeof(uint32_t);
Однако это создает бесконечный цикл внутри vkCreateGraphicsPipelines

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]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»