diff options
author | Alistair Strachan <alistair.strachan@imgtec.com> | 2015-05-22 14:10:09 -0700 |
---|---|---|
committer | Jesse Hall <jessehall@google.com> | 2015-05-28 15:34:31 -0700 |
commit | 89301eaf214f0da74c5266e7a548899d5f491b50 (patch) | |
tree | 0a2b2ed131b684635f7fc1d4793abef920d67488 /opengl/libs/GLES2/gl2_api.in | |
parent | f008799d3753e52c10849824ff8146985ea66284 (diff) | |
download | frameworks_native-89301eaf214f0da74c5266e7a548899d5f491b50.zip frameworks_native-89301eaf214f0da74c5266e7a548899d5f491b50.tar.gz frameworks_native-89301eaf214f0da74c5266e7a548899d5f491b50.tar.bz2 |
Fix EGL shim extension injection for GL ES 3 drivers.
The Android EGL shim injects GL_EXT_debug_marker into the ES driver
EXTENSIONS string for the OpenGL ES 1.x and 2.0/3.0/3.1 drivers if
the extension is not already provided. This feature is used by
GLES_trace.
In Open GL ES 3.0 it became possible to query an indexed version of
the EXTENSIONS string via GetStringi(). NUM_EXTENSIONS Gets were
also added to the specification (taken from Open GL).
If the shim does not have to inject the extension, then there is no
problem, as glGetString() and glGetStringi() / NUM_EXTENSIONS will
be consistent. However, if the Android EGL shim injects the
extension, NUM_EXTENSIONS and GetStringi() will report one less
extension than is really available.
Consistency between these methods is tested by the dEQP framework
with the dEQP-GLES3.functional.state_query.string.extensions test.
If the driver does not provide GL_EXT_debug_marker, this test
fails.
This change wraps all of the affected entry points so that the
wrapped driver extensions are never visible directly to dEQP,
eliminating the inconsistency.
Diffstat (limited to 'opengl/libs/GLES2/gl2_api.in')
-rw-r--r-- | opengl/libs/GLES2/gl2_api.in | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/opengl/libs/GLES2/gl2_api.in b/opengl/libs/GLES2/gl2_api.in index 8363960..09d8b00 100644 --- a/opengl/libs/GLES2/gl2_api.in +++ b/opengl/libs/GLES2/gl2_api.in @@ -172,7 +172,7 @@ void API_ENTRY(glGetAttachedShaders)(GLuint program, GLsizei maxCount, GLsizei * GLint API_ENTRY(glGetAttribLocation)(GLuint program, const GLchar * name) { CALL_GL_API_RETURN(glGetAttribLocation, program, name); } -void API_ENTRY(glGetBooleanv)(GLenum pname, GLboolean * data) { +void API_ENTRY(__glGetBooleanv)(GLenum pname, GLboolean * data) { CALL_GL_API(glGetBooleanv, pname, data); } void API_ENTRY(glGetBufferParameteriv)(GLenum target, GLenum pname, GLint * params) { @@ -181,13 +181,13 @@ void API_ENTRY(glGetBufferParameteriv)(GLenum target, GLenum pname, GLint * para GLenum API_ENTRY(glGetError)(void) { CALL_GL_API_RETURN(glGetError); } -void API_ENTRY(glGetFloatv)(GLenum pname, GLfloat * data) { +void API_ENTRY(__glGetFloatv)(GLenum pname, GLfloat * data) { CALL_GL_API(glGetFloatv, pname, data); } void API_ENTRY(glGetFramebufferAttachmentParameteriv)(GLenum target, GLenum attachment, GLenum pname, GLint * params) { CALL_GL_API(glGetFramebufferAttachmentParameteriv, target, attachment, pname, params); } -void API_ENTRY(glGetIntegerv)(GLenum pname, GLint * data) { +void API_ENTRY(__glGetIntegerv)(GLenum pname, GLint * data) { CALL_GL_API(glGetIntegerv, pname, data); } void API_ENTRY(glGetProgramiv)(GLuint program, GLenum pname, GLint * params) { @@ -604,7 +604,7 @@ void API_ENTRY(glClearBufferfv)(GLenum buffer, GLint drawbuffer, const GLfloat * void API_ENTRY(glClearBufferfi)(GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil) { CALL_GL_API(glClearBufferfi, buffer, drawbuffer, depth, stencil); } -const GLubyte * API_ENTRY(glGetStringi)(GLenum name, GLuint index) { +const GLubyte * API_ENTRY(__glGetStringi)(GLenum name, GLuint index) { CALL_GL_API_RETURN(glGetStringi, name, index); } void API_ENTRY(glCopyBufferSubData)(GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size) { @@ -649,7 +649,7 @@ GLenum API_ENTRY(glClientWaitSync)(GLsync sync, GLbitfield flags, GLuint64 timeo void API_ENTRY(glWaitSync)(GLsync sync, GLbitfield flags, GLuint64 timeout) { CALL_GL_API(glWaitSync, sync, flags, timeout); } -void API_ENTRY(glGetInteger64v)(GLenum pname, GLint64 * data) { +void API_ENTRY(__glGetInteger64v)(GLenum pname, GLint64 * data) { CALL_GL_API(glGetInteger64v, pname, data); } void API_ENTRY(glGetSynciv)(GLsync sync, GLenum pname, GLsizei bufSize, GLsizei * length, GLint * values) { |