Как установить уровни проверки Vulkan в Windows?

Я следую инструкциям на github Vulkan-LoaderAndValidationLayers: //github.com/KhronosGroup/Vulkan-LoaderAndValidationLayers/blob/master/layers/README.md

Я построил слои, скопировал библиотеки DLL рядом с моим исполняемым файлом (для целей тестирования я настрою путь позже), создал vk_layer_settings.txt (также вместе с моим исполняемым файлом) и установил имена слоев в моем окружении VK_INSTANCE_LAYERS. var.

Но что бы я ни делал, массив, возвращаемый vkEnumerateInstanceLayerProperties, не содержит каких-либо уровней проверки.

Какой волшебный шаг я пропустил? Это Windows 8.1, работающая на Nvidia 970M.


person griffin2000    schedule 03.06.2017    source источник


Ответы (1)


Помимо DLL, загрузчик также должен найти соответствующие json-файлы манифеста уровня.

Самый простой способ - просто установить переменную среды VK_LAYER_PATH в выходную папку сборки выпуска проекта уровня проверки, который вы клонировали из github, например:

VK_LAYER_PATH=X:\YOUR-PATH-HERE\build\layers\Release

Затем загрузчик загрузит проверочные слои из этой папки, и вы всегда будете использовать самую последнюю версию слоя.

person Sascha Willems    schedule 03.06.2017
comment
Хотя, пока я получаю отдельные слои ('VK_LAYER_LUNARG_core_validation', 'VK_LAYER_LUNARG_object_tracker', 'VK_LAYER_LUNARG_parameter_validation'), я не вижу VK_LAYER_LUNARG_standard_validation (правильно?). Это правильно? (пример, который я выполняю, запрашивает VK_LAYER_LUNARG_standard_validation) Есть ли дополнительный шаг, который мне нужно сделать, чтобы увидеть это? - person griffin2000; 03.06.2017
comment
VK_LAYER_LUNARG_standard_validation - это мета-уровень, который просто хранит список всех других слоев в правильном порядке. Это не физический уровень, как другие, и поэтому он не поставляется с json или dll. - person Sascha Willems; 04.06.2017
comment
Начиная с SDK 49, теперь существует файл VkLayer_standard_validation.json, который использует поддержку нового мета-уровня в файлах слоя json для определения списка слоев, составляющих стандартный уровень проверки. Раньше стандартный уровень проверки был жестко определен внутри загрузчика. - person Karl Schultz; 05.06.2017