LunarG / VulkanTools

Tools to aid in Vulkan development
Other
666 stars 175 forks source link

headers version and lib version don't match #1888

Closed amirkhaki closed 1 year ago

amirkhaki commented 1 year ago

I don't know this is the right place to post this issue but anyway I'm on linux ubuntu i've downloaded and extracted vulkan-sdk (as tarball) this is my CMakeLists.txt

set(VULKAN_SDK_PATH "/path/to/vulkan/1.3.261.1/x86_64")
cmake_minimum_required(VERSION 3.25)
project(myproj)
set(CMAKE_CXX_STANDARD 20)
find_package(glfw3 3.3 REQUIRED)
add_executable(${PROJECT_NAME} main.cpp)

target_include_directories(${PROJECT_NAME} PRIVATE ${VULKAN_SDK_PATH}/include)
target_link_directories(${PROJECT_NAME} PRIVATE ${VULKAN_SDK_PATH}/lib)

# Link against the Vulkan library
target_link_libraries(${PROJECT_NAME} PRIVATE vulkan)
target_link_libraries(${PROJECT_NAME} PRIVATE glfw)

and the minimal code that produces the error (mismatch) is

#define VULKAN_HPP_NO_CONSTRUCTORS
#include <iostream>
#include <cstdlib>
#include <vulkan/vulkan.hpp>
#include <vulkan/vulkan_raii.hpp>

class App {
public:
    App() : instance(context, getInstanceCreateInfo()) {}

    static vk::InstanceCreateInfo getInstanceCreateInfo();

    vk::raii::Instance instance;
    vk::raii::Context context;
};
vk::InstanceCreateInfo App::getInstanceCreateInfo() {
    // initialize the vk::ApplicationInfo structure
    vk::ApplicationInfo applicationInfo{
            .pApplicationName = "K3D",
            .applicationVersion = VK_MAKE_VERSION(1, 0, 0),
            .pEngineName = "NO Engine",
            .engineVersion = VK_MAKE_VERSION(1, 0, 0),
    };
    uint32_t glfwExtensionCount = 0;
    const char **glfwExtensions;
    glfwExtensions = glfwGetRequiredInstanceExtensions(&glfwExtensionCount);

// initialize the vk::InstanceCreateInfo
    vk::InstanceCreateInfo instanceCreateInfo{
            .pApplicationInfo = &applicationInfo,
            .enabledLayerCount = 0,
            .enabledExtensionCount = glfwExtensionCount,
            .ppEnabledExtensionNames = glfwExtensions,
    };
    return instanceCreateInfo;
}

int main() {
    App app;
    return EXIT_SUCCESS;
}

the error is:

 /path/to/vulkan/1.3.261.1/x86_64/include/vulkan/vulkan_raii.hpp:2660: const vk::raii::ContextDispatcher* vk::raii::Context::getDispatcher() const: Assertion `m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION' failed.

Process finished with exit code 134 (interrupted by signal 6: SIGABRT)
KarenGhavam-lunarG commented 1 year ago

Issues with the SDK should be submitted at vulkan.lunarg.com.

amirkhaki commented 1 year ago

thanks, https://vulkan.lunarg.com/issue/view/65008c4c5df11238996e0c4c