Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 11 additions & 11 deletions src/gpgmm/common/EventMessage.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,9 @@ namespace gpgmm {

MessageSeverity GetDefaultEventMessageLevel() {
#if defined(NDEBUG)
return MessageSeverity::Info;
return MessageSeverity::kInfo;
#else
return MessageSeverity::Debug;
return MessageSeverity::kDebug;
#endif // defined(NDEBUG)
}

Expand Down Expand Up @@ -56,33 +56,33 @@ namespace gpgmm {
EventMessage::~EventMessage() {
const std::string description = mStream.str();

gpgmm::Log(mSeverity) << mName << "=" << ToString(mObject) << ": " << description << " ("
<< static_cast<int>(mMessageId) << ")";
gpgmm::Log(mSeverity, mMessageId)
<< mName << "=" << ToString(mObject) << ": " << description;

#if defined(GPGMM_ENABLE_ASSERT_ON_WARNING)
ASSERT(mSeverity < MessageSeverity::Warning);
ASSERT(mSeverity < MessageSeverity::kWarning);
#endif

if (mSeverity >= GetEventMessageLevel()) {
MessageInfo message{description, mMessageId};
GPGMM_TRACE_EVENT_OBJECT_CALL(mName, message);
GPGMM_TRACE_EVENT_OBJECT_CALL(
mName, MessageInfo({description.c_str(), mMessageId, mSeverity}));
}
}

EventMessage DebugEvent(const ObjectBase* object, MessageId messageId) {
return {MessageSeverity::Debug, object->GetTypename(), object, messageId};
return {MessageSeverity::kDebug, object->GetTypename(), object, messageId};
}

EventMessage InfoEvent(const ObjectBase* object, MessageId messageId) {
return {MessageSeverity::Info, object->GetTypename(), object, messageId};
return {MessageSeverity::kInfo, object->GetTypename(), object, messageId};
}

EventMessage WarnEvent(const ObjectBase* object, MessageId messageId) {
return {MessageSeverity::Warning, object->GetTypename(), object, messageId};
return {MessageSeverity::kWarning, object->GetTypename(), object, messageId};
}

EventMessage ErrorEvent(const ObjectBase* object, MessageId messageId) {
return {MessageSeverity::Error, object->GetTypename(), object, messageId};
return {MessageSeverity::kError, object->GetTypename(), object, messageId};
}

} // namespace gpgmm
19 changes: 9 additions & 10 deletions src/gpgmm/common/Message.h
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,6 @@
#ifndef GPGMM_COMMON_MESSAGE_H_
#define GPGMM_COMMON_MESSAGE_H_

#include <string>

namespace gpgmm {

enum class MessageId {
Expand All @@ -30,16 +28,17 @@ namespace gpgmm {
kBudgetInvalid,
};

struct MessageInfo {
std::string Description;
MessageId ID;
enum class MessageSeverity {
kDebug,
kInfo,
kWarning,
kError,
};

enum class MessageSeverity {
Debug,
Info,
Warning,
Error,
struct MessageInfo {
const char* Description;
MessageId ID;
MessageSeverity Severity;
};

} // namespace gpgmm
Expand Down
2 changes: 1 addition & 1 deletion src/gpgmm/d3d12/ResourceAllocatorD3D12.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -637,7 +637,7 @@ namespace gpgmm::d3d12 {
#if !defined(GPGMM_DISABLE_SIZE_CACHE)
{
// Temporary suppress log messages emitted from internal cache-miss requests.
ScopedLogLevel scopedLogLevel(MessageSeverity::Info);
ScopedLogLevel scopedLogLevel(MessageSeverity::kInfo);

MemoryAllocationRequest cacheRequest = {};
cacheRequest.NeverAllocate = true;
Expand Down
10 changes: 5 additions & 5 deletions src/gpgmm/d3d12/UtilsD3D12.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -23,16 +23,16 @@ namespace gpgmm::d3d12 {
switch (messageSeverity) {
case D3D12_MESSAGE_SEVERITY_CORRUPTION:
case D3D12_MESSAGE_SEVERITY_ERROR:
return MessageSeverity::Error;
return MessageSeverity::kError;
case D3D12_MESSAGE_SEVERITY_WARNING:
return MessageSeverity::Warning;
return MessageSeverity::kWarning;
case D3D12_MESSAGE_SEVERITY_INFO:
return MessageSeverity::Info;
return MessageSeverity::kInfo;
case D3D12_MESSAGE_SEVERITY_MESSAGE:
return MessageSeverity::Debug;
return MessageSeverity::kDebug;
default:
UNREACHABLE();
return MessageSeverity::Debug;
return MessageSeverity::kDebug;
}
}

Expand Down
70 changes: 36 additions & 34 deletions src/gpgmm/utils/Log.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -35,9 +35,9 @@ namespace gpgmm {

MessageSeverity GetDefaultLogLevel() {
#if defined(NDEBUG)
return MessageSeverity::Info;
return MessageSeverity::kInfo;
#else
return MessageSeverity::Debug;
return MessageSeverity::kDebug;
#endif // defined(NDEBUG)
}

Expand All @@ -49,13 +49,13 @@ namespace gpgmm {

const char* SeverityName(MessageSeverity severity) {
switch (severity) {
case MessageSeverity::Debug:
case MessageSeverity::kDebug:
return "Debug";
case MessageSeverity::Info:
case MessageSeverity::kInfo:
return "Info";
case MessageSeverity::Warning:
case MessageSeverity::kWarning:
return "Warning";
case MessageSeverity::Error:
case MessageSeverity::kError:
return "Error";
default:
UNREACHABLE();
Expand All @@ -66,13 +66,13 @@ namespace gpgmm {
#if defined(GPGMM_PLATFORM_ANDROID)
android_LogPriority AndroidLogPriority(MessageSeverity severity) {
switch (severity) {
case MessageSeverity::Debug:
case MessageSeverity::kDebug:
return ANDROID_LOG_INFO;
case MessageSeverity::Info:
case MessageSeverity::kInfo:
return ANDROID_LOG_INFO;
case MessageSeverity::Warning:
case MessageSeverity::kWarning:
return ANDROID_LOG_WARN;
case MessageSeverity::Error:
case MessageSeverity::kError:
return ANDROID_LOG_ERROR;
default:
UNREACHABLE();
Expand All @@ -95,7 +95,8 @@ namespace gpgmm {

// LogMessage

LogMessage::LogMessage(MessageSeverity severity) : mSeverity(severity) {
LogMessage::LogMessage(MessageSeverity severity, MessageId messageId)
: mSeverity(severity), mMessageId(messageId) {
}

LogMessage::~LogMessage() {
Expand All @@ -109,7 +110,7 @@ namespace gpgmm {
const char* severityName = SeverityName(mSeverity);

FILE* outputStream = stdout;
if (mSeverity == MessageSeverity::Warning || mSeverity == MessageSeverity::Error) {
if (mSeverity == MessageSeverity::kWarning || mSeverity == MessageSeverity::kError) {
outputStream = stderr;
}

Expand All @@ -120,7 +121,8 @@ namespace gpgmm {
if (IsDebuggerPresent()) {
const std::string outputString =
std::string(kLogTag) + " " + std::string(severityName) +
"(tid: " + ToString(std::this_thread::get_id()) + "): " + fullMessage + "\n";
"(tid: " + ToString(std::this_thread::get_id()) + "): " + fullMessage + "(" +
ToString(static_cast<uint32_t>(mMessageId)) + ")" + "\n";
OutputDebugStringA(outputString.c_str());
}
#endif // defined(GPGMM_PLATFORM_WINDOWS)
Expand All @@ -136,26 +138,26 @@ namespace gpgmm {
fullMessage.c_str());
#else // defined(GPGMM_PLATFORM_ANDROID)
// Note: we use fprintf because <iostream> includes static initializers.
fprintf(outputStream, "%s %s (tid:%s): %s\n", kLogTag, severityName,
ToString(std::this_thread::get_id()).c_str(), fullMessage.c_str());
fprintf(outputStream, "%s %s (tid:%s): %s (%d)\n", kLogTag, severityName,
ToString(std::this_thread::get_id()).c_str(), fullMessage.c_str(), mMessageId);
fflush(outputStream);
#endif
}

LogMessage DebugLog() {
return {MessageSeverity::Debug};
LogMessage DebugLog(MessageId messageId) {
return {MessageSeverity::kDebug, messageId};
}

LogMessage InfoLog() {
return {MessageSeverity::Info};
LogMessage InfoLog(MessageId messageId) {
return {MessageSeverity::kInfo, messageId};
}

LogMessage WarningLog() {
return {MessageSeverity::Warning};
LogMessage WarningLog(MessageId messageId) {
return {MessageSeverity::kWarning, messageId};
}

LogMessage ErrorLog() {
return {MessageSeverity::Error};
LogMessage ErrorLog(MessageId messageId) {
return {MessageSeverity::kError, messageId};
}

LogMessage DebugLog(const char* file, const char* function, int line) {
Expand All @@ -164,19 +166,19 @@ namespace gpgmm {
return message;
}

LogMessage Log(const MessageSeverity& level) {
switch (level) {
case MessageSeverity::Debug:
return DebugLog();
case MessageSeverity::Info:
return InfoLog();
case MessageSeverity::Warning:
return WarningLog();
case MessageSeverity::Error:
return ErrorLog();
LogMessage Log(MessageSeverity severity, MessageId messageId) {
switch (severity) {
case MessageSeverity::kDebug:
return DebugLog(messageId);
case MessageSeverity::kInfo:
return InfoLog(messageId);
case MessageSeverity::kWarning:
return WarningLog(messageId);
case MessageSeverity::kError:
return ErrorLog(messageId);
default:
UNREACHABLE();
return {level};
return {severity, messageId};
}
}

Expand Down
13 changes: 7 additions & 6 deletions src/gpgmm/utils/Log.h
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ namespace gpgmm {
// Essentially an ostringstream that will print itself in its destructor.
class LogMessage {
public:
LogMessage(MessageSeverity severity);
LogMessage(MessageSeverity severity, MessageId messageId);
~LogMessage();

LogMessage(LogMessage&& other) = default;
Expand All @@ -74,17 +74,18 @@ namespace gpgmm {
LogMessage& operator=(const LogMessage& other) = delete;

MessageSeverity mSeverity;
MessageId mMessageId;
std::ostringstream mStream;
};

// Short-hands to create a LogMessage with the respective severity.
LogMessage DebugLog();
LogMessage InfoLog();
LogMessage WarningLog();
LogMessage ErrorLog();
LogMessage DebugLog(MessageId messageId = MessageId::kUnknown);
LogMessage InfoLog(MessageId messageId = MessageId::kUnknown);
LogMessage WarningLog(MessageId messageId = MessageId::kUnknown);
LogMessage ErrorLog(MessageId messageId = MessageId::kUnknown);

// Create a LogMessage based on severity.
LogMessage Log(const MessageSeverity& level);
LogMessage Log(MessageSeverity severity, MessageId messageId);

// GPGMM_DEBUG is a helper macro that creates a DebugLog and outputs file/line/function
// information
Expand Down
8 changes: 4 additions & 4 deletions src/tests/D3D12Test.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -24,13 +24,13 @@ namespace gpgmm::d3d12 {

D3D12_MESSAGE_SEVERITY GetMessageSeverity(MessageSeverity MessageSeverity) {
switch (MessageSeverity) {
case MessageSeverity::Error:
case MessageSeverity::kError:
return D3D12_MESSAGE_SEVERITY_ERROR;
case MessageSeverity::Warning:
case MessageSeverity::kWarning:
return D3D12_MESSAGE_SEVERITY_WARNING;
case MessageSeverity::Info:
case MessageSeverity::kInfo:
return D3D12_MESSAGE_SEVERITY_INFO;
case MessageSeverity::Debug:
case MessageSeverity::kDebug:
return D3D12_MESSAGE_SEVERITY_MESSAGE;
default:
UNREACHABLE();
Expand Down
12 changes: 6 additions & 6 deletions src/tests/GPGMMTest.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@ GPGMMTestEnvironment::GPGMMTestEnvironment(int argc, char** argv) {
constexpr const char kDebugMode[] = "--debug";
size_t arglen = sizeof(kDebugMode) - 1;
if (strncmp(argv[i], kDebugMode, arglen) == 0) {
mLogLevel = gpgmm::MessageSeverity::Debug;
mLogLevel = gpgmm::MessageSeverity::kDebug;
continue;
}

Expand All @@ -128,19 +128,19 @@ GPGMMTestEnvironment::GPGMMTestEnvironment(int argc, char** argv) {
const char* level = argv[i] + arglen;
if (level[0] != '\0') {
if (strcmp(level, "=DEBUG") == 0) {
mLogLevel = gpgmm::MessageSeverity::Debug;
mLogLevel = gpgmm::MessageSeverity::kDebug;
} else if (strcmp(level, "=INFO") == 0) {
mLogLevel = gpgmm::MessageSeverity::Info;
mLogLevel = gpgmm::MessageSeverity::kInfo;
} else if (strcmp(level, "=WARN") == 0) {
mLogLevel = gpgmm::MessageSeverity::Warning;
mLogLevel = gpgmm::MessageSeverity::kWarning;
} else if (strcmp(level, "=ERROR") == 0) {
mLogLevel = gpgmm::MessageSeverity::Error;
mLogLevel = gpgmm::MessageSeverity::kError;
} else {
gpgmm::ErrorLog() << "Invalid log level " << level << ".\n";
UNREACHABLE();
}
} else {
mLogLevel = gpgmm::MessageSeverity::Warning;
mLogLevel = gpgmm::MessageSeverity::kWarning;
}
continue;
}
Expand Down
4 changes: 2 additions & 2 deletions src/tests/capture_replay_tests/D3D12EventTraceReplay.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -383,7 +383,7 @@ class D3D12EventTraceReplay : public D3D12TestBase, public CaptureReplayTestWith
const Json::Value& snapshot = event["args"]["snapshot"];
ASSERT_FALSE(snapshot.empty());

if (GetLogLevel() <= gpgmm::MessageSeverity::Warning &&
if (GetLogLevel() <= gpgmm::MessageSeverity::kWarning &&
mCaps->IsAdapterUMA() != snapshot["IsUMA"].asBool() &&
iterationIndex == 0) {
gpgmm::WarningLog()
Expand Down Expand Up @@ -441,7 +441,7 @@ class D3D12EventTraceReplay : public D3D12TestBase, public CaptureReplayTestWith
const Json::Value& snapshot = event["args"]["snapshot"];
ASSERT_FALSE(snapshot.empty());

if (GetLogLevel() <= gpgmm::MessageSeverity::Warning &&
if (GetLogLevel() <= gpgmm::MessageSeverity::kWarning &&
mCaps->GetMaxResourceHeapTierSupported() <
snapshot["ResourceHeapTier"].asInt() &&
iterationIndex == 0) {
Expand Down