Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/150.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 找不到某些lunar SDK验证层_C++_Linux_Sdk_Vulkan - Fatal编程技术网

C++ 找不到某些lunar SDK验证层

C++ 找不到某些lunar SDK验证层,c++,linux,sdk,vulkan,C++,Linux,Sdk,Vulkan,我正在手动检查由VK\u LAYER\u LUNARG\u standard\u validation包装的底层 找到了包装器,但是根据需要,它应该包装的一些验证层没有找到 我查询的图层如下所示: const std::vector<const char*> validationLayers = { "VK_LAYER_GOOGLE_threading", "VK_LAYER_LUNARG_parameter_validation&quo

我正在手动检查由
VK\u LAYER\u LUNARG\u standard\u validation包装的底层

找到了包装器,但是根据需要,它应该包装的一些验证层没有找到

我查询的图层如下所示:

const std::vector<const char*> validationLayers =
{
    "VK_LAYER_GOOGLE_threading",
    "VK_LAYER_LUNARG_parameter_validation",
    "VK_LAYER_LUNARG_device_limits",
    "VK_LAYER_LUNARG_object_tracker",
    "VK_LAYER_LUNARG_image",
    "VK_LAYER_LUNARG_core_validation",
    "VK_LAYER_LUNARG_swapchain",
    "VK_LAYER_GOOGLE_unique_objects",
};

void PrintLayerStatus(VkLayerProperties layer_info, string layer_name, bool layer_found)
{
    string major = to_string(VK_VERSION_MAJOR(layer_info.specVersion));
    string minor = to_string(VK_VERSION_MINOR(layer_info.specVersion));
    string patch = to_string(VK_VERSION_PATCH(layer_info.specVersion));
    string version = major + "." + minor + "." + patch;

    string mark = (layer_found) ? string(CHECK) : string(CROSS);
    RecordLog("\n" + string(layer_name) + ", "
        "Vulkan version " + version + ", "
        + "layer version " + to_string(layer_info.implementationVersion),
        "[" + mark + "]", 77, '.');
    if(layer_found) RecordLog("\tDescription:", string(layer_info.description), 20);
}

// Find available validation layers
bool CheckValidationLayerSupport()
{
    // Query validation layers currently isntalled
    uint32_t layerCount;
    vkEnumerateInstanceLayerProperties(&layerCount, nullptr);
    std::vector<VkLayerProperties> availableLayers(layerCount);
    vkEnumerateInstanceLayerProperties(&layerCount, availableLayers.data());

    RecordLogHeader("Requesting Vulkan validation layers\t ["
        + to_string(layerCount) + "]");

    RecordLog("Layer", "Found Status", 80-12);
    RecordLog(SEPARATOR_BAR);
    // Check needed validation layers against found layers`
    for (const char* layerName : validationLayers)
    {
        bool layerFound = false;
        VkLayerProperties layer_info;
        for (const auto& layerProperties : availableLayers)
        {
            if (strcmp(layerName, layerProperties.layerName) == 0)
            {
                layerFound = true;
                layer_info = layerProperties;
                break;
            }
        }

        PrintLayerStatus(layer_info, layerName, layerFound);
    }

    return true;
}
我还与grep一起运行了vulkaninfo,看看是否可以找到这些层

vulkaninfo|grep VK_LAYER_LUNARG_image

它们都返回空的,所以看起来我没有正确安装SDK或者我做错了什么


我的安装只是下载sdk并链接到include目录,再运行setup-env.sh脚本(每次编译之前我都会这样做)。我不确定是否意外跳过了某个步骤,例如运行脚本。

您使用的是旧文档。在编写本文时,最新的SDK版本是1.1.101

根据
VK\u层\u LUNARG\u标准\u验证
包括:

  • VK\u层\u谷歌\u线程
  • VK\u层\u LUNARG\u参数\u验证
  • VK_层_LUNARG_对象_跟踪器
  • VK\u层\u LUNARG\u核心\u验证
  • VK\u层\u谷歌\u唯一\u对象
  • 这些似乎符合您的输出

    当然,随着时间的推移,这种情况可能(而且确实)发生了变化:

    VK_层_LUNARG_设备_限制
    与SDK 1.0.21中的
    VK_层_LUNARG_核心_验证
    VK_层_LUNARG_参数_验证
    合并

    在SDK 1.0.42中,
    VK_层_LUNARG_图像
    VK_层_LUNARG_核心_验证
    合并

    在SDK 1.0.51中,
    VK_层_LUNARG_交换链
    VK_层_LUNARG_核心_验证
    合并


    更新:在1.1.106中,引入了验证,上面的所有内容都被弃用了。

    太棒了,至少我现在可以删除这些行并继续!
    ================================================================================
    Requesting Vulkan validation layers      [16]
    ================================================================================
    
    Layer                                                               Found Status
    --------------------------------------------------------------------------------
    
    VK_LAYER_GOOGLE_threading, Vulkan version 1.1.92, layer version 1............[✓]
            Description:       Google Validation Layer
    
    VK_LAYER_LUNARG_parameter_validation, Vulkan version 1.1.92, layer version 1.[✓]
            Description:       LunarG Validation Layer
    
    VK_LAYER_LUNARG_device_limits, Vulkan version 1.1.92, layer version 1........[✗]
    
    VK_LAYER_LUNARG_object_tracker, Vulkan version 1.1.92, layer version 1.......[✓]
            Description:       LunarG Validation Layer
    
    VK_LAYER_LUNARG_image, Vulkan version 1.1.92, layer version 1................[✗]
    
    VK_LAYER_LUNARG_core_validation, Vulkan version 1.1.92, layer version 1......[✓]
            Description:       LunarG Validation Layer
    
    VK_LAYER_LUNARG_swapchain, Vulkan version 1.1.92, layer version 1............[✗]
    
    VK_LAYER_GOOGLE_unique_objects, Vulkan version 1.1.92, layer version 1.......[✓]
            Description:       Google Validation Layer