andy-thomason / Vookoo

A set of utilities for taking the pain out of Vulkan in header only modern C++
MIT License
521 stars 52 forks source link

VK_LAYER_LUNARG_standard_validation has been removed in Vulkan version 1.2.135.0 #31

Closed FunMiles closed 3 years ago

FunMiles commented 4 years ago

I was helping a friend compile and run code I wrote that uses Vookoo. Vulkan was killing the job with an error message saying that validation layer 0 could not be found. In installed the latest Vulkan distribution on Mac OS and hit the same problem. Further investigation shows that the string VK_LAYER_LUNARG_standard_validation has disappeared from the new Vulkan distribution.

PS: Comparing the two distributions (1.2.131.2 and 1.2.135.0), the last one does not have the file VkLayer_standard_validation.json. This file has the following content:

{
    "file_format_version": "1.1.1",
    "layer": {
        "name": "VK_LAYER_LUNARG_standard_validation",
        "type": "GLOBAL",
        "api_version": "1.2.131",
        "implementation_version": "1",
        "description": "LunarG Standard Validation",
        "component_layers": [
            "VK_LAYER_KHRONOS_validation"
        ]
    }
}

I also found a web page describing this validation layer as a convenience to load several layers in the optimal order.

PPS: the Godot project hit the same issue and seems to say that this convenience layer has been replaced by VK_LAYER_KHRONOS_validation. Indeed, replacing the layer name directly with the new name fixes the issue.

This leaves me with the question of whether Vookoo should accept to run even if it can't find those validation layers?

FunMiles commented 3 years ago

I created a pull request https://github.com/andy-thomason/Vookoo/pull/34 for this.

lhog commented 3 years ago

I tried to keep compatibility with old VK_LAYER_LUNARG_standard_validation, but it's too tedious. Merged your version