Я экспериментирую с вулканским SDK от LunarG для macOS. Пока все отлично работает. Однако я испытываю затруднения, когда дело доходит до отладки слоев проверки, поскольку я не могу найти решение для перехода к коду слоев для их отладки. У меня есть простая настройка CMake, для действительно простого проекта, который в основном ничего не делает, кроме запросов слоев, расширений и тому подобного. Это мой высший уровень CMakeLists.txt:
cmake_minimum_required(VERSION 3.7)
project(TestApp)
find_package(vulkan REQUIRED)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_STANDARD 17)
set(MACOS_APPLICATION_SRCS
${CMAKE_CURRENT_SOURCE_DIR}/Demo.cpp
${CMAKE_CURRENT_SOURCE_DIR}/main.mm
${CMAKE_CURRENT_SOURCE_DIR}/Application.mm
${CMAKE_CURRENT_SOURCE_DIR}/DemoViewController.mm
)
set(MACOS_APPLICATION_HEADERS
${CMAKE_CURRENT_SOURCE_DIR}/Demo.h
${CMAKE_CURRENT_SOURCE_DIR}/Application.h
${CMAKE_CURRENT_SOURCE_DIR}/DemoViewController.h
)
set(MACOS_APPLICATION_RESOURCES
${CMAKE_CURRENT_SOURCE_DIR}/Main.storyboard
)
add_definitions(-DVK_USE_PLATFORM_MACOS_MVK)
include_directories(./)
add_executable(TestApp MACOSX_BUNDLE
${MACOS_APPLICATION_HEADERS}
${MACOS_APPLICATION_SRCS}
${MACOS_APPLICATION_RESOURCES})
target_link_libraries(TestApp Vulkan::Vulkan "-framework AppKit -framework QuartzCore")
set_target_properties(TestApp PROPERTIES
MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/Info.plist
)
set_source_files_properties(${MACOS_APPLICATION_RESOURCES} PROPERTIES
MACOSX_PACKAGE_LOCATION "Resources"
)
Я создаю связанное приложение, но сейчас я НЕ храню какие-либо ресурсы (загрузчик vulkan, moltenvk lib, файлы манифеста для слоев и icd) в комплекте. Я только что добавил env. переменные (VK_ICD_FILENAMES, VK_LAYER_PATH) в Xcode, поэтому они указывают на файл манифеста расплавленного icd, который поставляется с переменной sdk & Layers для папки слоев. Я попытался построить слои самостоятельно с помощью конфигурации Debug, поэтому мой VK_LAYER_PATH указывает на папку сборки слоев, где находятся файлы манифеста. С этой настройкой, когда я запускаю свое приложение, все работает нормально, слои загружаются и мой обратный вызов отладки правильно вызывается. Но когда я пытаюсь войти в слой, ничего не происходит, похоже, xcode не может найти символы для слоев. Это было бы хорошо, я думаю, но затем я попытался установить VK_LAYER_PATH, указывающий на мою папку сборки слоев в демонстрационном проекте cubepp, который я также собрал. Тогда я смог войти в код слоев, что заставило меня подумать, что xcode не может найти символы, и это не проблема. Однако я сделал некоторые изменения в cubepp CMakeLists.txt, чтобы найти, какие свойства я мог бы пропустить в своем проекте, но после этих изменений я не смог снова войти в код слоев, даже если я отменил свои изменения в CMakeLists. Я предполагаю, что это может быть какая-то проблема XCode, или я пропускаю некоторые настройки @rpath и т. Д., Но эти вещи, а также платформа MacOS являются новыми для меня. Любые идеи, как я должен настроить это для правильной работы?
Спасибо