From f94861926a2af04de42fb184238cf9a5b74c23c7 Mon Sep 17 00:00:00 2001 From: Swung0x48 Date: Thu, 11 Dec 2025 15:12:19 +0800 Subject: [PATCH] [Feat] (3rdparty/tracy): initial integration of Tracy Profiler --- .gitmodules | 3 +++ 3rdparty/tracy | 1 + CMakeLists.txt | 15 ++++++++++++++- MobileGL/Includes.h | 4 ++++ 4 files changed, 22 insertions(+), 1 deletion(-) create mode 160000 3rdparty/tracy diff --git a/.gitmodules b/.gitmodules index cbaec99b..bd45300f 100644 --- a/.gitmodules +++ b/.gitmodules @@ -10,3 +10,6 @@ [submodule "include/FastSTL"] path = include/FastSTL url = https://github.com/MobileGL-Dev/FastSTL.git +[submodule "3rdparty/tracy"] + path = 3rdparty/tracy + url = https://github.com/wolfpld/tracy.git diff --git a/3rdparty/tracy b/3rdparty/tracy new file mode 160000 index 00000000..e6b9ea46 --- /dev/null +++ b/3rdparty/tracy @@ -0,0 +1 @@ +Subproject commit e6b9ea460993a6f093283055ef3c98025b19f909 diff --git a/CMakeLists.txt b/CMakeLists.txt index 5b64c747..72f32bf7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -15,7 +15,7 @@ if (NOT CMAKE_BUILD_TYPE STREQUAL "Debug" OR MOBILEGL_FORCE_RELEASE_OPT) add_compile_options(-O3 -ffunction-sections -fdata-sections) add_link_options(-Wl,--gc-sections) elseif (CMAKE_CXX_COMPILER_ID MATCHES "MSVC") - add_compile_options(/O2 /GL) +# add_compile_options(/O2) else () add_compile_options(-O2) endif() @@ -77,6 +77,12 @@ set(SPIRV_CROSS_STATIC ON CACHE BOOL "Prefer static libs" FORCE) add_subdirectory(3rdparty/glslang) add_subdirectory(3rdparty/SPIRV-Cross) +option(TRACY_ENABLE "Enable Tracy" OFF) +option(TRACY_ON_DEMAND "Enable profiling only connected" ON) +option(TRACY_NO_EXIT "Don't exit Tracy until connected" OFF) + +add_subdirectory(3rdparty/tracy) + set(SOURCE_FILES MobileGL/Init.cpp @@ -250,6 +256,13 @@ target_link_libraries(${CMAKE_PROJECT_NAME}_s spirv-cross-c ) +if (TRACY_ENABLE) + target_link_libraries(${CMAKE_PROJECT_NAME} PUBLIC Tracy::TracyClient) + target_link_libraries(${CMAKE_PROJECT_NAME}_s PUBLIC Tracy::TracyClient) + target_compile_definitions(${CMAKE_PROJECT_NAME} PUBLIC -DTRACY_ENABLE) + target_compile_definitions(${CMAKE_PROJECT_NAME}_s PUBLIC -DTRACY_ENABLE) +endif () + if (ANDROID) target_link_libraries(${CMAKE_PROJECT_NAME} PUBLIC android diff --git a/MobileGL/Includes.h b/MobileGL/Includes.h index cc36fd53..a9088e3e 100644 --- a/MobileGL/Includes.h +++ b/MobileGL/Includes.h @@ -76,6 +76,10 @@ #include #endif +#ifdef TRACY_ENABLE +#include +#endif + // Post-includes for significant project headers #include "MG_Util/Debug/Log.h" #include "MG_Util/Types.h"