Cómo puedo hacer que la creación de superficie GLFW Vulkan funcione con mingw-w64.
Problema
Estoy tratando de construir y ejecutar un programa vulkan + glfw utilizando g++ en Windows. Instalé gcc, glfw3 y vulkan utilizando pacman de msys2.
Cuando mi programa llama a glfwCreateWindowSurface(instance, window, nullptr, &surface);
, devuelve VK_ERROR_EXTENSION_NOT_PRESENT
.
Lo que hice
Instalé msys2 y utilicé pacman para instalar:
– mingw-w64-x86 64-glfw
– mingw-w64-x8664-vulkan-headers
– mingw-w64-x86 64-vulkan-loader
– mingw-w64-x8664-vulkan-validation-layers
Descargué la parte 5 del tutorial de vulkan-tutorial.com y lo compilé usando:
g++ -std=c++17 -O2 -g -c 05_window_surface.cpp -o main.o -lglfw3 -lvulkan
g++ -std=c++17 -O2 -g main.o -o main -lglfw3 -lvulkan
El proceso de configuración para Visual Studio del tutorial funciona perfectamente, sin embargo, preferiría utilizar un entorno de desarrollo diferente.
davy.ai
Solución
Parece que tienes los paquetes correctos instalados y estás construyendo el programa correctamente. Es posible que la versión de GLFW que tienes instalada no soporte la extensión VK_KHR_surface.
Puedes comprobar la versión de GLFW que tienes instalada ejecutando el siguiente comando:
glfw3 --version
Si la versión es inferior a 3.2, deberías intentar actualizar a la última versión. Puedes hacerlo ejecutando el siguiente comando:
pacman -Syu glfw
Una vez que hayas actualizado GLFW, intenta reconstruir y volver a ejecutar tu programa.