gpt4 book ai didi

c++ - Vulkan 和 glfw - glfwVulkanSupported() 总是返回 false

转载 作者:太空狗 更新时间:2023-10-29 21:13:44 27 4
gpt4 key购买 nike

我正在尝试使用 GLFW3.2 运行基本的 Vulkan 测试:

#include <vulkan/vulkan.h>
#include <GLFW/glfw3.h>

#include <iostream>

int main(int argc, char *argv[])
{
if (glfwVulkanSupported())
{
std::cout << "vulkan supported !" << std::endl;

}
else
{
std::cout << "vulkan NOT supported !" << std::endl;

}
return 0;
}

我使用以下 cmake 构建:

cmake_minimum_required(VERSION 3.5.1)
project(vktest)

set (CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_COMPILER "/usr/bin/g++-4.9")

set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
set(CMAKE_INCLUDE_CURRENT_DIR ON)

find_package(Vulkan REQUIRED)
find_package(glfw3 3.2 REQUIRED)
include_directories(${Vulkan_INCLUDE_DIRS})

message("kek")
message(${Vulkan_INCLUDE_DIRS})
message(${Vulkan_LIBRARIES})
message(${Vulkan_LIBRARY})

add_executable(vktest vulkanTest.cpp)

target_link_libraries(vktest ${Vulkan_LIBRARIES})
target_link_libraries(vktest glfw)

构建这个工作得很好。

但是当我运行程序时,我总是进入 else 语句。

我安装了 nvidia 最后一个驱动程序,lungarg 的 vulkan sdk 如下环境变量:

export VULKAN_SDK=/home/mathias/vulkan/VulkanSDK/1.0.42.2/x86_64
set PATH $VULKAN_SDK/bin $PATH
set LD_LIBRARY_PATH $VULKAN_SDK/lib $LD_LIBRARY_PATH
set VK_LAYER_PATH $VULKAN_SDK/etc/explicit_layer.d

此外,我可以运行立方体示例。

知道为什么它永远不会返回 true 吗?

最佳答案

您可能错过了 glfwInit() 调用。

#define GLFW_INCLUDE_VULKAN
#include <GLFW/glfw3.h>
#include <cassert>
int main(int argc, const char** argv) {
bool success = glfwInit(); //< Important!
assert(success);
if(glfwVVulkanSupported()) {
puts("Success!");
}
return 0;
}

通常,您应该在 glfwInit() 之前调用的唯一 glfw 函数是 glfwSetErrorCallback。 (可能还有其他异常(exception),但据我所知没有。)

关于c++ - Vulkan 和 glfw - glfwVulkanSupported() 总是返回 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43154957/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com