OSDN Git Service

[GLESv3] Fix protocol error + build on older imgs
authorLingfeng Yang <lfy@google.com>
Thu, 12 Jan 2017 02:31:38 +0000 (18:31 -0800)
committerLingfeng Yang <lfy@google.com>
Thu, 12 Jan 2017 02:36:16 +0000 (18:36 -0800)
Change-Id: I6a28dfeed1242a89f1bf8a872f9f6ebd39585d8c

system/GLESv2_enc/GL2Encoder.cpp
system/GLESv2_enc/GL2Encoder.h
system/GLESv2_enc/gl2_client_context.cpp
system/GLESv2_enc/gl2_client_context.h
system/GLESv2_enc/gl2_client_proc.h
system/GLESv2_enc/gl2_enc.cpp
system/GLESv2_enc/gl2_entry.cpp
system/GLESv2_enc/gl2_opcodes.h

index 7d4f746..af04267 100755 (executable)
@@ -261,7 +261,12 @@ GL2Encoder::GL2Encoder(IOStream *stream, ChecksumCalculator *protocol)
 
     OVERRIDE(glBindSampler);
 
-    OVERRIDE(glDeleteSync);
+    OVERRIDE_CUSTOM(glFenceSync);
+    OVERRIDE_CUSTOM(glClientWaitSync);
+    OVERRIDE_CUSTOM(glWaitSync);
+    OVERRIDE_CUSTOM(glDeleteSync);
+    OVERRIDE_CUSTOM(glIsSync);
+    OVERRIDE_CUSTOM(glGetSynciv);
 
     OVERRIDE(glGetIntegeri_v);
     OVERRIDE(glGetInteger64i_v);
@@ -3925,12 +3930,38 @@ void GL2Encoder::s_glBindSampler(void* self, GLuint unit, GLuint sampler) {
     ctx->m_glBindSampler_enc(ctx, unit, sampler);
 }
 
+GLsync GL2Encoder::s_glFenceSync(void* self, GLenum condition, GLbitfield flags) {
+    GL2Encoder *ctx = (GL2Encoder *)self;
+    uint64_t syncHandle = ctx->glFenceSyncAEMU(ctx, condition, flags);
+    return (GLsync)(uintptr_t)syncHandle;
+}
+
+GLenum GL2Encoder::s_glClientWaitSync(void* self, GLsync wait_on, GLbitfield flags, GLuint64 timeout) {
+    GL2Encoder *ctx = (GL2Encoder *)self;
+    return ctx->glClientWaitSyncAEMU(ctx, (uint64_t)(uintptr_t)wait_on, flags, timeout);
+}
+
+void GL2Encoder::s_glWaitSync(void* self, GLsync wait_on, GLbitfield flags, GLuint64 timeout) {
+    GL2Encoder *ctx = (GL2Encoder *)self;
+    ctx->glWaitSyncAEMU(ctx, (uint64_t)(uintptr_t)wait_on, flags, timeout);
+}
+
 void GL2Encoder::s_glDeleteSync(void* self, GLsync sync) {
     GL2Encoder *ctx = (GL2Encoder *)self;
 
     if (!sync) return;
 
-    ctx->m_glDeleteSync_enc(ctx, sync);
+    ctx->glDeleteSyncAEMU(ctx, (uint64_t)(uintptr_t)sync);
+}
+
+GLboolean GL2Encoder::s_glIsSync(void* self, GLsync sync) {
+    GL2Encoder *ctx = (GL2Encoder *)self;
+    return ctx->glIsSyncAEMU(ctx, (uint64_t)(uintptr_t)sync);
+}
+
+void GL2Encoder::s_glGetSynciv(void* self, GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values) {
+    GL2Encoder *ctx = (GL2Encoder *)self;
+    return ctx->glGetSyncivAEMU(ctx, (uint64_t)(uintptr_t)sync, pname, bufSize, length, values);
 }
 
 #define LIMIT_CASE(target, lim) \
index e9b22a8..e6140c2 100644 (file)
@@ -509,8 +509,12 @@ private:
     glBindSampler_client_proc_t m_glBindSampler_enc;
     static void s_glBindSampler(void* self, GLuint unit, GLuint sampler);
 
-    glDeleteSync_client_proc_t m_glDeleteSync_enc;
-    static void s_glDeleteSync(void* self, GLsync sync);
+    static GLsync s_glFenceSync(void* self, GLenum condition, GLbitfield flags);
+    static GLenum s_glClientWaitSync(void* self, GLsync wait_on, GLbitfield flags, GLuint64 timeout);
+    static void s_glWaitSync(void* self, GLsync wait_on, GLbitfield flags, GLuint64 timeout);
+    static void s_glDeleteSync(void* self, GLsync to_delete);
+    static GLboolean s_glIsSync(void* self, GLsync sync);
+    static void s_glGetSynciv(void* self, GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values);
 
     glGetIntegeri_v_client_proc_t m_glGetIntegeri_v_enc;
     static void s_glGetIntegeri_v(void* self, GLenum target, GLuint index, GLint* params);
