Commit 3f332584 by Geoff Lang Committed by Commit Bot

Revert "RendererGL: Limit warning output to 5 per message type."

This reverts commit 7c37ca18. Reason for revert: Causes crashes on Android. Original change's description: > RendererGL: Limit warning output to 5 per message type. > > BUG=768943 > > Change-Id: I8ed69c70d1914b56145c52ffe26f13193fb55e9e > Reviewed-on: https://chromium-review.googlesource.com/685278 > Commit-Queue: Geoff Lang <geofflang@chromium.org> > Reviewed-by: Corentin Wallez <cwallez@chromium.org> TBR=geofflang@chromium.org,cwallez@chromium.org Change-Id: I641ac5d508d238e275eaeef4fac4033d9015960d No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: 768943 Reviewed-on: https://chromium-review.googlesource.com/1115658 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: 's avatarGeoff Lang <geofflang@chromium.org>
parent 0bb02368
......@@ -65,9 +65,100 @@ static void INTERNAL_GL_APIENTRY LogGLDebugMessage(GLenum source,
const GLchar *message,
const void *userParam)
{
ASSERT(userParam != nullptr);
rx::RendererGL *renderer = static_cast<rx::RendererGL *>(const_cast<void *>(userParam));
renderer->onDebugMessage(source, type, id, severity, length, message);
std::string sourceText;
switch (source)
{
case GL_DEBUG_SOURCE_API:
sourceText = "OpenGL";
break;
case GL_DEBUG_SOURCE_WINDOW_SYSTEM:
sourceText = "Windows";
break;
case GL_DEBUG_SOURCE_SHADER_COMPILER:
sourceText = "Shader Compiler";
break;
case GL_DEBUG_SOURCE_THIRD_PARTY:
sourceText = "Third Party";
break;
case GL_DEBUG_SOURCE_APPLICATION:
sourceText = "Application";
break;
case GL_DEBUG_SOURCE_OTHER:
sourceText = "Other";
break;
default:
sourceText = "UNKNOWN";
break;
}
std::string typeText;
switch (type)
{
case GL_DEBUG_TYPE_ERROR:
typeText = "Error";
break;
case GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR:
typeText = "Deprecated behavior";
break;
case GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR:
typeText = "Undefined behavior";
break;
case GL_DEBUG_TYPE_PORTABILITY:
typeText = "Portability";
break;
case GL_DEBUG_TYPE_PERFORMANCE:
typeText = "Performance";
break;
case GL_DEBUG_TYPE_OTHER:
typeText = "Other";
break;
case GL_DEBUG_TYPE_MARKER:
typeText = "Marker";
break;
default:
typeText = "UNKNOWN";
break;
}
std::string severityText;
switch (severity)
{
case GL_DEBUG_SEVERITY_HIGH:
severityText = "High";
break;
case GL_DEBUG_SEVERITY_MEDIUM:
severityText = "Medium";
break;
case GL_DEBUG_SEVERITY_LOW:
severityText = "Low";
break;
case GL_DEBUG_SEVERITY_NOTIFICATION:
severityText = "Notification";
break;
default:
severityText = "UNKNOWN";
break;
}
if (type == GL_DEBUG_TYPE_ERROR)
{
ERR() << std::endl
<< "\tSource: " << sourceText << std::endl
<< "\tType: " << typeText << std::endl
<< "\tID: " << gl::Error(id) << std::endl
<< "\tSeverity: " << severityText << std::endl
<< "\tMessage: " << message;
}
else
{
// TODO(ynovikov): filter into WARN and INFO if INFO is ever implemented
WARN() << std::endl
<< "\tSource: " << sourceText << std::endl
<< "\tType: " << typeText << std::endl
<< "\tID: " << gl::Error(id) << std::endl
<< "\tSeverity: " << severityText << std::endl
<< "\tMessage: " << message;
}
}
namespace rx
......@@ -108,7 +199,7 @@ RendererGL::RendererGL(std::unique_ptr<FunctionsGL> functions, const egl::Attrib
nullptr, GL_FALSE);
mFunctions->debugMessageControl(GL_DONT_CARE, GL_DONT_CARE, GL_DEBUG_SEVERITY_NOTIFICATION,
0, nullptr, GL_FALSE);
mFunctions->debugMessageCallback(&LogGLDebugMessage, this);
mFunctions->debugMessageCallback(&LogGLDebugMessage, nullptr);
}
if (mWorkarounds.initializeCurrentVertexAttributes)
......@@ -612,27 +703,4 @@ gl::Error RendererGL::memoryBarrierByRegion(GLbitfield barriers)
return gl::NoError();
}
void RendererGL::onDebugMessage(GLenum source,
GLenum type,
GLuint id,
GLenum severity,
GLsizei length,
const GLchar *message)
{
constexpr size_t kMaxDebugMessagesPerNonErrorType = 5;
const std::string formattedMessage =
nativegl::FormatDebugMessage(source, type, id, severity, length, message);
if (type == GL_DEBUG_TYPE_ERROR)
{
ERR() << std::endl << formattedMessage;
}
else if (mDebugMessageCounts[id] < kMaxDebugMessagesPerNonErrorType)
{
// TODO(ynovikov): filter into WARN and INFO if INFO is ever implemented
WARN() << std::endl << formattedMessage;
}
mDebugMessageCounts[id]++;
}
} // namespace rx
......@@ -185,13 +185,6 @@ class RendererGL : angle::NonCopyable
gl::Error memoryBarrier(GLbitfield barriers);
gl::Error memoryBarrierByRegion(GLbitfield barriers);
void onDebugMessage(GLenum source,
GLenum type,
GLuint id,
GLenum severity,
GLsizei length,
const GLchar *message);
private:
void ensureCapsInitialized() const;
void generateCaps(gl::Caps *outCaps,
......@@ -210,7 +203,6 @@ class RendererGL : angle::NonCopyable
WorkaroundsGL mWorkarounds;
bool mUseDebugOutput;
std::map<GLuint, size_t> mDebugMessageCounts;
mutable bool mCapsInitialized;
mutable gl::Caps mNativeCaps;
......
......@@ -1212,100 +1212,6 @@ void ApplyWorkarounds(const FunctionsGL *functions, gl::Workarounds *workarounds
namespace nativegl
{
std::string FormatDebugMessage(GLenum source,
GLenum type,
GLuint id,
GLenum severity,
GLsizei length,
const GLchar *message)
{
std::string sourceText;
switch (source)
{
case GL_DEBUG_SOURCE_API:
sourceText = "OpenGL";
break;
case GL_DEBUG_SOURCE_WINDOW_SYSTEM:
sourceText = "Windows";
break;
case GL_DEBUG_SOURCE_SHADER_COMPILER:
sourceText = "Shader Compiler";
break;
case GL_DEBUG_SOURCE_THIRD_PARTY:
sourceText = "Third Party";
break;
case GL_DEBUG_SOURCE_APPLICATION:
sourceText = "Application";
break;
case GL_DEBUG_SOURCE_OTHER:
sourceText = "Other";
break;
default:
sourceText = "UNKNOWN";
break;
}
std::string typeText;
switch (type)
{
case GL_DEBUG_TYPE_ERROR:
typeText = "Error";
break;
case GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR:
typeText = "Deprecated behavior";
break;
case GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR:
typeText = "Undefined behavior";
break;
case GL_DEBUG_TYPE_PORTABILITY:
typeText = "Portability";
break;
case GL_DEBUG_TYPE_PERFORMANCE:
typeText = "Performance";
break;
case GL_DEBUG_TYPE_OTHER:
typeText = "Other";
break;
case GL_DEBUG_TYPE_MARKER:
typeText = "Marker";
break;
default:
typeText = "UNKNOWN";
break;
}
std::string severityText;
switch (severity)
{
case GL_DEBUG_SEVERITY_HIGH:
severityText = "High";
break;
case GL_DEBUG_SEVERITY_MEDIUM:
severityText = "Medium";
break;
case GL_DEBUG_SEVERITY_LOW:
severityText = "Low";
break;
case GL_DEBUG_SEVERITY_NOTIFICATION:
severityText = "Notification";
break;
default:
severityText = "UNKNOWN";
break;
}
std::ostringstream stream;
stream << "\tSource: " << sourceText << std::endl
<< "\tType: " << typeText << std::endl
<< "\tID: " << gl::Error(id) << std::endl
<< "\tSeverity: " << severityText << std::endl
<< "\tMessage: " << message;
return stream.str();
}
bool SupportsFenceSync(const FunctionsGL *functions)
{
return functions->isAtLeastGL(gl::Version(3, 2)) || functions->hasGLExtension("GL_ARB_sync") ||
......
......@@ -68,12 +68,6 @@ void ApplyWorkarounds(const FunctionsGL *functions, gl::Workarounds *workarounds
namespace nativegl
{
std::string FormatDebugMessage(GLenum source,
GLenum type,
GLuint id,
GLenum severity,
GLsizei length,
const GLchar *message);
bool SupportsFenceSync(const FunctionsGL *functions);
bool SupportsOcclusionQueries(const FunctionsGL *functions);
bool SupportsNativeRendering(const FunctionsGL *functions,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment