[Mesa-dev] [PATCH 2/7] egl: fold Android logger into main/
Emil Velikov
emil.l.velikov at gmail.com
Mon May 8 14:50:07 UTC 2017
On 5 May 2017 at 13:49, Emil Velikov <emil.l.velikov at gmail.com> wrote:
> On 4 May 2017 at 20:17, Rob Herring <robh at kernel.org> wrote:
>> On Thu, May 4, 2017 at 1:46 PM, Emil Velikov <emil.l.velikov at gmail.com> wrote:
>>> From: Emil Velikov <emil.velikov at collabora.com>
>>>
>>> Will allow us to greatly simplify a lot of the code in egllog.c
>>
>> Okay, because on its own, this is not an improvement.
>>
>>>
>>> Signed-off-by: Emil Velikov <emil.velikov at collabora.com>
>>> ---
>>> src/egl/drivers/dri2/egl_dri2.h | 1 -
>>> src/egl/drivers/dri2/platform_android.c | 34 -------------------------------
>>> src/egl/main/egllog.c | 36 +++++++++++++++++++++++++++++++++
>>> 3 files changed, 36 insertions(+), 35 deletions(-)
>>>
>>> diff --git a/src/egl/drivers/dri2/egl_dri2.h b/src/egl/drivers/dri2/egl_dri2.h
>>> index f16663712d3..b1e224248cc 100644
>>> --- a/src/egl/drivers/dri2/egl_dri2.h
>>> +++ b/src/egl/drivers/dri2/egl_dri2.h
>>> @@ -59,7 +59,6 @@
>>> #include <system/window.h>
>>> #include <hardware/gralloc.h>
>>> #include <gralloc_drm_handle.h>
>>> -#include <cutils/log.h>
>>>
>>> #endif /* HAVE_ANDROID_PLATFORM */
>>>
>>> diff --git a/src/egl/drivers/dri2/platform_android.c b/src/egl/drivers/dri2/platform_android.c
>>> index 35f2e5dbe63..e962e8e00dd 100644
>>> --- a/src/egl/drivers/dri2/platform_android.c
>>> +++ b/src/egl/drivers/dri2/platform_android.c
>>> @@ -1030,38 +1030,6 @@ droid_open_device(struct dri2_egl_display *dri2_dpy)
>>> return (fd >= 0) ? fcntl(fd, F_DUPFD_CLOEXEC, 3) : -1;
>>> }
>>>
>>> -/* support versions < JellyBean */
>>> -#ifndef ALOGW
>>> -#define ALOGW LOGW
>>> -#endif
>>> -#ifndef ALOGD
>>> -#define ALOGD LOGD
>>> -#endif
>>> -#ifndef ALOGI
>>> -#define ALOGI LOGI
>>> -#endif
>>> -
>>> -static void
>>> -droid_log(EGLint level, const char *msg)
>>> -{
>>> - switch (level) {
>>> - case _EGL_DEBUG:
>>> - ALOGD("%s", msg);
>>> - break;
>>> - case _EGL_INFO:
>>> - ALOGI("%s", msg);
>>> - break;
>>> - case _EGL_WARNING:
>>> - ALOGW("%s", msg);
>>> - break;
>>> - case _EGL_FATAL:
>>> - LOG_FATAL("%s", msg);
>>> - break;
>>> - default:
>>> - break;
>>> - }
>>> -}
>>> -
>>> static struct dri2_egl_display_vtbl droid_display_vtbl = {
>>> .authenticate = NULL,
>>> .create_window_surface = droid_create_window_surface,
>>> @@ -1118,8 +1086,6 @@ dri2_initialize_android(_EGLDriver *drv, _EGLDisplay *dpy)
>>> const char *err;
>>> int ret;
>>>
>>> - _eglSetLogProc(droid_log);
>>> -
>>> loader_set_logger(_eglLog);
>>>
>>> dri2_dpy = calloc(1, sizeof(*dri2_dpy));
>>> diff --git a/src/egl/main/egllog.c b/src/egl/main/egllog.c
>>> index c8307482902..9d7e9302341 100644
>>> --- a/src/egl/main/egllog.c
>>> +++ b/src/egl/main/egllog.c
>>> @@ -44,6 +44,23 @@
>>>
>>> #include "egllog.h"
>>>
>>> +#ifdef HAVE_ANDROID_PLATFORM
>>> +#define LOG_TAG "EGL-MAIN"
>>> +#include <cutils/log.h>
>>> +
>>> +/* support versions < JellyBean */
>>
>> < JellyBean support is long gone, so these can be dropped.
>>
> We have a couple cases [i915 and i965], which we can drop as well right?
>
Since Chad is already in there, I'll leave those to him.
>>> +#ifndef ALOGW
>>> +#define ALOGW LOGW
>>> +#endif
>>> +#ifndef ALOGD
>>> +#define ALOGD LOGD
>>> +#endif
>>> +#ifndef ALOGI
>>> +#define ALOGI LOGI
>>> +#endif
>>> +
>>> +#endif /* HAVE_ANDROID_PLATFORM */
>>> +
>>> #define MAXSTRING 1000
>>> #define FALLBACK_LOG_LEVEL _EGL_WARNING
>>>
>>> @@ -107,7 +124,26 @@ _eglSetLogProc(_EGLLogProc logger)
>>> static void
>>> _eglDefaultLogger(EGLint level, const char *msg)
>>> {
>>> +#ifdef HAVE_ANDROID_PLATFORM
>>> + switch (level) {
>>> + case _EGL_DEBUG:
>>> + ALOGD("%s", msg);
>>> + break;
>>> + case _EGL_INFO:
>>> + ALOGI("%s", msg);
>>> + break;
>>> + case _EGL_WARNING:
>>> + ALOGW("%s", msg);
>>> + break;
>>> + case _EGL_FATAL:
>>> + LOG_FATAL("%s", msg);
>>> + break;
>>
>> This could all be simplified with a LUT for the level:
>>
>> const int egl2alog[] = { LOG_ERROR, LOG_WARN, LOG_INFO, LOG_DEBUG };
>> ALOG(egl2alog[level], LOG_TAG, "%s", msg);
>>
>> You loose the abort on fatal errors, but you don't have that in the
>> !android case. It doesn't really gain you anything aborting.
>>
> We have a exit(1) in _eglLog, so things should be fine.
>
I've decided to keep this patch as a dummy move and refactor with another patch.
If you can skim through it (should be in your inbox) that would be appreciated.
Thanks
Emil
More information about the mesa-dev
mailing list