summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarco Trevisan (Treviño) <mail@3v1n0.net>2014-11-18 22:11:24 +0100
committerMarco Trevisan (Treviño) <mail@3v1n0.net>2014-11-18 22:11:24 +0100
commitb26466ad546c508c3bcc31e8a598afa1f73254c7 (patch)
treec53093f4a7d6cfaf6be3557bbbe79442de3a8965
parente5fd82e2a156ff1c8e4ca732eba1a4e86d8b5a4e (diff)
mir: improve error logging
-rw-r--r--cogl/winsys/cogl-winsys-egl-mir.c24
1 files changed, 16 insertions, 8 deletions
diff --git a/cogl/winsys/cogl-winsys-egl-mir.c b/cogl/winsys/cogl-winsys-egl-mir.c
index be7e8c07..26861a4d 100644
--- a/cogl/winsys/cogl-winsys-egl-mir.c
+++ b/cogl/winsys/cogl-winsys-egl-mir.c
@@ -250,7 +250,8 @@ _cogl_winsys_renderer_connect (CoglRenderer *renderer,
{
_cogl_set_error (error, COGL_WINSYS_ERROR,
COGL_WINSYS_ERROR_INIT,
- "Failed to connect mir display");
+ "Failed to connect mir display: %s",
+ mir_connection_get_error_message (mir_renderer->mir_connection));
goto error;
}
}
@@ -314,6 +315,7 @@ make_dummy_surface (CoglDisplay *display,
MirEGLNativeWindowType dummy_mir_egl_native_window;
MirSurfaceParameters surfaceparm;
const char *error_message;
+ const char *error_detail = "";
surfaceparm.name = "CoglDummySurface";
surfaceparm.width = 1;
@@ -324,9 +326,10 @@ make_dummy_surface (CoglDisplay *display,
mir_display->dummy_mir_surface =
mir_connection_create_surface_sync (mir_renderer->mir_connection, &surfaceparm);
- if (!mir_display->dummy_mir_surface)
+ if (!mir_surface_is_valid (mir_display->dummy_mir_surface))
{
- error_message= "Failed to create a dummy mir surface";
+ error_message = "Failed to create a dummy mir surface";
+ error_detail = mir_surface_get_error_message (mir_display->dummy_mir_surface);
goto fail;
}
@@ -334,7 +337,8 @@ make_dummy_surface (CoglDisplay *display,
mir_surface_get_egl_native_window (mir_display->dummy_mir_surface);
if (!dummy_mir_egl_native_window)
{
- error_message= "Failed to get a dummy mir native egl surface";
+ error_message = "Failed to get a dummy mir native egl surface";
+ error_detail = mir_surface_get_error_message (mir_display->dummy_mir_surface);
goto fail;
}
@@ -345,7 +349,7 @@ make_dummy_surface (CoglDisplay *display,
NULL);
if (egl_display->dummy_surface == EGL_NO_SURFACE)
{
- error_message= "Unable to create dummy window surface";
+ error_message = "Unable to create dummy window surface";
goto fail;
}
@@ -354,7 +358,9 @@ make_dummy_surface (CoglDisplay *display,
fail:
_cogl_set_error (error, COGL_WINSYS_ERROR,
COGL_WINSYS_ERROR_CREATE_CONTEXT,
- "%s", error_message);
+ "%s%s%s", error_message,
+ error_detail != '\0' ? ": " : "",
+ error_detail);
return FALSE;
}
@@ -538,7 +544,8 @@ _cogl_winsys_egl_onscreen_init (CoglOnscreen *onscreen,
{
_cogl_set_error (error, COGL_WINSYS_ERROR,
COGL_WINSYS_ERROR_CREATE_ONSCREEN,
- "Error while creating mir surface for CoglOnscreen");
+ "Error while creating mir surface for CoglOnscreen: %s",
+ mir_surface_get_error_message (mir_onscreen->mir_surface));
return FALSE;
}
@@ -548,7 +555,8 @@ _cogl_winsys_egl_onscreen_init (CoglOnscreen *onscreen,
_cogl_set_error (error, COGL_WINSYS_ERROR,
COGL_WINSYS_ERROR_CREATE_ONSCREEN,
"Error while getting mir egl native window "
- "for CoglOnscreen");
+ "for CoglOnscreen: %s",
+ mir_surface_get_error_message (mir_onscreen->mir_surface));
return FALSE;
}