小编Jro*_*dev的帖子

在 Mac 上使用 MoltenVk/Vulkan 获取 VK_ERROR_LAYER_NOT_PRESENT

我正在尝试在 Mac 上设置 vulkan/MoltenVk,但在验证层和扩展工作时遇到一些问题。

我已经下载/安装了 MoltenVk 和 vulkan 库,设置了一些环境变量:

export VULKAN_SDK=/opt/vulkan-sdk
export DYLD_LIBRARY_PATH=$VULKAN_SDK/lib:$DYLD_LIBRARY_PATH
export VK_ICD_FILENAMES=$VULKAN_SDK/etc/vulkan/icd.d/MoltenVK_icd.json
export VK_LAYER_PATH=$VULKAN_SDK/etc/vulkan/explicit_layer.d
export VK_INSTANCE_LAYERS=VK_LAYER_LUNARG_standard_validation
Run Code Online (Sandbox Code Playgroud)

vulkaninfo 按预期工作并显示 6 个验证层。

当我尝试构建自己的项目时,它找不到图层。

我创建了一个小型测试项目来尝试弄清楚发生了什么。它编译和链接没有错误,但是当我运行它时,我得到

[***MoltenVK ERROR***] VK_ERROR_LAYER_NOT_PRESENT: Vulkan layer VK_LAYER_LUNARG_standard_validation is not supported.
vkCreateInstance result: -6
Run Code Online (Sandbox Code Playgroud)

main.cpp (复制自https://vulkan.lunarg.com/doc/sdk/latest/mac/getting_started.html

#include <iostream>
#include <vulkan/vulkan.h>

int main(int argc, const char * argv[]) {
    VkInstance instance;
    VkResult result;
    VkInstanceCreateInfo info = {};
    uint32_t instance_layer_count;

    result = vkEnumerateInstanceLayerProperties(&instance_layer_count, nullptr);
    std::cout << instance_layer_count << " layers found!\n";
    if (instance_layer_count > 0) {
        std::unique_ptr<VkLayerProperties[]> …
Run Code Online (Sandbox Code Playgroud)

c++ macos clang++ vulkan

3
推荐指数
1
解决办法
2336
查看次数

标签 统计

c++ ×1

clang++ ×1

macos ×1

vulkan ×1