egl: Add storage for EGL_KHR_debug's state to EGL objects

Reviewed-by: Adam Jackson <ajax@redhat.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
This commit is contained in:
Kyle Brenneman 2016-09-12 16:15:10 -04:00 committed by Adam Jackson
parent 1d535c1e83
commit 7206b3a556
5 changed files with 27 additions and 3 deletions

View File

@ -35,10 +35,9 @@
#include "eglcurrent.h"
#include "eglglobals.h"
/* This should be kept in sync with _eglInitThreadInfo() */
#define _EGL_THREAD_INFO_INITIALIZER \
{ EGL_SUCCESS, NULL, 0 }
{ EGL_SUCCESS, NULL, 0, NULL, NULL, NULL }
/* a fallback thread info to guarantee that every thread always has one */
static _EGLThreadInfo dummy_thread = _EGL_THREAD_INFO_INITIALIZER;

View File

@ -54,6 +54,14 @@ struct _egl_thread_info
EGLint LastError;
_EGLContext *CurrentContext;
EGLenum CurrentAPI;
EGLLabelKHR Label;
/**
* The name of the EGL function that's being called at the moment. This is
* used to report the function name to the EGL_KHR_debug callback.
*/
const char *CurrentFuncName;
EGLLabelKHR CurrentObjectLabel;
};

View File

@ -79,6 +79,8 @@ struct _egl_resource
EGLBoolean IsLinked;
EGLint RefCount;
EGLLabelKHR Label;
/* used to link resources of the same type */
_EGLResource *Next;
};
@ -165,6 +167,8 @@ struct _egl_display
/* lists of resources */
_EGLResource *ResourceLists[_EGL_NUM_RESOURCES];
EGLLabelKHR Label;
};

View File

@ -56,7 +56,10 @@ struct _egl_global _eglGlobal =
" EGL_EXT_platform_wayland"
" EGL_EXT_platform_x11"
" EGL_KHR_client_get_all_proc_addresses"
" EGL_MESA_platform_gbm"
" EGL_MESA_platform_gbm",
NULL, /* debugCallback */
_EGL_DEBUG_BIT_CRITICAL | _EGL_DEBUG_BIT_ERROR, /* debugTypesEnabled */
};

View File

@ -36,6 +36,13 @@
#include "egltypedefs.h"
enum
{
_EGL_DEBUG_BIT_CRITICAL = 0x1,
_EGL_DEBUG_BIT_ERROR = 0x2,
_EGL_DEBUG_BIT_WARN = 0x4,
_EGL_DEBUG_BIT_INFO = 0x8,
};
/**
* Global library data
@ -51,6 +58,9 @@ struct _egl_global
void (*AtExitCalls[10])(void);
const char *ClientExtensionString;
EGLDEBUGPROCKHR debugCallback;
unsigned int debugTypesEnabled;
};