[Mesa-dev] [PATCH 03/11] mesa: add logging function for formatted string

Tapani Pälli tapani.palli at intel.com
Mon Dec 10 10:30:48 UTC 2018



On 12/7/18 2:35 AM, Mark Janes wrote:
> ---
>   src/mesa/main/errors.c | 27 +++++++++++++++++++++++++++
>   src/mesa/main/errors.h |  8 ++++++++
>   2 files changed, 35 insertions(+)
> 
> diff --git a/src/mesa/main/errors.c b/src/mesa/main/errors.c
> index fad8cb59cae..995b0510575 100644
> --- a/src/mesa/main/errors.c
> +++ b/src/mesa/main/errors.c
> @@ -253,6 +253,33 @@ _mesa_gl_debugf(struct gl_context *ctx,
>      va_end(args);
>   }
>   
> +size_t
> +_mesa_gl_debug(struct gl_context *ctx,
> +               GLuint *id,
> +               enum mesa_debug_source source,
> +               enum mesa_debug_type type,
> +               enum mesa_debug_severity severity,
> +               const char *msg)
> +{
> +   _mesa_debug_get_id(id);
> +
> +   size_t len = strnlen(msg, MAX_DEBUG_MESSAGE_LENGTH);
> +   if (len < MAX_DEBUG_MESSAGE_LENGTH) {
> +      _mesa_log_msg(ctx, source, type, *id, severity, len, msg);
> +      return len;
> +   }
> +
> +   /* limit the message to fit within KHR_debug buffers */
> +   char s[MAX_DEBUG_MESSAGE_LENGTH];
> +   strncpy(s, msg, MAX_DEBUG_MESSAGE_LENGTH);
> +   s[MAX_DEBUG_MESSAGE_LENGTH - 1] = '\0';
> +   len = MAX_DEBUG_MESSAGE_LENGTH - 1;
> +   _mesa_log_msg(ctx, source, type, *id, severity, len, s);

Maybe less code when using strndup here? Or maybe not, did not really 
check but just throwing ideas :)

> +
> +   /* report the number of characters that were logged */
> +   return len;
> +}
> +
>   
>   /**
>    * Record an OpenGL state error.  These usually occur when the user
> diff --git a/src/mesa/main/errors.h b/src/mesa/main/errors.h
> index 3e2d56e7741..17fe380f26a 100644
> --- a/src/mesa/main/errors.h
> +++ b/src/mesa/main/errors.h
> @@ -90,6 +90,14 @@ _mesa_gl_debugf(struct gl_context *ctx,
>                   enum mesa_debug_severity severity,
>                   const char *fmtString, ...) PRINTFLIKE(6, 7);
>   
> +extern size_t
> +_mesa_gl_debug(struct gl_context *ctx,
> +               GLuint *id,
> +               enum mesa_debug_source source,
> +               enum mesa_debug_type type,
> +               enum mesa_debug_severity severity,
> +               const char *msg);
> +
>   #define _mesa_perf_debug(ctx, sev, ...) do {                              \
>      static GLuint msg_id = 0;                                              \
>      if (unlikely(ctx->Const.ContextFlags & GL_CONTEXT_FLAG_DEBUG_BIT)) {   \
> 


More information about the mesa-dev mailing list