From 2049f507db64c382473281ca645332c5e602c203 Mon Sep 17 00:00:00 2001 From: Chris Perkins Date: Wed, 5 Nov 2025 10:16:18 -0800 Subject: [PATCH 1/3] need to use legacy sink on Windows when SYCL_UR_TRACE is active --- unified-runtime/source/adapters/level_zero/adapter.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/unified-runtime/source/adapters/level_zero/adapter.cpp b/unified-runtime/source/adapters/level_zero/adapter.cpp index c70012ceeed74..2ba555abdae04 100644 --- a/unified-runtime/source/adapters/level_zero/adapter.cpp +++ b/unified-runtime/source/adapters/level_zero/adapter.cpp @@ -364,6 +364,7 @@ ur_adapter_handle_t_::ur_adapter_handle_t_() auto ZeInitDriversResult = ZE_RESULT_ERROR_UNINITIALIZED; auto ZeInitResult = ZE_RESULT_ERROR_UNINITIALIZED; auto ZesResult = ZE_RESULT_ERROR_UNINITIALIZED; + auto SyclUrTrace = ur_getenv("SYCL_UR_TRACE"); #ifdef UR_STATIC_LEVEL_ZERO // Given static linking of the L0 Loader, we must delay the loader's @@ -377,7 +378,12 @@ ur_adapter_handle_t_::ur_adapter_handle_t_() setEnvVar("ZEL_LOADER_LOGGING_LEVEL", "trace"); setEnvVar("ZEL_LOADER_LOG_CONSOLE", "1"); setEnvVar("ZE_ENABLE_VALIDATION_LAYER", "1"); - }; + } +#if defined(_WIN32) + else if (SyclUrTrace.has_value()) { + logger.setLegacySink(std::make_unique()); + } +#endif if (UrL0Debug & UR_L0_DEBUG_VALIDATION) { setEnvVar("ZE_ENABLE_VALIDATION_LAYER", "1"); From f1aff65aefd339ae3c9e83e5899e48d2433b7a2f Mon Sep 17 00:00:00 2001 From: Chris Perkins Date: Fri, 7 Nov 2025 14:01:39 -0800 Subject: [PATCH 2/3] all sinks participate in tearDowned detection Signed-off-by: Chris Perkins --- .../source/adapters/level_zero/adapter.cpp | 14 +------------- unified-runtime/source/common/logger/ur_sinks.hpp | 6 +++++- 2 files changed, 6 insertions(+), 14 deletions(-) diff --git a/unified-runtime/source/adapters/level_zero/adapter.cpp b/unified-runtime/source/adapters/level_zero/adapter.cpp index 2ba555abdae04..1952da504359e 100644 --- a/unified-runtime/source/adapters/level_zero/adapter.cpp +++ b/unified-runtime/source/adapters/level_zero/adapter.cpp @@ -47,12 +47,6 @@ class ur_legacy_sink : public logger::Sink { const std::string &msg) override { fprintf(stderr, "%s", msg.c_str()); } - - ~ur_legacy_sink() { -#if defined(_WIN32) - logger::isTearDowned = true; -#endif - }; }; // Find the corresponding ZesDevice Handle for a given ZeDevice @@ -364,7 +358,6 @@ ur_adapter_handle_t_::ur_adapter_handle_t_() auto ZeInitDriversResult = ZE_RESULT_ERROR_UNINITIALIZED; auto ZeInitResult = ZE_RESULT_ERROR_UNINITIALIZED; auto ZesResult = ZE_RESULT_ERROR_UNINITIALIZED; - auto SyclUrTrace = ur_getenv("SYCL_UR_TRACE"); #ifdef UR_STATIC_LEVEL_ZERO // Given static linking of the L0 Loader, we must delay the loader's @@ -378,12 +371,7 @@ ur_adapter_handle_t_::ur_adapter_handle_t_() setEnvVar("ZEL_LOADER_LOGGING_LEVEL", "trace"); setEnvVar("ZEL_LOADER_LOG_CONSOLE", "1"); setEnvVar("ZE_ENABLE_VALIDATION_LAYER", "1"); - } -#if defined(_WIN32) - else if (SyclUrTrace.has_value()) { - logger.setLegacySink(std::make_unique()); - } -#endif + }; if (UrL0Debug & UR_L0_DEBUG_VALIDATION) { setEnvVar("ZE_ENABLE_VALIDATION_LAYER", "1"); diff --git a/unified-runtime/source/common/logger/ur_sinks.hpp b/unified-runtime/source/common/logger/ur_sinks.hpp index c15e8b2cb0bd2..74838f9a41c6b 100644 --- a/unified-runtime/source/common/logger/ur_sinks.hpp +++ b/unified-runtime/source/common/logger/ur_sinks.hpp @@ -65,7 +65,11 @@ class Sink { void setFileLine(bool fileline) { add_fileline = fileline; } void setFlushLevel(ur_logger_level_t level) { this->flush_level = level; } - virtual ~Sink() = default; + ~Sink() { +#if defined(_WIN32) + logger::isTearDowned = true; +#endif + } protected: std::ostream *ostream; From dda6c9b50be78017f7db0af5c22c6d5a0e69b3fc Mon Sep 17 00:00:00 2001 From: Chris Perkins Date: Fri, 7 Nov 2025 22:38:16 -0800 Subject: [PATCH 3/3] d'oh - didn't mean to delete virtual --- unified-runtime/source/common/logger/ur_sinks.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/unified-runtime/source/common/logger/ur_sinks.hpp b/unified-runtime/source/common/logger/ur_sinks.hpp index 74838f9a41c6b..2e8b015ee701e 100644 --- a/unified-runtime/source/common/logger/ur_sinks.hpp +++ b/unified-runtime/source/common/logger/ur_sinks.hpp @@ -65,7 +65,7 @@ class Sink { void setFileLine(bool fileline) { add_fileline = fileline; } void setFlushLevel(ur_logger_level_t level) { this->flush_level = level; } - ~Sink() { + virtual ~Sink() { #if defined(_WIN32) logger::isTearDowned = true; #endif