From 853246ba1eb6aacdf74cc43e38edeae4cf8be780 Mon Sep 17 00:00:00 2001 From: mariuszmaximus Date: Wed, 15 Feb 2023 19:40:58 +0100 Subject: [PATCH] sample CMakeLists.txt for Windows --- .gitignore | 3 + CMakeLists.txt | 5 + profiler/build/win32/CMakeLists.txt | 311 ++++++++++++++++++++++++++++ server/TracyTimelineItemGpu.cpp | 2 + server/TracyWorker.cpp | 2 + 5 files changed, 323 insertions(+) create mode 100644 profiler/build/win32/CMakeLists.txt diff --git a/.gitignore b/.gitignore index 40921279..3d6314cb 100644 --- a/.gitignore +++ b/.gitignore @@ -40,3 +40,6 @@ extra/vswhere.exe extra/tracy-build /.cache compile_commands.json +/build +/profiler/build/win32/tools +/profiler/build/win32/build diff --git a/CMakeLists.txt b/CMakeLists.txt index d69f71eb..b9d1c546 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -145,3 +145,8 @@ install(EXPORT TracyConfig NAMESPACE Tracy:: FILE TracyConfig.cmake DESTINATION share/Tracy) + +# sample CMakeLists.txt for Windows +if (WIN32) + add_subdirectory("profiler/build/win32") +endif() diff --git a/profiler/build/win32/CMakeLists.txt b/profiler/build/win32/CMakeLists.txt new file mode 100644 index 00000000..f6f13c49 --- /dev/null +++ b/profiler/build/win32/CMakeLists.txt @@ -0,0 +1,311 @@ +cmake_minimum_required(VERSION 3.0.0) +project(TracyWin32 LANGUAGES CXX) + +set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD_REQUIRED ON) +set(CMAKE_VERBOSE_MAKEFILE ON CACHE BOOL "ON" FORCE) + + +# add Freetype +include(FindFreetype) +include_directories(${FREETYPE_INCLUDE_DIRS}) + +# enable FetchContent +include(FetchContent) + +# add glfw +FetchContent_Declare( + glfw_dev + GIT_REPOSITORY https://github.com/glfw/glfw.git + GIT_TAG 3.3.8 + ) +FetchContent_MakeAvailable(glfw_dev) + + +# for capstone set CMAKE_C_COMPILE_OBJECT ? +set(CMAKE_C_COMPILE_OBJECT " -o -c ") + +# add capstone +FetchContent_Declare( + capstone_dev + GIT_REPOSITORY https://github.com/capstone-engine/capstone.git + GIT_TAG 6eb1db9c04113ac0a05f2dfd228704c84775530f + ) +FetchContent_MakeAvailable(capstone_dev) + + +# based on Tracy.vcxproj +set(SRC_ALL + "../../../imgui/imgui.cpp" + "../../../imgui/imgui.cpp" + "../../../imgui/imgui_demo.cpp" + "../../../imgui/imgui_draw.cpp" + "../../../imgui/imgui_tables.cpp" + "../../../imgui/imgui_widgets.cpp" + "../../../imgui/misc/freetype/imgui_freetype.cpp" + "../../../nfd/nfd_win.cpp" + "../../../public/common/TracySocket.cpp" + "../../../public/common/TracyStackFrames.cpp" + "../../../public/common/TracySystem.cpp" + "../../../public/common/tracy_lz4.cpp" + "../../../public/common/tracy_lz4hc.cpp" + "../../../server/TracyBadVersion.cpp" + "../../../server/TracyColor.cpp" + "../../../server/TracyFileselector.cpp" + "../../../server/TracyFilesystem.cpp" + "../../../server/TracyImGui.cpp" + "../../../server/TracyMemory.cpp" + "../../../server/TracyMicroArchitecture.cpp" + "../../../server/TracyMmap.cpp" + "../../../server/TracyMouse.cpp" + "../../../server/TracyPrint.cpp" + "../../../server/TracyProtoHistory.cpp" + "../../../server/TracySourceContents.cpp" + "../../../server/TracySourceTokenizer.cpp" + "../../../server/TracySourceView.cpp" + "../../../server/TracyStorage.cpp" + "../../../server/TracyTaskDispatch.cpp" + "../../../server/TracyTexture.cpp" + "../../../server/TracyTextureCompression.cpp" + "../../../server/TracyThreadCompress.cpp" + "../../../server/TracyTimelineController.cpp" + "../../../server/TracyTimelineItem.cpp" + "../../../server/TracyTimelineItemCpuData.cpp" + "../../../server/TracyTimelineItemGpu.cpp" + "../../../server/TracyTimelineItemPlot.cpp" + "../../../server/TracyTimelineItemThread.cpp" + "../../../server/TracyUserData.cpp" + "../../../server/TracyUtility.cpp" + "../../../server/TracyView.cpp" + "../../../server/TracyView_Annotations.cpp" + "../../../server/TracyView_Callstack.cpp" + "../../../server/TracyView_Compare.cpp" + "../../../server/TracyView_ConnectionState.cpp" + "../../../server/TracyView_ContextSwitch.cpp" + "../../../server/TracyView_CpuData.cpp" + "../../../server/TracyView_FindZone.cpp" + "../../../server/TracyView_FrameOverview.cpp" + "../../../server/TracyView_FrameTimeline.cpp" + "../../../server/TracyView_FrameTree.cpp" + "../../../server/TracyView_GpuTimeline.cpp" + "../../../server/TracyView_Locks.cpp" + "../../../server/TracyView_Memory.cpp" + "../../../server/TracyView_Messages.cpp" + "../../../server/TracyView_Navigation.cpp" + "../../../server/TracyView_NotificationArea.cpp" + "../../../server/TracyView_Options.cpp" + "../../../server/TracyView_Playback.cpp" + "../../../server/TracyView_Plots.cpp" + "../../../server/TracyView_Ranges.cpp" + "../../../server/TracyView_Samples.cpp" + "../../../server/TracyView_Statistics.cpp" + "../../../server/TracyView_Timeline.cpp" + "../../../server/TracyView_TraceInfo.cpp" + "../../../server/TracyView_Utility.cpp" + "../../../server/TracyView_ZoneInfo.cpp" + "../../../server/TracyView_ZoneTimeline.cpp" + "../../../server/TracyWeb.cpp" + "../../../server/TracyWorker.cpp" + "../../../zstd/common/debug.c" + "../../../zstd/common/entropy_common.c" + "../../../zstd/common/error_private.c" + "../../../zstd/common/fse_decompress.c" + "../../../zstd/common/pool.c" + "../../../zstd/common/threading.c" + "../../../zstd/common/xxhash.c" + "../../../zstd/common/zstd_common.c" + "../../../zstd/compress/fse_compress.c" + "../../../zstd/compress/hist.c" + "../../../zstd/compress/huf_compress.c" + "../../../zstd/compress/zstdmt_compress.c" + "../../../zstd/compress/zstd_compress.c" + "../../../zstd/compress/zstd_compress_literals.c" + "../../../zstd/compress/zstd_compress_sequences.c" + "../../../zstd/compress/zstd_compress_superblock.c" + "../../../zstd/compress/zstd_double_fast.c" + "../../../zstd/compress/zstd_fast.c" + "../../../zstd/compress/zstd_lazy.c" + "../../../zstd/compress/zstd_ldm.c" + "../../../zstd/compress/zstd_opt.c" + "../../../zstd/decompress/huf_decompress.c" + "../../../zstd/decompress/zstd_ddict.c" + "../../../zstd/decompress/zstd_decompress.c" + "../../../zstd/decompress/zstd_decompress_block.c" + + "../../../zstd/dictBuilder/cover.c" + "../../../zstd/dictBuilder/divsufsort.c" + "../../../zstd/dictBuilder/fastcover.c" + "../../../zstd/dictBuilder/zdict.c" + "../../src/BackendGlfw.cpp" + "../../src/ConnectionHistory.cpp" + "../../src/Filters.cpp" + "../../src/Fonts.cpp" + "../../src/HttpRequest.cpp" + "../../src/ImGuiContext.cpp" + "../../src/imgui/imgui_impl_glfw.cpp" + "../../src/imgui/imgui_impl_opengl3.cpp" + "../../src/IsElevated.cpp" + "../../src/main.cpp" + "../../src/ResolvService.cpp" + "../../src/RunQueue.cpp" + "../../src/WindowPosition.cpp" + "../../src/winmain.cpp" + + + "../../src/winmainArchDiscovery.cpp" + + "../../../imgui/imconfig.h" + "../../../imgui/imgui.h" + "../../../imgui/imgui_internal.h" + "../../../imgui/imstb_rectpack.h" + "../../../imgui/imstb_textedit.h" + "../../../imgui/imstb_truetype.h" + "../../../imgui/misc/freetype/imgui_freetype.h" + "../../../nfd/nfd.h" + "../../../public/common/TracyAlign.hpp" + "../../../public/common/TracyAlloc.hpp" + "../../../public/common/TracyApi.h" + "../../../public/common/TracyColor.hpp" + "../../../public/common/TracyForceInline.hpp" + "../../../public/common/TracyMutex.hpp" + "../../../public/common/TracyProtocol.hpp" + "../../../public/common/TracyQueue.hpp" + "../../../public/common/TracySocket.hpp" + "../../../public/common/TracyStackFrames.hpp" + "../../../public/common/TracySystem.hpp" + "../../../public/common/TracyUwp.hpp" + "../../../public/common/TracyVersion.hpp" + "../../../public/common/TracyYield.hpp" + "../../../public/common/tracy_lz4.hpp" + "../../../public/common/tracy_lz4hc.hpp" + "../../../server/IconsFontAwesome6.h" + "../../../server/TracyBadVersion.hpp" + "../../../server/TracyBuzzAnim.hpp" + "../../../server/TracyCharUtil.hpp" + "../../../server/TracyColor.hpp" + "../../../server/TracyDecayValue.hpp" + "../../../server/TracyEvent.hpp" + "../../../server/TracyFileHeader.hpp" + "../../../server/TracyFileRead.hpp" + "../../../server/TracyFileselector.hpp" + "../../../server/TracyFilesystem.hpp" + "../../../server/TracyFileWrite.hpp" + "../../../server/TracyImGui.hpp" + "../../../server/TracyMemory.hpp" + "../../../server/TracyMicroArchitecture.hpp" + "../../../server/TracyMmap.hpp" + "../../../server/TracyMouse.hpp" + "../../../server/TracyPopcnt.hpp" + "../../../server/TracyPrint.hpp" + "../../../server/TracyProtoHistory.hpp" + "../../../server/TracyShortPtr.hpp" + "../../../server/TracySlab.hpp" + "../../../server/TracySort.hpp" + "../../../server/TracySortedVector.hpp" + "../../../server/TracySourceContents.hpp" + "../../../server/TracySourceTokenizer.hpp" + "../../../server/TracySourceView.hpp" + "../../../server/TracyStorage.hpp" + "../../../server/TracyStringDiscovery.hpp" + "../../../server/TracyTaskDispatch.hpp" + "../../../server/TracyTexture.hpp" + "../../../server/TracyTextureCompression.hpp" + "../../../server/TracyThreadCompress.hpp" + "../../../server/TracyTimelineController.hpp" + "../../../server/TracyTimelineItem.hpp" + "../../../server/TracyTimelineItemCpuData.hpp" + "../../../server/TracyTimelineItemGpu.hpp" + "../../../server/TracyTimelineItemPlot.hpp" + "../../../server/TracyTimelineItemThread.hpp" + "../../../server/TracyUserData.hpp" + "../../../server/TracyUtility.hpp" + "../../../server/TracyVarArray.hpp" + "../../../server/TracyVector.hpp" + "../../../server/TracyView.hpp" + "../../../server/TracyViewData.hpp" + "../../../server/TracyWeb.hpp" + "../../../server/TracyWorker.hpp" + "../../../server/tracy_pdqsort.h" + "../../../server/tracy_robin_hood.h" + "../../../server/tracy_xxhash.h" + "../../../zstd/common/bitstream.h" + "../../../zstd/common/compiler.h" + "../../../zstd/common/cpu.h" + "../../../zstd/common/debug.h" + "../../../zstd/common/error_private.h" + "../../../zstd/common/fse.h" + "../../../zstd/common/huf.h" + "../../../zstd/common/mem.h" + "../../../zstd/common/pool.h" + "../../../zstd/common/portability_macros.h" + "../../../zstd/common/threading.h" + "../../../zstd/common/xxhash.h" + "../../../zstd/common/zstd_deps.h" + "../../../zstd/common/zstd_internal.h" + "../../../zstd/common/zstd_trace.h" + "../../../zstd/compress/clevels.h" + "../../../zstd/compress/hist.h" + "../../../zstd/compress/zstdmt_compress.h" + "../../../zstd/compress/zstd_compress_internal.h" + "../../../zstd/compress/zstd_compress_literals.h" + "../../../zstd/compress/zstd_compress_sequences.h" + "../../../zstd/compress/zstd_compress_superblock.h" + "../../../zstd/compress/zstd_cwksp.h" + "../../../zstd/compress/zstd_double_fast.h" + "../../../zstd/compress/zstd_fast.h" + "../../../zstd/compress/zstd_lazy.h" + "../../../zstd/compress/zstd_ldm.h" + "../../../zstd/compress/zstd_ldm_geartab.h" + "../../../zstd/compress/zstd_opt.h" + "../../../zstd/decompress/zstd_ddict.h" + "../../../zstd/decompress/zstd_decompress_block.h" + "../../../zstd/decompress/zstd_decompress_internal.h" + "../../../zstd/dictBuilder/cover.h" + "../../../zstd/dictBuilder/divsufsort.h" + "../../../zstd/zdict.h" + "../../../zstd/zstd.h" + "../../../zstd/zstd_errors.h" + "../../src/Backend.hpp" + "../../src/ConnectionHistory.hpp" + "../../src/Filters.hpp" + "../../src/Fonts.hpp" + "../../src/font/DroidSans.hpp" + "../../src/font/FiraCodeRetina.hpp" + "../../src/font/FontAwesomeSolid.hpp" + "../../src/HttpRequest.hpp" + "../../src/icon.hpp" + "../../src/ImGuiContext.hpp" + "../../src/imgui/imgui_impl_glfw.h" + "../../src/imgui/imgui_impl_opengl3.h" + "../../src/imgui/imgui_impl_opengl3_loader.h" + "../../src/IsElevated.hpp" + "../../src/ResolvService.hpp" + "../../src/RunQueue.hpp" + "../../src/stb_image.h" + "../../src/WindowPosition.hpp" + + "Tracy.rc" +) + +add_executable(Tracy ${SRC_ALL}) + +target_include_directories(Tracy PRIVATE "../../../imgui/" ) +target_include_directories(Tracy PRIVATE ${FREETYPE_INCLUDE_DIRS}) +target_include_directories(Tracy PRIVATE "${capstone_dev_SOURCE_DIR}/include/capstone") + + +# TODO_CMAKE_WIN_BUILD block wrong code +target_compile_definitions(Tracy PRIVATE TODO_CMAKE_WIN_BUILD) + +# NO_PARALLEL_SORT disable unsuported +target_compile_definitions(Tracy PRIVATE NO_PARALLEL_SORT) + +target_link_libraries( + Tracy + PRIVATE + capstone::capstone + glfw + ws2_32.lib + Dbghelp.lib + advapi32.lib + freetype) \ No newline at end of file diff --git a/server/TracyTimelineItemGpu.cpp b/server/TracyTimelineItemGpu.cpp index 2974eb56..c5b9864c 100644 --- a/server/TracyTimelineItemGpu.cpp +++ b/server/TracyTimelineItemGpu.cpp @@ -117,7 +117,9 @@ void TimelineItemGpu::HeaderTooltip( const char* label ) const { ImGui::Separator(); ImGui::TextUnformatted( "GPU timer overflow has been detected." ); + #ifndef TODO_CMAKE_WIN_BUILD TextFocused( "Timer resolution:", RealToString( 63 - TracyLzcnt( m_gpu->overflow ) ) ); + #endif ImGui::SameLine(); TextDisabledUnformatted( "bits" ); } diff --git a/server/TracyWorker.cpp b/server/TracyWorker.cpp index d3820076..9aecf58b 100644 --- a/server/TracyWorker.cpp +++ b/server/TracyWorker.cpp @@ -5899,7 +5899,9 @@ void Worker::ProcessGpuTime( const QueueGpuTime& ev ) { if( ctx->overflow == 0 ) { + #ifndef TODO_CMAKE_WIN_BUILD // TODO remove it ctx->overflow = uint64_t( 1 ) << ( 64 - TracyLzcnt( ctx->lastGpuTime ) ); + #endif } ctx->overflowMul++; }