Commit e102fee7 by Geoff Lang

Add stub entry points for GL_KHR_debug.

BUG=angleproject:520 Change-Id: I6f19ca160214a44c75619c320d5e1db7e4098eda Reviewed-on: https://chromium-review.googlesource.com/317540 Tryjob-Request: Geoff Lang <geofflang@chromium.org> Reviewed-by: 's avatarCorentin Wallez <cwallez@chromium.org> Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org> Tested-by: 's avatarGeoff Lang <geofflang@chromium.org>
parent f33b58d0
...@@ -146,6 +146,7 @@ Extensions::Extensions() ...@@ -146,6 +146,7 @@ Extensions::Extensions()
unpackSubimage(false), unpackSubimage(false),
packSubimage(false), packSubimage(false),
vertexArrayObject(false), vertexArrayObject(false),
debug(false),
colorBufferFloat(false) colorBufferFloat(false)
{ {
} }
...@@ -210,6 +211,7 @@ std::vector<std::string> Extensions::getStrings() const ...@@ -210,6 +211,7 @@ std::vector<std::string> Extensions::getStrings() const
InsertExtensionString("GL_NV_pack_subimage", packSubimage, &extensionStrings); InsertExtensionString("GL_NV_pack_subimage", packSubimage, &extensionStrings);
InsertExtensionString("GL_EXT_color_buffer_float", colorBufferFloat, &extensionStrings); InsertExtensionString("GL_EXT_color_buffer_float", colorBufferFloat, &extensionStrings);
InsertExtensionString("GL_OES_vertex_array_object", vertexArrayObject, &extensionStrings); InsertExtensionString("GL_OES_vertex_array_object", vertexArrayObject, &extensionStrings);
InsertExtensionString("GL_KHR_debug", debug, &extensionStrings);
// clang-format on // clang-format on
return extensionStrings; return extensionStrings;
......
...@@ -253,6 +253,9 @@ struct Extensions ...@@ -253,6 +253,9 @@ struct Extensions
// GL_OES_vertex_array_object // GL_OES_vertex_array_object
bool vertexArrayObject; bool vertexArrayObject;
// GL_KHR_debug
bool debug;
// ES3 Extension support // ES3 Extension support
// GL_EXT_color_buffer_float // GL_EXT_color_buffer_float
......
...@@ -1068,4 +1068,178 @@ bool ValidateGetProgramBinaryOES(Context *context, ...@@ -1068,4 +1068,178 @@ bool ValidateGetProgramBinaryOES(Context *context,
return ValidateGetProgramBinaryBase(context, program, bufSize, length, binaryFormat, binary); return ValidateGetProgramBinaryBase(context, program, bufSize, length, binaryFormat, binary);
} }
bool ValidateDebugMessageControlKHR(Context *context,
GLenum source,
GLenum type,
GLenum severity,
GLsizei count,
const GLuint *ids,
GLboolean enabled)
{
if (!context->getExtensions().debug)
{
context->recordError(Error(GL_INVALID_OPERATION, "Extension not enabled"));
return false;
}
UNIMPLEMENTED();
return true;
}
bool ValidateDebugMessageInsertKHR(Context *context,
GLenum source,
GLenum type,
GLuint id,
GLenum severity,
GLsizei length,
const GLchar *buf)
{
if (!context->getExtensions().debug)
{
context->recordError(Error(GL_INVALID_OPERATION, "Extension not enabled"));
return false;
}
UNIMPLEMENTED();
return true;
}
bool ValidateDebugMessageCallbackKHR(Context *context,
GLDEBUGPROCKHR callback,
const void *userParam)
{
if (!context->getExtensions().debug)
{
context->recordError(Error(GL_INVALID_OPERATION, "Extension not enabled"));
return false;
}
UNIMPLEMENTED();
return true;
}
bool ValidateGetDebugMessageLogKHR(Context *context,
GLuint count,
GLsizei bufSize,
GLenum *sources,
GLenum *types,
GLuint *ids,
GLenum *severities,
GLsizei *lengths,
GLchar *messageLog)
{
if (!context->getExtensions().debug)
{
context->recordError(Error(GL_INVALID_OPERATION, "Extension not enabled"));
return false;
}
UNIMPLEMENTED();
return true;
}
bool ValidatePushDebugGroupKHR(Context *context,
GLenum source,
GLuint id,
GLsizei length,
const GLchar *message)
{
if (!context->getExtensions().debug)
{
context->recordError(Error(GL_INVALID_OPERATION, "Extension not enabled"));
return false;
}
UNIMPLEMENTED();
return true;
}
bool ValidatePopDebugGroupKHR(Context *context)
{
if (!context->getExtensions().debug)
{
context->recordError(Error(GL_INVALID_OPERATION, "Extension not enabled"));
return false;
}
UNIMPLEMENTED();
return true;
}
bool ValidateObjectLabelKHR(Context *context,
GLenum identifier,
GLuint name,
GLsizei length,
const GLchar *label)
{
if (!context->getExtensions().debug)
{
context->recordError(Error(GL_INVALID_OPERATION, "Extension not enabled"));
return false;
}
UNIMPLEMENTED();
return true;
}
bool ValidateGetObjectLabelKHR(Context *context,
GLenum identifier,
GLuint name,
GLsizei bufSize,
GLsizei *length,
GLchar *label)
{
if (!context->getExtensions().debug)
{
context->recordError(Error(GL_INVALID_OPERATION, "Extension not enabled"));
return false;
}
UNIMPLEMENTED();
return true;
}
bool ValidateObjectPtrLabelKHR(Context *context,
const void *ptr,
GLsizei length,
const GLchar *label)
{
if (!context->getExtensions().debug)
{
context->recordError(Error(GL_INVALID_OPERATION, "Extension not enabled"));
return false;
}
UNIMPLEMENTED();
return true;
}
bool ValidateGetObjectPtrLabelKHR(Context *context,
const void *ptr,
GLsizei bufSize,
GLsizei *length,
GLchar *label)
{
if (!context->getExtensions().debug)
{
context->recordError(Error(GL_INVALID_OPERATION, "Extension not enabled"));
return false;
}
UNIMPLEMENTED();
return true;
}
bool ValidateGetPointervKHR(Context *context, GLenum pname, void **params)
{
if (!context->getExtensions().debug)
{
context->recordError(Error(GL_INVALID_OPERATION, "Extension not enabled"));
return false;
}
UNIMPLEMENTED();
return true;
}
} }
...@@ -10,6 +10,7 @@ ...@@ -10,6 +10,7 @@
#define LIBANGLE_VALIDATION_ES2_H_ #define LIBANGLE_VALIDATION_ES2_H_
#include <GLES2/gl2.h> #include <GLES2/gl2.h>
#include <GLES2/gl2ext.h>
namespace gl namespace gl
{ {
...@@ -50,6 +51,61 @@ bool ValidateGetProgramBinaryOES(Context *context, ...@@ -50,6 +51,61 @@ bool ValidateGetProgramBinaryOES(Context *context,
GLsizei *length, GLsizei *length,
GLenum *binaryFormat, GLenum *binaryFormat,
void *binary); void *binary);
// GL_KHR_debug
bool ValidateDebugMessageControlKHR(Context *context,
GLenum source,
GLenum type,
GLenum severity,
GLsizei count,
const GLuint *ids,
GLboolean enabled);
bool ValidateDebugMessageInsertKHR(Context *context,
GLenum source,
GLenum type,
GLuint id,
GLenum severity,
GLsizei length,
const GLchar *buf);
bool ValidateDebugMessageCallbackKHR(Context *context,
GLDEBUGPROCKHR callback,
const void *userParam);
bool ValidateGetDebugMessageLogKHR(Context *context,
GLuint count,
GLsizei bufSize,
GLenum *sources,
GLenum *types,
GLuint *ids,
GLenum *severities,
GLsizei *lengths,
GLchar *messageLog);
bool ValidatePushDebugGroupKHR(Context *context,
GLenum source,
GLuint id,
GLsizei length,
const GLchar *message);
bool ValidatePopDebugGroupKHR(Context *context);
bool ValidateObjectLabelKHR(Context *context,
GLenum identifier,
GLuint name,
GLsizei length,
const GLchar *label);
bool ValidateGetObjectLabelKHR(Context *context,
GLenum identifier,
GLuint name,
GLsizei bufSize,
GLsizei *length,
GLchar *label);
bool ValidateObjectPtrLabelKHR(Context *context,
const void *ptr,
GLsizei length,
const GLchar *label);
bool ValidateGetObjectPtrLabelKHR(Context *context,
const void *ptr,
GLsizei bufSize,
GLsizei *length,
GLchar *label);
bool ValidateGetPointervKHR(Context *context, GLenum pname, void **params);
} }
#endif // LIBANGLE_VALIDATION_ES2_H_ #endif // LIBANGLE_VALIDATION_ES2_H_
...@@ -1361,6 +1361,19 @@ __eglMustCastToProperFunctionPointerType EGLAPIENTRY GetProcAddress(const char * ...@@ -1361,6 +1361,19 @@ __eglMustCastToProperFunctionPointerType EGLAPIENTRY GetProcAddress(const char *
INSERT_PROC_ADDRESS(gl, GenVertexArraysOES); INSERT_PROC_ADDRESS(gl, GenVertexArraysOES);
INSERT_PROC_ADDRESS(gl, IsVertexArrayOES); INSERT_PROC_ADDRESS(gl, IsVertexArrayOES);
// GL_KHR_debug
INSERT_PROC_ADDRESS(gl, DebugMessageControlKHR);
INSERT_PROC_ADDRESS(gl, DebugMessageInsertKHR);
INSERT_PROC_ADDRESS(gl, DebugMessageCallbackKHR);
INSERT_PROC_ADDRESS(gl, GetDebugMessageLogKHR);
INSERT_PROC_ADDRESS(gl, PushDebugGroupKHR);
INSERT_PROC_ADDRESS(gl, PopDebugGroupKHR);
INSERT_PROC_ADDRESS(gl, ObjectLabelKHR);
INSERT_PROC_ADDRESS(gl, GetObjectLabelKHR);
INSERT_PROC_ADDRESS(gl, ObjectPtrLabelKHR);
INSERT_PROC_ADDRESS(gl, GetObjectPtrLabelKHR);
INSERT_PROC_ADDRESS(gl, GetPointervKHR);
// GLES3 core // GLES3 core
INSERT_PROC_ADDRESS(gl, ReadBuffer); INSERT_PROC_ADDRESS(gl, ReadBuffer);
INSERT_PROC_ADDRESS(gl, DrawRangeElements); INSERT_PROC_ADDRESS(gl, DrawRangeElements);
......
...@@ -1277,4 +1277,228 @@ GLboolean GL_APIENTRY IsVertexArrayOES(GLuint array) ...@@ -1277,4 +1277,228 @@ GLboolean GL_APIENTRY IsVertexArrayOES(GLuint array)
return GL_FALSE; return GL_FALSE;
} }
void GL_APIENTRY DebugMessageControlKHR(GLenum source,
GLenum type,
GLenum severity,
GLsizei count,
const GLuint *ids,
GLboolean enabled)
{
EVENT(
"(GLenum source = 0x%X, GLenum type = 0x%X, GLenum severity = 0x%X, GLsizei count = %d, "
"GLint *ids = 0x%0.8p, GLboolean enabled = %d)",
source, type, severity, count, ids, enabled);
Context *context = GetValidGlobalContext();
if (context)
{
if (!ValidateDebugMessageControlKHR(context, source, type, severity, count, ids, enabled))
{
return;
}
UNIMPLEMENTED();
}
}
void GL_APIENTRY DebugMessageInsertKHR(GLenum source,
GLenum type,
GLuint id,
GLenum severity,
GLsizei length,
const GLchar *buf)
{
EVENT(
"(GLenum source = 0x%X, GLenum type = 0x%X, GLint id = %d, GLenum severity = 0x%X, GLsizei "
"length = %d, const GLchar *buf = 0x%0.8p)",
source, type, id, severity, length, buf);
Context *context = GetValidGlobalContext();
if (context)
{
if (!ValidateDebugMessageInsertKHR(context, source, type, id, severity, length, buf))
{
return;
}
UNIMPLEMENTED();
}
}
void GL_APIENTRY DebugMessageCallbackKHR(GLDEBUGPROCKHR callback, const void *userParam)
{
EVENT("(GLDEBUGPROCKHR callback = 0x%0.8p, const void *userParam = 0x%0.8p)", callback,
userParam);
Context *context = GetValidGlobalContext();
if (context)
{
if (!ValidateDebugMessageCallbackKHR(context, callback, userParam))
{
return;
}
UNIMPLEMENTED();
}
}
GLuint GL_APIENTRY GetDebugMessageLogKHR(GLuint count,
GLsizei bufSize,
GLenum *sources,
GLenum *types,
GLuint *ids,
GLenum *severities,
GLsizei *lengths,
GLchar *messageLog)
{
EVENT(
"(GLsizei count = %d, GLsizei bufSize = %d, GLenum *sources, GLenum *types = 0x%0.8p, "
"GLuint *ids = 0x%0.8p, GLenum *severities = 0x%0.8p, GLsizei *lengths = 0x%0.8p, GLchar "
"*messageLog = 0x%0.8p)",
count, bufSize, sources, types, ids, severities, lengths, messageLog);
Context *context = GetValidGlobalContext();
if (context)
{
if (!ValidateGetDebugMessageLogKHR(context, count, bufSize, sources, types, ids, severities,
lengths, messageLog))
{
return 0;
}
UNIMPLEMENTED();
}
return 0;
}
void GL_APIENTRY PushDebugGroupKHR(GLenum source, GLuint id, GLsizei length, const GLchar *message)
{
EVENT(
"(GLenum source = 0x%X, GLuint id = 0x%X, GLsizei length = %d, const GLchar *message = "
"0x%0.8p)",
source, id, length, message);
Context *context = GetValidGlobalContext();
if (context)
{
if (!ValidatePushDebugGroupKHR(context, source, id, length, message))
{
return;
}
UNIMPLEMENTED();
}
}
void GL_APIENTRY PopDebugGroupKHR(void)
{
EVENT("()");
Context *context = GetValidGlobalContext();
if (context)
{
if (!ValidatePopDebugGroupKHR(context))
{
return;
}
UNIMPLEMENTED();
}
}
void GL_APIENTRY ObjectLabelKHR(GLenum identifier, GLuint name, GLsizei length, const GLchar *label)
{
EVENT(
"(GLenum identifier = 0x%X, GLuint name = %u, GLsizei length = %d, const GLchar *label = "
"0x%0.8p)",
identifier, name, length, label);
Context *context = GetValidGlobalContext();
if (context)
{
if (!ValidateObjectLabelKHR(context, identifier, name, length, label))
{
return;
}
UNIMPLEMENTED();
}
}
void GL_APIENTRY
GetObjectLabelKHR(GLenum identifier, GLuint name, GLsizei bufSize, GLsizei *length, GLchar *label)
{
EVENT(
"(GLenum identifier = 0x%X, GLuint name = %u, GLsizei bufSize = %d, GLsizei *length = "
"0x%0.8p, GLchar *label = 0x%0.8p)",
identifier, name, bufSize, length, label);
Context *context = GetValidGlobalContext();
if (context)
{
if (!ValidateGetObjectLabelKHR(context, identifier, name, bufSize, length, label))
{
return;
}
UNIMPLEMENTED();
}
}
void GL_APIENTRY ObjectPtrLabelKHR(const void *ptr, GLsizei length, const GLchar *label)
{
EVENT("(const void *ptr = 0x%0.8p, GLsizei length = %d, const GLchar *label = 0x%0.8p)", ptr,
length, label);
Context *context = GetValidGlobalContext();
if (context)
{
if (!ValidateObjectPtrLabelKHR(context, ptr, length, label))
{
return;
}
UNIMPLEMENTED();
}
}
void GL_APIENTRY GetObjectPtrLabelKHR(const void *ptr,
GLsizei bufSize,
GLsizei *length,
GLchar *label)
{
EVENT(
"(const void *ptr = 0x%0.8p, GLsizei bufSize = %d, GLsizei *length = 0x%0.8p, GLchar "
"*label = 0x%0.8p)",
ptr, bufSize, length, label);
Context *context = GetValidGlobalContext();
if (context)
{
if (!ValidateGetObjectPtrLabelKHR(context, ptr, bufSize, length, label))
{
return;
}
UNIMPLEMENTED();
}
}
void GL_APIENTRY GetPointervKHR(GLenum pname, void **params)
{
EVENT("(GLenum pname = 0x%X, void **params = 0x%0.8p)", pname, params);
Context *context = GetValidGlobalContext();
if (context)
{
if (!ValidateGetPointervKHR(context, pname, params))
{
return;
}
UNIMPLEMENTED();
}
}
} }
...@@ -91,6 +91,49 @@ ANGLE_EXPORT void GL_APIENTRY BindVertexArrayOES(GLuint array); ...@@ -91,6 +91,49 @@ ANGLE_EXPORT void GL_APIENTRY BindVertexArrayOES(GLuint array);
ANGLE_EXPORT void GL_APIENTRY DeleteVertexArraysOES(GLsizei n, const GLuint *arrays); ANGLE_EXPORT void GL_APIENTRY DeleteVertexArraysOES(GLsizei n, const GLuint *arrays);
ANGLE_EXPORT void GL_APIENTRY GenVertexArraysOES(GLsizei n, GLuint *arrays); ANGLE_EXPORT void GL_APIENTRY GenVertexArraysOES(GLsizei n, GLuint *arrays);
ANGLE_EXPORT GLboolean GL_APIENTRY IsVertexArrayOES(GLuint array); ANGLE_EXPORT GLboolean GL_APIENTRY IsVertexArrayOES(GLuint array);
// GL_KHR_debug
ANGLE_EXPORT void GL_APIENTRY DebugMessageControlKHR(GLenum source,
GLenum type,
GLenum severity,
GLsizei count,
const GLuint *ids,
GLboolean enabled);
ANGLE_EXPORT void GL_APIENTRY DebugMessageInsertKHR(GLenum source,
GLenum type,
GLuint id,
GLenum severity,
GLsizei length,
const GLchar *buf);
ANGLE_EXPORT void GL_APIENTRY DebugMessageCallbackKHR(GLDEBUGPROCKHR callback,
const void *userParam);
ANGLE_EXPORT GLuint GL_APIENTRY GetDebugMessageLogKHR(GLuint count,
GLsizei bufSize,
GLenum *sources,
GLenum *types,
GLuint *ids,
GLenum *severities,
GLsizei *lengths,
GLchar *messageLog);
ANGLE_EXPORT void GL_APIENTRY PushDebugGroupKHR(GLenum source,
GLuint id,
GLsizei length,
const GLchar *message);
ANGLE_EXPORT void GL_APIENTRY PopDebugGroupKHR(void);
ANGLE_EXPORT void GL_APIENTRY ObjectLabelKHR(GLenum identifier,
GLuint name,
GLsizei length,
const GLchar *label);
ANGLE_EXPORT void GL_APIENTRY
GetObjectLabelKHR(GLenum identifier, GLuint name, GLsizei bufSize, GLsizei *length, GLchar *label);
ANGLE_EXPORT void GL_APIENTRY ObjectPtrLabelKHR(const void *ptr,
GLsizei length,
const GLchar *label);
ANGLE_EXPORT void GL_APIENTRY GetObjectPtrLabelKHR(const void *ptr,
GLsizei bufSize,
GLsizei *length,
GLchar *label);
ANGLE_EXPORT void GL_APIENTRY GetPointervKHR(GLenum pname, void **params);
} }
#endif // LIBGLESV2_ENTRYPOINTGLES20EXT_H_ #endif // LIBGLESV2_ENTRYPOINTGLES20EXT_H_
...@@ -1459,4 +1459,87 @@ GLboolean GL_APIENTRY glIsVertexArrayOES(GLuint array) ...@@ -1459,4 +1459,87 @@ GLboolean GL_APIENTRY glIsVertexArrayOES(GLuint array)
{ {
return gl::IsVertexArrayOES(array); return gl::IsVertexArrayOES(array);
} }
void GL_APIENTRY glDebugMessageControlKHR(GLenum source,
GLenum type,
GLenum severity,
GLsizei count,
const GLuint *ids,
GLboolean enabled)
{
return gl::DebugMessageControlKHR(source, type, severity, count, ids, enabled);
}
void GL_APIENTRY glDebugMessageInsertKHR(GLenum source,
GLenum type,
GLuint id,
GLenum severity,
GLsizei length,
const GLchar *buf)
{
return gl::DebugMessageInsertKHR(source, type, id, severity, length, buf);
}
void GL_APIENTRY glDebugMessageCallbackKHR(GLDEBUGPROCKHR callback, const void *userParam)
{
return gl::DebugMessageCallbackKHR(callback, userParam);
}
GLuint GL_APIENTRY glGetDebugMessageLogKHR(GLuint count,
GLsizei bufSize,
GLenum *sources,
GLenum *types,
GLuint *ids,
GLenum *severities,
GLsizei *lengths,
GLchar *messageLog)
{
return gl::GetDebugMessageLogKHR(count, bufSize, sources, types, ids, severities, lengths,
messageLog);
}
void GL_APIENTRY glPushDebugGroupKHR(GLenum source,
GLuint id,
GLsizei length,
const GLchar *message)
{
return gl::PushDebugGroupKHR(source, id, length, message);
}
void GL_APIENTRY glPopDebugGroupKHR(void)
{
return gl::PopDebugGroupKHR();
}
void GL_APIENTRY glObjectLabelKHR(GLenum identifier,
GLuint name,
GLsizei length,
const GLchar *label)
{
return gl::ObjectLabelKHR(identifier, name, length, label);
}
void GL_APIENTRY
glGetObjectLabelKHR(GLenum identifier, GLuint name, GLsizei bufSize, GLsizei *length, GLchar *label)
{
return gl::GetObjectLabelKHR(identifier, name, bufSize, length, label);
}
void GL_APIENTRY glObjectPtrLabelKHR(const void *ptr, GLsizei length, const GLchar *label)
{
return gl::ObjectPtrLabelKHR(ptr, length, label);
}
void GL_APIENTRY glGetObjectPtrLabelKHR(const void *ptr,
GLsizei bufSize,
GLsizei *length,
GLchar *label)
{
return gl::GetObjectPtrLabelKHR(ptr, bufSize, length, label);
}
void GL_APIENTRY glGetPointervKHR(GLenum pname, void **params)
{
return gl::GetPointervKHR(pname, params);
}
} }
...@@ -187,6 +187,17 @@ EXPORTS ...@@ -187,6 +187,17 @@ EXPORTS
glDeleteVertexArraysOES @300 glDeleteVertexArraysOES @300
glGenVertexArraysOES @301 glGenVertexArraysOES @301
glIsVertexArrayOES @302 glIsVertexArrayOES @302
glDebugMessageControlKHR @303
glDebugMessageInsertKHR @304
glDebugMessageCallbackKHR @305
glGetDebugMessageLogKHR @306
glPushDebugGroupKHR @307
glPopDebugGroupKHR @308
glObjectLabelKHR @309
glGetObjectLabelKHR @310
glObjectPtrLabelKHR @311
glGetObjectPtrLabelKHR @312
glGetPointervKHR @313
; GLES 3.0 Functions ; GLES 3.0 Functions
glReadBuffer @180 glReadBuffer @180
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment