【发布时间】:2018-06-30 22:54:12
【问题描述】:
我正在尝试使用 LunarG 的适用于 macOS 的 vulkan SDK。到目前为止,一切都很好。但是,在调试验证层时我很挣扎,因为我无法找到一个解决方案来加强层代码来调试它们。我有简单的 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 加载程序、熔体 vk 库、层和 icd 的清单文件)。我刚刚添加了环境。 Xcode 中的变量(VK_ICD_FILENAMES,VK_LAYER_PATH),因此它们指向随 sdk 和层变量指向层文件夹的熔体的 icd 清单文件。我尝试使用调试配置自己构建层,所以我的 VK_LAYER_PATH 指向层构建文件夹,其中是清单文件。使用此设置,当我运行我的应用程序时,一切正常,加载了图层并且正确调用了我的调试回调。但是当我尝试进入图层时没有任何反应,看起来 xcode 找不到图层的符号。我想那没关系,但后来我尝试将 VK_LAYER_PATH 设置为指向我也构建的 cubepp 演示项目中的层构建文件夹。然后我能够进入层代码,这让我认为 xcode 找不到符号可能不是问题。但是,我对 cubepp CMakeLists.txt 进行了一些更改,以查找我的项目中可能缺少的属性,但是在这些更改之后,即使我恢复了对 CMakeLists 的更改,我也无法再次进入层代码。我猜这可能是一些 XCode 问题,或者我缺少一些 @rpath 等设置,但这些东西以及 macOS 平台对我来说都是新的。任何想法我应该如何设置它才能正常工作?
谢谢
【问题讨论】: