From 0faa9cf650c5b081858c25e4172265fd8d23ab4c Mon Sep 17 00:00:00 2001 From: Stenzek Date: Sun, 1 Dec 2024 22:23:46 +1000 Subject: [PATCH] Build: Add Devel configuration Gets you debug assertions and logging, while still producing an optimized executable. --- CMakeLists.txt | 8 +- CMakeModules/DuckStationBuildOptions.cmake | 14 ++ dep/msvc/vsprops/Base.props | 5 + dep/msvc/vsprops/Configurations.props | 8 + duckstation.sln | 162 ++++++++++++++++----- src/common/assert.h | 4 +- src/common/log.h | 4 +- src/core/CMakeLists.txt | 2 +- src/core/achievements.cpp | 2 +- src/core/bus.cpp | 4 +- src/core/cdrom.cpp | 2 +- src/core/core.vcxproj | 6 +- src/core/cpu_code_cache.cpp | 6 +- src/core/cpu_code_cache_private.h | 2 +- src/core/cpu_core.cpp | 2 +- src/core/cpu_recompiler.cpp | 8 +- src/core/dma.cpp | 4 +- src/core/gpu_dump.cpp | 2 +- src/core/gpu_hw.cpp | 6 +- src/core/gpu_hw_texture_cache.cpp | 6 +- src/core/guncon.cpp | 2 +- src/core/interrupt_controller.cpp | 4 +- src/core/memory_card.cpp | 2 +- src/core/timing_event.cpp | 2 +- src/duckstation-qt/CMakeLists.txt | 2 +- src/duckstation-qt/autoupdaterdialog.cpp | 2 +- src/duckstation-qt/qthost.cpp | 4 +- src/util/CMakeLists.txt | 2 +- src/util/cd_image_pbp.cpp | 12 +- src/util/d3d11_device.cpp | 10 +- src/util/d3d12_builders.cpp | 2 +- src/util/d3d12_builders.h | 2 +- src/util/d3d12_descriptor_heap_manager.cpp | 2 +- src/util/d3d12_device.cpp | 12 +- src/util/gpu_device.h | 2 +- src/util/imgui_fullscreen.cpp | 2 +- src/util/media_capture.cpp | 4 +- src/util/opengl_device.cpp | 6 +- src/util/opengl_pipeline.cpp | 6 +- src/util/opengl_pipeline.h | 2 +- src/util/opengl_stream_buffer.cpp | 2 +- src/util/opengl_texture.cpp | 6 +- src/util/postprocessing_shader_fx.cpp | 2 +- src/util/postprocessing_shader_fx.h | 2 +- src/util/sdl_input_source.cpp | 2 +- src/util/sockets.cpp | 2 +- src/util/util.props | 2 +- src/util/vulkan_builders.h | 2 +- src/util/vulkan_device.cpp | 12 +- 49 files changed, 247 insertions(+), 124 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index bdc61007d..8e8d37371 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -42,10 +42,6 @@ if(LINUX OR BSD) set(CMAKE_POSITION_INDEPENDENT_CODE TRUE) endif() -# Set _DEBUG macro for Debug builds. -set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -D_DEBUG") -set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -D_DEBUG") - # Release build optimizations for MSVC. if(MSVC) add_definitions("/D_CRT_SECURE_NO_WARNINGS") @@ -59,14 +55,18 @@ if(MSVC) # RelWithDebInfo is set to Ob1 instead of Ob2. string(REPLACE "/Ob1" "/Ob2" CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO}") + string(REPLACE "/Ob1" "/Ob2" CMAKE_C_FLAGS_DEVEL "${CMAKE_C_FLAGS_DEVEL}") string(REPLACE "/Ob1" "/Ob2" CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO}") + string(REPLACE "/Ob1" "/Ob2" CMAKE_CXX_FLAGS_DEVEL "${CMAKE_CXX_FLAGS_DEVEL}") # Disable incremental linking in RelWithDebInfo. string(REPLACE "/INCREMENTAL" "/INCREMENTAL:NO" CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO "${CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO}") + string(REPLACE "/INCREMENTAL" "/INCREMENTAL:NO" CMAKE_EXE_LINKER_FLAGS_DEVEL "${CMAKE_EXE_LINKER_FLAGS_DEVEL}") # COMDAT folding/remove unused functions. set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} /OPT:REF /OPT:ICF") set(CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO "${CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO} /OPT:REF /OPT:ICF") + set(CMAKE_EXE_LINKER_FLAGS_DEVEL "${CMAKE_EXE_LINKER_FLAGS_DEVEL} /OPT:REF /OPT:ICF") endif() # Warning disables. diff --git a/CMakeModules/DuckStationBuildOptions.cmake b/CMakeModules/DuckStationBuildOptions.cmake index 19b8d2a6f..0bc28c52a 100644 --- a/CMakeModules/DuckStationBuildOptions.cmake +++ b/CMakeModules/DuckStationBuildOptions.cmake @@ -16,3 +16,17 @@ endif() if(APPLE) option(SKIP_POSTPROCESS_BUNDLE "Disable bundle post-processing, including Qt additions" OFF) endif() + +# Set _DEBUG macro for Debug builds. +set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -D_DEBUG") +set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -D_DEBUG") + +# Create the Devel build type based on RelWithDebInfo. +set(CMAKE_C_FLAGS_DEVEL "${CMAKE_C_FLAGS_RELWITHDEBINFO} -D_DEVEL" CACHE STRING "Flags used by the C compiler during DEVEL builds." FORCE) +set(CMAKE_CXX_FLAGS_DEVEL "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -D_DEVEL" CACHE STRING "Flags used by the CXX compiler during DEVEL builds." FORCE) +set(CMAKE_EXE_LINKER_FLAGS_DEVEL "${CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO}" CACHE STRING "Flags used for the linker during DEVEL builds." FORCE) +set(CMAKE_MODULE_LINKER_FLAGS_DEVEL "${CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO}" CACHE STRING "Flags used by the linker during the creation of modules during DEVEL builds." FORCE) +set(CMAKE_SHARED_LINKER_FLAGS_DEVEL "${CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO}" CACHE STRING "Flags used by the linker during the creation of shared libraries during DEVEL builds." FORCE) +set(CMAKE_STATIC_LINKER_FLAGS_DEVEL "${CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO}" CACHE STRING "Flags used by the linker during the creation of static libraries during DEVEL builds." FORCE) +list(APPEND CMAKE_CONFIGURATION_TYPES "Devel") +mark_as_advanced(CMAKE_C_FLAGS_DEVEL CMAKE_CXX_FLAGS_DEVEL CMAKE_EXE_LINKER_FLAGS_DEVEL CMAKE_MODULE_LINKER_FLAGS_DEVEL CMAKE_SHARED_LINKER_FLAGS_DEVEL CMAKE_STATIC_LINKER_FLAGS_DEVEL) diff --git a/dep/msvc/vsprops/Base.props b/dep/msvc/vsprops/Base.props index 75895dfe0..8fe2ec131 100644 --- a/dep/msvc/vsprops/Base.props +++ b/dep/msvc/vsprops/Base.props @@ -82,4 +82,9 @@ UseLinkTimeCodeGeneration + + + _DEVEL;%(PreprocessorDefinitions) + + \ No newline at end of file diff --git a/dep/msvc/vsprops/Configurations.props b/dep/msvc/vsprops/Configurations.props index ad161b73a..8be0c0609 100644 --- a/dep/msvc/vsprops/Configurations.props +++ b/dep/msvc/vsprops/Configurations.props @@ -57,6 +57,14 @@ Release-Clang x64 + + Devel-Clang + ARM64 + + + Devel-Clang + x64 + diff --git a/duckstation.sln b/duckstation.sln index fdf139d29..d168d2f34 100644 --- a/duckstation.sln +++ b/duckstation.sln @@ -67,6 +67,8 @@ Global DebugFast|x64 = DebugFast|x64 DebugFast-Clang|ARM64 = DebugFast-Clang|ARM64 DebugFast-Clang|x64 = DebugFast-Clang|x64 + Devel-Clang|ARM64 = Devel-Clang|ARM64 + Devel-Clang|x64 = Devel-Clang|x64 Release|ARM64 = Release|ARM64 Release|x64 = Release|x64 Release-Clang|ARM64 = Release-Clang|ARM64 @@ -79,6 +81,44 @@ Global ReleaseLTCG-Clang-SSE2|x64 = ReleaseLTCG-Clang-SSE2|x64 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution + {28F14272-0EC4-41BB-849F-182ADB81AF70}.Debug|ARM64.ActiveCfg = Debug-Clang|ARM64 + {28F14272-0EC4-41BB-849F-182ADB81AF70}.Debug|x64.ActiveCfg = Debug|x64 + {28F14272-0EC4-41BB-849F-182ADB81AF70}.Debug|x64.Build.0 = Debug|x64 + {28F14272-0EC4-41BB-849F-182ADB81AF70}.Debug-Clang|ARM64.ActiveCfg = Debug-Clang|ARM64 + {28F14272-0EC4-41BB-849F-182ADB81AF70}.Debug-Clang|ARM64.Build.0 = Debug-Clang|ARM64 + {28F14272-0EC4-41BB-849F-182ADB81AF70}.Debug-Clang|x64.ActiveCfg = Debug-Clang|x64 + {28F14272-0EC4-41BB-849F-182ADB81AF70}.Debug-Clang|x64.Build.0 = Debug-Clang|x64 + {28F14272-0EC4-41BB-849F-182ADB81AF70}.Debug-Clang-SSE2|ARM64.ActiveCfg = Debug-Clang|ARM64 + {28F14272-0EC4-41BB-849F-182ADB81AF70}.Debug-Clang-SSE2|x64.ActiveCfg = Debug-Clang-SSE2|x64 + {28F14272-0EC4-41BB-849F-182ADB81AF70}.Debug-Clang-SSE2|x64.Build.0 = Debug-Clang-SSE2|x64 + {28F14272-0EC4-41BB-849F-182ADB81AF70}.DebugFast|ARM64.ActiveCfg = DebugFast-Clang|ARM64 + {28F14272-0EC4-41BB-849F-182ADB81AF70}.DebugFast|x64.ActiveCfg = DebugFast|x64 + {28F14272-0EC4-41BB-849F-182ADB81AF70}.DebugFast|x64.Build.0 = DebugFast|x64 + {28F14272-0EC4-41BB-849F-182ADB81AF70}.DebugFast-Clang|ARM64.ActiveCfg = DebugFast-Clang|ARM64 + {28F14272-0EC4-41BB-849F-182ADB81AF70}.DebugFast-Clang|ARM64.Build.0 = DebugFast-Clang|ARM64 + {28F14272-0EC4-41BB-849F-182ADB81AF70}.DebugFast-Clang|x64.ActiveCfg = DebugFast-Clang|x64 + {28F14272-0EC4-41BB-849F-182ADB81AF70}.DebugFast-Clang|x64.Build.0 = DebugFast-Clang|x64 + {28F14272-0EC4-41BB-849F-182ADB81AF70}.Devel-Clang|ARM64.ActiveCfg = Devel-Clang|ARM64 + {28F14272-0EC4-41BB-849F-182ADB81AF70}.Devel-Clang|ARM64.Build.0 = Devel-Clang|ARM64 + {28F14272-0EC4-41BB-849F-182ADB81AF70}.Devel-Clang|x64.ActiveCfg = Devel-Clang|x64 + {28F14272-0EC4-41BB-849F-182ADB81AF70}.Devel-Clang|x64.Build.0 = Devel-Clang|x64 + {28F14272-0EC4-41BB-849F-182ADB81AF70}.Release|ARM64.ActiveCfg = Release-Clang|ARM64 + {28F14272-0EC4-41BB-849F-182ADB81AF70}.Release|x64.ActiveCfg = Release|x64 + {28F14272-0EC4-41BB-849F-182ADB81AF70}.Release|x64.Build.0 = Release|x64 + {28F14272-0EC4-41BB-849F-182ADB81AF70}.Release-Clang|ARM64.ActiveCfg = Release-Clang|ARM64 + {28F14272-0EC4-41BB-849F-182ADB81AF70}.Release-Clang|ARM64.Build.0 = Release-Clang|ARM64 + {28F14272-0EC4-41BB-849F-182ADB81AF70}.Release-Clang|x64.ActiveCfg = Release-Clang|x64 + {28F14272-0EC4-41BB-849F-182ADB81AF70}.Release-Clang|x64.Build.0 = Release-Clang|x64 + {28F14272-0EC4-41BB-849F-182ADB81AF70}.ReleaseLTCG|ARM64.ActiveCfg = ReleaseLTCG-Clang|ARM64 + {28F14272-0EC4-41BB-849F-182ADB81AF70}.ReleaseLTCG|x64.ActiveCfg = ReleaseLTCG|x64 + {28F14272-0EC4-41BB-849F-182ADB81AF70}.ReleaseLTCG|x64.Build.0 = ReleaseLTCG|x64 + {28F14272-0EC4-41BB-849F-182ADB81AF70}.ReleaseLTCG-Clang|ARM64.ActiveCfg = ReleaseLTCG-Clang|ARM64 + {28F14272-0EC4-41BB-849F-182ADB81AF70}.ReleaseLTCG-Clang|ARM64.Build.0 = ReleaseLTCG-Clang|ARM64 + {28F14272-0EC4-41BB-849F-182ADB81AF70}.ReleaseLTCG-Clang|x64.ActiveCfg = ReleaseLTCG-Clang|x64 + {28F14272-0EC4-41BB-849F-182ADB81AF70}.ReleaseLTCG-Clang|x64.Build.0 = ReleaseLTCG-Clang|x64 + {28F14272-0EC4-41BB-849F-182ADB81AF70}.ReleaseLTCG-Clang-SSE2|ARM64.ActiveCfg = ReleaseLTCG-Clang|ARM64 + {28F14272-0EC4-41BB-849F-182ADB81AF70}.ReleaseLTCG-Clang-SSE2|x64.ActiveCfg = ReleaseLTCG-Clang-SSE2|x64 + {28F14272-0EC4-41BB-849F-182ADB81AF70}.ReleaseLTCG-Clang-SSE2|x64.Build.0 = ReleaseLTCG-Clang-SSE2|x64 {43540154-9E1E-409C-834F-B84BE5621388}.Debug|ARM64.ActiveCfg = Debug-Clang|ARM64 {43540154-9E1E-409C-834F-B84BE5621388}.Debug|x64.ActiveCfg = Debug|x64 {43540154-9E1E-409C-834F-B84BE5621388}.Debug|x64.Build.0 = Debug|x64 @@ -96,6 +136,10 @@ Global {43540154-9E1E-409C-834F-B84BE5621388}.DebugFast-Clang|ARM64.Build.0 = DebugFast-Clang|ARM64 {43540154-9E1E-409C-834F-B84BE5621388}.DebugFast-Clang|x64.ActiveCfg = DebugFast-Clang|x64 {43540154-9E1E-409C-834F-B84BE5621388}.DebugFast-Clang|x64.Build.0 = DebugFast-Clang|x64 + {43540154-9E1E-409C-834F-B84BE5621388}.Devel-Clang|ARM64.ActiveCfg = Devel-Clang|ARM64 + {43540154-9E1E-409C-834F-B84BE5621388}.Devel-Clang|ARM64.Build.0 = Devel-Clang|ARM64 + {43540154-9E1E-409C-834F-B84BE5621388}.Devel-Clang|x64.ActiveCfg = Devel-Clang|x64 + {43540154-9E1E-409C-834F-B84BE5621388}.Devel-Clang|x64.Build.0 = Devel-Clang|x64 {43540154-9E1E-409C-834F-B84BE5621388}.Release|ARM64.ActiveCfg = Release-Clang|ARM64 {43540154-9E1E-409C-834F-B84BE5621388}.Release|x64.ActiveCfg = Release|x64 {43540154-9E1E-409C-834F-B84BE5621388}.Release|x64.Build.0 = Release|x64 @@ -130,6 +174,10 @@ Global {BB08260F-6FBC-46AF-8924-090EE71360C6}.DebugFast-Clang|ARM64.Build.0 = DebugFast-Clang|ARM64 {BB08260F-6FBC-46AF-8924-090EE71360C6}.DebugFast-Clang|x64.ActiveCfg = DebugFast-Clang|x64 {BB08260F-6FBC-46AF-8924-090EE71360C6}.DebugFast-Clang|x64.Build.0 = DebugFast-Clang|x64 + {BB08260F-6FBC-46AF-8924-090EE71360C6}.Devel-Clang|ARM64.ActiveCfg = Devel-Clang|ARM64 + {BB08260F-6FBC-46AF-8924-090EE71360C6}.Devel-Clang|ARM64.Build.0 = Devel-Clang|ARM64 + {BB08260F-6FBC-46AF-8924-090EE71360C6}.Devel-Clang|x64.ActiveCfg = Devel-Clang|x64 + {BB08260F-6FBC-46AF-8924-090EE71360C6}.Devel-Clang|x64.Build.0 = Devel-Clang|x64 {BB08260F-6FBC-46AF-8924-090EE71360C6}.Release|ARM64.ActiveCfg = Release-Clang|ARM64 {BB08260F-6FBC-46AF-8924-090EE71360C6}.Release|x64.ActiveCfg = Release|x64 {BB08260F-6FBC-46AF-8924-090EE71360C6}.Release|x64.Build.0 = Release|x64 @@ -164,6 +212,10 @@ Global {EE054E08-3799-4A59-A422-18259C105FFD}.DebugFast-Clang|ARM64.Build.0 = DebugFast-Clang|ARM64 {EE054E08-3799-4A59-A422-18259C105FFD}.DebugFast-Clang|x64.ActiveCfg = DebugFast-Clang|x64 {EE054E08-3799-4A59-A422-18259C105FFD}.DebugFast-Clang|x64.Build.0 = DebugFast-Clang|x64 + {EE054E08-3799-4A59-A422-18259C105FFD}.Devel-Clang|ARM64.ActiveCfg = Devel-Clang|ARM64 + {EE054E08-3799-4A59-A422-18259C105FFD}.Devel-Clang|ARM64.Build.0 = Devel-Clang|ARM64 + {EE054E08-3799-4A59-A422-18259C105FFD}.Devel-Clang|x64.ActiveCfg = Devel-Clang|x64 + {EE054E08-3799-4A59-A422-18259C105FFD}.Devel-Clang|x64.Build.0 = Devel-Clang|x64 {EE054E08-3799-4A59-A422-18259C105FFD}.Release|ARM64.ActiveCfg = Release-Clang|ARM64 {EE054E08-3799-4A59-A422-18259C105FFD}.Release|x64.ActiveCfg = Release|x64 {EE054E08-3799-4A59-A422-18259C105FFD}.Release|x64.Build.0 = Release|x64 @@ -198,6 +250,10 @@ Global {868B98C8-65A1-494B-8346-250A73A48C0A}.DebugFast-Clang|ARM64.Build.0 = DebugFast-Clang|ARM64 {868B98C8-65A1-494B-8346-250A73A48C0A}.DebugFast-Clang|x64.ActiveCfg = DebugFast-Clang|x64 {868B98C8-65A1-494B-8346-250A73A48C0A}.DebugFast-Clang|x64.Build.0 = DebugFast-Clang|x64 + {868B98C8-65A1-494B-8346-250A73A48C0A}.Devel-Clang|ARM64.ActiveCfg = Devel-Clang|ARM64 + {868B98C8-65A1-494B-8346-250A73A48C0A}.Devel-Clang|ARM64.Build.0 = Devel-Clang|ARM64 + {868B98C8-65A1-494B-8346-250A73A48C0A}.Devel-Clang|x64.ActiveCfg = Devel-Clang|x64 + {868B98C8-65A1-494B-8346-250A73A48C0A}.Devel-Clang|x64.Build.0 = Devel-Clang|x64 {868B98C8-65A1-494B-8346-250A73A48C0A}.Release|ARM64.ActiveCfg = Release-Clang|ARM64 {868B98C8-65A1-494B-8346-250A73A48C0A}.Release|x64.ActiveCfg = Release|x64 {868B98C8-65A1-494B-8346-250A73A48C0A}.Release|x64.Build.0 = Release|x64 @@ -232,6 +288,10 @@ Global {3773F4CC-614E-4028-8595-22E08CA649E3}.DebugFast-Clang|ARM64.Build.0 = DebugFast-Clang|ARM64 {3773F4CC-614E-4028-8595-22E08CA649E3}.DebugFast-Clang|x64.ActiveCfg = DebugFast-Clang|x64 {3773F4CC-614E-4028-8595-22E08CA649E3}.DebugFast-Clang|x64.Build.0 = DebugFast-Clang|x64 + {3773F4CC-614E-4028-8595-22E08CA649E3}.Devel-Clang|ARM64.ActiveCfg = Devel-Clang|ARM64 + {3773F4CC-614E-4028-8595-22E08CA649E3}.Devel-Clang|ARM64.Build.0 = Devel-Clang|ARM64 + {3773F4CC-614E-4028-8595-22E08CA649E3}.Devel-Clang|x64.ActiveCfg = Devel-Clang|x64 + {3773F4CC-614E-4028-8595-22E08CA649E3}.Devel-Clang|x64.Build.0 = Devel-Clang|x64 {3773F4CC-614E-4028-8595-22E08CA649E3}.Release|ARM64.ActiveCfg = Release-Clang|ARM64 {3773F4CC-614E-4028-8595-22E08CA649E3}.Release|x64.ActiveCfg = Release|x64 {3773F4CC-614E-4028-8595-22E08CA649E3}.Release|x64.Build.0 = Release|x64 @@ -249,40 +309,6 @@ Global {3773F4CC-614E-4028-8595-22E08CA649E3}.ReleaseLTCG-Clang-SSE2|ARM64.ActiveCfg = ReleaseLTCG-Clang|ARM64 {3773F4CC-614E-4028-8595-22E08CA649E3}.ReleaseLTCG-Clang-SSE2|x64.ActiveCfg = ReleaseLTCG-Clang-SSE2|x64 {3773F4CC-614E-4028-8595-22E08CA649E3}.ReleaseLTCG-Clang-SSE2|x64.Build.0 = ReleaseLTCG-Clang-SSE2|x64 - {28F14272-0EC4-41BB-849F-182ADB81AF70}.Debug|ARM64.ActiveCfg = Debug-Clang|ARM64 - {28F14272-0EC4-41BB-849F-182ADB81AF70}.Debug|x64.ActiveCfg = Debug|x64 - {28F14272-0EC4-41BB-849F-182ADB81AF70}.Debug|x64.Build.0 = Debug|x64 - {28F14272-0EC4-41BB-849F-182ADB81AF70}.Debug-Clang|ARM64.ActiveCfg = Debug-Clang|ARM64 - {28F14272-0EC4-41BB-849F-182ADB81AF70}.Debug-Clang|ARM64.Build.0 = Debug-Clang|ARM64 - {28F14272-0EC4-41BB-849F-182ADB81AF70}.Debug-Clang|x64.ActiveCfg = Debug-Clang|x64 - {28F14272-0EC4-41BB-849F-182ADB81AF70}.Debug-Clang|x64.Build.0 = Debug-Clang|x64 - {28F14272-0EC4-41BB-849F-182ADB81AF70}.Debug-Clang-SSE2|ARM64.ActiveCfg = Debug-Clang|ARM64 - {28F14272-0EC4-41BB-849F-182ADB81AF70}.Debug-Clang-SSE2|x64.ActiveCfg = Debug-Clang-SSE2|x64 - {28F14272-0EC4-41BB-849F-182ADB81AF70}.Debug-Clang-SSE2|x64.Build.0 = Debug-Clang-SSE2|x64 - {28F14272-0EC4-41BB-849F-182ADB81AF70}.DebugFast|ARM64.ActiveCfg = DebugFast-Clang|ARM64 - {28F14272-0EC4-41BB-849F-182ADB81AF70}.DebugFast|x64.ActiveCfg = DebugFast|x64 - {28F14272-0EC4-41BB-849F-182ADB81AF70}.DebugFast|x64.Build.0 = DebugFast|x64 - {28F14272-0EC4-41BB-849F-182ADB81AF70}.DebugFast-Clang|ARM64.ActiveCfg = DebugFast-Clang|ARM64 - {28F14272-0EC4-41BB-849F-182ADB81AF70}.DebugFast-Clang|ARM64.Build.0 = DebugFast-Clang|ARM64 - {28F14272-0EC4-41BB-849F-182ADB81AF70}.DebugFast-Clang|x64.ActiveCfg = DebugFast-Clang|x64 - {28F14272-0EC4-41BB-849F-182ADB81AF70}.DebugFast-Clang|x64.Build.0 = DebugFast-Clang|x64 - {28F14272-0EC4-41BB-849F-182ADB81AF70}.Release|ARM64.ActiveCfg = Release-Clang|ARM64 - {28F14272-0EC4-41BB-849F-182ADB81AF70}.Release|x64.ActiveCfg = Release|x64 - {28F14272-0EC4-41BB-849F-182ADB81AF70}.Release|x64.Build.0 = Release|x64 - {28F14272-0EC4-41BB-849F-182ADB81AF70}.Release-Clang|ARM64.ActiveCfg = Release-Clang|ARM64 - {28F14272-0EC4-41BB-849F-182ADB81AF70}.Release-Clang|ARM64.Build.0 = Release-Clang|ARM64 - {28F14272-0EC4-41BB-849F-182ADB81AF70}.Release-Clang|x64.ActiveCfg = Release-Clang|x64 - {28F14272-0EC4-41BB-849F-182ADB81AF70}.Release-Clang|x64.Build.0 = Release-Clang|x64 - {28F14272-0EC4-41BB-849F-182ADB81AF70}.ReleaseLTCG|ARM64.ActiveCfg = ReleaseLTCG-Clang|ARM64 - {28F14272-0EC4-41BB-849F-182ADB81AF70}.ReleaseLTCG|x64.ActiveCfg = ReleaseLTCG|x64 - {28F14272-0EC4-41BB-849F-182ADB81AF70}.ReleaseLTCG|x64.Build.0 = ReleaseLTCG|x64 - {28F14272-0EC4-41BB-849F-182ADB81AF70}.ReleaseLTCG-Clang|ARM64.ActiveCfg = ReleaseLTCG-Clang|ARM64 - {28F14272-0EC4-41BB-849F-182ADB81AF70}.ReleaseLTCG-Clang|ARM64.Build.0 = ReleaseLTCG-Clang|ARM64 - {28F14272-0EC4-41BB-849F-182ADB81AF70}.ReleaseLTCG-Clang|x64.ActiveCfg = ReleaseLTCG-Clang|x64 - {28F14272-0EC4-41BB-849F-182ADB81AF70}.ReleaseLTCG-Clang|x64.Build.0 = ReleaseLTCG-Clang|x64 - {28F14272-0EC4-41BB-849F-182ADB81AF70}.ReleaseLTCG-Clang-SSE2|ARM64.ActiveCfg = ReleaseLTCG-Clang|ARM64 - {28F14272-0EC4-41BB-849F-182ADB81AF70}.ReleaseLTCG-Clang-SSE2|x64.ActiveCfg = ReleaseLTCG-Clang-SSE2|x64 - {28F14272-0EC4-41BB-849F-182ADB81AF70}.ReleaseLTCG-Clang-SSE2|x64.Build.0 = ReleaseLTCG-Clang-SSE2|x64 {72F9423C-91EE-4487-AAC6-555ED6F61AA1}.Debug|ARM64.ActiveCfg = Debug-Clang|ARM64 {72F9423C-91EE-4487-AAC6-555ED6F61AA1}.Debug|x64.ActiveCfg = Debug|x64 {72F9423C-91EE-4487-AAC6-555ED6F61AA1}.Debug|x64.Build.0 = Debug|x64 @@ -300,6 +326,10 @@ Global {72F9423C-91EE-4487-AAC6-555ED6F61AA1}.DebugFast-Clang|ARM64.Build.0 = DebugFast-Clang|ARM64 {72F9423C-91EE-4487-AAC6-555ED6F61AA1}.DebugFast-Clang|x64.ActiveCfg = DebugFast-Clang|x64 {72F9423C-91EE-4487-AAC6-555ED6F61AA1}.DebugFast-Clang|x64.Build.0 = DebugFast-Clang|x64 + {72F9423C-91EE-4487-AAC6-555ED6F61AA1}.Devel-Clang|ARM64.ActiveCfg = Devel-Clang|ARM64 + {72F9423C-91EE-4487-AAC6-555ED6F61AA1}.Devel-Clang|ARM64.Build.0 = Devel-Clang|ARM64 + {72F9423C-91EE-4487-AAC6-555ED6F61AA1}.Devel-Clang|x64.ActiveCfg = Devel-Clang|x64 + {72F9423C-91EE-4487-AAC6-555ED6F61AA1}.Devel-Clang|x64.Build.0 = Devel-Clang|x64 {72F9423C-91EE-4487-AAC6-555ED6F61AA1}.Release|ARM64.ActiveCfg = Release-Clang|ARM64 {72F9423C-91EE-4487-AAC6-555ED6F61AA1}.Release|x64.ActiveCfg = Release|x64 {72F9423C-91EE-4487-AAC6-555ED6F61AA1}.Release|x64.Build.0 = Release|x64 @@ -334,6 +364,10 @@ Global {8BDA439C-6358-45FB-9994-2FF083BABE06}.DebugFast-Clang|ARM64.Build.0 = DebugFast-Clang|ARM64 {8BDA439C-6358-45FB-9994-2FF083BABE06}.DebugFast-Clang|x64.ActiveCfg = DebugFast-Clang|x64 {8BDA439C-6358-45FB-9994-2FF083BABE06}.DebugFast-Clang|x64.Build.0 = DebugFast-Clang|x64 + {8BDA439C-6358-45FB-9994-2FF083BABE06}.Devel-Clang|ARM64.ActiveCfg = Devel-Clang|ARM64 + {8BDA439C-6358-45FB-9994-2FF083BABE06}.Devel-Clang|ARM64.Build.0 = Devel-Clang|ARM64 + {8BDA439C-6358-45FB-9994-2FF083BABE06}.Devel-Clang|x64.ActiveCfg = Devel-Clang|x64 + {8BDA439C-6358-45FB-9994-2FF083BABE06}.Devel-Clang|x64.Build.0 = Devel-Clang|x64 {8BDA439C-6358-45FB-9994-2FF083BABE06}.Release|ARM64.ActiveCfg = Release-Clang|ARM64 {8BDA439C-6358-45FB-9994-2FF083BABE06}.Release|x64.ActiveCfg = Release|x64 {8BDA439C-6358-45FB-9994-2FF083BABE06}.Release|x64.Build.0 = Release|x64 @@ -368,6 +402,10 @@ Global {425D6C99-D1C8-43C2-B8AC-4D7B1D941017}.DebugFast-Clang|ARM64.Build.0 = DebugFast-Clang|ARM64 {425D6C99-D1C8-43C2-B8AC-4D7B1D941017}.DebugFast-Clang|x64.ActiveCfg = DebugFast-Clang|x64 {425D6C99-D1C8-43C2-B8AC-4D7B1D941017}.DebugFast-Clang|x64.Build.0 = DebugFast-Clang|x64 + {425D6C99-D1C8-43C2-B8AC-4D7B1D941017}.Devel-Clang|ARM64.ActiveCfg = Devel-Clang|ARM64 + {425D6C99-D1C8-43C2-B8AC-4D7B1D941017}.Devel-Clang|ARM64.Build.0 = Devel-Clang|ARM64 + {425D6C99-D1C8-43C2-B8AC-4D7B1D941017}.Devel-Clang|x64.ActiveCfg = Devel-Clang|x64 + {425D6C99-D1C8-43C2-B8AC-4D7B1D941017}.Devel-Clang|x64.Build.0 = Devel-Clang|x64 {425D6C99-D1C8-43C2-B8AC-4D7B1D941017}.Release|ARM64.ActiveCfg = Release-Clang|ARM64 {425D6C99-D1C8-43C2-B8AC-4D7B1D941017}.Release|x64.ActiveCfg = Release|x64 {425D6C99-D1C8-43C2-B8AC-4D7B1D941017}.Release|x64.Build.0 = Release|x64 @@ -402,6 +440,10 @@ Global {DD944834-7899-4C1C-A4C1-064B5009D239}.DebugFast-Clang|ARM64.Build.0 = DebugFast-Clang|ARM64 {DD944834-7899-4C1C-A4C1-064B5009D239}.DebugFast-Clang|x64.ActiveCfg = DebugFast-Clang|x64 {DD944834-7899-4C1C-A4C1-064B5009D239}.DebugFast-Clang|x64.Build.0 = DebugFast-Clang|x64 + {DD944834-7899-4C1C-A4C1-064B5009D239}.Devel-Clang|ARM64.ActiveCfg = Devel-Clang|ARM64 + {DD944834-7899-4C1C-A4C1-064B5009D239}.Devel-Clang|ARM64.Build.0 = Devel-Clang|ARM64 + {DD944834-7899-4C1C-A4C1-064B5009D239}.Devel-Clang|x64.ActiveCfg = Devel-Clang|x64 + {DD944834-7899-4C1C-A4C1-064B5009D239}.Devel-Clang|x64.Build.0 = Devel-Clang|x64 {DD944834-7899-4C1C-A4C1-064B5009D239}.Release|ARM64.ActiveCfg = Release-Clang|ARM64 {DD944834-7899-4C1C-A4C1-064B5009D239}.Release|x64.ActiveCfg = Release|x64 {DD944834-7899-4C1C-A4C1-064B5009D239}.Release|x64.Build.0 = Release|x64 @@ -436,6 +478,10 @@ Global {09553C96-9F39-49BF-8AE6-7ACBD07C410C}.DebugFast-Clang|ARM64.Build.0 = DebugFast-Clang|ARM64 {09553C96-9F39-49BF-8AE6-7ACBD07C410C}.DebugFast-Clang|x64.ActiveCfg = DebugFast-Clang|x64 {09553C96-9F39-49BF-8AE6-7ACBD07C410C}.DebugFast-Clang|x64.Build.0 = DebugFast-Clang|x64 + {09553C96-9F39-49BF-8AE6-7ACBD07C410C}.Devel-Clang|ARM64.ActiveCfg = Devel-Clang|ARM64 + {09553C96-9F39-49BF-8AE6-7ACBD07C410C}.Devel-Clang|ARM64.Build.0 = Devel-Clang|ARM64 + {09553C96-9F39-49BF-8AE6-7ACBD07C410C}.Devel-Clang|x64.ActiveCfg = Devel-Clang|x64 + {09553C96-9F39-49BF-8AE6-7ACBD07C410C}.Devel-Clang|x64.Build.0 = Devel-Clang|x64 {09553C96-9F39-49BF-8AE6-7ACBD07C410C}.Release|ARM64.ActiveCfg = Release-Clang|ARM64 {09553C96-9F39-49BF-8AE6-7ACBD07C410C}.Release|x64.ActiveCfg = Release|x64 {09553C96-9F39-49BF-8AE6-7ACBD07C410C}.Release|x64.Build.0 = Release|x64 @@ -470,6 +516,10 @@ Global {49953E1B-2EF7-46A4-B88B-1BF9E099093B}.DebugFast-Clang|ARM64.Build.0 = DebugFast-Clang|ARM64 {49953E1B-2EF7-46A4-B88B-1BF9E099093B}.DebugFast-Clang|x64.ActiveCfg = DebugFast-Clang|x64 {49953E1B-2EF7-46A4-B88B-1BF9E099093B}.DebugFast-Clang|x64.Build.0 = DebugFast-Clang|x64 + {49953E1B-2EF7-46A4-B88B-1BF9E099093B}.Devel-Clang|ARM64.ActiveCfg = Devel-Clang|ARM64 + {49953E1B-2EF7-46A4-B88B-1BF9E099093B}.Devel-Clang|ARM64.Build.0 = Devel-Clang|ARM64 + {49953E1B-2EF7-46A4-B88B-1BF9E099093B}.Devel-Clang|x64.ActiveCfg = Devel-Clang|x64 + {49953E1B-2EF7-46A4-B88B-1BF9E099093B}.Devel-Clang|x64.Build.0 = Devel-Clang|x64 {49953E1B-2EF7-46A4-B88B-1BF9E099093B}.Release|ARM64.ActiveCfg = Release-Clang|ARM64 {49953E1B-2EF7-46A4-B88B-1BF9E099093B}.Release|x64.ActiveCfg = Release|x64 {49953E1B-2EF7-46A4-B88B-1BF9E099093B}.Release|x64.Build.0 = Release|x64 @@ -497,6 +547,8 @@ Global {EA2B9C7A-B8CC-42F9-879B-191A98680C10}.DebugFast|x64.ActiveCfg = DebugFast|x64 {EA2B9C7A-B8CC-42F9-879B-191A98680C10}.DebugFast-Clang|ARM64.ActiveCfg = DebugFast-Clang|ARM64 {EA2B9C7A-B8CC-42F9-879B-191A98680C10}.DebugFast-Clang|x64.ActiveCfg = DebugFast-Clang|x64 + {EA2B9C7A-B8CC-42F9-879B-191A98680C10}.Devel-Clang|ARM64.ActiveCfg = Devel-Clang|ARM64 + {EA2B9C7A-B8CC-42F9-879B-191A98680C10}.Devel-Clang|x64.ActiveCfg = Devel-Clang|x64 {EA2B9C7A-B8CC-42F9-879B-191A98680C10}.Release|ARM64.ActiveCfg = Release-Clang|ARM64 {EA2B9C7A-B8CC-42F9-879B-191A98680C10}.Release|x64.ActiveCfg = Release|x64 {EA2B9C7A-B8CC-42F9-879B-191A98680C10}.Release-Clang|ARM64.ActiveCfg = Release-Clang|ARM64 @@ -524,6 +576,10 @@ Global {075CED82-6A20-46DF-94C7-9624AC9DDBEB}.DebugFast-Clang|ARM64.Build.0 = DebugFast-Clang|ARM64 {075CED82-6A20-46DF-94C7-9624AC9DDBEB}.DebugFast-Clang|x64.ActiveCfg = DebugFast-Clang|x64 {075CED82-6A20-46DF-94C7-9624AC9DDBEB}.DebugFast-Clang|x64.Build.0 = DebugFast-Clang|x64 + {075CED82-6A20-46DF-94C7-9624AC9DDBEB}.Devel-Clang|ARM64.ActiveCfg = Devel-Clang|ARM64 + {075CED82-6A20-46DF-94C7-9624AC9DDBEB}.Devel-Clang|ARM64.Build.0 = Devel-Clang|ARM64 + {075CED82-6A20-46DF-94C7-9624AC9DDBEB}.Devel-Clang|x64.ActiveCfg = Devel-Clang|x64 + {075CED82-6A20-46DF-94C7-9624AC9DDBEB}.Devel-Clang|x64.Build.0 = Devel-Clang|x64 {075CED82-6A20-46DF-94C7-9624AC9DDBEB}.Release|ARM64.ActiveCfg = Release-Clang|ARM64 {075CED82-6A20-46DF-94C7-9624AC9DDBEB}.Release|x64.ActiveCfg = Release|x64 {075CED82-6A20-46DF-94C7-9624AC9DDBEB}.Release|x64.Build.0 = Release|x64 @@ -551,6 +607,8 @@ Global {32EEAF44-57F8-4C6C-A6F0-DE5667123DD5}.DebugFast|x64.ActiveCfg = DebugFast|x64 {32EEAF44-57F8-4C6C-A6F0-DE5667123DD5}.DebugFast-Clang|ARM64.ActiveCfg = DebugFast-Clang|ARM64 {32EEAF44-57F8-4C6C-A6F0-DE5667123DD5}.DebugFast-Clang|x64.ActiveCfg = DebugFast-Clang|x64 + {32EEAF44-57F8-4C6C-A6F0-DE5667123DD5}.Devel-Clang|ARM64.ActiveCfg = Devel-Clang|ARM64 + {32EEAF44-57F8-4C6C-A6F0-DE5667123DD5}.Devel-Clang|x64.ActiveCfg = Devel-Clang|x64 {32EEAF44-57F8-4C6C-A6F0-DE5667123DD5}.Release|ARM64.ActiveCfg = Release-Clang|ARM64 {32EEAF44-57F8-4C6C-A6F0-DE5667123DD5}.Release|x64.ActiveCfg = Release|x64 {32EEAF44-57F8-4C6C-A6F0-DE5667123DD5}.Release-Clang|ARM64.ActiveCfg = Release-Clang|ARM64 @@ -576,6 +634,9 @@ Global {8906836E-F06E-46E8-B11A-74E5E8C7B8FB}.DebugFast-Clang|ARM64.ActiveCfg = DebugFast-Clang|ARM64 {8906836E-F06E-46E8-B11A-74E5E8C7B8FB}.DebugFast-Clang|ARM64.Build.0 = DebugFast-Clang|ARM64 {8906836E-F06E-46E8-B11A-74E5E8C7B8FB}.DebugFast-Clang|x64.ActiveCfg = DebugFast-Clang|x64 + {8906836E-F06E-46E8-B11A-74E5E8C7B8FB}.Devel-Clang|ARM64.ActiveCfg = Devel-Clang|ARM64 + {8906836E-F06E-46E8-B11A-74E5E8C7B8FB}.Devel-Clang|ARM64.Build.0 = Devel-Clang|ARM64 + {8906836E-F06E-46E8-B11A-74E5E8C7B8FB}.Devel-Clang|x64.ActiveCfg = Devel-Clang|x64 {8906836E-F06E-46E8-B11A-74E5E8C7B8FB}.Release|ARM64.ActiveCfg = Release-Clang|ARM64 {8906836E-F06E-46E8-B11A-74E5E8C7B8FB}.Release|x64.ActiveCfg = Release|x64 {8906836E-F06E-46E8-B11A-74E5E8C7B8FB}.Release-Clang|ARM64.ActiveCfg = Release-Clang|ARM64 @@ -605,6 +666,10 @@ Global {4BA0A6D4-3AE1-42B2-9347-096FD023FF64}.DebugFast-Clang|ARM64.Build.0 = DebugFast-Clang|ARM64 {4BA0A6D4-3AE1-42B2-9347-096FD023FF64}.DebugFast-Clang|x64.ActiveCfg = DebugFast-Clang|x64 {4BA0A6D4-3AE1-42B2-9347-096FD023FF64}.DebugFast-Clang|x64.Build.0 = DebugFast-Clang|x64 + {4BA0A6D4-3AE1-42B2-9347-096FD023FF64}.Devel-Clang|ARM64.ActiveCfg = Devel-Clang|ARM64 + {4BA0A6D4-3AE1-42B2-9347-096FD023FF64}.Devel-Clang|ARM64.Build.0 = Devel-Clang|ARM64 + {4BA0A6D4-3AE1-42B2-9347-096FD023FF64}.Devel-Clang|x64.ActiveCfg = Devel-Clang|x64 + {4BA0A6D4-3AE1-42B2-9347-096FD023FF64}.Devel-Clang|x64.Build.0 = Devel-Clang|x64 {4BA0A6D4-3AE1-42B2-9347-096FD023FF64}.Release|ARM64.ActiveCfg = Release-Clang|ARM64 {4BA0A6D4-3AE1-42B2-9347-096FD023FF64}.Release|x64.ActiveCfg = Release|x64 {4BA0A6D4-3AE1-42B2-9347-096FD023FF64}.Release|x64.Build.0 = Release|x64 @@ -633,6 +698,8 @@ Global {3029310E-4211-4C87-801A-72E130A648EF}.DebugFast-Clang|ARM64.ActiveCfg = DebugFast-Clang|ARM64 {3029310E-4211-4C87-801A-72E130A648EF}.DebugFast-Clang|ARM64.Build.0 = DebugFast-Clang|ARM64 {3029310E-4211-4C87-801A-72E130A648EF}.DebugFast-Clang|x64.ActiveCfg = DebugFast-Clang|x64 + {3029310E-4211-4C87-801A-72E130A648EF}.Devel-Clang|ARM64.ActiveCfg = Devel-Clang|ARM64 + {3029310E-4211-4C87-801A-72E130A648EF}.Devel-Clang|x64.ActiveCfg = Devel-Clang|x64 {3029310E-4211-4C87-801A-72E130A648EF}.Release|ARM64.ActiveCfg = Release-Clang|ARM64 {3029310E-4211-4C87-801A-72E130A648EF}.Release|x64.ActiveCfg = Release|x64 {3029310E-4211-4C87-801A-72E130A648EF}.Release-Clang|ARM64.ActiveCfg = Release-Clang|ARM64 @@ -661,6 +728,10 @@ Global {E4357877-D459-45C7-B8F6-DCBB587BB528}.DebugFast-Clang|ARM64.Build.0 = DebugFast-Clang|ARM64 {E4357877-D459-45C7-B8F6-DCBB587BB528}.DebugFast-Clang|x64.ActiveCfg = DebugFast-Clang|x64 {E4357877-D459-45C7-B8F6-DCBB587BB528}.DebugFast-Clang|x64.Build.0 = DebugFast-Clang|x64 + {E4357877-D459-45C7-B8F6-DCBB587BB528}.Devel-Clang|ARM64.ActiveCfg = Devel-Clang|ARM64 + {E4357877-D459-45C7-B8F6-DCBB587BB528}.Devel-Clang|ARM64.Build.0 = Devel-Clang|ARM64 + {E4357877-D459-45C7-B8F6-DCBB587BB528}.Devel-Clang|x64.ActiveCfg = Devel-Clang|x64 + {E4357877-D459-45C7-B8F6-DCBB587BB528}.Devel-Clang|x64.Build.0 = Devel-Clang|x64 {E4357877-D459-45C7-B8F6-DCBB587BB528}.Release|ARM64.ActiveCfg = Release-Clang|ARM64 {E4357877-D459-45C7-B8F6-DCBB587BB528}.Release|x64.ActiveCfg = Release|x64 {E4357877-D459-45C7-B8F6-DCBB587BB528}.Release|x64.Build.0 = Release|x64 @@ -695,6 +766,10 @@ Global {8BE398E6-B882-4248-9065-FECC8728E038}.DebugFast-Clang|ARM64.Build.0 = DebugFast-Clang|ARM64 {8BE398E6-B882-4248-9065-FECC8728E038}.DebugFast-Clang|x64.ActiveCfg = DebugFast-Clang|x64 {8BE398E6-B882-4248-9065-FECC8728E038}.DebugFast-Clang|x64.Build.0 = DebugFast-Clang|x64 + {8BE398E6-B882-4248-9065-FECC8728E038}.Devel-Clang|ARM64.ActiveCfg = Devel-Clang|ARM64 + {8BE398E6-B882-4248-9065-FECC8728E038}.Devel-Clang|ARM64.Build.0 = Devel-Clang|ARM64 + {8BE398E6-B882-4248-9065-FECC8728E038}.Devel-Clang|x64.ActiveCfg = Devel-Clang|x64 + {8BE398E6-B882-4248-9065-FECC8728E038}.Devel-Clang|x64.Build.0 = Devel-Clang|x64 {8BE398E6-B882-4248-9065-FECC8728E038}.Release|ARM64.ActiveCfg = Release-Clang|ARM64 {8BE398E6-B882-4248-9065-FECC8728E038}.Release|x64.ActiveCfg = Release|x64 {8BE398E6-B882-4248-9065-FECC8728E038}.Release|x64.Build.0 = Release|x64 @@ -729,6 +804,10 @@ Global {57F6206D-F264-4B07-BAF8-11B9BBE1F455}.DebugFast-Clang|ARM64.Build.0 = DebugFast-Clang|ARM64 {57F6206D-F264-4B07-BAF8-11B9BBE1F455}.DebugFast-Clang|x64.ActiveCfg = DebugFast-Clang|x64 {57F6206D-F264-4B07-BAF8-11B9BBE1F455}.DebugFast-Clang|x64.Build.0 = DebugFast-Clang|x64 + {57F6206D-F264-4B07-BAF8-11B9BBE1F455}.Devel-Clang|ARM64.ActiveCfg = Devel-Clang|ARM64 + {57F6206D-F264-4B07-BAF8-11B9BBE1F455}.Devel-Clang|ARM64.Build.0 = Devel-Clang|ARM64 + {57F6206D-F264-4B07-BAF8-11B9BBE1F455}.Devel-Clang|x64.ActiveCfg = Devel-Clang|x64 + {57F6206D-F264-4B07-BAF8-11B9BBE1F455}.Devel-Clang|x64.Build.0 = Devel-Clang|x64 {57F6206D-F264-4B07-BAF8-11B9BBE1F455}.Release|ARM64.ActiveCfg = Release-Clang|ARM64 {57F6206D-F264-4B07-BAF8-11B9BBE1F455}.Release|x64.ActiveCfg = Release|x64 {57F6206D-F264-4B07-BAF8-11B9BBE1F455}.Release|x64.Build.0 = Release|x64 @@ -761,6 +840,9 @@ Global {C51A346A-86B2-46DF-9BB3-D0AA7E5D8699}.DebugFast-Clang|ARM64.ActiveCfg = DebugFast-Clang|ARM64 {C51A346A-86B2-46DF-9BB3-D0AA7E5D8699}.DebugFast-Clang|x64.ActiveCfg = DebugFast-Clang|x64 {C51A346A-86B2-46DF-9BB3-D0AA7E5D8699}.DebugFast-Clang|x64.Build.0 = DebugFast-Clang|x64 + {C51A346A-86B2-46DF-9BB3-D0AA7E5D8699}.Devel-Clang|ARM64.ActiveCfg = Devel-Clang|ARM64 + {C51A346A-86B2-46DF-9BB3-D0AA7E5D8699}.Devel-Clang|x64.ActiveCfg = Devel-Clang|x64 + {C51A346A-86B2-46DF-9BB3-D0AA7E5D8699}.Devel-Clang|x64.Build.0 = Devel-Clang|x64 {C51A346A-86B2-46DF-9BB3-D0AA7E5D8699}.Release|ARM64.ActiveCfg = Release-Clang|ARM64 {C51A346A-86B2-46DF-9BB3-D0AA7E5D8699}.Release|x64.ActiveCfg = Release|x64 {C51A346A-86B2-46DF-9BB3-D0AA7E5D8699}.Release-Clang|ARM64.ActiveCfg = Release-Clang|ARM64 @@ -788,6 +870,10 @@ Global {F351C4D8-594A-4850-B77B-3C1249812CCE}.DebugFast-Clang|ARM64.Build.0 = DebugFast-Clang|ARM64 {F351C4D8-594A-4850-B77B-3C1249812CCE}.DebugFast-Clang|x64.ActiveCfg = DebugFast-Clang|x64 {F351C4D8-594A-4850-B77B-3C1249812CCE}.DebugFast-Clang|x64.Build.0 = DebugFast-Clang|x64 + {F351C4D8-594A-4850-B77B-3C1249812CCE}.Devel-Clang|ARM64.ActiveCfg = Devel-Clang|ARM64 + {F351C4D8-594A-4850-B77B-3C1249812CCE}.Devel-Clang|ARM64.Build.0 = Devel-Clang|ARM64 + {F351C4D8-594A-4850-B77B-3C1249812CCE}.Devel-Clang|x64.ActiveCfg = Devel-Clang|x64 + {F351C4D8-594A-4850-B77B-3C1249812CCE}.Devel-Clang|x64.Build.0 = Devel-Clang|x64 {F351C4D8-594A-4850-B77B-3C1249812CCE}.Release|ARM64.ActiveCfg = Release-Clang|ARM64 {F351C4D8-594A-4850-B77B-3C1249812CCE}.Release|x64.ActiveCfg = Release|x64 {F351C4D8-594A-4850-B77B-3C1249812CCE}.Release|x64.Build.0 = Release|x64 @@ -822,6 +908,10 @@ Global {27B8D4BB-4F01-4432-BC14-9BF6CA458EEE}.DebugFast-Clang|ARM64.Build.0 = DebugFast-Clang|ARM64 {27B8D4BB-4F01-4432-BC14-9BF6CA458EEE}.DebugFast-Clang|x64.ActiveCfg = DebugFast-Clang|x64 {27B8D4BB-4F01-4432-BC14-9BF6CA458EEE}.DebugFast-Clang|x64.Build.0 = DebugFast-Clang|x64 + {27B8D4BB-4F01-4432-BC14-9BF6CA458EEE}.Devel-Clang|ARM64.ActiveCfg = Devel-Clang|ARM64 + {27B8D4BB-4F01-4432-BC14-9BF6CA458EEE}.Devel-Clang|ARM64.Build.0 = Devel-Clang|ARM64 + {27B8D4BB-4F01-4432-BC14-9BF6CA458EEE}.Devel-Clang|x64.ActiveCfg = Devel-Clang|x64 + {27B8D4BB-4F01-4432-BC14-9BF6CA458EEE}.Devel-Clang|x64.Build.0 = Devel-Clang|x64 {27B8D4BB-4F01-4432-BC14-9BF6CA458EEE}.Release|ARM64.ActiveCfg = Release-Clang|ARM64 {27B8D4BB-4F01-4432-BC14-9BF6CA458EEE}.Release|x64.ActiveCfg = Release|x64 {27B8D4BB-4F01-4432-BC14-9BF6CA458EEE}.Release|x64.Build.0 = Release|x64 @@ -856,6 +946,10 @@ Global {1AD23A8A-4C20-434C-AE6B-0E07759EEB1E}.DebugFast-Clang|ARM64.Build.0 = DebugFast-Clang|ARM64 {1AD23A8A-4C20-434C-AE6B-0E07759EEB1E}.DebugFast-Clang|x64.ActiveCfg = DebugFast-Clang|x64 {1AD23A8A-4C20-434C-AE6B-0E07759EEB1E}.DebugFast-Clang|x64.Build.0 = DebugFast-Clang|x64 + {1AD23A8A-4C20-434C-AE6B-0E07759EEB1E}.Devel-Clang|ARM64.ActiveCfg = Devel-Clang|ARM64 + {1AD23A8A-4C20-434C-AE6B-0E07759EEB1E}.Devel-Clang|ARM64.Build.0 = Devel-Clang|ARM64 + {1AD23A8A-4C20-434C-AE6B-0E07759EEB1E}.Devel-Clang|x64.ActiveCfg = Devel-Clang|x64 + {1AD23A8A-4C20-434C-AE6B-0E07759EEB1E}.Devel-Clang|x64.Build.0 = Devel-Clang|x64 {1AD23A8A-4C20-434C-AE6B-0E07759EEB1E}.Release|ARM64.ActiveCfg = Release-Clang|ARM64 {1AD23A8A-4C20-434C-AE6B-0E07759EEB1E}.Release|x64.ActiveCfg = Release|x64 {1AD23A8A-4C20-434C-AE6B-0E07759EEB1E}.Release|x64.Build.0 = Release|x64 diff --git a/src/common/assert.h b/src/common/assert.h index 502f02686..fd7d4d884 100644 --- a/src/common/assert.h +++ b/src/common/assert.h @@ -19,7 +19,7 @@ void Y_OnAssertFailed(const char* szMessage, const char* szFunction, const char* Y_OnAssertFailed("Assertion failed: '" msg "'", __FUNCTION__, __FILE__, __LINE__); \ } -#ifdef _DEBUG +#if defined(_DEBUG) || defined(_DEVEL) #define DebugAssert(expr) \ if (!(expr)) \ { \ @@ -41,7 +41,7 @@ void Y_OnAssertFailed(const char* szMessage, const char* szFunction, const char* // Kills the application, indicating a pure function call that should not have happened. #define PureCall() Y_OnPanicReached("PureCall encountered", __FUNCTION__, __FILE__, __LINE__) -#ifdef _DEBUG +#if defined(_DEBUG) || defined(_DEVEL) // Kills the application, indicating that code that was never supposed to be reached has been executed. #define UnreachableCode() Y_OnPanicReached("Unreachable code reached", __FUNCTION__, __FILE__, __LINE__) #else diff --git a/src/common/log.h b/src/common/log.h index 0f0380644..2723422a8 100644 --- a/src/common/log.h +++ b/src/common/log.h @@ -195,7 +195,7 @@ ALWAYS_INLINE static void FastWrite(Channel channel, const char* functionName, L #define VERBOSE_LOG(...) Log::FastWrite(___LogChannel___, Log::Level::Verbose, __VA_ARGS__) #define DEV_LOG(...) Log::FastWrite(___LogChannel___, Log::Level::Dev, __VA_ARGS__) -#ifdef _DEBUG +#if defined(_DEBUG) || defined(_DEVEL) #define DEBUG_LOG(...) Log::FastWrite(___LogChannel___, Log::Level::Debug, __VA_ARGS__) #define TRACE_LOG(...) Log::FastWrite(___LogChannel___, Log::Level::Trace, __VA_ARGS__) #else @@ -216,7 +216,7 @@ ALWAYS_INLINE static void FastWrite(Channel channel, const char* functionName, L #define VERBOSE_COLOR_LOG(colour, ...) Log::FastWrite(___LogChannel___, Log::Level::Verbose, Log::Color::colour, __VA_ARGS__) #define DEV_COLOR_LOG(colour, ...) Log::FastWrite(___LogChannel___, Log::Level::Dev, Log::Color::colour, __VA_ARGS__) -#ifdef _DEBUG +#if defined(_DEBUG) || defined(_DEVEL) #define DEBUG_COLOR_LOG(colour, ...) Log::FastWrite(___LogChannel___, Log::Level::Debug, Log::Color::colour, __VA_ARGS__) #define TRACE_COLOR_LOG(colour, ...) Log::FastWrite(___LogChannel___, Log::Level::Trace, Log::Color::colour,__VA_ARGS__) #else diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt index 1b4d025ce..a3245020b 100644 --- a/src/core/CMakeLists.txt +++ b/src/core/CMakeLists.txt @@ -147,7 +147,7 @@ if(CPU_ARCH_X64) cpu_recompiler_x64.h ) target_link_libraries(core PRIVATE xbyak) - if("${CMAKE_BUILD_TYPE}" STREQUAL "Debug") + if(CMAKE_BUILD_TYPE MATCHES "Debug|Devel") target_link_libraries(core PRIVATE zydis) endif() message(STATUS "Building x64 recompiler.") diff --git a/src/core/achievements.cpp b/src/core/achievements.cpp index a214d4f37..7cf9f1fd0 100644 --- a/src/core/achievements.cpp +++ b/src/core/achievements.cpp @@ -624,7 +624,7 @@ bool Achievements::CreateClient(rc_client_t** client, std::unique_ptr {09553c96-9f39-49bf-8ae6-7acbd07c410c} - + {c51a346a-86b2-46df-9bb3-d0aa7e5d8699} @@ -200,8 +200,8 @@ - ZYDIS_DISABLE_ENCODER;ZYDIS_DISABLE_AVX512;ZYDIS_DISABLE_KNC;ZYDIS_STATIC_BUILD;ZYCORE_STATIC_BUILD;%(PreprocessorDefinitions) - %(AdditionalIncludeDirectories);$(SolutionDir)dep\zydis\include;$(SolutionDir)dep\zydis\dependencies\zycore\include + ZYDIS_DISABLE_ENCODER;ZYDIS_DISABLE_AVX512;ZYDIS_DISABLE_KNC;ZYDIS_STATIC_BUILD;ZYCORE_STATIC_BUILD;%(PreprocessorDefinitions) + %(AdditionalIncludeDirectories);$(SolutionDir)dep\zydis\include;$(SolutionDir)dep\zydis\dependencies\zycore\include $(IntDir)/%(RelativeDir)/ Use pch.h diff --git a/src/core/cpu_code_cache.cpp b/src/core/cpu_code_cache.cpp index fe968203b..bc8384352 100644 --- a/src/core/cpu_code_cache.cpp +++ b/src/core/cpu_code_cache.cpp @@ -154,7 +154,7 @@ static u8* s_free_far_code_ptr = nullptr; static u32 s_far_code_size = 0; static u32 s_far_code_used = 0; -#ifdef _DEBUG +#if defined(_DEBUG) || defined(_DEVEL) static u32 s_total_instructions_compiled = 0; static u32 s_total_host_instructions_emitted = 0; #endif @@ -1023,7 +1023,7 @@ bool CPU::CodeCache::ReadBlockInstructions(u32 start_pc, BlockInstructionList* i instructions->back().second.is_last_instruction = true; -#ifdef _DEBUG +#if defined(_DEBUG) || defined(_DEVEL) SmallString disasm; DEBUG_LOG("Block at 0x{:08X}", start_pc); DEBUG_LOG(" Uncached fetch ticks: {}", metadata->uncached_fetch_ticks); @@ -1540,7 +1540,7 @@ void CPU::CodeCache::CompileASMFunctions() { MemMap::BeginCodeWrite(); -#ifdef _DEBUG +#if defined(_DEBUG) || defined(_DEVEL) s_total_instructions_compiled = 0; s_total_host_instructions_emitted = 0; #endif diff --git a/src/core/cpu_code_cache_private.h b/src/core/cpu_code_cache_private.h index 5b1db603b..2981ec418 100644 --- a/src/core/cpu_code_cache_private.h +++ b/src/core/cpu_code_cache_private.h @@ -215,7 +215,7 @@ void InterpretUncachedBlock(); void LogCurrentState(); -#if defined(_DEBUG) || false +#if defined(_DEBUG) || defined(_DEVEL) || false // Enable disassembly of host assembly code. #define ENABLE_HOST_DISASSEMBLY 1 #endif diff --git a/src/core/cpu_core.cpp b/src/core/cpu_core.cpp index fbbf39875..6443afaf9 100644 --- a/src/core/cpu_core.cpp +++ b/src/core/cpu_core.cpp @@ -335,7 +335,7 @@ ALWAYS_INLINE_RELEASE void CPU::RaiseException(u32 CAUSE_bits, u32 EPC, u32 vect g_state.cop0_regs.cause.bits = (g_state.cop0_regs.cause.bits & ~Cop0Registers::CAUSE::EXCEPTION_WRITE_MASK) | (CAUSE_bits & Cop0Registers::CAUSE::EXCEPTION_WRITE_MASK); -#ifdef _DEBUG +#if defined(_DEBUG) || defined(_DEVEL) if (g_state.cop0_regs.cause.Excode != Exception::INT && g_state.cop0_regs.cause.Excode != Exception::Syscall && g_state.cop0_regs.cause.Excode != Exception::BP) { diff --git a/src/core/cpu_recompiler.cpp b/src/core/cpu_recompiler.cpp index 597d7e293..0e11dbab3 100644 --- a/src/core/cpu_recompiler.cpp +++ b/src/core/cpu_recompiler.cpp @@ -354,7 +354,7 @@ bool CPU::Recompiler::Recompiler::TrySwapDelaySlot(Reg rs, Reg rt, Reg rd) const Reg opcode_rt = next_instruction->r.rt; const Reg opcode_rd = next_instruction->r.rd; -#ifdef _DEBUG +#if defined(_DEBUG) || defined(_DEVEL) TinyString disasm; DisassembleInstruction(&disasm, m_current_instruction_pc + 4, next_instruction->bits); #endif @@ -492,7 +492,7 @@ bool CPU::Recompiler::Recompiler::TrySwapDelaySlot(Reg rs, Reg rt, Reg rd) } is_safe: -#ifdef _DEBUG +#if defined(_DEBUG) || defined(_DEVEL) DEBUG_LOG("Swapping delay slot {:08X} {}", m_current_instruction_pc + 4, disasm); #endif @@ -504,7 +504,7 @@ is_safe: return true; is_unsafe: -#ifdef _DEBUG +#if defined(_DEBUG) || defined(_DEVEL) DEBUG_LOG("NOT swapping delay slot {:08X} {}", m_current_instruction_pc + 4, disasm); #endif @@ -1178,7 +1178,7 @@ void CPU::Recompiler::Recompiler::AddLoadStoreInfo(void* code_address, u32 code_ void CPU::Recompiler::Recompiler::CompileInstruction() { -#ifdef _DEBUG +#if defined(_DEBUG) || defined(_DEVEL) TinyString str; DisassembleInstruction(&str, m_current_instruction_pc, inst->bits); DEBUG_LOG("Compiling{} {:08X}: {}", m_current_instruction_branch_delay_slot ? " branch delay slot" : "", diff --git a/src/core/dma.cpp b/src/core/dma.cpp index ab0889788..d980df4c9 100644 --- a/src/core/dma.cpp +++ b/src/core/dma.cpp @@ -772,7 +772,7 @@ template TickCount DMA::TransferMemoryToDevice(u32 address, u32 increment, u32 word_count) { const u32 mask = Bus::g_ram_mask; -#ifdef _DEBUG +#if defined(_DEBUG) || defined(_DEVEL) if ((address & mask) != address) DEBUG_LOG("DMA TO {} from masked RAM address 0x{:08X} => 0x{:08X}", channel, address, (address & mask)); #endif @@ -862,7 +862,7 @@ template TickCount DMA::TransferDeviceToMemory(u32 address, u32 increment, u32 word_count) { const u32 mask = Bus::g_ram_mask; -#ifdef _DEBUG +#if defined(_DEBUG) || defined(_DEVEL) if ((address & mask) != address) DEBUG_LOG("DMA FROM {} to masked RAM address 0x{:08X} => 0x{:08X}", channel, address, (address & mask)); #endif diff --git a/src/core/gpu_dump.cpp b/src/core/gpu_dump.cpp index 216b232f5..5b32be867 100644 --- a/src/core/gpu_dump.cpp +++ b/src/core/gpu_dump.cpp @@ -507,7 +507,7 @@ bool GPUDump::Player::FindFrameStarts(Error* error) return false; } -#ifdef _DEBUG +#if defined(_DEBUG) || defined(_DEVEL) for (size_t i = 0; i < m_frame_offsets.size(); i++) DEBUG_LOG("Frame {} starts at offset {}", i, m_frame_offsets[i]); #endif diff --git a/src/core/gpu_hw.cpp b/src/core/gpu_hw.cpp index 7abdf31f4..2707a197a 100644 --- a/src/core/gpu_hw.cpp +++ b/src/core/gpu_hw.cpp @@ -42,7 +42,7 @@ static constexpr GPUTexture::Format VRAM_DS_FORMAT = GPUTexture::Format::D16; static constexpr GPUTexture::Format VRAM_DS_DEPTH_FORMAT = GPUTexture::Format::D32F; static constexpr GPUTexture::Format VRAM_DS_COLOR_FORMAT = GPUTexture::Format::R32F; -#ifdef _DEBUG +#if defined(_DEBUG) || defined(_DEVEL) static u32 s_draw_number = 0; @@ -189,7 +189,7 @@ private: GPU_HW::GPU_HW() : GPU() { -#ifdef _DEBUG +#if defined(_DEBUG) || defined(_DEVEL) s_draw_number = 0; #endif } @@ -3785,7 +3785,7 @@ void GPU_HW::FlushRender() if (index_count == 0) return; -#ifdef _DEBUG +#if defined(_DEBUG) || defined(_DEVEL) GL_SCOPE_FMT("Hardware Draw {}: {}", ++s_draw_number, m_current_draw_rect); #endif diff --git a/src/core/gpu_hw_texture_cache.cpp b/src/core/gpu_hw_texture_cache.cpp index b37cad53b..43ab7d4d1 100644 --- a/src/core/gpu_hw_texture_cache.cpp +++ b/src/core/gpu_hw_texture_cache.cpp @@ -1413,7 +1413,7 @@ const GPUTextureCache::Source* GPUTextureCache::LookupSource(SourceKey key, cons const GPUTextureCache::Source* GPUTextureCache::ReturnSource(Source* source, const GSVector4i uv_rect, PaletteRecordFlags flags) { -#ifdef _DEBUG +#if defined(_DEBUG) || defined(_DEVEL) // GL_INS_FMT("Tex hash: {:016X}", source->texture_hash); // GL_INS_FMT("Palette hash: {:016X}", source->palette_hash); if (!uv_rect.eq(INVALID_RECT)) @@ -1471,7 +1471,7 @@ bool GPUTextureCache::IsRectDrawn(const GSVector4i rect) bool GPUTextureCache::AreSourcePagesDrawn(SourceKey key, const GSVector4i rect) { // NOTE: This doesn't handle VRAM wrapping. But neither does the caller. YOLO? -#ifdef _DEBUG +#if defined(_DEBUG) || defined(_DEVEL) { for (u32 offset = 0; offset < TexturePageCountForMode(key.mode); offset++) { @@ -1529,7 +1529,7 @@ void GPUTextureCache::Invalidate() } // should all be null -#ifdef _DEBUG +#if defined(_DEBUG) || defined(_DEVEL) for (u32 i = 0; i < NUM_VRAM_PAGES; i++) DebugAssert(!s_state.pages[i].sources.head && !s_state.pages[i].sources.tail); DebugAssert(!s_state.last_vram_write); diff --git a/src/core/guncon.cpp b/src/core/guncon.cpp index fa88879db..d58ec1054 100644 --- a/src/core/guncon.cpp +++ b/src/core/guncon.cpp @@ -18,7 +18,7 @@ #include -#ifdef _DEBUG +#if defined(_DEBUG) || defined(_DEVEL) #include "common/log.h" LOG_CHANNEL(GunCon); #endif diff --git a/src/core/interrupt_controller.cpp b/src/core/interrupt_controller.cpp index 592497e4f..8f1a58bb9 100644 --- a/src/core/interrupt_controller.cpp +++ b/src/core/interrupt_controller.cpp @@ -51,7 +51,7 @@ void InterruptController::SetLineState(IRQ irq, bool state) if (s_interrupt_line_state == prev_state) return; -#ifdef _DEBUG +#if defined(_DEBUG) || defined(_DEVEL) if (!(prev_state & bit) && state) DEBUG_LOG("{} IRQ triggered", s_irq_names[static_cast(irq)]); else if ((prev_state & bit) && !state) @@ -84,7 +84,7 @@ void InterruptController::WriteRegister(u32 offset, u32 value) { case 0x00: // I_STATUS { -#ifdef _DEBUG +#if defined(_DEBUG) || defined(_DEVEL) const u32 cleared_bits = (s_interrupt_status_register & ~value); for (u32 i = 0; i < static_cast(IRQ::MaxCount); i++) { diff --git a/src/core/memory_card.cpp b/src/core/memory_card.cpp index f7062fde8..db8c52960 100644 --- a/src/core/memory_card.cpp +++ b/src/core/memory_card.cpp @@ -88,7 +88,7 @@ void MemoryCard::ResetTransferState() bool MemoryCard::Transfer(const u8 data_in, u8* data_out) { bool ack = false; -#ifdef _DEBUG +#if defined(_DEBUG) || defined(_DEVEL) const State old_state = m_state; #endif diff --git a/src/core/timing_event.cpp b/src/core/timing_event.cpp index 41101d95d..94aad8581 100644 --- a/src/core/timing_event.cpp +++ b/src/core/timing_event.cpp @@ -387,7 +387,7 @@ void TimingEvents::RunEvents() void TimingEvents::CommitLeftoverTicks() { -#ifdef _DEBUG +#if defined(_DEBUG) || defined(_DEVEL) if (s_state.event_run_tick_counter > s_state.global_tick_counter) DEV_LOG("Late-running {} ticks before execution", s_state.event_run_tick_counter - s_state.global_tick_counter); #endif diff --git a/src/duckstation-qt/CMakeLists.txt b/src/duckstation-qt/CMakeLists.txt index d1dde8b0c..a1e1edfac 100644 --- a/src/duckstation-qt/CMakeLists.txt +++ b/src/duckstation-qt/CMakeLists.txt @@ -219,7 +219,7 @@ if(WIN32) add_custom_command(TARGET duckstation-qt POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_if_different ${DEP_BINS} "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}" ) - if(CMAKE_BUILD_TYPE MATCHES "Debug") + if(CMAKE_BUILD_TYPE MATCHES "Debug|Devel") get_property(WINPIXEVENTRUNTIME_DLL TARGET WinPixEventRuntime::WinPixEventRuntime PROPERTY IMPORTED_LOCATION) message(STATUS WP "${WINPIXEVENTRUNTIME_DLL}") add_custom_command(TARGET duckstation-qt POST_BUILD diff --git a/src/duckstation-qt/autoupdaterdialog.cpp b/src/duckstation-qt/autoupdaterdialog.cpp index 140742cd0..dc53d891f 100644 --- a/src/duckstation-qt/autoupdaterdialog.cpp +++ b/src/duckstation-qt/autoupdaterdialog.cpp @@ -135,7 +135,7 @@ bool AutoUpdaterDialog::warnAboutUnofficialBuild() // Thanks, and I hope you understand. // -#if !__has_include("scmversion/tag.h") && !defined(_DEBUG) +#if !__has_include("scmversion/tag.h") constexpr const char* CONFIG_SECTION = "UI"; constexpr const char* CONFIG_KEY = "UnofficialBuildWarningConfirmed"; if ( diff --git a/src/duckstation-qt/qthost.cpp b/src/duckstation-qt/qthost.cpp index 90156681b..b9c183098 100644 --- a/src/duckstation-qt/qthost.cpp +++ b/src/duckstation-qt/qthost.cpp @@ -197,7 +197,9 @@ QString QtHost::GetAppNameAndVersion() QString QtHost::GetAppConfigSuffix() { -#if defined(_DEBUGFAST) +#if defined(_DEVEL) + return QStringLiteral(" [Devel]"); +#elif defined(_DEBUGFAST) return QStringLiteral(" [DebugFast]"); #elif defined(_DEBUG) return QStringLiteral(" [Debug]"); diff --git a/src/util/CMakeLists.txt b/src/util/CMakeLists.txt index 68fa264fa..e3cefb020 100644 --- a/src/util/CMakeLists.txt +++ b/src/util/CMakeLists.txt @@ -233,7 +233,7 @@ if(WIN32) target_link_libraries(util PRIVATE d3d12ma) target_link_libraries(util PRIVATE d3d11.lib d3d12.lib d3dcompiler.lib dxgi.lib winmm.lib Dwmapi.lib winhttp.lib) - if("${CMAKE_BUILD_TYPE}" STREQUAL "Debug") + if(CMAKE_BUILD_TYPE MATCHES "Debug|Devel") target_link_libraries(util PRIVATE WinPixEventRuntime::WinPixEventRuntime) endif() elseif(APPLE) diff --git a/src/util/cd_image_pbp.cpp b/src/util/cd_image_pbp.cpp index 050393ac0..d011bc52b 100644 --- a/src/util/cd_image_pbp.cpp +++ b/src/util/cd_image_pbp.cpp @@ -152,7 +152,7 @@ private: u16 size; }; -#if _DEBUG +#if defined(_DEBUG) || defined(_DEVEL) static void PrintPBPHeaderInfo(const PBPHeader& pbp_header); static void PrintSFOHeaderInfo(const SFOHeader& sfo_header); static void PrintSFOIndexTableEntry(const SFOIndexTableEntry& sfo_index_table_entry, size_t i); @@ -231,7 +231,7 @@ bool CDImagePBP::LoadPBPHeader() return false; } -#if _DEBUG +#if defined(_DEBUG) || defined(_DEVEL) PrintPBPHeaderInfo(m_pbp_header); #endif @@ -252,7 +252,7 @@ bool CDImagePBP::LoadSFOHeader() return false; } -#if _DEBUG +#if defined(_DEBUG) || defined(_DEVEL) PrintSFOHeaderInfo(m_sfo_header); #endif @@ -273,7 +273,7 @@ bool CDImagePBP::LoadSFOIndexTable() return false; } -#if _DEBUG +#if defined(_DEBUG) || defined(_DEVEL) for (size_t i = 0; i < static_cast(m_sfo_header.num_table_entries); ++i) PrintSFOIndexTableEntry(m_sfo_index_table[i], i); #endif @@ -346,7 +346,7 @@ bool CDImagePBP::LoadSFOTable() } } -#if _DEBUG +#if defined(_DEBUG) || defined(_DEVEL) PrintSFOTable(m_sfo_table); #endif @@ -822,7 +822,7 @@ bool CDImagePBP::ReadSectorFromIndex(void* buffer, const Index& index, LBA lba_i return true; } -#if _DEBUG +#if defined(_DEBUG) || defined(_DEVEL) void CDImagePBP::PrintPBPHeaderInfo(const PBPHeader& pbp_header) { printf("PBP header info\n"); diff --git a/src/util/d3d11_device.cpp b/src/util/d3d11_device.cpp index b5ea7c7a3..db619df30 100644 --- a/src/util/d3d11_device.cpp +++ b/src/util/d3d11_device.cpp @@ -32,7 +32,7 @@ static constexpr GPUTexture::Format s_swap_chain_format = GPUTexture::Format::RG void SetD3DDebugObjectName(ID3D11DeviceChild* obj, std::string_view name) { -#ifdef _DEBUG +#if defined(_DEBUG) || defined(_DEVEL) // WKPDID_D3DDebugObjectName static constexpr GUID guid = {0x429b8c22, 0x9188, 0x4b0c, {0x87, 0x42, 0xac, 0xb0, 0xbf, 0x85, 0xc2, 0x00}}; @@ -115,7 +115,7 @@ bool D3D11Device::CreateDeviceAndMainSwapChain(std::string_view adapter, Feature } } -#ifdef _DEBUG +#if defined(_DEBUG) || defined(_DEVEL) if (m_debug_device) m_context.As(&m_annotation); #endif @@ -834,7 +834,7 @@ float D3D11Device::GetAndResetAccumulatedGPUTime() void D3D11Device::PushDebugGroup(const char* name) { -#ifdef _DEBUG +#if defined(_DEBUG) || defined(_DEVEL) if (!m_annotation) return; @@ -844,7 +844,7 @@ void D3D11Device::PushDebugGroup(const char* name) void D3D11Device::PopDebugGroup() { -#ifdef _DEBUG +#if defined(_DEBUG) || defined(_DEVEL) if (!m_annotation) return; @@ -854,7 +854,7 @@ void D3D11Device::PopDebugGroup() void D3D11Device::InsertDebugMessage(const char* msg) { -#ifdef _DEBUG +#if defined(_DEBUG) || defined(_DEVEL) if (!m_annotation) return; diff --git a/src/util/d3d12_builders.cpp b/src/util/d3d12_builders.cpp index 230641c3f..7eaf69bb6 100644 --- a/src/util/d3d12_builders.cpp +++ b/src/util/d3d12_builders.cpp @@ -310,7 +310,7 @@ u32 D3D12::RootSignatureBuilder::AddDescriptorTable(D3D12_DESCRIPTOR_RANGE_TYPE return index; } -#ifdef _DEBUG +#if defined(_DEBUG) || defined(_DEVEL) void D3D12::SetObjectName(ID3D12Object* object, std::string_view name) { diff --git a/src/util/d3d12_builders.h b/src/util/d3d12_builders.h index bf5e3531f..81dc57f7a 100644 --- a/src/util/d3d12_builders.h +++ b/src/util/d3d12_builders.h @@ -122,7 +122,7 @@ private: D3D12_COMPUTE_PIPELINE_STATE_DESC m_desc; }; -#ifdef _DEBUG +#if defined(_DEBUG) || defined(_DEVEL) void SetObjectName(ID3D12Object* object, std::string_view name); #else static inline void SetObjectName(ID3D12Object* object, std::string_view name) diff --git a/src/util/d3d12_descriptor_heap_manager.cpp b/src/util/d3d12_descriptor_heap_manager.cpp index 6ea24ece5..24e860222 100644 --- a/src/util/d3d12_descriptor_heap_manager.cpp +++ b/src/util/d3d12_descriptor_heap_manager.cpp @@ -42,7 +42,7 @@ bool D3D12DescriptorHeapManager::Create(ID3D12Device* device, D3D12_DESCRIPTOR_H void D3D12DescriptorHeapManager::Destroy() { -#ifdef _DEBUG +#if defined(_DEBUG) || defined(_DEVEL) for (BitSetType& bs : m_free_slots) { DebugAssert(bs.all()); diff --git a/src/util/d3d12_device.cpp b/src/util/d3d12_device.cpp index 998882eab..8e0386053 100644 --- a/src/util/d3d12_device.cpp +++ b/src/util/d3d12_device.cpp @@ -59,7 +59,7 @@ static constexpr GPUTexture::Format s_swap_chain_format = GPUTexture::Format::RG // We just need to keep this alive, never reference it. static DynamicHeapArray s_pipeline_cache_data; -#ifdef _DEBUG +#if defined(_DEBUG) || defined(_DEVEL) #include "WinPixEventRuntime/pix3.h" static u32 s_debug_scope_depth = 0; #endif @@ -117,7 +117,7 @@ D3D12Device::D3D12Device() { m_render_api = RenderAPI::D3D12; -#ifdef _DEBUG +#if defined(_DEBUG) || defined(_DEVEL) s_debug_scope_depth = 0; #endif } @@ -1273,7 +1273,7 @@ void D3D12Device::SubmitPresent(GPUSwapChain* swap_chain) SC->GetSwapChain()->Present(sync_interval, flags); } -#ifdef _DEBUG +#if defined(_DEBUG) || defined(_DEVEL) static UINT64 Palette(float phase, const std::array& a, const std::array& b, const std::array& c, const std::array& d) { @@ -1290,7 +1290,7 @@ static UINT64 Palette(float phase, const std::array& a, const std::arr void D3D12Device::PushDebugGroup(const char* name) { -#ifdef _DEBUG +#if defined(_DEBUG) || defined(_DEVEL) if (!m_debug_device) return; @@ -1302,7 +1302,7 @@ void D3D12Device::PushDebugGroup(const char* name) void D3D12Device::PopDebugGroup() { -#ifdef _DEBUG +#if defined(_DEBUG) || defined(_DEVEL) if (!m_debug_device) return; @@ -1313,7 +1313,7 @@ void D3D12Device::PopDebugGroup() void D3D12Device::InsertDebugMessage(const char* msg) { -#ifdef _DEBUG +#if defined(_DEBUG) || defined(_DEVEL) if (!m_debug_device) return; diff --git a/src/util/gpu_device.h b/src/util/gpu_device.h index cd66311a8..071fdcd72 100644 --- a/src/util/gpu_device.h +++ b/src/util/gpu_device.h @@ -929,7 +929,7 @@ ALWAYS_INLINE void GPUDevice::PooledTextureDeleter::operator()(GPUTexture* const } // Macros for debug messages. -#ifdef _DEBUG +#if defined(_DEBUG) || defined(_DEVEL) struct GLAutoPop { GLAutoPop(int dummy) {} diff --git a/src/util/imgui_fullscreen.cpp b/src/util/imgui_fullscreen.cpp index 90a24a127..3ff62dbb5 100644 --- a/src/util/imgui_fullscreen.cpp +++ b/src/util/imgui_fullscreen.cpp @@ -2792,7 +2792,7 @@ void ImGuiFullscreen::OpenBackgroundProgressDialog(const char* str_id, std::stri std::unique_lock lock(s_background_progress_lock); -#ifdef _DEBUG +#if defined(_DEBUG) || defined(_DEVEL) for (const BackgroundProgressDialogData& data : s_background_progress_dialogs) { DebugAssert(data.id != id); diff --git a/src/util/media_capture.cpp b/src/util/media_capture.cpp index 01541401e..d356fea0b 100644 --- a/src/util/media_capture.cpp +++ b/src/util/media_capture.cpp @@ -285,8 +285,8 @@ bool MediaCaptureBase::DeliverVideoFrame(GPUTexture* stex) return false; } -#ifdef _DEBUG - GL_OBJECT_NAME_FMT(pf.tex, "GSCapture {}x{} Download Texture", stex->GetWidth(), stex->GetHeight()); +#if defined(_DEBUG) || defined(_DEVEL) + GL_OBJECT_NAME_FMT(pf.tex, "MediaCapture {}x{} Download Texture", stex->GetWidth(), stex->GetHeight()); #endif } diff --git a/src/util/opengl_device.cpp b/src/util/opengl_device.cpp index 79a1474d5..0e0f4e39f 100644 --- a/src/util/opengl_device.cpp +++ b/src/util/opengl_device.cpp @@ -216,7 +216,7 @@ std::unique_ptr OpenGLDevice::CreatePipeline(const GPUPipeline::Com void OpenGLDevice::PushDebugGroup(const char* name) { -#ifdef _DEBUG +#if defined(_DEBUG) || defined(_DEVEL) if (!glPushDebugGroup) return; @@ -226,7 +226,7 @@ void OpenGLDevice::PushDebugGroup(const char* name) void OpenGLDevice::PopDebugGroup() { -#ifdef _DEBUG +#if defined(_DEBUG) || defined(_DEVEL) if (!glPopDebugGroup) return; @@ -236,7 +236,7 @@ void OpenGLDevice::PopDebugGroup() void OpenGLDevice::InsertDebugMessage(const char* msg) { -#ifdef _DEBUG +#if defined(_DEBUG) || defined(_DEVEL) if (!glDebugMessageInsert) return; diff --git a/src/util/opengl_pipeline.cpp b/src/util/opengl_pipeline.cpp index b112c70d6..b0027d452 100644 --- a/src/util/opengl_pipeline.cpp +++ b/src/util/opengl_pipeline.cpp @@ -80,7 +80,7 @@ OpenGLShader::~OpenGLShader() void OpenGLShader::SetDebugName(std::string_view name) { -#ifdef _DEBUG +#if defined(_DEBUG) || defined(_DEVEL) if (glObjectLabel) { if (m_id.has_value()) @@ -155,7 +155,7 @@ bool OpenGLShader::Compile(Error* error) m_id = shader; -#ifdef _DEBUG +#if defined(_DEBUG) || defined(_DEVEL) if (glObjectLabel && !m_debug_name.empty()) { glObjectLabel(GL_SHADER, shader, static_cast(m_debug_name.length()), @@ -586,7 +586,7 @@ OpenGLPipeline::~OpenGLPipeline() void OpenGLPipeline::SetDebugName(std::string_view name) { -#ifdef _DEBUG +#if defined(_DEBUG) || defined(_DEVEL) if (glObjectLabel) glObjectLabel(GL_PROGRAM, m_program, static_cast(name.length()), name.data()); #endif diff --git a/src/util/opengl_pipeline.h b/src/util/opengl_pipeline.h index 39a53bd98..33a088e69 100644 --- a/src/util/opengl_pipeline.h +++ b/src/util/opengl_pipeline.h @@ -32,7 +32,7 @@ private: std::optional m_id; bool m_compile_tried = false; -#ifdef _DEBUG +#if defined(_DEBUG) || defined(_DEVEL) std::string m_debug_name; #endif }; diff --git a/src/util/opengl_stream_buffer.cpp b/src/util/opengl_stream_buffer.cpp index 212a17187..a4deff5fb 100644 --- a/src/util/opengl_stream_buffer.cpp +++ b/src/util/opengl_stream_buffer.cpp @@ -31,7 +31,7 @@ void OpenGLStreamBuffer::Unbind() void OpenGLStreamBuffer::SetDebugName(std::string_view name) { -#ifdef _DEBUG +#if defined(_DEBUG) || defined(_DEVEL) if (glObjectLabel) { glObjectLabel(GL_BUFFER, GetGLBufferId(), static_cast(name.length()), diff --git a/src/util/opengl_texture.cpp b/src/util/opengl_texture.cpp index 9aa63f020..9f23b9274 100644 --- a/src/util/opengl_texture.cpp +++ b/src/util/opengl_texture.cpp @@ -487,7 +487,7 @@ void OpenGLTexture::GenerateMipmaps() void OpenGLTexture::SetDebugName(std::string_view name) { -#ifdef _DEBUG +#if defined(_DEBUG) || defined(_DEVEL) if (glObjectLabel) glObjectLabel(GL_TEXTURE, m_id, static_cast(name.length()), static_cast(name.data())); #endif @@ -512,7 +512,7 @@ OpenGLSampler::~OpenGLSampler() void OpenGLSampler::SetDebugName(std::string_view name) { -#ifdef _DEBUG +#if defined(_DEBUG) || defined(_DEVEL) if (glObjectLabel) glObjectLabel(GL_SAMPLER, m_id, static_cast(name.length()), static_cast(name.data())); #endif @@ -800,7 +800,7 @@ void OpenGLTextureBuffer::Unmap(u32 used_elements) void OpenGLTextureBuffer::SetDebugName(std::string_view name) { -#ifdef _DEBUG +#if defined(_DEBUG) || defined(_DEVEL) if (glObjectLabel) { glObjectLabel(GL_TEXTURE, m_buffer->GetGLBufferId(), static_cast(name.length()), diff --git a/src/util/postprocessing_shader_fx.cpp b/src/util/postprocessing_shader_fx.cpp index 4f3445a7b..b24e87287 100644 --- a/src/util/postprocessing_shader_fx.cpp +++ b/src/util/postprocessing_shader_fx.cpp @@ -1265,7 +1265,7 @@ bool PostProcessing::ReShadeFXShader::CreatePasses(GPUTexture::Format backbuffer pass.samplers.push_back(std::move(sampler)); } -#ifdef _DEBUG +#if defined(_DEBUG) || defined(_DEVEL) pass.name = std::move(pi.name); #endif m_passes.push_back(std::move(pass)); diff --git a/src/util/postprocessing_shader_fx.h b/src/util/postprocessing_shader_fx.h index ecc2c09d2..329adf2ef 100644 --- a/src/util/postprocessing_shader_fx.h +++ b/src/util/postprocessing_shader_fx.h @@ -132,7 +132,7 @@ private: llvm::SmallVector samplers; u32 num_vertices; -#ifdef _DEBUG +#if defined(_DEBUG) || defined(_DEVEL) std::string name; #endif }; diff --git a/src/util/sdl_input_source.cpp b/src/util/sdl_input_source.cpp index 353441ff5..d02920f78 100644 --- a/src/util/sdl_input_source.cpp +++ b/src/util/sdl_input_source.cpp @@ -304,7 +304,7 @@ bool SDLInputSource::InitializeSubsystem() } SDL_LogSetOutputFunction(SDLLogCallback, nullptr); -#ifdef _DEBUG +#if defined(_DEBUG) || defined(_DEVEL) SDL_LogSetAllPriority(SDL_LOG_PRIORITY_VERBOSE); #else SDL_LogSetAllPriority(SDL_LOG_PRIORITY_INFO); diff --git a/src/util/sockets.cpp b/src/util/sockets.cpp index f357ca15e..2d7d712d2 100644 --- a/src/util/sockets.cpp +++ b/src/util/sockets.cpp @@ -383,7 +383,7 @@ void SocketMultiplexer::RemoveOpenSocket(BaseSocket* socket) if (epoll_ctl(m_epoll_fd, EPOLL_CTL_DEL, socket->GetDescriptor(), nullptr) != 0) [[unlikely]] ERROR_LOG("epoll_ctl() to remove socket failed: {}", Error::CreateErrno(errno).GetDescription()); #else -#ifdef _DEBUG +#if defined(_DEBUG) || defined(_DEVEL) for (size_t i = 0; i < m_poll_array_active_size; i++) { pollfd& pfd = m_poll_array[i]; diff --git a/src/util/util.props b/src/util/util.props index d6203cd79..d74c36059 100644 --- a/src/util/util.props +++ b/src/util/util.props @@ -17,7 +17,7 @@ - + diff --git a/src/util/vulkan_builders.h b/src/util/vulkan_builders.h index 760caecee..3eb3e1fb3 100644 --- a/src/util/vulkan_builders.h +++ b/src/util/vulkan_builders.h @@ -14,7 +14,7 @@ class Error; -#if defined(_DEBUG) && !defined(CPU_ARCH_ARM32) && !defined(CPU_ARCH_X86) +#if (defined(_DEBUG) || defined(_DEVEL)) && !defined(CPU_ARCH_ARM32) && !defined(CPU_ARCH_X86) #define ENABLE_VULKAN_DEBUG_OBJECTS 1 #endif diff --git a/src/util/vulkan_device.cpp b/src/util/vulkan_device.cpp index 6f99076cd..9839a387e 100644 --- a/src/util/vulkan_device.cpp +++ b/src/util/vulkan_device.cpp @@ -105,7 +105,7 @@ const std::array(GPUTexture::Format::MaxCount)> Vulka // Handles are always 64-bit, even on 32-bit platforms. static const VkRenderPass DYNAMIC_RENDERING_RENDER_PASS = ((VkRenderPass) static_cast(-1LL)); -#ifdef _DEBUG +#if defined(_DEBUG) || defined(_DEVEL) static u32 s_debug_scope_depth = 0; #endif @@ -116,7 +116,7 @@ VulkanDevice::VulkanDevice() { m_render_api = RenderAPI::Vulkan; -#ifdef _DEBUG +#if defined(_DEBUG) || defined(_DEVEL) s_debug_scope_depth = 0; #endif } @@ -2327,7 +2327,7 @@ void VulkanDevice::SubmitPresent(GPUSwapChain* swap_chain) QueuePresent(static_cast(swap_chain)); } -#ifdef _DEBUG +#if defined(_DEBUG) || defined(_DEVEL) static std::array Palette(float phase, const std::array& a, const std::array& b, const std::array& c, const std::array& d) { @@ -2341,7 +2341,7 @@ static std::array Palette(float phase, const std::array& a, void VulkanDevice::PushDebugGroup(const char* name) { -#ifdef _DEBUG +#if defined(_DEBUG) || defined(_DEVEL) if (!vkCmdBeginDebugUtilsLabelEXT || !m_debug_device) return; @@ -2360,7 +2360,7 @@ void VulkanDevice::PushDebugGroup(const char* name) void VulkanDevice::PopDebugGroup() { -#ifdef _DEBUG +#if defined(_DEBUG) || defined(_DEVEL) if (!vkCmdEndDebugUtilsLabelEXT || !m_debug_device) return; @@ -2372,7 +2372,7 @@ void VulkanDevice::PopDebugGroup() void VulkanDevice::InsertDebugMessage(const char* msg) { -#ifdef _DEBUG +#if defined(_DEBUG) || defined(_DEVEL) if (!vkCmdInsertDebugUtilsLabelEXT || !m_debug_device) return;