diff --git a/CMakeLists.txt b/CMakeLists.txt index dfaf1bc05b..d05e2e210a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -137,11 +137,18 @@ target_compile_definitions(aurora_mtx PRIVATE MTX_USE_PS=1) add_subdirectory(libs/freeverb) +if (CMAKE_BUILD_TYPE STREQUAL "Debug") + set(DUSK_GFX_DEBUG_GROUPS_DEFAULT ON) +else () + set(DUSK_GFX_DEBUG_GROUPS_DEFAULT OFF) +endif () + option(DUSK_BUILD_WARNINGS "Enable compiler warnings (off by default)") option(DUSK_SELECTED_OPT "If on, selected parts of the project will be compiled with optimizations on Debug, intending to make the game run at 30 FPS. Note for MSVC: you will need to remove '/RTC1' from your debug flags in CMake.") option(DUSK_MOVIE_SUPPORT "If on, compile against libjpeg-turbo to enable THP file decoding" ON) option(DUSK_ENABLE_UPDATE_CHECKER "Enable update checking support" ON) option(DUSK_ENABLE_SENTRY_NATIVE "Enable sentry-native crash reporting support" OFF) +option(DUSK_GFX_DEBUG_GROUPS "Report debug groups to the native graphics API" ${DUSK_GFX_DEBUG_GROUPS_DEFAULT}) set(DUSK_SENTRY_DSN "" CACHE STRING "Sentry DSN") set(DUSK_SENTRY_ENVIRONMENT "development" CACHE STRING "Sentry environment") @@ -420,6 +427,11 @@ if(ANDROID) list(APPEND GAME_COMPILE_DEFS TARGET_ANDROID=1) endif () +if (DUSK_GFX_DEBUG_GROUPS) + list(APPEND GAME_COMPILE_DEFS DUSK_GFX_DEBUG_GROUPS=1) + target_compile_definitions(aurora_gx PRIVATE AURORA_GFX_DEBUG_GROUPS) +endif () + # game_debug is for game code files that we know work when compiled with DEBUG=1 # Of course, if building a release build, this distinction is irrelevant set(GAME_DEBUG_FILES diff --git a/CMakePresets.json b/CMakePresets.json index 11512642a0..90970138f6 100644 --- a/CMakePresets.json +++ b/CMakePresets.json @@ -342,9 +342,7 @@ "CMAKE_DISABLE_FIND_PACKAGE_zstd": { "type": "BOOL", "value": true - }, - "AURORA_SDL3_VERSION": "3.4.8", - "AURORA_SDL3_REF": "refs/tags/release-3.4.8" + } } }, { diff --git a/extern/aurora b/extern/aurora index 5a3c6d1b74..04cd3b3ac7 160000 --- a/extern/aurora +++ b/extern/aurora @@ -1 +1 @@ -Subproject commit 5a3c6d1b7451cd8ffb8d80cb4741b6849f703b10 +Subproject commit 04cd3b3ac7eac46a7df384ff7b6f355012610388 diff --git a/fix-cmake-paths.patch b/fix-cmake-paths.patch new file mode 100644 index 0000000000..202a42fbd6 --- /dev/null +++ b/fix-cmake-paths.patch @@ -0,0 +1,32 @@ +From f69d29614644f9963f5cb3f828b58575d60a1c5a Mon Sep 17 00:00:00 2001 +From: Joshua Trees +Date: Thu, 4 Jun 2026 01:04:04 +0100 +Subject: [PATCH] fix cmake paths + +--- + cmake/nodConfig.cmake.in | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/cmake/nodConfig.cmake.in b/cmake/nodConfig.cmake.in +index 0969382..2a24a88 100644 +--- a/cmake/nodConfig.cmake.in ++++ b/cmake/nodConfig.cmake.in +@@ -1,12 +1,12 @@ + @PACKAGE_INIT@ + +-set(_nod_libdir "${PACKAGE_PREFIX_DIR}/@CMAKE_INSTALL_LIBDIR@") +-set(_nod_incdir "${PACKAGE_PREFIX_DIR}/@CMAKE_INSTALL_INCLUDEDIR@") ++set(_nod_libdir "@CMAKE_INSTALL_FULL_LIBDIR@") ++set(_nod_incdir "@CMAKE_INSTALL_FULL_INCLUDEDIR@") + + if (NOT TARGET nod::nod_shared AND NOT TARGET nod::nod_static) + # Shared library + if (WIN32) +- set(_nod_dll "${PACKAGE_PREFIX_DIR}/@CMAKE_INSTALL_BINDIR@/${CMAKE_SHARED_LIBRARY_PREFIX}nod${CMAKE_SHARED_LIBRARY_SUFFIX}") ++ set(_nod_dll "@CMAKE_INSTALL_FULL_BINDIR@/${CMAKE_SHARED_LIBRARY_PREFIX}nod${CMAKE_SHARED_LIBRARY_SUFFIX}") + set(_nod_implib "${_nod_libdir}/${CMAKE_IMPORT_LIBRARY_PREFIX}nod${CMAKE_IMPORT_LIBRARY_SUFFIX}") + if (EXISTS "${_nod_dll}") + add_library(nod::nod_shared SHARED IMPORTED) +-- +2.53.0 + diff --git a/flake.nix b/flake.nix index 713acef074..99fcd49f94 100644 --- a/flake.nix +++ b/flake.nix @@ -96,6 +96,7 @@ rev = nodVersion; hash = "sha256-+zrtVzjo0+X/6uMcNUn1+FaSR+jOhrcQSDNBFjw0NDs="; }; + patches = [ ./fix-cmake-paths.patch ]; cargoDeps = pkgs.rustPlatform.importCargoLock { lockFile = "${finalAttrs.src}/Cargo.lock"; }; @@ -229,6 +230,7 @@ pkgs.libusb1 pkgs.libunwind pkgs.gtk3 + nod ]; cmakeBuildType = "RelWithDebInfo"; @@ -239,8 +241,7 @@ "-DFETCHCONTENT_FULLY_DISCONNECTED=ON" "-DAURORA_DAWN_PROVIDER=package" "-DAURORA_DAWN_LINKAGE=static" - "-DAURORA_NOD_PROVIDER=package" - "-DAURORA_NOD_LINKAGE=static" + "-DAURORA_NOD_PROVIDER=system" "-DAURORA_SDL3_PROVIDER=system" "-DBUILD_SHARED_LIBS=OFF" ] diff --git a/include/dusk/gx_helper.h b/include/dusk/gx_helper.h index 8f71cbdf26..8ed97e917a 100644 --- a/include/dusk/gx_helper.h +++ b/include/dusk/gx_helper.h @@ -7,12 +7,16 @@ #include #include "tracy/Tracy.hpp" +#if DUSK_GFX_DEBUG_GROUPS #define GX_DEBUG_GROUP(name, ...) \ do { \ GXPushDebugGroup(#name); \ name(__VA_ARGS__); \ GXPopDebugGroup(); \ } while (0) +#else +#define GX_DEBUG_GROUP(name, ...) name(__VA_ARGS__) +#endif #ifdef TARGET_PC class GXTexObjRAII : public GXTexObj { @@ -45,10 +49,14 @@ typedef GXTexObj TGXTexObj; struct GXScopedDebugGroup { explicit GXScopedDebugGroup(const char* text) { +#if DUSK_GFX_DEBUG_GROUPS GXPushDebugGroup(text); +#endif } ~GXScopedDebugGroup() { +#if DUSK_GFX_DEBUG_GROUPS GXPopDebugGroup(); +#endif } }; diff --git a/src/d/actor/d_a_npc_ks.cpp b/src/d/actor/d_a_npc_ks.cpp index e84d4b7bad..71eeb16335 100644 --- a/src/d/actor/d_a_npc_ks.cpp +++ b/src/d/actor/d_a_npc_ks.cpp @@ -178,7 +178,7 @@ static void anm_init(npc_ks_class* i_this, int param_2, f32 i_morf, u8 i_attr, f param_2 = 42; } else { // bug: developers meant to set equal to 44? - param_2 == 44; + IF_NOT_DUSK(param_2 == 44); dComIfGs_shake_kandelaar(); } } diff --git a/src/d/d_drawlist.cpp b/src/d/d_drawlist.cpp index 7725e8e079..8387047252 100644 --- a/src/d/d_drawlist.cpp +++ b/src/d/d_drawlist.cpp @@ -1996,7 +1996,7 @@ int dDlst_list_c::set(dDlst_base_c**& p_start, dDlst_base_c**& p_end, dDlst_base return 1; } -#if TARGET_PC && (TRACY_ENABLE || PARTIAL_DEBUG) +#if DUSK_GFX_DEBUG_GROUPS static absl::flat_hash_map typeDrawNames; static const char* getTypeDrawName(dDlst_base_c* dlst) { @@ -2019,7 +2019,7 @@ void dDlst_list_c::draw(dDlst_base_c** p_start, dDlst_base_c** p_end) { for (; p_start < p_end; p_start++) { dDlst_base_c* dlst = *p_start; -#if TARGET_PC && (TRACY_ENABLE || PARTIAL_DEBUG) +#if DUSK_GFX_DEBUG_GROUPS const auto name = getTypeDrawName(dlst); GXScopedDebugGroup scope(name); #endif