index ff867df..6ed4a4d 100644 (file)
@@ -287,6 +287,12 @@ int gl2_client_context_t::initDispatchByName(void *(*getProc)(const char *, void
        glDeleteSync = (glDeleteSync_client_proc_t) getProc("glDeleteSync", userData);
        glIsSync = (glIsSync_client_proc_t) getProc("glIsSync", userData);
        glGetSynciv = (glGetSynciv_client_proc_t) getProc("glGetSynciv", userData);
+       glFenceSyncAEMU = (glFenceSyncAEMU_client_proc_t) getProc("glFenceSyncAEMU", userData);
+       glClientWaitSyncAEMU = (glClientWaitSyncAEMU_client_proc_t) getProc("glClientWaitSyncAEMU", userData);
+       glWaitSyncAEMU = (glWaitSyncAEMU_client_proc_t) getProc("glWaitSyncAEMU", userData);
+       glDeleteSyncAEMU = (glDeleteSyncAEMU_client_proc_t) getProc("glDeleteSyncAEMU", userData);
+       glIsSyncAEMU = (glIsSyncAEMU_client_proc_t) getProc("glIsSyncAEMU", userData);
+       glGetSyncivAEMU = (glGetSyncivAEMU_client_proc_t) getProc("glGetSyncivAEMU", userData);
        glDrawBuffers = (glDrawBuffers_client_proc_t) getProc("glDrawBuffers", userData);
        glReadBuffer = (glReadBuffer_client_proc_t) getProc("glReadBuffer", userData);
        glBlitFramebuffer = (glBlitFramebuffer_client_proc_t) getProc("glBlitFramebuffer", userData);
index c82a662..b05eee0 100644 (file)
@@ -287,6 +287,12 @@ struct gl2_client_context_t {
        glDeleteSync_client_proc_t glDeleteSync;
        glIsSync_client_proc_t glIsSync;
        glGetSynciv_client_proc_t glGetSynciv;
+       glFenceSyncAEMU_client_proc_t glFenceSyncAEMU;
+       glClientWaitSyncAEMU_client_proc_t glClientWaitSyncAEMU;
+       glWaitSyncAEMU_client_proc_t glWaitSyncAEMU;
+       glDeleteSyncAEMU_client_proc_t glDeleteSyncAEMU;
+       glIsSyncAEMU_client_proc_t glIsSyncAEMU;
+       glGetSyncivAEMU_client_proc_t glGetSyncivAEMU;
        glDrawBuffers_client_proc_t glDrawBuffers;
        glReadBuffer_client_proc_t glReadBuffer;
        glBlitFramebuffer_client_proc_t glBlitFramebuffer;
index b04efd5..20fa85d 100644 (file)
@@ -286,6 +286,12 @@ typedef void (gl2_APIENTRY *glWaitSync_client_proc_t) (void * ctx, GLsync, GLbit
 typedef void (gl2_APIENTRY *glDeleteSync_client_proc_t) (void * ctx, GLsync);
 typedef GLboolean (gl2_APIENTRY *glIsSync_client_proc_t) (void * ctx, GLsync);
 typedef void (gl2_APIENTRY *glGetSynciv_client_proc_t) (void * ctx, GLsync, GLenum, GLsizei, GLsizei*, GLint*);
+typedef uint64_t (gl2_APIENTRY *glFenceSyncAEMU_client_proc_t) (void * ctx, GLenum, GLbitfield);
+typedef GLenum (gl2_APIENTRY *glClientWaitSyncAEMU_client_proc_t) (void * ctx, uint64_t, GLbitfield, GLuint64);
+typedef void (gl2_APIENTRY *glWaitSyncAEMU_client_proc_t) (void * ctx, uint64_t, GLbitfield, GLuint64);
+typedef void (gl2_APIENTRY *glDeleteSyncAEMU_client_proc_t) (void * ctx, uint64_t);
+typedef GLboolean (gl2_APIENTRY *glIsSyncAEMU_client_proc_t) (void * ctx, uint64_t);
+typedef void (gl2_APIENTRY *glGetSyncivAEMU_client_proc_t) (void * ctx, uint64_t, GLenum, GLsizei, GLsizei*, GLint*);
 typedef void (gl2_APIENTRY *glDrawBuffers_client_proc_t) (void * ctx, GLsizei, const GLenum*);
 typedef void (gl2_APIENTRY *glReadBuffer_client_proc_t) (void * ctx, GLenum);
 typedef void (gl2_APIENTRY *glBlitFramebuffer_client_proc_t) (void * ctx, GLint, GLint, GLint, GLint, GLint, GLint, GLint, GLint, GLbitfield, GLenum);
index 8c44d91..85281ac 100644 (file)
@@ -6801,7 +6801,7 @@ void glDrawRangeElementsOffsetAEMU_enc(void *self , GLenum mode, GLuint start, G
 
 }
 
-GLsync glFenceSync_enc(void *self , GLenum condition, GLbitfield flags)
+uint64_t glFenceSyncAEMU_enc(void *self , GLenum condition, GLbitfield flags)
 {
 
        gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
@@ -6816,7 +6816,7 @@ GLsync glFenceSync_enc(void *self , GLenum condition, GLbitfield flags)
         const size_t totalSize = sizeWithoutChecksum + checksumSize;
        buf = stream->alloc(totalSize);
        ptr = buf;
-       int tmp = OP_glFenceSync;memcpy(ptr, &tmp, 4); ptr += 4;
+       int tmp = OP_glFenceSyncAEMU;memcpy(ptr, &tmp, 4); ptr += 4;
        memcpy(ptr, &totalSize, 4);  ptr += 4;
 
                memcpy(ptr, &condition, 4); ptr += 4;
@@ -6826,7 +6826,7 @@ GLsync glFenceSync_enc(void *self , GLenum condition, GLbitfield flags)
        if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
 
 
-       GLsync retval;
+       uint64_t retval;
        stream->readback(&retval, 8);
        if (useChecksum) checksumCalculator->addBuffer(&retval, 8);
        if (useChecksum) {
@@ -6835,14 +6835,14 @@ GLsync glFenceSync_enc(void *self , GLenum condition, GLbitfield flags)
                if (checksumSize > 0) checksumBufPtr = &checksumBuf[0];
                stream->readback(checksumBufPtr, checksumSize);
                if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) {
-                       ALOGE("glFenceSync: GL communication error, please report this issue to b.android.com.\n");
+                       ALOGE("glFenceSyncAEMU: GL communication error, please report this issue to b.android.com.\n");
                        abort();
                }
        }
        return retval;
 }
 
-GLenum glClientWaitSync_enc(void *self , GLsync wait_on, GLbitfield flags, GLuint64 timeout)
+GLenum glClientWaitSyncAEMU_enc(void *self , uint64_t wait_on, GLbitfield flags, GLuint64 timeout)
 {
 
        gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
@@ -6857,7 +6857,7 @@ GLenum glClientWaitSync_enc(void *self , GLsync wait_on, GLbitfield flags, GLuin
         const size_t totalSize = sizeWithoutChecksum + checksumSize;
        buf = stream->alloc(totalSize);
        ptr = buf;
-       int tmp = OP_glClientWaitSync;memcpy(ptr, &tmp, 4); ptr += 4;
+       int tmp = OP_glClientWaitSyncAEMU;memcpy(ptr, &tmp, 4); ptr += 4;
        memcpy(ptr, &totalSize, 4);  ptr += 4;
 
                memcpy(ptr, &wait_on, 8); ptr += 8;
@@ -6877,14 +6877,14 @@ GLenum glClientWaitSync_enc(void *self , GLsync wait_on, GLbitfield flags, GLuin
                if (checksumSize > 0) checksumBufPtr = &checksumBuf[0];
                stream->readback(checksumBufPtr, checksumSize);
                if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) {
-                       ALOGE("glClientWaitSync: GL communication error, please report this issue to b.android.com.\n");
+                       ALOGE("glClientWaitSyncAEMU: GL communication error, please report this issue to b.android.com.\n");
                        abort();
                }
        }
        return retval;
 }
 
-void glWaitSync_enc(void *self , GLsync wait_on, GLbitfield flags, GLuint64 timeout)
+void glWaitSyncAEMU_enc(void *self , uint64_t wait_on, GLbitfield flags, GLuint64 timeout)
 {
 
        gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
@@ -6899,7 +6899,7 @@ void glWaitSync_enc(void *self , GLsync wait_on, GLbitfield flags, GLuint64 time
         const size_t totalSize = sizeWithoutChecksum + checksumSize;
        buf = stream->alloc(totalSize);
        ptr = buf;
-       int tmp = OP_glWaitSync;memcpy(ptr, &tmp, 4); ptr += 4;
+       int tmp = OP_glWaitSyncAEMU;memcpy(ptr, &tmp, 4); ptr += 4;
        memcpy(ptr, &totalSize, 4);  ptr += 4;
 
                memcpy(ptr, &wait_on, 8); ptr += 8;
@@ -6911,7 +6911,7 @@ void glWaitSync_enc(void *self , GLsync wait_on, GLbitfield flags, GLuint64 time
 
 }
 
-void glDeleteSync_enc(void *self , GLsync to_delete)
+void glDeleteSyncAEMU_enc(void *self , uint64_t to_delete)
 {
 
        gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
@@ -6926,7 +6926,7 @@ void glDeleteSync_enc(void *self , GLsync to_delete)
         const size_t totalSize = sizeWithoutChecksum + checksumSize;
        buf = stream->alloc(totalSize);
        ptr = buf;
-       int tmp = OP_glDeleteSync;memcpy(ptr, &tmp, 4); ptr += 4;
+       int tmp = OP_glDeleteSyncAEMU;memcpy(ptr, &tmp, 4); ptr += 4;
        memcpy(ptr, &totalSize, 4);  ptr += 4;
 
                memcpy(ptr, &to_delete, 8); ptr += 8;
@@ -6936,7 +6936,7 @@ void glDeleteSync_enc(void *self , GLsync to_delete)
 
 }
 
-GLboolean glIsSync_enc(void *self , GLsync sync)
+GLboolean glIsSyncAEMU_enc(void *self , uint64_t sync)
 {
 
        gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
@@ -6951,7 +6951,7 @@ GLboolean glIsSync_enc(void *self , GLsync sync)
         const size_t totalSize = sizeWithoutChecksum + checksumSize;
        buf = stream->alloc(totalSize);
        ptr = buf;
-       int tmp = OP_glIsSync;memcpy(ptr, &tmp, 4); ptr += 4;
+       int tmp = OP_glIsSyncAEMU;memcpy(ptr, &tmp, 4); ptr += 4;
        memcpy(ptr, &totalSize, 4);  ptr += 4;
 
                memcpy(ptr, &sync, 8); ptr += 8;
@@ -6969,14 +6969,14 @@ GLboolean glIsSync_enc(void *self , GLsync sync)
                if (checksumSize > 0) checksumBufPtr = &checksumBuf[0];
                stream->readback(checksumBufPtr, checksumSize);
                if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) {
-                       ALOGE("glIsSync: GL communication error, please report this issue to b.android.com.\n");
+                       ALOGE("glIsSyncAEMU: GL communication error, please report this issue to b.android.com.\n");
                        abort();
                }
        }
        return retval;
 }
 
-void glGetSynciv_enc(void *self , GLsync sync, GLenum pname, GLsizei bufSize, GLsizei* length, GLint* values)
+void glGetSyncivAEMU_enc(void *self , uint64_t sync, GLenum pname, GLsizei bufSize, GLsizei* length, GLint* values)
 {
 
        gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
@@ -6993,7 +6993,7 @@ void glGetSynciv_enc(void *self , GLsync sync, GLenum pname, GLsizei bufSize, GL
         const size_t totalSize = sizeWithoutChecksum + checksumSize;
        buf = stream->alloc(totalSize);
        ptr = buf;
-       int tmp = OP_glGetSynciv;memcpy(ptr, &tmp, 4); ptr += 4;
+       int tmp = OP_glGetSyncivAEMU;memcpy(ptr, &tmp, 4); ptr += 4;
        memcpy(ptr, &totalSize, 4);  ptr += 4;
 
                memcpy(ptr, &sync, 8); ptr += 8;
@@ -7015,7 +7015,7 @@ void glGetSynciv_enc(void *self , GLsync sync, GLenum pname, GLsizei bufSize, GL
                if (checksumSize > 0) checksumBufPtr = &checksumBuf[0];
                stream->readback(checksumBufPtr, checksumSize);
                if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) {
-                       ALOGE("glGetSynciv: GL communication error, please report this issue to b.android.com.\n");
+                       ALOGE("glGetSyncivAEMU: GL communication error, please report this issue to b.android.com.\n");
                        abort();
                }
        }
@@ -11288,12 +11288,18 @@ gl2_encoder_context_t::gl2_encoder_context_t(IOStream *stream, ChecksumCalculato
        this->glDrawRangeElements = (glDrawRangeElements_client_proc_t) &enc_unsupported;
        this->glDrawRangeElementsDataAEMU = &glDrawRangeElementsDataAEMU_enc;
        this->glDrawRangeElementsOffsetAEMU = &glDrawRangeElementsOffsetAEMU_enc;
-       this->glFenceSync = &glFenceSync_enc;
-       this->glClientWaitSync = &glClientWaitSync_enc;
-       this->glWaitSync = &glWaitSync_enc;
-       this->glDeleteSync = &glDeleteSync_enc;
-       this->glIsSync = &glIsSync_enc;
-       this->glGetSynciv = &glGetSynciv_enc;
+       this->glFenceSync = (glFenceSync_client_proc_t) &enc_unsupported;
+       this->glClientWaitSync = (glClientWaitSync_client_proc_t) &enc_unsupported;
+       this->glWaitSync = (glWaitSync_client_proc_t) &enc_unsupported;
+       this->glDeleteSync = (glDeleteSync_client_proc_t) &enc_unsupported;
+       this->glIsSync = (glIsSync_client_proc_t) &enc_unsupported;
+       this->glGetSynciv = (glGetSynciv_client_proc_t) &enc_unsupported;
+       this->glFenceSyncAEMU = &glFenceSyncAEMU_enc;
+       this->glClientWaitSyncAEMU = &glClientWaitSyncAEMU_enc;
+       this->glWaitSyncAEMU = &glWaitSyncAEMU_enc;
+       this->glDeleteSyncAEMU = &glDeleteSyncAEMU_enc;
+       this->glIsSyncAEMU = &glIsSyncAEMU_enc;
+       this->glGetSyncivAEMU = &glGetSyncivAEMU_enc;
        this->glDrawBuffers = &glDrawBuffers_enc;
        this->glReadBuffer = &glReadBuffer_enc;
        this->glBlitFramebuffer = &glBlitFramebuffer_enc;
index bf79c39..2b06c81 100644 (file)
@@ -283,6 +283,12 @@ extern "C" {
        void glDeleteSync(GLsync to_delete);
        GLboolean glIsSync(GLsync sync);
        void glGetSynciv(GLsync sync, GLenum pname, GLsizei bufSize, GLsizei* length, GLint* values);
+       uint64_t glFenceSyncAEMU(GLenum condition, GLbitfield flags);
+       GLenum glClientWaitSyncAEMU(uint64_t wait_on, GLbitfield flags, GLuint64 timeout);
+       void glWaitSyncAEMU(uint64_t wait_on, GLbitfield flags, GLuint64 timeout);
+       void glDeleteSyncAEMU(uint64_t to_delete);
+       GLboolean glIsSyncAEMU(uint64_t sync);
+       void glGetSyncivAEMU(uint64_t sync, GLenum pname, GLsizei bufSize, GLsizei* length, GLint* values);
        void glDrawBuffers(GLsizei n, const GLenum* bufs);
        void glReadBuffer(GLenum src);
        void glBlitFramebuffer(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
@@ -2100,10 +2106,46 @@ GLboolean glIsSync(GLsync sync)
 void glGetSynciv(GLsync sync, GLenum pname, GLsizei bufSize, GLsizei* length, GLint* values)
 {
        GET_CONTEXT;
-        if(bufSize<0){ ctx->setError(GL_INVALID_VALUE); return; }
        ctx->glGetSynciv(ctx, sync, pname, bufSize, length, values);
 }
 
+uint64_t glFenceSyncAEMU(GLenum condition, GLbitfield flags)
+{
+       GET_CONTEXT;
+       return ctx->glFenceSyncAEMU(ctx, condition, flags);
+}
+
+GLenum glClientWaitSyncAEMU(uint64_t wait_on, GLbitfield flags, GLuint64 timeout)
+{
+       GET_CONTEXT;
+       return ctx->glClientWaitSyncAEMU(ctx, wait_on, flags, timeout);
+}
+
+void glWaitSyncAEMU(uint64_t wait_on, GLbitfield flags, GLuint64 timeout)
+{
+       GET_CONTEXT;
+       ctx->glWaitSyncAEMU(ctx, wait_on, flags, timeout);
+}
+
+void glDeleteSyncAEMU(uint64_t to_delete)
+{
+       GET_CONTEXT;
+       ctx->glDeleteSyncAEMU(ctx, to_delete);
+}
+
+GLboolean glIsSyncAEMU(uint64_t sync)
+{
+       GET_CONTEXT;
+       return ctx->glIsSyncAEMU(ctx, sync);
+}
+
+void glGetSyncivAEMU(uint64_t sync, GLenum pname, GLsizei bufSize, GLsizei* length, GLint* values)
+{
+       GET_CONTEXT;
+        if(bufSize<0){ ctx->setError(GL_INVALID_VALUE); return; }
+       ctx->glGetSyncivAEMU(ctx, sync, pname, bufSize, length, values);
+}
+
 void glDrawBuffers(GLsizei n, const GLenum* bufs)
 {
        GET_CONTEXT;
index eb4c635..fcd23de 100644 (file)
 #define OP_glDeleteSync                                        2322
 #define OP_glIsSync                                    2323
 #define OP_glGetSynciv                                         2324
-#define OP_glDrawBuffers                                       2325
-#define OP_glReadBuffer                                        2326
-#define OP_glBlitFramebuffer                                   2327
-#define OP_glInvalidateFramebuffer                                     2328
-#define OP_glInvalidateSubFramebuffer                                  2329
-#define OP_glFramebufferTextureLayer                                   2330
-#define OP_glRenderbufferStorageMultisample                                    2331
-#define OP_glTexStorage2D                                      2332
-#define OP_glGetInternalformativ                                       2333
-#define OP_glBeginTransformFeedback                                    2334
-#define OP_glEndTransformFeedback                                      2335
-#define OP_glGenTransformFeedbacks                                     2336
-#define OP_glDeleteTransformFeedbacks                                  2337
-#define OP_glBindTransformFeedback                                     2338
-#define OP_glPauseTransformFeedback                                    2339
-#define OP_glResumeTransformFeedback                                   2340
-#define OP_glIsTransformFeedback                                       2341
-#define OP_glTransformFeedbackVaryings                                         2342
-#define OP_glTransformFeedbackVaryingsAEMU                                     2343
-#define OP_glGetTransformFeedbackVarying                                       2344
-#define OP_glGenSamplers                                       2345
-#define OP_glDeleteSamplers                                    2346
-#define OP_glBindSampler                                       2347
-#define OP_glSamplerParameterf                                         2348
-#define OP_glSamplerParameteri                                         2349
-#define OP_glSamplerParameterfv                                        2350
-#define OP_glSamplerParameteriv                                        2351
-#define OP_glGetSamplerParameterfv                                     2352
-#define OP_glGetSamplerParameteriv                                     2353
-#define OP_glIsSampler                                         2354
-#define OP_glGenQueries                                        2355
-#define OP_glDeleteQueries                                     2356
-#define OP_glBeginQuery                                        2357
-#define OP_glEndQuery                                  2358
-#define OP_glGetQueryiv                                        2359
-#define OP_glGetQueryObjectuiv                                         2360
-#define OP_glIsQuery                                   2361
-#define OP_glProgramParameteri                                         2362
-#define OP_glProgramBinary                                     2363
-#define OP_glGetProgramBinary                                  2364
-#define OP_glGetFragDataLocation                                       2365
-#define OP_glGetInteger64v                                     2366
-#define OP_glGetIntegeri_v                                     2367
-#define OP_glGetInteger64i_v                                   2368
-#define OP_glTexImage3D                                        2369
-#define OP_glTexImage3DOffsetAEMU                                      2370
-#define OP_glTexStorage3D                                      2371
-#define OP_glTexSubImage3D                                     2372
-#define OP_glTexSubImage3DOffsetAEMU                                   2373
-#define OP_glCompressedTexImage3D                                      2374
-#define OP_glCompressedTexImage3DOffsetAEMU                                    2375
-#define OP_glCompressedTexSubImage3D                                   2376
-#define OP_glCompressedTexSubImage3DOffsetAEMU                                         2377
-#define OP_glCopyTexSubImage3D                                         2378
-#define OP_glGetStringi                                        2379
-#define OP_glGetBooleani_v                                     2380
-#define OP_glMemoryBarrier                                     2381
-#define OP_glMemoryBarrierByRegion                                     2382
-#define OP_glGenProgramPipelines                                       2383
-#define OP_glDeleteProgramPipelines                                    2384
-#define OP_glBindProgramPipeline                                       2385
-#define OP_glGetProgramPipelineiv                                      2386
-#define OP_glGetProgramPipelineInfoLog                                         2387
-#define OP_glValidateProgramPipeline                                   2388
-#define OP_glIsProgramPipeline                                         2389
-#define OP_glUseProgramStages                                  2390
-#define OP_glCreateShaderProgramv                                      2391
-#define OP_glCreateShaderProgramvAEMU                                  2392
-#define OP_glProgramUniform1f                                  2393
-#define OP_glProgramUniform2f                                  2394
-#define OP_glProgramUniform3f                                  2395
-#define OP_glProgramUniform4f                                  2396
-#define OP_glProgramUniform1i                                  2397
-#define OP_glProgramUniform2i                                  2398
-#define OP_glProgramUniform3i                                  2399
-#define OP_glProgramUniform4i                                  2400
-#define OP_glProgramUniform1ui                                         2401
-#define OP_glProgramUniform2ui                                         2402
-#define OP_glProgramUniform3ui                                         2403
-#define OP_glProgramUniform4ui                                         2404
-#define OP_glProgramUniform1fv                                         2405
-#define OP_glProgramUniform2fv                                         2406
-#define OP_glProgramUniform3fv                                         2407
-#define OP_glProgramUniform4fv                                         2408
-#define OP_glProgramUniform1iv                                         2409
-#define OP_glProgramUniform2iv                                         2410
-#define OP_glProgramUniform3iv                                         2411
-#define OP_glProgramUniform4iv                                         2412
-#define OP_glProgramUniform1uiv                                        2413
-#define OP_glProgramUniform2uiv                                        2414
-#define OP_glProgramUniform3uiv                                        2415
-#define OP_glProgramUniform4uiv                                        2416
-#define OP_glProgramUniformMatrix2fv                                   2417
-#define OP_glProgramUniformMatrix3fv                                   2418
-#define OP_glProgramUniformMatrix4fv                                   2419
-#define OP_glProgramUniformMatrix2x3fv                                         2420
-#define OP_glProgramUniformMatrix3x2fv                                         2421
-#define OP_glProgramUniformMatrix2x4fv                                         2422
-#define OP_glProgramUniformMatrix4x2fv                                         2423
-#define OP_glProgramUniformMatrix3x4fv                                         2424
-#define OP_glProgramUniformMatrix4x3fv                                         2425
-#define OP_glGetProgramInterfaceiv                                     2426
-#define OP_glGetProgramResourceiv                                      2427
-#define OP_glGetProgramResourceIndex                                   2428
-#define OP_glGetProgramResourceLocation                                        2429
-#define OP_glGetProgramResourceName                                    2430
-#define OP_glBindImageTexture                                  2431
-#define OP_glDispatchCompute                                   2432
-#define OP_glDispatchComputeIndirect                                   2433
-#define OP_glBindVertexBuffer                                  2434
-#define OP_glVertexAttribBinding                                       2435
-#define OP_glVertexAttribFormat                                        2436
-#define OP_glVertexAttribIFormat                                       2437
-#define OP_glVertexBindingDivisor                                      2438
-#define OP_glDrawArraysIndirect                                        2439
-#define OP_glDrawArraysIndirectDataAEMU                                        2440
-#define OP_glDrawArraysIndirectOffsetAEMU                                      2441
-#define OP_glDrawElementsIndirect                                      2442
-#define OP_glDrawElementsIndirectDataAEMU                                      2443
-#define OP_glDrawElementsIndirectOffsetAEMU                                    2444
-#define OP_glTexStorage2DMultisample                                   2445
-#define OP_glSampleMaski                                       2446
-#define OP_glGetMultisamplefv                                  2447
-#define OP_glFramebufferParameteri                                     2448
-#define OP_glGetFramebufferParameteriv                                         2449
-#define OP_glGetTexLevelParameterfv                                    2450
-#define OP_glGetTexLevelParameteriv                                    2451
-#define OP_last                                        2452
+#define OP_glFenceSyncAEMU                                     2325
+#define OP_glClientWaitSyncAEMU                                        2326
+#define OP_glWaitSyncAEMU                                      2327
+#define OP_glDeleteSyncAEMU                                    2328
+#define OP_glIsSyncAEMU                                        2329
+#define OP_glGetSyncivAEMU                                     2330
+#define OP_glDrawBuffers                                       2331
+#define OP_glReadBuffer                                        2332
+#define OP_glBlitFramebuffer                                   2333
+#define OP_glInvalidateFramebuffer                                     2334
+#define OP_glInvalidateSubFramebuffer                                  2335
+#define OP_glFramebufferTextureLayer                                   2336
+#define OP_glRenderbufferStorageMultisample                                    2337
+#define OP_glTexStorage2D                                      2338
+#define OP_glGetInternalformativ                                       2339
+#define OP_glBeginTransformFeedback                                    2340
+#define OP_glEndTransformFeedback                                      2341
+#define OP_glGenTransformFeedbacks                                     2342
+#define OP_glDeleteTransformFeedbacks                                  2343
+#define OP_glBindTransformFeedback                                     2344
+#define OP_glPauseTransformFeedback                                    2345
+#define OP_glResumeTransformFeedback                                   2346
+#define OP_glIsTransformFeedback                                       2347
+#define OP_glTransformFeedbackVaryings                                         2348
+#define OP_glTransformFeedbackVaryingsAEMU                                     2349
+#define OP_glGetTransformFeedbackVarying                                       2350
+#define OP_glGenSamplers                                       2351
+#define OP_glDeleteSamplers                                    2352
+#define OP_glBindSampler                                       2353
+#define OP_glSamplerParameterf                                         2354
+#define OP_glSamplerParameteri                                         2355
+#define OP_glSamplerParameterfv                                        2356
+#define OP_glSamplerParameteriv                                        2357
+#define OP_glGetSamplerParameterfv                                     2358
+#define OP_glGetSamplerParameteriv                                     2359
+#define OP_glIsSampler                                         2360
+#define OP_glGenQueries                                        2361
+#define OP_glDeleteQueries                                     2362
+#define OP_glBeginQuery                                        2363
+#define OP_glEndQuery                                  2364
+#define OP_glGetQueryiv                                        2365
+#define OP_glGetQueryObjectuiv                                         2366
+#define OP_glIsQuery                                   2367
+#define OP_glProgramParameteri                                         2368
+#define OP_glProgramBinary                                     2369
+#define OP_glGetProgramBinary                                  2370
+#define OP_glGetFragDataLocation                                       2371
+#define OP_glGetInteger64v                                     2372
+#define OP_glGetIntegeri_v                                     2373
+#define OP_glGetInteger64i_v                                   2374
+#define OP_glTexImage3D                                        2375
+#define OP_glTexImage3DOffsetAEMU                                      2376
+#define OP_glTexStorage3D                                      2377
+#define OP_glTexSubImage3D                                     2378
+#define OP_glTexSubImage3DOffsetAEMU                                   2379
+#define OP_glCompressedTexImage3D                                      2380
+#define OP_glCompressedTexImage3DOffsetAEMU                                    2381
+#define OP_glCompressedTexSubImage3D                                   2382
+#define OP_glCompressedTexSubImage3DOffsetAEMU                                         2383
+#define OP_glCopyTexSubImage3D                                         2384
+#define OP_glGetStringi                                        2385
+#define OP_glGetBooleani_v                                     2386
+#define OP_glMemoryBarrier                                     2387
+#define OP_glMemoryBarrierByRegion                                     2388
+#define OP_glGenProgramPipelines                                       2389
+#define OP_glDeleteProgramPipelines                                    2390
+#define OP_glBindProgramPipeline                                       2391
+#define OP_glGetProgramPipelineiv                                      2392
+#define OP_glGetProgramPipelineInfoLog                                         2393
+#define OP_glValidateProgramPipeline                                   2394
+#define OP_glIsProgramPipeline                                         2395
+#define OP_glUseProgramStages                                  2396
+#define OP_glCreateShaderProgramv                                      2397
+#define OP_glCreateShaderProgramvAEMU                                  2398
+#define OP_glProgramUniform1f                                  2399
+#define OP_glProgramUniform2f                                  2400
+#define OP_glProgramUniform3f                                  2401
+#define OP_glProgramUniform4f                                  2402
+#define OP_glProgramUniform1i                                  2403
+#define OP_glProgramUniform2i                                  2404
+#define OP_glProgramUniform3i                                  2405
+#define OP_glProgramUniform4i                                  2406
+#define OP_glProgramUniform1ui                                         2407
+#define OP_glProgramUniform2ui                                         2408
+#define OP_glProgramUniform3ui                                         2409
+#define OP_glProgramUniform4ui                                         2410
+#define OP_glProgramUniform1fv                                         2411
+#define OP_glProgramUniform2fv                                         2412
+#define OP_glProgramUniform3fv                                         2413
+#define OP_glProgramUniform4fv                                         2414
+#define OP_glProgramUniform1iv                                         2415
+#define OP_glProgramUniform2iv                                         2416
+#define OP_glProgramUniform3iv                                         2417
+#define OP_glProgramUniform4iv                                         2418
+#define OP_glProgramUniform1uiv                                        2419
+#define OP_glProgramUniform2uiv                                        2420
+#define OP_glProgramUniform3uiv                                        2421
+#define OP_glProgramUniform4uiv                                        2422
+#define OP_glProgramUniformMatrix2fv                                   2423
+#define OP_glProgramUniformMatrix3fv                                   2424
+#define OP_glProgramUniformMatrix4fv                                   2425
+#define OP_glProgramUniformMatrix2x3fv                                         2426
+#define OP_glProgramUniformMatrix3x2fv                                         2427
+#define OP_glProgramUniformMatrix2x4fv                                         2428
+#define OP_glProgramUniformMatrix4x2fv                                         2429
+#define OP_glProgramUniformMatrix3x4fv                                         2430
+#define OP_glProgramUniformMatrix4x3fv                                         2431
+#define OP_glGetProgramInterfaceiv                                     2432
+#define OP_glGetProgramResourceiv                                      2433
+#define OP_glGetProgramResourceIndex                                   2434
+#define OP_glGetProgramResourceLocation                                        2435
+#define OP_glGetProgramResourceName                                    2436
+#define OP_glBindImageTexture                                  2437
+#define OP_glDispatchCompute                                   2438
+#define OP_glDispatchComputeIndirect                                   2439
+#define OP_glBindVertexBuffer                                  2440
+#define OP_glVertexAttribBinding                                       2441
+#define OP_glVertexAttribFormat                                        2442
+#define OP_glVertexAttribIFormat                                       2443
+#define OP_glVertexBindingDivisor                                      2444
+#define OP_glDrawArraysIndirect                                        2445
+#define OP_glDrawArraysIndirectDataAEMU                                        2446
+#define OP_glDrawArraysIndirectOffsetAEMU                                      2447
+#define OP_glDrawElementsIndirect                                      2448
+#define OP_glDrawElementsIndirectDataAEMU                                      2449
+#define OP_glDrawElementsIndirectOffsetAEMU                                    2450
+#define OP_glTexStorage2DMultisample                                   2451
+#define OP_glSampleMaski                                       2452
+#define OP_glGetMultisamplefv                                  2453
+#define OP_glFramebufferParameteri                                     2454
+#define OP_glGetFramebufferParameteriv                                         2455
+#define OP_glGetTexLevelParameterfv                                    2456
+#define OP_glGetTexLevelParameteriv                                    2457
+#define OP_last                                        2458
 
 
 #endif