diff options
author | Mathias Agopian <mathias@google.com> | 2010-09-23 16:38:38 -0700 |
---|---|---|
committer | Mathias Agopian <mathias@google.com> | 2010-09-23 16:44:48 -0700 |
commit | 6f0871222f04dfeb479d37fe9753d491e3150e42 (patch) | |
tree | 5b3d05242cd96085a01eb327b04e2cd762dabebf /opengl/libs/GLES2 | |
parent | 05c53113e0c73c7cab61edf53524c61c20a547c2 (diff) | |
download | frameworks_native-6f0871222f04dfeb479d37fe9753d491e3150e42.zip frameworks_native-6f0871222f04dfeb479d37fe9753d491e3150e42.tar.gz frameworks_native-6f0871222f04dfeb479d37fe9753d491e3150e42.tar.bz2 |
better fix for [3028370] GL get error should return a valid error if no context is bound.
it turns out that we cannot return INVALID_OPERATION from glGetError() because the
GL spec says that it must be called in a loop until it returns GL_NO_ERROR.
now, we always return 0 from GL functions called from a thread with no
context bound. This means that glGetError() will return NO_ERROR in this case,
which is better than returning a random value (which could trap the app in a loop).
if this happens in the main thread of a process, we LOG an error message once.
Change-Id: Id59620e675a890286ef62a257c02b06e0fdcaf69
Diffstat (limited to 'opengl/libs/GLES2')
-rw-r--r-- | opengl/libs/GLES2/gl2.cpp | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/opengl/libs/GLES2/gl2.cpp b/opengl/libs/GLES2/gl2.cpp index 924737e..18dd483 100644 --- a/opengl/libs/GLES2/gl2.cpp +++ b/opengl/libs/GLES2/gl2.cpp @@ -58,6 +58,7 @@ using namespace android; "ldr r12, [r12, %[tls]] \n" \ "cmp r12, #0 \n" \ "ldrne pc, [r12, %[api]] \n" \ + "mov r0, #0 \n" \ "bx lr \n" \ : \ : [tls] "J"(TLS_SLOT_OPENGL_API*4), \ |