Commit 87b106a0 by Jamie Madill Committed by Commit Bot

Fix trace logging in Debug.

- fix crash when logging an invalid context - output to trace even when platform logging is on Bug: angleproject:3815 Change-Id: I725f5728e1d839e3d8458579ad1958cb775d9ecf Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1769505Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org> Reviewed-by: 's avatarCorentin Wallez <cwallez@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
parent 27a8b32f
......@@ -54,10 +54,7 @@ void LoggingAnnotator::logMessage(const gl::LogMessage &msg) const
UNREACHABLE();
}
}
else
{
gl::Trace(msg.getSeverity(), msg.getMessage().c_str());
}
gl::Trace(msg.getSeverity(), msg.getMessage().c_str());
}
} // namespace angle
......@@ -14,6 +14,7 @@
#include "common/PackedEnums.h"
#include "common/angleutils.h"
#include "common/mathutil.h"
#include "libANGLE/Display.h"
#include "libANGLE/entry_points_enum_autogen.h"
namespace gl
......@@ -98,9 +99,19 @@ inline int CID(const Context *context)
namespace egl
{
inline int CID(EGLContext context)
inline int CID(EGLDisplay display, EGLContext context)
{
return gl::CID(reinterpret_cast<const gl::Context *>(context));
auto *displayPtr = reinterpret_cast<const egl::Display *>(display);
if (!Display::isValidDisplay(displayPtr))
{
return -1;
}
auto *contextPtr = reinterpret_cast<const gl::Context *>(context);
if (!displayPtr->isValidContext(contextPtr))
{
return -1;
}
return gl::CID(contextPtr);
}
} // namespace egl
......
......@@ -368,7 +368,7 @@ EGLContext EGLAPIENTRY EGL_CreateContext(EGLDisplay dpy,
FUNC_EVENT("EGLDisplay dpy = 0x%016" PRIxPTR ", EGLConfig config = 0x%016" PRIxPTR
", EGLContext share_context = %d, "
"const EGLint *attrib_list = 0x%016" PRIxPTR,
(uintptr_t)dpy, (uintptr_t)config, CID(share_context), (uintptr_t)attrib_list);
(uintptr_t)dpy, (uintptr_t)config, CID(dpy, share_context), (uintptr_t)attrib_list);
Thread *thread = egl::GetCurrentThread();
egl::Display *display = static_cast<egl::Display *>(dpy);
......@@ -393,7 +393,8 @@ EGLContext EGLAPIENTRY EGL_CreateContext(EGLDisplay dpy,
EGLBoolean EGLAPIENTRY EGL_DestroyContext(EGLDisplay dpy, EGLContext ctx)
{
ANGLE_SCOPED_GLOBAL_LOCK();
FUNC_EVENT("EGLDisplay dpy = 0x%016" PRIxPTR ", EGLContext ctx = %d", (uintptr_t)dpy, CID(ctx));
FUNC_EVENT("EGLDisplay dpy = 0x%016" PRIxPTR ", EGLContext ctx = %d", (uintptr_t)dpy,
CID(dpy, ctx));
Thread *thread = egl::GetCurrentThread();
egl::Display *display = static_cast<egl::Display *>(dpy);
......@@ -426,7 +427,7 @@ EGLBoolean EGLAPIENTRY EGL_MakeCurrent(EGLDisplay dpy,
", EGLSurface read = 0x%016" PRIxPTR
", "
"EGLContext ctx = %d",
(uintptr_t)dpy, (uintptr_t)draw, (uintptr_t)read, CID(ctx));
(uintptr_t)dpy, (uintptr_t)draw, (uintptr_t)read, CID(dpy, ctx));
Thread *thread = egl::GetCurrentThread();
egl::Display *display = static_cast<egl::Display *>(dpy);
......@@ -502,7 +503,7 @@ EGLBoolean EGLAPIENTRY EGL_QueryContext(EGLDisplay dpy,
", EGLContext ctx = %d"
", EGLint attribute = %d, EGLint *value "
"= 0x%016" PRIxPTR,
(uintptr_t)dpy, CID(ctx), attribute, (uintptr_t)value);
(uintptr_t)dpy, CID(dpy, ctx), attribute, (uintptr_t)value);
Thread *thread = egl::GetCurrentThread();
egl::Display *display = static_cast<egl::Display *>(dpy);
......@@ -934,7 +935,7 @@ EGLImage EGLAPIENTRY EGL_CreateImage(EGLDisplay dpy,
", EGLenum target = 0x%X, "
"EGLClientBuffer buffer = 0x%016" PRIxPTR
", const EGLAttrib *attrib_list = 0x%016" PRIxPTR,
(uintptr_t)dpy, CID(ctx), target, (uintptr_t)buffer, (uintptr_t)attrib_list);
(uintptr_t)dpy, CID(dpy, ctx), target, (uintptr_t)buffer, (uintptr_t)attrib_list);
Thread *thread = egl::GetCurrentThread();
egl::Display *display = static_cast<egl::Display *>(dpy);
......
......@@ -402,7 +402,7 @@ ANGLE_EXPORT EGLImageKHR EGLAPIENTRY EGL_CreateImageKHR(EGLDisplay dpy,
", EGLenum target = 0x%X, "
"EGLClientBuffer buffer = 0x%016" PRIxPTR
", const EGLAttrib *attrib_list = 0x%016" PRIxPTR,
(uintptr_t)dpy, CID(ctx), target, (uintptr_t)buffer, (uintptr_t)attrib_list);
(uintptr_t)dpy, CID(dpy, ctx), target, (uintptr_t)buffer, (uintptr_t)attrib_list);
Thread *thread = egl::GetCurrentThread();
egl::Display *display = static_cast<egl::Display *>(dpy);
......
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