diff --git a/src/gpgmm/EventTraceWriter.cpp b/src/gpgmm/EventTraceWriter.cpp index ec7b52ad6..3bdd6c1f3 100644 --- a/src/gpgmm/EventTraceWriter.cpp +++ b/src/gpgmm/EventTraceWriter.cpp @@ -14,6 +14,7 @@ #include "gpgmm/EventTraceWriter.h" +#include "gpgmm/Defaults.h" #include "gpgmm/common/Assert.h" #include "gpgmm/common/Log.h" #include "gpgmm/common/PlatformTime.h" @@ -27,14 +28,15 @@ namespace gpgmm { - EventTraceWriter::EventTraceWriter() : mPlatformTime(CreatePlatformTime()) { + EventTraceWriter::EventTraceWriter() + : mTraceFile(kDefaultTraceFile), mPlatformTime(CreatePlatformTime()) { } void EventTraceWriter::SetConfiguration(const std::string& traceFile, bool skipDurationEvents, bool skipObjectEvents, bool skipInstantEvents) { - mTraceFile = traceFile; + mTraceFile = (traceFile.empty()) ? mTraceFile : traceFile; mSkipDurationEvents = skipDurationEvents; mSkipObjectEvents = skipObjectEvents; mSkipInstantEvents = skipInstantEvents; diff --git a/src/gpgmm/TraceEvent.cpp b/src/gpgmm/TraceEvent.cpp index 6d160e7d7..81e81e746 100644 --- a/src/gpgmm/TraceEvent.cpp +++ b/src/gpgmm/TraceEvent.cpp @@ -48,7 +48,8 @@ namespace gpgmm { } bool IsEventTraceEnabled() { - return (GetInstance() != nullptr); + std::lock_guard lock(mMutex); + return gEventTrace != nullptr; } TraceEvent::TraceEvent(char phase, @@ -75,6 +76,8 @@ namespace gpgmm { uint64_t id, uint32_t flags, const JSONDict& args) { - GetInstance()->EnqueueTraceEvent(phase, category, name, id, flags, args); + if (IsEventTraceEnabled()) { + GetInstance()->EnqueueTraceEvent(phase, category, name, id, flags, args); + } } } // namespace gpgmm diff --git a/src/gpgmm/d3d12/ResourceAllocatorD3D12.cpp b/src/gpgmm/d3d12/ResourceAllocatorD3D12.cpp index 7be4b4c14..6508971a8 100644 --- a/src/gpgmm/d3d12/ResourceAllocatorD3D12.cpp +++ b/src/gpgmm/d3d12/ResourceAllocatorD3D12.cpp @@ -359,12 +359,9 @@ namespace gpgmm { namespace d3d12 { } if (newDescriptor.RecordOptions.Flags != ALLOCATOR_RECORD_FLAG_NONE) { - const std::string& traceFile = descriptor.RecordOptions.TraceFile.empty() - ? std::string(kDefaultTraceFile) - : descriptor.RecordOptions.TraceFile; - StartupEventTrace( - traceFile, !(newDescriptor.RecordOptions.Flags & ALLOCATOR_RECORD_FLAG_API_TIMINGS), + descriptor.RecordOptions.TraceFile, + !(newDescriptor.RecordOptions.Flags & ALLOCATOR_RECORD_FLAG_API_TIMINGS), !(newDescriptor.RecordOptions.Flags & ALLOCATOR_RECORD_FLAG_API_OBJECTS), !(newDescriptor.RecordOptions.Flags & ALLOCATOR_RECORD_FLAG_API_CALLS));