summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZhaowei Yuan <zhaowei.yuan@samsung.com>2019-05-06 13:52:32 +0800
committerSooChan Lim <sc1.lim@samsung.com>2019-05-07 06:39:10 +0000
commit8854eef9eb4718b0145d639b1bf37c610a910632 (patch)
tree4712c8a729ae7734050906c70a6ede8d607e963b
parentb0dec10d0d0fbc7f77623016f3d986122f718f8b (diff)
downloadmesa-8854eef9eb4718b0145d639b1bf37c610a910632.tar.gz
mesa-8854eef9eb4718b0145d639b1bf37c610a910632.tar.bz2
mesa-8854eef9eb4718b0145d639b1bf37c610a910632.zip
Re-implement _eglLog based on dlog
_eglLog is a basic log function for mesa, re-implement it based on dlog here for debug purpose. Log level can be changed by setting environment variable EGL_LOG_LEVEL. Change-Id: Ib356d14d631fcda0d9c45f0e442f02981b0377be Signed-off-by: Zhaowei Yuan <zhaowei.yuan@samsung.com>
-rw-r--r--configure.ac2
-rw-r--r--packaging/mesa.spec1
-rw-r--r--src/egl/main/egllog.c35
3 files changed, 36 insertions, 2 deletions
diff --git a/configure.ac b/configure.ac
index ebcdc3eb20e..399c98c3520 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1896,7 +1896,7 @@ for plat in $platforms; do
;;
tizen)
- PKG_CHECK_MODULES([TIZEN], [tpl-egl libtbm libtdm wayland-client])
+ PKG_CHECK_MODULES([TIZEN], [tpl-egl libtbm libtdm wayland-client dlog])
DEFINES="$DEFINES -DHAVE_TIZEN_PLATFORM"
;;
*)
diff --git a/packaging/mesa.spec b/packaging/mesa.spec
index 000fb577e48..31cea6fe688 100644
--- a/packaging/mesa.spec
+++ b/packaging/mesa.spec
@@ -33,6 +33,7 @@ BuildRequires: pkgconfig(tpl-egl)
BuildRequires: pkgconfig(libtbm)
BuildRequires: pkgconfig(libtdm)
BuildRequires: pkgconfig(zlib)
+BuildRequires: pkgconfig(dlog)
%ifarch x86_64 %ix86
BuildRequires: pkgconfig(libdrm_intel) >= 2.4.24
%endif
diff --git a/src/egl/main/egllog.c b/src/egl/main/egllog.c
index c223f49b0fe..de4bee26c0e 100644
--- a/src/egl/main/egllog.c
+++ b/src/egl/main/egllog.c
@@ -44,6 +44,10 @@
#include "util/macros.h"
#include "egllog.h"
+#ifdef HAVE_TIZEN_PLATFORM
+#define LOG_TAG "MESA"
+#include <dlog.h>
+#endif
#ifdef HAVE_ANDROID_PLATFORM
#define LOG_TAG "EGL-MAIN"
@@ -56,7 +60,7 @@
#endif /* HAVE_ANDROID_PLATFORM */
#define MAXSTRING 1000
-#define FALLBACK_LOG_LEVEL _EGL_WARNING
+#define FALLBACK_LOG_LEVEL _EGL_FATAL
static struct {
@@ -78,6 +82,7 @@ static const char *level_strings[] = {
};
+#ifndef HAVE_TIZEN_PLATFORM
/**
* The default logger. It prints the message to stderr.
*/
@@ -96,6 +101,7 @@ _eglDefaultLogger(EGLint level, const char *msg)
fprintf(stderr, "libEGL %s: %s\n", level_strings[level], msg);
#endif /* HAVE_ANDROID_PLATFORM */
}
+#endif
/**
@@ -153,13 +159,40 @@ _eglLog(EGLint level, const char *fmtStr, ...)
mtx_lock(&logging.mutex);
+#ifdef HAVE_TIZEN_PLATFORM
+ log_priority dlog_prio;
+
+ switch (level) {
+ case _EGL_FATAL:
+ dlog_prio = DLOG_ERROR;
+ break;
+ case _EGL_WARNING:
+ dlog_prio = DLOG_WARN;
+ break;
+ case _EGL_INFO:
+ dlog_prio = DLOG_INFO;
+ break;
+ case _EGL_DEBUG:
+ dlog_prio = DLOG_DEBUG;
+ break;
+ default:
+ return;
+ }
+#endif
+
va_start(args, fmtStr);
+#ifdef HAVE_TIZEN_PLATFORM
+ __dlog_vprint(LOG_ID_SYSTEM, dlog_prio, LOG_TAG, fmtStr, args);
+#else
ret = vsnprintf(msg, MAXSTRING, fmtStr, args);
if (ret < 0 || ret >= MAXSTRING)
strcpy(msg, "<message truncated>");
+#endif
va_end(args);
+#ifndef HAVE_TIZEN_PLATFORM
_eglDefaultLogger(level, msg);
+#endif
mtx_unlock(&logging.mutex);