GpuNewContext 消息只在 TRACY_ON_DEMAND 下 DeferItem(连接后重发)。 程序启动即建 Tracy GPU context 而 GUI 晚连接,宣告丢失 → GUI 不认识 GPU context → pass zone 全部不显示(只见 CPU lane)。启用按需剖析: 连接建立后的帧才活跃,语义即 tracy 官方推荐用法。
50 lines
1.7 KiB
CMake
50 lines
1.7 KiB
CMake
file(GLOB_RECURSE ENGINE_SOURCES
|
||
src/*.cpp
|
||
)
|
||
|
||
# ImGui(docking 分支,vendored submodule)
|
||
set(IMGUI_DIR ${CMAKE_SOURCE_DIR}/Lib/imgui)
|
||
set(IMGUI_SOURCES
|
||
${IMGUI_DIR}/imgui.cpp
|
||
${IMGUI_DIR}/imgui_draw.cpp
|
||
${IMGUI_DIR}/imgui_tables.cpp
|
||
${IMGUI_DIR}/imgui_widgets.cpp
|
||
# ${IMGUI_DIR}/imgui_demo.cpp # ShowDemoWindow 的实现(调试期保留)
|
||
${IMGUI_DIR}/backends/imgui_impl_glfw.cpp
|
||
${IMGUI_DIR}/backends/imgui_impl_vulkan.cpp
|
||
)
|
||
|
||
# 编译成静态库
|
||
add_library(Engine STATIC ${ENGINE_SOURCES} ${IMGUI_SOURCES})
|
||
|
||
|
||
target_include_directories(Engine PUBLIC
|
||
${CMAKE_CURRENT_SOURCE_DIR}/include
|
||
${CMAKE_SOURCE_DIR}/Lib/entt/src
|
||
${CMAKE_SOURCE_DIR}/Lib/VulkanMemoryAllocator/include
|
||
${IMGUI_DIR}
|
||
${IMGUI_DIR}/backends
|
||
)
|
||
|
||
# 链接第三方库
|
||
target_link_libraries(Engine PUBLIC
|
||
glfw
|
||
Vulkan::Vulkan
|
||
spdlog::spdlog
|
||
stb
|
||
assimp::assimp
|
||
)
|
||
|
||
# Tracy(CPU/GPU 帧分析):宏关闭时全部退化空操作,零开销
|
||
set(TRACY_DIR ${CMAKE_SOURCE_DIR}/Lib/tracy)
|
||
target_include_directories(Engine PUBLIC ${TRACY_DIR}/public)
|
||
target_sources(Engine PRIVATE ${TRACY_DIR}/public/TracyClient.cpp)
|
||
target_compile_definitions(Engine PUBLIC TRACY_ENABLE)
|
||
# 按需剖析:GPU context 宣告(GpuNewContext)与连接绑定——GUI 永远晚于
|
||
# 程序启动连接,没有这个宏宣告消息被丢弃,GPU 时间线永远空白
|
||
target_compile_definitions(Engine PUBLIC TRACY_ON_DEMAND)
|
||
|
||
find_package(Threads REQUIRED)
|
||
target_link_libraries(Engine PUBLIC Threads::Threads)
|
||
|
||
target_compile_definitions(Engine PRIVATE VULKAN_HPP_DISPATCH_LOADER_DYNAMIC=1) |