[PATCH] opengl32: use thunks for glDebugMessageCallback

Marcus Meissner marcus at jet.franken.de
Sun Sep 27 14:00:08 CDT 2015


Also regenerated opengl files, to exclude the glDebugMessageCallback functions.

Signed-off-by: Marcus Meissner <marcus at jet.franken.de>
---
 dlls/opengl32/make_opengl    |   6 +
 dlls/opengl32/opengl_ext.c   | 343 +++++++++++++++++++++++++++++++++++++++----
 dlls/opengl32/opengl_ext.h   |   5 +
 dlls/opengl32/opengl_norm.c  |  90 +++++++++++-
 dlls/opengl32/tests/opengl.c |  96 +++++++++++-
 dlls/opengl32/wgl.c          |  52 +++++++
 include/wine/wgl.h           | 100 +++++++++++++
 include/wine/wgl_driver.h    |  47 +++++-
 include/winternl.h           |   5 +-
 9 files changed, 708 insertions(+), 36 deletions(-)

diff --git a/dlls/opengl32/make_opengl b/dlls/opengl32/make_opengl
index 2b15f58..c3755ad 100755
--- a/dlls/opengl32/make_opengl
+++ b/dlls/opengl32/make_opengl
@@ -116,6 +116,7 @@ my %debug_conv =
      "GLsizeiptr" => "%ld",
      "GLhandleARB" => "%d",
      "GLcharARB" => "%c",
+     "GLint64" => "%s,wine_dbgstr_longlong(%s)",
      "GLuint64" => "%s,wine_dbgstr_longlong(%s)",
      "GLuint64EXT" => "%s,wine_dbgstr_longlong(%s)",
      "GLint64EXT" => "%s,wine_dbgstr_longlong(%s)",
@@ -238,6 +239,11 @@ sub GenerateThunk($$$$)
     return "" if $name eq "glDebugEntry";
     return "" if $name eq "glGetIntegerv";
     return "" if $name eq "glGetString";
+
+    return "" if $name eq "glDebugMessageCallback";
+    return "" if $name eq "glDebugMessageCallbackAMD";
+    return "" if $name eq "glDebugMessageCallbackARB";
+
     return "" if $func_ref->[2] && $func_ref->[2]->[0] =~ /WGL_/;
 
     # If for opengl_norm.c, generate a nice heading otherwise Patrik won't be happy :-)
diff --git a/dlls/opengl32/opengl_ext.c b/dlls/opengl32/opengl_ext.c
index e1aeec5..be91d8c 100644
--- a/dlls/opengl32/opengl_ext.c
+++ b/dlls/opengl32/opengl_ext.c
@@ -14,7 +14,7 @@
 
 WINE_DEFAULT_DEBUG_CHANNEL(opengl);
 
-const int extension_registry_size = 2533;
+const int extension_registry_size = 2576;
 
 static void WINAPI glAccumxOES( GLenum op, GLfixed value ) {
   const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
@@ -82,6 +82,12 @@ static void WINAPI glAlphaFuncxOES( GLenum func, GLfixed ref ) {
   funcs->ext.p_glAlphaFuncxOES( func, ref );
 }
 
+static void WINAPI glApplyFramebufferAttachmentCMAAINTEL( void ) {
+  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+  TRACE("()\n");
+  funcs->ext.p_glApplyFramebufferAttachmentCMAAINTEL( );
+}
+
 static void WINAPI glApplyTextureEXT( GLenum mode ) {
   const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
   TRACE("(%d)\n", mode );
@@ -1498,6 +1504,12 @@ static void WINAPI glCompressedTextureSubImage3DEXT( GLuint texture, GLenum targ
   funcs->ext.p_glCompressedTextureSubImage3DEXT( texture, target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, bits );
 }
 
+static void WINAPI glConservativeRasterParameterfNV( GLenum pname, GLfloat value ) {
+  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+  TRACE("(%d, %f)\n", pname, value );
+  funcs->ext.p_glConservativeRasterParameterfNV( pname, value );
+}
+
 static void WINAPI glConvolutionFilter1D( GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const void* image ) {
   const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
   TRACE("(%d, %d, %d, %d, %d, %p)\n", target, internalformat, width, format, type, image );
@@ -1942,24 +1954,6 @@ static void WINAPI glCurrentPaletteMatrixARB( GLint index ) {
   funcs->ext.p_glCurrentPaletteMatrixARB( index );
 }
 
-static void WINAPI glDebugMessageCallback( void * callback, const void* userParam ) {
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE("(%p, %p)\n", callback, userParam );
-  funcs->ext.p_glDebugMessageCallback( callback, userParam );
-}
-
-static void WINAPI glDebugMessageCallbackAMD( void * callback, void* userParam ) {
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE("(%p, %p)\n", callback, userParam );
-  funcs->ext.p_glDebugMessageCallbackAMD( callback, userParam );
-}
-
-static void WINAPI glDebugMessageCallbackARB( void * callback, const void* userParam ) {
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE("(%p, %p)\n", callback, userParam );
-  funcs->ext.p_glDebugMessageCallbackARB( callback, userParam );
-}
-
 static void WINAPI glDebugMessageControl( GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint* ids, GLboolean enabled ) {
   const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
   TRACE("(%d, %d, %d, %d, %p, %d)\n", source, type, severity, count, ids, enabled );
@@ -2812,6 +2806,12 @@ static void WINAPI glEvalMapsNV( GLenum target, GLenum mode ) {
   funcs->ext.p_glEvalMapsNV( target, mode );
 }
 
+static void WINAPI glEvaluateDepthValuesARB( void ) {
+  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+  TRACE("()\n");
+  funcs->ext.p_glEvaluateDepthValuesARB( );
+}
+
 static void WINAPI glExecuteProgramNV( GLenum target, GLuint id, const GLfloat* params ) {
   const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
   TRACE("(%d, %d, %p)\n", target, id, params );
@@ -3160,6 +3160,12 @@ static void WINAPI glFramebufferRenderbufferEXT( GLenum target, GLenum attachmen
   funcs->ext.p_glFramebufferRenderbufferEXT( target, attachment, renderbuffertarget, renderbuffer );
 }
 
+static void WINAPI glFramebufferSampleLocationsfvARB( GLenum target, GLuint start, GLsizei count, const GLfloat* v ) {
+  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+  TRACE("(%d, %d, %d, %p)\n", target, start, count, v );
+  funcs->ext.p_glFramebufferSampleLocationsfvARB( target, start, count, v );
+}
+
 static void WINAPI glFramebufferSampleLocationsfvNV( GLenum target, GLuint start, GLsizei count, const GLfloat* v ) {
   const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
   TRACE("(%d, %d, %d, %p)\n", target, start, count, v );
@@ -3250,6 +3256,12 @@ static void WINAPI glFramebufferTextureLayerEXT( GLenum target, GLenum attachmen
   funcs->ext.p_glFramebufferTextureLayerEXT( target, attachment, texture, level, layer );
 }
 
+static void WINAPI glFramebufferTextureMultiviewOVR( GLenum target, GLenum attachment, GLuint texture, GLint level, GLint baseViewIndex, GLsizei numViews ) {
+  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+  TRACE("(%d, %d, %d, %d, %d, %d)\n", target, attachment, texture, level, baseViewIndex, numViews );
+  funcs->ext.p_glFramebufferTextureMultiviewOVR( target, attachment, texture, level, baseViewIndex, numViews );
+}
+
 static void WINAPI glFreeObjectBufferATI( GLuint buffer ) {
   const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
   TRACE("(%d)\n", buffer );
@@ -5400,6 +5412,12 @@ static void WINAPI glGetUniformfvARB( GLhandleARB programObj, GLint location, GL
   funcs->ext.p_glGetUniformfvARB( programObj, location, params );
 }
 
+static void WINAPI glGetUniformi64vARB( GLuint program, GLint location, GLint64* params ) {
+  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+  TRACE("(%d, %d, %p)\n", program, location, params );
+  funcs->ext.p_glGetUniformi64vARB( program, location, params );
+}
+
 static void WINAPI glGetUniformi64vNV( GLuint program, GLint location, GLint64EXT* params ) {
   const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
   TRACE("(%d, %d, %p)\n", program, location, params );
@@ -5418,6 +5436,12 @@ static void WINAPI glGetUniformivARB( GLhandleARB programObj, GLint location, GL
   funcs->ext.p_glGetUniformivARB( programObj, location, params );
 }
 
+static void WINAPI glGetUniformui64vARB( GLuint program, GLint location, GLuint64* params ) {
+  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+  TRACE("(%d, %d, %p)\n", program, location, params );
+  funcs->ext.p_glGetUniformui64vARB( program, location, params );
+}
+
 static void WINAPI glGetUniformui64vNV( GLuint program, GLint location, GLuint64EXT* params ) {
   const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
   TRACE("(%d, %d, %p)\n", program, location, params );
@@ -5898,6 +5922,12 @@ static void WINAPI glGetnUniformfvARB( GLuint program, GLint location, GLsizei b
   funcs->ext.p_glGetnUniformfvARB( program, location, bufSize, params );
 }
 
+static void WINAPI glGetnUniformi64vARB( GLuint program, GLint location, GLsizei bufSize, GLint64* params ) {
+  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+  TRACE("(%d, %d, %d, %p)\n", program, location, bufSize, params );
+  funcs->ext.p_glGetnUniformi64vARB( program, location, bufSize, params );
+}
+
 static void WINAPI glGetnUniformiv( GLuint program, GLint location, GLsizei bufSize, GLint* params ) {
   const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
   TRACE("(%d, %d, %d, %p)\n", program, location, bufSize, params );
@@ -5910,6 +5940,12 @@ static void WINAPI glGetnUniformivARB( GLuint program, GLint location, GLsizei b
   funcs->ext.p_glGetnUniformivARB( program, location, bufSize, params );
 }
 
+static void WINAPI glGetnUniformui64vARB( GLuint program, GLint location, GLsizei bufSize, GLuint64* params ) {
+  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+  TRACE("(%d, %d, %d, %p)\n", program, location, bufSize, params );
+  funcs->ext.p_glGetnUniformui64vARB( program, location, bufSize, params );
+}
+
 static void WINAPI glGetnUniformuiv( GLuint program, GLint location, GLsizei bufSize, GLuint* params ) {
   const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
   TRACE("(%d, %d, %d, %p)\n", program, location, bufSize, params );
@@ -6918,6 +6954,12 @@ static void WINAPI glMatrixTranslatefEXT( GLenum mode, GLfloat x, GLfloat y, GLf
   funcs->ext.p_glMatrixTranslatefEXT( mode, x, y, z );
 }
 
+static void WINAPI glMaxShaderCompilerThreadsARB( GLuint count ) {
+  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+  TRACE("(%d)\n", count );
+  funcs->ext.p_glMaxShaderCompilerThreadsARB( count );
+}
+
 static void WINAPI glMemoryBarrier( GLbitfield barriers ) {
   const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
   TRACE("(%d)\n", barriers );
@@ -8130,6 +8172,12 @@ static void WINAPI glNamedFramebufferRenderbufferEXT( GLuint framebuffer, GLenum
   funcs->ext.p_glNamedFramebufferRenderbufferEXT( framebuffer, attachment, renderbuffertarget, renderbuffer );
 }
 
+static void WINAPI glNamedFramebufferSampleLocationsfvARB( GLuint framebuffer, GLuint start, GLsizei count, const GLfloat* v ) {
+  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+  TRACE("(%d, %d, %d, %p)\n", framebuffer, start, count, v );
+  funcs->ext.p_glNamedFramebufferSampleLocationsfvARB( framebuffer, start, count, v );
+}
+
 static void WINAPI glNamedFramebufferSampleLocationsfvNV( GLuint framebuffer, GLuint start, GLsizei count, const GLfloat* v ) {
   const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
   TRACE("(%d, %d, %d, %p)\n", framebuffer, start, count, v );
@@ -8874,6 +8922,12 @@ static void WINAPI glPresentFrameKeyedNV( GLuint video_slot, GLuint64EXT minPres
   funcs->ext.p_glPresentFrameKeyedNV( video_slot, minPresentTime, beginPresentTimeId, presentDurationId, type, target0, fill0, key0, target1, fill1, key1 );
 }
 
+static void WINAPI glPrimitiveBoundingBoxARB( GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW ) {
+  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+  TRACE("(%f, %f, %f, %f, %f, %f, %f, %f)\n", minX, minY, minZ, minW, maxX, maxY, maxZ, maxW );
+  funcs->ext.p_glPrimitiveBoundingBoxARB( minX, minY, minZ, minW, maxX, maxY, maxZ, maxW );
+}
+
 static void WINAPI glPrimitiveRestartIndex( GLuint index ) {
   const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
   TRACE("(%d)\n", index );
@@ -9210,12 +9264,24 @@ static void WINAPI glProgramUniform1i( GLuint program, GLint location, GLint v0
   funcs->ext.p_glProgramUniform1i( program, location, v0 );
 }
 
+static void WINAPI glProgramUniform1i64ARB( GLuint program, GLint location, GLint64 x ) {
+  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+  TRACE("(%d, %d, %s)\n", program, location, wine_dbgstr_longlong(x) );
+  funcs->ext.p_glProgramUniform1i64ARB( program, location, x );
+}
+
 static void WINAPI glProgramUniform1i64NV( GLuint program, GLint location, GLint64EXT x ) {
   const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
   TRACE("(%d, %d, %s)\n", program, location, wine_dbgstr_longlong(x) );
   funcs->ext.p_glProgramUniform1i64NV( program, location, x );
 }
 
+static void WINAPI glProgramUniform1i64vARB( GLuint program, GLint location, GLsizei count, const GLint64* value ) {
+  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+  TRACE("(%d, %d, %d, %p)\n", program, location, count, value );
+  funcs->ext.p_glProgramUniform1i64vARB( program, location, count, value );
+}
+
 static void WINAPI glProgramUniform1i64vNV( GLuint program, GLint location, GLsizei count, const GLint64EXT* value ) {
   const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
   TRACE("(%d, %d, %d, %p)\n", program, location, count, value );
@@ -9246,12 +9312,24 @@ static void WINAPI glProgramUniform1ui( GLuint program, GLint location, GLuint v
   funcs->ext.p_glProgramUniform1ui( program, location, v0 );
 }
 
+static void WINAPI glProgramUniform1ui64ARB( GLuint program, GLint location, GLuint64 x ) {
+  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+  TRACE("(%d, %d, %s)\n", program, location, wine_dbgstr_longlong(x) );
+  funcs->ext.p_glProgramUniform1ui64ARB( program, location, x );
+}
+
 static void WINAPI glProgramUniform1ui64NV( GLuint program, GLint location, GLuint64EXT x ) {
   const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
   TRACE("(%d, %d, %s)\n", program, location, wine_dbgstr_longlong(x) );
   funcs->ext.p_glProgramUniform1ui64NV( program, location, x );
 }
 
+static void WINAPI glProgramUniform1ui64vARB( GLuint program, GLint location, GLsizei count, const GLuint64* value ) {
+  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+  TRACE("(%d, %d, %d, %p)\n", program, location, count, value );
+  funcs->ext.p_glProgramUniform1ui64vARB( program, location, count, value );
+}
+
 static void WINAPI glProgramUniform1ui64vNV( GLuint program, GLint location, GLsizei count, const GLuint64EXT* value ) {
   const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
   TRACE("(%d, %d, %d, %p)\n", program, location, count, value );
@@ -9330,12 +9408,24 @@ static void WINAPI glProgramUniform2i( GLuint program, GLint location, GLint v0,
   funcs->ext.p_glProgramUniform2i( program, location, v0, v1 );
 }
 
+static void WINAPI glProgramUniform2i64ARB( GLuint program, GLint location, GLint64 x, GLint64 y ) {
+  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+  TRACE("(%d, %d, %s, %s)\n", program, location, wine_dbgstr_longlong(x), wine_dbgstr_longlong(y) );
+  funcs->ext.p_glProgramUniform2i64ARB( program, location, x, y );
+}
+
 static void WINAPI glProgramUniform2i64NV( GLuint program, GLint location, GLint64EXT x, GLint64EXT y ) {
   const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
   TRACE("(%d, %d, %s, %s)\n", program, location, wine_dbgstr_longlong(x), wine_dbgstr_longlong(y) );
   funcs->ext.p_glProgramUniform2i64NV( program, location, x, y );
 }
 
+static void WINAPI glProgramUniform2i64vARB( GLuint program, GLint location, GLsizei count, const GLint64* value ) {
+  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+  TRACE("(%d, %d, %d, %p)\n", program, location, count, value );
+  funcs->ext.p_glProgramUniform2i64vARB( program, location, count, value );
+}
+
 static void WINAPI glProgramUniform2i64vNV( GLuint program, GLint location, GLsizei count, const GLint64EXT* value ) {
   const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
   TRACE("(%d, %d, %d, %p)\n", program, location, count, value );
@@ -9366,12 +9456,24 @@ static void WINAPI glProgramUniform2ui( GLuint program, GLint location, GLuint v
   funcs->ext.p_glProgramUniform2ui( program, location, v0, v1 );
 }
 
+static void WINAPI glProgramUniform2ui64ARB( GLuint program, GLint location, GLuint64 x, GLuint64 y ) {
+  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+  TRACE("(%d, %d, %s, %s)\n", program, location, wine_dbgstr_longlong(x), wine_dbgstr_longlong(y) );
+  funcs->ext.p_glProgramUniform2ui64ARB( program, location, x, y );
+}
+
 static void WINAPI glProgramUniform2ui64NV( GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y ) {
   const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
   TRACE("(%d, %d, %s, %s)\n", program, location, wine_dbgstr_longlong(x), wine_dbgstr_longlong(y) );
   funcs->ext.p_glProgramUniform2ui64NV( program, location, x, y );
 }
 
+static void WINAPI glProgramUniform2ui64vARB( GLuint program, GLint location, GLsizei count, const GLuint64* value ) {
+  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+  TRACE("(%d, %d, %d, %p)\n", program, location, count, value );
+  funcs->ext.p_glProgramUniform2ui64vARB( program, location, count, value );
+}
+
 static void WINAPI glProgramUniform2ui64vNV( GLuint program, GLint location, GLsizei count, const GLuint64EXT* value ) {
   const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
   TRACE("(%d, %d, %d, %p)\n", program, location, count, value );
@@ -9450,12 +9552,24 @@ static void WINAPI glProgramUniform3i( GLuint program, GLint location, GLint v0,
   funcs->ext.p_glProgramUniform3i( program, location, v0, v1, v2 );
 }
 
+static void WINAPI glProgramUniform3i64ARB( GLuint program, GLint location, GLint64 x, GLint64 y, GLint64 z ) {
+  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+  TRACE("(%d, %d, %s, %s, %s)\n", program, location, wine_dbgstr_longlong(x), wine_dbgstr_longlong(y), wine_dbgstr_longlong(z) );
+  funcs->ext.p_glProgramUniform3i64ARB( program, location, x, y, z );
+}
+
 static void WINAPI glProgramUniform3i64NV( GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z ) {
   const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
   TRACE("(%d, %d, %s, %s, %s)\n", program, location, wine_dbgstr_longlong(x), wine_dbgstr_longlong(y), wine_dbgstr_longlong(z) );
   funcs->ext.p_glProgramUniform3i64NV( program, location, x, y, z );
 }
 
+static void WINAPI glProgramUniform3i64vARB( GLuint program, GLint location, GLsizei count, const GLint64* value ) {
+  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+  TRACE("(%d, %d, %d, %p)\n", program, location, count, value );
+  funcs->ext.p_glProgramUniform3i64vARB( program, location, count, value );
+}
+
 static void WINAPI glProgramUniform3i64vNV( GLuint program, GLint location, GLsizei count, const GLint64EXT* value ) {
   const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
   TRACE("(%d, %d, %d, %p)\n", program, location, count, value );
@@ -9486,12 +9600,24 @@ static void WINAPI glProgramUniform3ui( GLuint program, GLint location, GLuint v
   funcs->ext.p_glProgramUniform3ui( program, location, v0, v1, v2 );
 }
 
+static void WINAPI glProgramUniform3ui64ARB( GLuint program, GLint location, GLuint64 x, GLuint64 y, GLuint64 z ) {
+  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+  TRACE("(%d, %d, %s, %s, %s)\n", program, location, wine_dbgstr_longlong(x), wine_dbgstr_longlong(y), wine_dbgstr_longlong(z) );
+  funcs->ext.p_glProgramUniform3ui64ARB( program, location, x, y, z );
+}
+
 static void WINAPI glProgramUniform3ui64NV( GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z ) {
   const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
   TRACE("(%d, %d, %s, %s, %s)\n", program, location, wine_dbgstr_longlong(x), wine_dbgstr_longlong(y), wine_dbgstr_longlong(z) );
   funcs->ext.p_glProgramUniform3ui64NV( program, location, x, y, z );
 }
 
+static void WINAPI glProgramUniform3ui64vARB( GLuint program, GLint location, GLsizei count, const GLuint64* value ) {
+  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+  TRACE("(%d, %d, %d, %p)\n", program, location, count, value );
+  funcs->ext.p_glProgramUniform3ui64vARB( program, location, count, value );
+}
+
 static void WINAPI glProgramUniform3ui64vNV( GLuint program, GLint location, GLsizei count, const GLuint64EXT* value ) {
   const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
   TRACE("(%d, %d, %d, %p)\n", program, location, count, value );
@@ -9570,12 +9696,24 @@ static void WINAPI glProgramUniform4i( GLuint program, GLint location, GLint v0,
   funcs->ext.p_glProgramUniform4i( program, location, v0, v1, v2, v3 );
 }
 
+static void WINAPI glProgramUniform4i64ARB( GLuint program, GLint location, GLint64 x, GLint64 y, GLint64 z, GLint64 w ) {
+  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+  TRACE("(%d, %d, %s, %s, %s, %s)\n", program, location, wine_dbgstr_longlong(x), wine_dbgstr_longlong(y), wine_dbgstr_longlong(z), wine_dbgstr_longlong(w) );
+  funcs->ext.p_glProgramUniform4i64ARB( program, location, x, y, z, w );
+}
+
 static void WINAPI glProgramUniform4i64NV( GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w ) {
   const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
   TRACE("(%d, %d, %s, %s, %s, %s)\n", program, location, wine_dbgstr_longlong(x), wine_dbgstr_longlong(y), wine_dbgstr_longlong(z), wine_dbgstr_longlong(w) );
   funcs->ext.p_glProgramUniform4i64NV( program, location, x, y, z, w );
 }
 
+static void WINAPI glProgramUniform4i64vARB( GLuint program, GLint location, GLsizei count, const GLint64* value ) {
+  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+  TRACE("(%d, %d, %d, %p)\n", program, location, count, value );
+  funcs->ext.p_glProgramUniform4i64vARB( program, location, count, value );
+}
+
 static void WINAPI glProgramUniform4i64vNV( GLuint program, GLint location, GLsizei count, const GLint64EXT* value ) {
   const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
   TRACE("(%d, %d, %d, %p)\n", program, location, count, value );
@@ -9606,12 +9744,24 @@ static void WINAPI glProgramUniform4ui( GLuint program, GLint location, GLuint v
   funcs->ext.p_glProgramUniform4ui( program, location, v0, v1, v2, v3 );
 }
 
+static void WINAPI glProgramUniform4ui64ARB( GLuint program, GLint location, GLuint64 x, GLuint64 y, GLuint64 z, GLuint64 w ) {
+  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+  TRACE("(%d, %d, %s, %s, %s, %s)\n", program, location, wine_dbgstr_longlong(x), wine_dbgstr_longlong(y), wine_dbgstr_longlong(z), wine_dbgstr_longlong(w) );
+  funcs->ext.p_glProgramUniform4ui64ARB( program, location, x, y, z, w );
+}
+
 static void WINAPI glProgramUniform4ui64NV( GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w ) {
   const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
   TRACE("(%d, %d, %s, %s, %s, %s)\n", program, location, wine_dbgstr_longlong(x), wine_dbgstr_longlong(y), wine_dbgstr_longlong(z), wine_dbgstr_longlong(w) );
   funcs->ext.p_glProgramUniform4ui64NV( program, location, x, y, z, w );
 }
 
+static void WINAPI glProgramUniform4ui64vARB( GLuint program, GLint location, GLsizei count, const GLuint64* value ) {
+  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+  TRACE("(%d, %d, %d, %p)\n", program, location, count, value );
+  funcs->ext.p_glProgramUniform4ui64vARB( program, location, count, value );
+}
+
 static void WINAPI glProgramUniform4ui64vNV( GLuint program, GLint location, GLsizei count, const GLuint64EXT* value ) {
   const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
   TRACE("(%d, %d, %d, %p)\n", program, location, count, value );
@@ -10272,12 +10422,6 @@ static void WINAPI glSampleCoverageARB( GLfloat value, GLboolean invert ) {
   funcs->ext.p_glSampleCoverageARB( value, invert );
 }
 
-static void WINAPI glSampleCoverageOES( GLfixed value, GLboolean invert ) {
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE("(%d, %d)\n", value, invert );
-  funcs->ext.p_glSampleCoverageOES( value, invert );
-}
-
 static void WINAPI glSampleMapATI( GLuint dst, GLuint interp, GLenum swizzle ) {
   const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
   TRACE("(%d, %d, %d)\n", dst, interp, swizzle );
@@ -11922,12 +12066,24 @@ static void WINAPI glUniform1i( GLint location, GLint v0 ) {
   funcs->ext.p_glUniform1i( location, v0 );
 }
 
+static void WINAPI glUniform1i64ARB( GLint location, GLint64 x ) {
+  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+  TRACE("(%d, %s)\n", location, wine_dbgstr_longlong(x) );
+  funcs->ext.p_glUniform1i64ARB( location, x );
+}
+
 static void WINAPI glUniform1i64NV( GLint location, GLint64EXT x ) {
   const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
   TRACE("(%d, %s)\n", location, wine_dbgstr_longlong(x) );
   funcs->ext.p_glUniform1i64NV( location, x );
 }
 
+static void WINAPI glUniform1i64vARB( GLint location, GLsizei count, const GLint64* value ) {
+  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+  TRACE("(%d, %d, %p)\n", location, count, value );
+  funcs->ext.p_glUniform1i64vARB( location, count, value );
+}
+
 static void WINAPI glUniform1i64vNV( GLint location, GLsizei count, const GLint64EXT* value ) {
   const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
   TRACE("(%d, %d, %p)\n", location, count, value );
@@ -11958,12 +12114,24 @@ static void WINAPI glUniform1ui( GLint location, GLuint v0 ) {
   funcs->ext.p_glUniform1ui( location, v0 );
 }
 
+static void WINAPI glUniform1ui64ARB( GLint location, GLuint64 x ) {
+  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+  TRACE("(%d, %s)\n", location, wine_dbgstr_longlong(x) );
+  funcs->ext.p_glUniform1ui64ARB( location, x );
+}
+
 static void WINAPI glUniform1ui64NV( GLint location, GLuint64EXT x ) {
   const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
   TRACE("(%d, %s)\n", location, wine_dbgstr_longlong(x) );
   funcs->ext.p_glUniform1ui64NV( location, x );
 }
 
+static void WINAPI glUniform1ui64vARB( GLint location, GLsizei count, const GLuint64* value ) {
+  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+  TRACE("(%d, %d, %p)\n", location, count, value );
+  funcs->ext.p_glUniform1ui64vARB( location, count, value );
+}
+
 static void WINAPI glUniform1ui64vNV( GLint location, GLsizei count, const GLuint64EXT* value ) {
   const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
   TRACE("(%d, %d, %p)\n", location, count, value );
@@ -12030,12 +12198,24 @@ static void WINAPI glUniform2i( GLint location, GLint v0, GLint v1 ) {
   funcs->ext.p_glUniform2i( location, v0, v1 );
 }
 
+static void WINAPI glUniform2i64ARB( GLint location, GLint64 x, GLint64 y ) {
+  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+  TRACE("(%d, %s, %s)\n", location, wine_dbgstr_longlong(x), wine_dbgstr_longlong(y) );
+  funcs->ext.p_glUniform2i64ARB( location, x, y );
+}
+
 static void WINAPI glUniform2i64NV( GLint location, GLint64EXT x, GLint64EXT y ) {
   const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
   TRACE("(%d, %s, %s)\n", location, wine_dbgstr_longlong(x), wine_dbgstr_longlong(y) );
   funcs->ext.p_glUniform2i64NV( location, x, y );
 }
 
+static void WINAPI glUniform2i64vARB( GLint location, GLsizei count, const GLint64* value ) {
+  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+  TRACE("(%d, %d, %p)\n", location, count, value );
+  funcs->ext.p_glUniform2i64vARB( location, count, value );
+}
+
 static void WINAPI glUniform2i64vNV( GLint location, GLsizei count, const GLint64EXT* value ) {
   const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
   TRACE("(%d, %d, %p)\n", location, count, value );
@@ -12066,12 +12246,24 @@ static void WINAPI glUniform2ui( GLint location, GLuint v0, GLuint v1 ) {
   funcs->ext.p_glUniform2ui( location, v0, v1 );
 }
 
+static void WINAPI glUniform2ui64ARB( GLint location, GLuint64 x, GLuint64 y ) {
+  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+  TRACE("(%d, %s, %s)\n", location, wine_dbgstr_longlong(x), wine_dbgstr_longlong(y) );
+  funcs->ext.p_glUniform2ui64ARB( location, x, y );
+}
+
 static void WINAPI glUniform2ui64NV( GLint location, GLuint64EXT x, GLuint64EXT y ) {
   const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
   TRACE("(%d, %s, %s)\n", location, wine_dbgstr_longlong(x), wine_dbgstr_longlong(y) );
   funcs->ext.p_glUniform2ui64NV( location, x, y );
 }
 
+static void WINAPI glUniform2ui64vARB( GLint location, GLsizei count, const GLuint64* value ) {
+  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+  TRACE("(%d, %d, %p)\n", location, count, value );
+  funcs->ext.p_glUniform2ui64vARB( location, count, value );
+}
+
 static void WINAPI glUniform2ui64vNV( GLint location, GLsizei count, const GLuint64EXT* value ) {
   const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
   TRACE("(%d, %d, %p)\n", location, count, value );
@@ -12138,12 +12330,24 @@ static void WINAPI glUniform3i( GLint location, GLint v0, GLint v1, GLint v2 ) {
   funcs->ext.p_glUniform3i( location, v0, v1, v2 );
 }
 
+static void WINAPI glUniform3i64ARB( GLint location, GLint64 x, GLint64 y, GLint64 z ) {
+  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+  TRACE("(%d, %s, %s, %s)\n", location, wine_dbgstr_longlong(x), wine_dbgstr_longlong(y), wine_dbgstr_longlong(z) );
+  funcs->ext.p_glUniform3i64ARB( location, x, y, z );
+}
+
 static void WINAPI glUniform3i64NV( GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z ) {
   const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
   TRACE("(%d, %s, %s, %s)\n", location, wine_dbgstr_longlong(x), wine_dbgstr_longlong(y), wine_dbgstr_longlong(z) );
   funcs->ext.p_glUniform3i64NV( location, x, y, z );
 }
 
+static void WINAPI glUniform3i64vARB( GLint location, GLsizei count, const GLint64* value ) {
+  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+  TRACE("(%d, %d, %p)\n", location, count, value );
+  funcs->ext.p_glUniform3i64vARB( location, count, value );
+}
+
 static void WINAPI glUniform3i64vNV( GLint location, GLsizei count, const GLint64EXT* value ) {
   const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
   TRACE("(%d, %d, %p)\n", location, count, value );
@@ -12174,12 +12378,24 @@ static void WINAPI glUniform3ui( GLint location, GLuint v0, GLuint v1, GLuint v2
   funcs->ext.p_glUniform3ui( location, v0, v1, v2 );
 }
 
+static void WINAPI glUniform3ui64ARB( GLint location, GLuint64 x, GLuint64 y, GLuint64 z ) {
+  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+  TRACE("(%d, %s, %s, %s)\n", location, wine_dbgstr_longlong(x), wine_dbgstr_longlong(y), wine_dbgstr_longlong(z) );
+  funcs->ext.p_glUniform3ui64ARB( location, x, y, z );
+}
+
 static void WINAPI glUniform3ui64NV( GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z ) {
   const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
   TRACE("(%d, %s, %s, %s)\n", location, wine_dbgstr_longlong(x), wine_dbgstr_longlong(y), wine_dbgstr_longlong(z) );
   funcs->ext.p_glUniform3ui64NV( location, x, y, z );
 }
 
+static void WINAPI glUniform3ui64vARB( GLint location, GLsizei count, const GLuint64* value ) {
+  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+  TRACE("(%d, %d, %p)\n", location, count, value );
+  funcs->ext.p_glUniform3ui64vARB( location, count, value );
+}
+
 static void WINAPI glUniform3ui64vNV( GLint location, GLsizei count, const GLuint64EXT* value ) {
   const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
   TRACE("(%d, %d, %p)\n", location, count, value );
@@ -12246,12 +12462,24 @@ static void WINAPI glUniform4i( GLint location, GLint v0, GLint v1, GLint v2, GL
   funcs->ext.p_glUniform4i( location, v0, v1, v2, v3 );
 }
 
+static void WINAPI glUniform4i64ARB( GLint location, GLint64 x, GLint64 y, GLint64 z, GLint64 w ) {
+  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+  TRACE("(%d, %s, %s, %s, %s)\n", location, wine_dbgstr_longlong(x), wine_dbgstr_longlong(y), wine_dbgstr_longlong(z), wine_dbgstr_longlong(w) );
+  funcs->ext.p_glUniform4i64ARB( location, x, y, z, w );
+}
+
 static void WINAPI glUniform4i64NV( GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w ) {
   const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
   TRACE("(%d, %s, %s, %s, %s)\n", location, wine_dbgstr_longlong(x), wine_dbgstr_longlong(y), wine_dbgstr_longlong(z), wine_dbgstr_longlong(w) );
   funcs->ext.p_glUniform4i64NV( location, x, y, z, w );
 }
 
+static void WINAPI glUniform4i64vARB( GLint location, GLsizei count, const GLint64* value ) {
+  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+  TRACE("(%d, %d, %p)\n", location, count, value );
+  funcs->ext.p_glUniform4i64vARB( location, count, value );
+}
+
 static void WINAPI glUniform4i64vNV( GLint location, GLsizei count, const GLint64EXT* value ) {
   const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
   TRACE("(%d, %d, %p)\n", location, count, value );
@@ -12282,12 +12510,24 @@ static void WINAPI glUniform4ui( GLint location, GLuint v0, GLuint v1, GLuint v2
   funcs->ext.p_glUniform4ui( location, v0, v1, v2, v3 );
 }
 
+static void WINAPI glUniform4ui64ARB( GLint location, GLuint64 x, GLuint64 y, GLuint64 z, GLuint64 w ) {
+  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+  TRACE("(%d, %s, %s, %s, %s)\n", location, wine_dbgstr_longlong(x), wine_dbgstr_longlong(y), wine_dbgstr_longlong(z), wine_dbgstr_longlong(w) );
+  funcs->ext.p_glUniform4ui64ARB( location, x, y, z, w );
+}
+
 static void WINAPI glUniform4ui64NV( GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w ) {
   const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
   TRACE("(%d, %s, %s, %s, %s)\n", location, wine_dbgstr_longlong(x), wine_dbgstr_longlong(y), wine_dbgstr_longlong(z), wine_dbgstr_longlong(w) );
   funcs->ext.p_glUniform4ui64NV( location, x, y, z, w );
 }
 
+static void WINAPI glUniform4ui64vARB( GLint location, GLsizei count, const GLuint64* value ) {
+  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+  TRACE("(%d, %d, %p)\n", location, count, value );
+  funcs->ext.p_glUniform4ui64vARB( location, count, value );
+}
+
 static void WINAPI glUniform4ui64vNV( GLint location, GLsizei count, const GLuint64EXT* value ) {
   const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
   TRACE("(%d, %d, %p)\n", location, count, value );
@@ -15084,7 +15324,7 @@ static void WINAPI glWriteMaskEXT( GLuint res, GLuint in, GLenum outX, GLenum ou
   funcs->ext.p_glWriteMaskEXT( res, in, outX, outY, outZ, outW );
 }
 
-const OpenGL_extension extension_registry[2533] = {
+const OpenGL_extension extension_registry[2576] = {
   { "glAccumxOES", "GL_OES_fixed_point", glAccumxOES },
   { "glActiveProgramEXT", "GL_EXT_separate_shader_objects", glActiveProgramEXT },
   { "glActiveShaderProgram", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glActiveShaderProgram },
@@ -15096,6 +15336,7 @@ const OpenGL_extension extension_registry[2533] = {
   { "glAlphaFragmentOp2ATI", "GL_ATI_fragment_shader", glAlphaFragmentOp2ATI },
   { "glAlphaFragmentOp3ATI", "GL_ATI_fragment_shader", glAlphaFragmentOp3ATI },
   { "glAlphaFuncxOES", "GL_OES_fixed_point", glAlphaFuncxOES },
+  { "glApplyFramebufferAttachmentCMAAINTEL", "GL_INTEL_framebuffer_CMAA", glApplyFramebufferAttachmentCMAAINTEL },
   { "glApplyTextureEXT", "GL_EXT_light_texture", glApplyTextureEXT },
   { "glAreProgramsResidentNV", "GL_NV_vertex_program", glAreProgramsResidentNV },
   { "glAreTexturesResidentEXT", "GL_EXT_texture_object", glAreTexturesResidentEXT },
@@ -15123,12 +15364,12 @@ const OpenGL_extension extension_registry[2533] = {
   { "glBindAttribLocationARB", "GL_ARB_vertex_shader", glBindAttribLocationARB },
   { "glBindBuffer", "GL_VERSION_1_5", glBindBuffer },
   { "glBindBufferARB", "GL_ARB_vertex_buffer_object", glBindBufferARB },
-  { "glBindBufferBase", "GL_ARB_uniform_buffer_object GL_VERSION_3_0", glBindBufferBase },
+  { "glBindBufferBase", "GL_ARB_uniform_buffer_object GL_VERSION_3_1", glBindBufferBase },
   { "glBindBufferBaseEXT", "GL_EXT_transform_feedback", glBindBufferBaseEXT },
   { "glBindBufferBaseNV", "GL_NV_transform_feedback", glBindBufferBaseNV },
   { "glBindBufferOffsetEXT", "GL_EXT_transform_feedback", glBindBufferOffsetEXT },
   { "glBindBufferOffsetNV", "GL_NV_transform_feedback", glBindBufferOffsetNV },
-  { "glBindBufferRange", "GL_ARB_uniform_buffer_object GL_VERSION_3_0", glBindBufferRange },
+  { "glBindBufferRange", "GL_ARB_uniform_buffer_object GL_VERSION_3_1", glBindBufferRange },
   { "glBindBufferRangeEXT", "GL_EXT_transform_feedback", glBindBufferRangeEXT },
   { "glBindBufferRangeNV", "GL_NV_transform_feedback", glBindBufferRangeNV },
   { "glBindBuffersBase", "GL_ARB_multi_bind GL_VERSION_4_4", glBindBuffersBase },
@@ -15332,6 +15573,7 @@ const OpenGL_extension extension_registry[2533] = {
   { "glCompressedTextureSubImage2DEXT", "GL_EXT_direct_state_access", glCompressedTextureSubImage2DEXT },
   { "glCompressedTextureSubImage3D", "GL_ARB_direct_state_access GL_VERSION_4_5", glCompressedTextureSubImage3D },
   { "glCompressedTextureSubImage3DEXT", "GL_EXT_direct_state_access", glCompressedTextureSubImage3DEXT },
+  { "glConservativeRasterParameterfNV", "GL_NV_conservative_raster_dilate", glConservativeRasterParameterfNV },
   { "glConvolutionFilter1D", "GL_ARB_imaging", glConvolutionFilter1D },
   { "glConvolutionFilter1DEXT", "GL_EXT_convolution", glConvolutionFilter1DEXT },
   { "glConvolutionFilter2D", "GL_ARB_imaging", glConvolutionFilter2D },
@@ -15551,6 +15793,7 @@ const OpenGL_extension extension_registry[2533] = {
   { "glEvalCoord2xOES", "GL_OES_fixed_point", glEvalCoord2xOES },
   { "glEvalCoord2xvOES", "GL_OES_fixed_point", glEvalCoord2xvOES },
   { "glEvalMapsNV", "GL_NV_evaluators", glEvalMapsNV },
+  { "glEvaluateDepthValuesARB", "GL_ARB_sample_locations", glEvaluateDepthValuesARB },
   { "glExecuteProgramNV", "GL_NV_vertex_program", glExecuteProgramNV },
   { "glExtractComponentEXT", "GL_EXT_vertex_shader", glExtractComponentEXT },
   { "glFeedbackBufferxOES", "GL_OES_fixed_point", glFeedbackBufferxOES },
@@ -15609,6 +15852,7 @@ const OpenGL_extension extension_registry[2533] = {
   { "glFramebufferReadBufferEXT", "GL_EXT_direct_state_access", glFramebufferReadBufferEXT },
   { "glFramebufferRenderbuffer", "GL_ARB_framebuffer_object GL_VERSION_3_0", glFramebufferRenderbuffer },
   { "glFramebufferRenderbufferEXT", "GL_EXT_framebuffer_object", glFramebufferRenderbufferEXT },
+  { "glFramebufferSampleLocationsfvARB", "GL_ARB_sample_locations", glFramebufferSampleLocationsfvARB },
   { "glFramebufferSampleLocationsfvNV", "GL_NV_sample_locations", glFramebufferSampleLocationsfvNV },
   { "glFramebufferTexture", "GL_VERSION_3_2", glFramebufferTexture },
   { "glFramebufferTexture1D", "GL_ARB_framebuffer_object GL_VERSION_3_0", glFramebufferTexture1D },
@@ -15624,6 +15868,7 @@ const OpenGL_extension extension_registry[2533] = {
   { "glFramebufferTextureLayer", "GL_ARB_framebuffer_object GL_VERSION_3_0", glFramebufferTextureLayer },
   { "glFramebufferTextureLayerARB", "GL_ARB_geometry_shader4", glFramebufferTextureLayerARB },
   { "glFramebufferTextureLayerEXT", "GL_EXT_texture_array GL_NV_geometry_program4", glFramebufferTextureLayerEXT },
+  { "glFramebufferTextureMultiviewOVR", "GL_OVR_multiview", glFramebufferTextureMultiviewOVR },
   { "glFreeObjectBufferATI", "GL_ATI_vertex_array_object", glFreeObjectBufferATI },
   { "glFrustumfOES", "GL_OES_single_precision", glFrustumfOES },
   { "glFrustumxOES", "GL_OES_fixed_point", glFrustumxOES },
@@ -15765,7 +16010,7 @@ const OpenGL_extension extension_registry[2533] = {
   { "glGetInteger64i_v", "GL_VERSION_3_2", glGetInteger64i_v },
   { "glGetInteger64v", "GL_ARB_sync GL_VERSION_3_2", glGetInteger64v },
   { "glGetIntegerIndexedvEXT", "GL_EXT_direct_state_access GL_EXT_draw_buffers2", glGetIntegerIndexedvEXT },
-  { "glGetIntegeri_v", "GL_ARB_uniform_buffer_object GL_VERSION_3_0", glGetIntegeri_v },
+  { "glGetIntegeri_v", "GL_ARB_uniform_buffer_object GL_VERSION_3_1", glGetIntegeri_v },
   { "glGetIntegerui64i_vNV", "GL_NV_vertex_buffer_unified_memory", glGetIntegerui64i_vNV },
   { "glGetIntegerui64vNV", "GL_NV_shader_buffer_load", glGetIntegerui64vNV },
   { "glGetInternalformatSampleivNV", "GL_NV_internalformat_sample_query", glGetInternalformatSampleivNV },
@@ -15983,9 +16228,11 @@ const OpenGL_extension extension_registry[2533] = {
   { "glGetUniformdv", "GL_ARB_gpu_shader_fp64 GL_VERSION_4_0", glGetUniformdv },
   { "glGetUniformfv", "GL_VERSION_2_0", glGetUniformfv },
   { "glGetUniformfvARB", "GL_ARB_shader_objects", glGetUniformfvARB },
+  { "glGetUniformi64vARB", "GL_ARB_gpu_shader_int64", glGetUniformi64vARB },
   { "glGetUniformi64vNV", "GL_AMD_gpu_shader_int64 GL_NV_gpu_shader5", glGetUniformi64vNV },
   { "glGetUniformiv", "GL_VERSION_2_0", glGetUniformiv },
   { "glGetUniformivARB", "GL_ARB_shader_objects", glGetUniformivARB },
+  { "glGetUniformui64vARB", "GL_ARB_gpu_shader_int64", glGetUniformui64vARB },
   { "glGetUniformui64vNV", "GL_AMD_gpu_shader_int64 GL_NV_shader_buffer_load", glGetUniformui64vNV },
   { "glGetUniformuiv", "GL_VERSION_3_0", glGetUniformuiv },
   { "glGetUniformuivEXT", "GL_EXT_gpu_shader4", glGetUniformuivEXT },
@@ -16066,8 +16313,10 @@ const OpenGL_extension extension_registry[2533] = {
   { "glGetnUniformdvARB", "GL_ARB_robustness", glGetnUniformdvARB },
   { "glGetnUniformfv", "GL_KHR_robustness GL_VERSION_4_5", glGetnUniformfv },
   { "glGetnUniformfvARB", "GL_ARB_robustness", glGetnUniformfvARB },
+  { "glGetnUniformi64vARB", "GL_ARB_gpu_shader_int64", glGetnUniformi64vARB },
   { "glGetnUniformiv", "GL_KHR_robustness GL_VERSION_4_5", glGetnUniformiv },
   { "glGetnUniformivARB", "GL_ARB_robustness", glGetnUniformivARB },
+  { "glGetnUniformui64vARB", "GL_ARB_gpu_shader_int64", glGetnUniformui64vARB },
   { "glGetnUniformuiv", "GL_KHR_robustness GL_VERSION_4_5", glGetnUniformuiv },
   { "glGetnUniformuivARB", "GL_ARB_robustness", glGetnUniformuivARB },
   { "glGlobalAlphaFactorbSUN", "GL_SUN_global_alpha", glGlobalAlphaFactorbSUN },
@@ -16236,6 +16485,7 @@ const OpenGL_extension extension_registry[2533] = {
   { "glMatrixScalefEXT", "GL_EXT_direct_state_access", glMatrixScalefEXT },
   { "glMatrixTranslatedEXT", "GL_EXT_direct_state_access", glMatrixTranslatedEXT },
   { "glMatrixTranslatefEXT", "GL_EXT_direct_state_access", glMatrixTranslatefEXT },
+  { "glMaxShaderCompilerThreadsARB", "GL_ARB_parallel_shader_compile", glMaxShaderCompilerThreadsARB },
   { "glMemoryBarrier", "GL_ARB_shader_image_load_store GL_VERSION_4_2", glMemoryBarrier },
   { "glMemoryBarrierByRegion", "GL_ARB_ES3_1_compatibility GL_VERSION_4_5", glMemoryBarrierByRegion },
   { "glMemoryBarrierEXT", "GL_EXT_shader_image_load_store", glMemoryBarrierEXT },
@@ -16438,6 +16688,7 @@ const OpenGL_extension extension_registry[2533] = {
   { "glNamedFramebufferReadBuffer", "GL_ARB_direct_state_access GL_VERSION_4_5", glNamedFramebufferReadBuffer },
   { "glNamedFramebufferRenderbuffer", "GL_ARB_direct_state_access GL_VERSION_4_5", glNamedFramebufferRenderbuffer },
   { "glNamedFramebufferRenderbufferEXT", "GL_EXT_direct_state_access", glNamedFramebufferRenderbufferEXT },
+  { "glNamedFramebufferSampleLocationsfvARB", "GL_ARB_sample_locations", glNamedFramebufferSampleLocationsfvARB },
   { "glNamedFramebufferSampleLocationsfvNV", "GL_NV_sample_locations", glNamedFramebufferSampleLocationsfvNV },
   { "glNamedFramebufferTexture", "GL_ARB_direct_state_access GL_VERSION_4_5", glNamedFramebufferTexture },
   { "glNamedFramebufferTexture1DEXT", "GL_EXT_direct_state_access", glNamedFramebufferTexture1DEXT },
@@ -16562,6 +16813,7 @@ const OpenGL_extension extension_registry[2533] = {
   { "glPopGroupMarkerEXT", "GL_EXT_debug_marker", glPopGroupMarkerEXT },
   { "glPresentFrameDualFillNV", "GL_NV_present_video", glPresentFrameDualFillNV },
   { "glPresentFrameKeyedNV", "GL_NV_present_video", glPresentFrameKeyedNV },
+  { "glPrimitiveBoundingBoxARB", "GL_ARB_ES3_2_compatibility", glPrimitiveBoundingBoxARB },
   { "glPrimitiveRestartIndex", "GL_VERSION_3_1", glPrimitiveRestartIndex },
   { "glPrimitiveRestartIndexNV", "GL_NV_primitive_restart", glPrimitiveRestartIndexNV },
   { "glPrimitiveRestartNV", "GL_NV_primitive_restart", glPrimitiveRestartNV },
@@ -16618,13 +16870,17 @@ const OpenGL_extension extension_registry[2533] = {
   { "glProgramUniform1fv", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniform1fv },
   { "glProgramUniform1fvEXT", "GL_EXT_direct_state_access", glProgramUniform1fvEXT },
   { "glProgramUniform1i", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniform1i },
+  { "glProgramUniform1i64ARB", "GL_ARB_gpu_shader_int64", glProgramUniform1i64ARB },
   { "glProgramUniform1i64NV", "GL_AMD_gpu_shader_int64 GL_NV_gpu_shader5", glProgramUniform1i64NV },
+  { "glProgramUniform1i64vARB", "GL_ARB_gpu_shader_int64", glProgramUniform1i64vARB },
   { "glProgramUniform1i64vNV", "GL_AMD_gpu_shader_int64 GL_NV_gpu_shader5", glProgramUniform1i64vNV },
   { "glProgramUniform1iEXT", "GL_EXT_direct_state_access", glProgramUniform1iEXT },
   { "glProgramUniform1iv", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniform1iv },
   { "glProgramUniform1ivEXT", "GL_EXT_direct_state_access", glProgramUniform1ivEXT },
   { "glProgramUniform1ui", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniform1ui },
+  { "glProgramUniform1ui64ARB", "GL_ARB_gpu_shader_int64", glProgramUniform1ui64ARB },
   { "glProgramUniform1ui64NV", "GL_AMD_gpu_shader_int64 GL_NV_gpu_shader5", glProgramUniform1ui64NV },
+  { "glProgramUniform1ui64vARB", "GL_ARB_gpu_shader_int64", glProgramUniform1ui64vARB },
   { "glProgramUniform1ui64vNV", "GL_AMD_gpu_shader_int64 GL_NV_gpu_shader5", glProgramUniform1ui64vNV },
   { "glProgramUniform1uiEXT", "GL_EXT_direct_state_access", glProgramUniform1uiEXT },
   { "glProgramUniform1uiv", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniform1uiv },
@@ -16638,13 +16894,17 @@ const OpenGL_extension extension_registry[2533] = {
   { "glProgramUniform2fv", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniform2fv },
   { "glProgramUniform2fvEXT", "GL_EXT_direct_state_access", glProgramUniform2fvEXT },
   { "glProgramUniform2i", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniform2i },
+  { "glProgramUniform2i64ARB", "GL_ARB_gpu_shader_int64", glProgramUniform2i64ARB },
   { "glProgramUniform2i64NV", "GL_AMD_gpu_shader_int64 GL_NV_gpu_shader5", glProgramUniform2i64NV },
+  { "glProgramUniform2i64vARB", "GL_ARB_gpu_shader_int64", glProgramUniform2i64vARB },
   { "glProgramUniform2i64vNV", "GL_AMD_gpu_shader_int64 GL_NV_gpu_shader5", glProgramUniform2i64vNV },
   { "glProgramUniform2iEXT", "GL_EXT_direct_state_access", glProgramUniform2iEXT },
   { "glProgramUniform2iv", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniform2iv },
   { "glProgramUniform2ivEXT", "GL_EXT_direct_state_access", glProgramUniform2ivEXT },
   { "glProgramUniform2ui", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniform2ui },
+  { "glProgramUniform2ui64ARB", "GL_ARB_gpu_shader_int64", glProgramUniform2ui64ARB },
   { "glProgramUniform2ui64NV", "GL_AMD_gpu_shader_int64 GL_NV_gpu_shader5", glProgramUniform2ui64NV },
+  { "glProgramUniform2ui64vARB", "GL_ARB_gpu_shader_int64", glProgramUniform2ui64vARB },
   { "glProgramUniform2ui64vNV", "GL_AMD_gpu_shader_int64 GL_NV_gpu_shader5", glProgramUniform2ui64vNV },
   { "glProgramUniform2uiEXT", "GL_EXT_direct_state_access", glProgramUniform2uiEXT },
   { "glProgramUniform2uiv", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniform2uiv },
@@ -16658,13 +16918,17 @@ const OpenGL_extension extension_registry[2533] = {
   { "glProgramUniform3fv", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniform3fv },
   { "glProgramUniform3fvEXT", "GL_EXT_direct_state_access", glProgramUniform3fvEXT },
   { "glProgramUniform3i", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniform3i },
+  { "glProgramUniform3i64ARB", "GL_ARB_gpu_shader_int64", glProgramUniform3i64ARB },
   { "glProgramUniform3i64NV", "GL_AMD_gpu_shader_int64 GL_NV_gpu_shader5", glProgramUniform3i64NV },
+  { "glProgramUniform3i64vARB", "GL_ARB_gpu_shader_int64", glProgramUniform3i64vARB },
   { "glProgramUniform3i64vNV", "GL_AMD_gpu_shader_int64 GL_NV_gpu_shader5", glProgramUniform3i64vNV },
   { "glProgramUniform3iEXT", "GL_EXT_direct_state_access", glProgramUniform3iEXT },
   { "glProgramUniform3iv", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniform3iv },
   { "glProgramUniform3ivEXT", "GL_EXT_direct_state_access", glProgramUniform3ivEXT },
   { "glProgramUniform3ui", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniform3ui },
+  { "glProgramUniform3ui64ARB", "GL_ARB_gpu_shader_int64", glProgramUniform3ui64ARB },
   { "glProgramUniform3ui64NV", "GL_AMD_gpu_shader_int64 GL_NV_gpu_shader5", glProgramUniform3ui64NV },
+  { "glProgramUniform3ui64vARB", "GL_ARB_gpu_shader_int64", glProgramUniform3ui64vARB },
   { "glProgramUniform3ui64vNV", "GL_AMD_gpu_shader_int64 GL_NV_gpu_shader5", glProgramUniform3ui64vNV },
   { "glProgramUniform3uiEXT", "GL_EXT_direct_state_access", glProgramUniform3uiEXT },
   { "glProgramUniform3uiv", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniform3uiv },
@@ -16678,13 +16942,17 @@ const OpenGL_extension extension_registry[2533] = {
   { "glProgramUniform4fv", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniform4fv },
   { "glProgramUniform4fvEXT", "GL_EXT_direct_state_access", glProgramUniform4fvEXT },
   { "glProgramUniform4i", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniform4i },
+  { "glProgramUniform4i64ARB", "GL_ARB_gpu_shader_int64", glProgramUniform4i64ARB },
   { "glProgramUniform4i64NV", "GL_AMD_gpu_shader_int64 GL_NV_gpu_shader5", glProgramUniform4i64NV },
+  { "glProgramUniform4i64vARB", "GL_ARB_gpu_shader_int64", glProgramUniform4i64vARB },
   { "glProgramUniform4i64vNV", "GL_AMD_gpu_shader_int64 GL_NV_gpu_shader5", glProgramUniform4i64vNV },
   { "glProgramUniform4iEXT", "GL_EXT_direct_state_access", glProgramUniform4iEXT },
   { "glProgramUniform4iv", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniform4iv },
   { "glProgramUniform4ivEXT", "GL_EXT_direct_state_access", glProgramUniform4ivEXT },
   { "glProgramUniform4ui", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniform4ui },
+  { "glProgramUniform4ui64ARB", "GL_ARB_gpu_shader_int64", glProgramUniform4ui64ARB },
   { "glProgramUniform4ui64NV", "GL_AMD_gpu_shader_int64 GL_NV_gpu_shader5", glProgramUniform4ui64NV },
+  { "glProgramUniform4ui64vARB", "GL_ARB_gpu_shader_int64", glProgramUniform4ui64vARB },
   { "glProgramUniform4ui64vNV", "GL_AMD_gpu_shader_int64 GL_NV_gpu_shader5", glProgramUniform4ui64vNV },
   { "glProgramUniform4uiEXT", "GL_EXT_direct_state_access", glProgramUniform4uiEXT },
   { "glProgramUniform4uiv", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniform4uiv },
@@ -16795,7 +17063,6 @@ const OpenGL_extension extension_registry[2533] = {
   { "glRotatexOES", "GL_OES_fixed_point", glRotatexOES },
   { "glSampleCoverage", "GL_VERSION_1_3", glSampleCoverage },
   { "glSampleCoverageARB", "GL_ARB_multisample", glSampleCoverageARB },
-  { "glSampleCoverageOES", "GL_OES_fixed_point", glSampleCoverageOES },
   { "glSampleMapATI", "GL_ATI_fragment_shader", glSampleMapATI },
   { "glSampleMaskEXT", "GL_EXT_multisample", glSampleMaskEXT },
   { "glSampleMaskIndexedNV", "GL_NV_explicit_multisample", glSampleMaskIndexedNV },
@@ -17070,13 +17337,17 @@ const OpenGL_extension extension_registry[2533] = {
   { "glUniform1fv", "GL_VERSION_2_0", glUniform1fv },
   { "glUniform1fvARB", "GL_ARB_shader_objects", glUniform1fvARB },
   { "glUniform1i", "GL_VERSION_2_0", glUniform1i },
+  { "glUniform1i64ARB", "GL_ARB_gpu_shader_int64", glUniform1i64ARB },
   { "glUniform1i64NV", "GL_AMD_gpu_shader_int64 GL_NV_gpu_shader5", glUniform1i64NV },
+  { "glUniform1i64vARB", "GL_ARB_gpu_shader_int64", glUniform1i64vARB },
   { "glUniform1i64vNV", "GL_AMD_gpu_shader_int64 GL_NV_gpu_shader5", glUniform1i64vNV },
   { "glUniform1iARB", "GL_ARB_shader_objects", glUniform1iARB },
   { "glUniform1iv", "GL_VERSION_2_0", glUniform1iv },
   { "glUniform1ivARB", "GL_ARB_shader_objects", glUniform1ivARB },
   { "glUniform1ui", "GL_VERSION_3_0", glUniform1ui },
+  { "glUniform1ui64ARB", "GL_ARB_gpu_shader_int64", glUniform1ui64ARB },
   { "glUniform1ui64NV", "GL_AMD_gpu_shader_int64 GL_NV_gpu_shader5", glUniform1ui64NV },
+  { "glUniform1ui64vARB", "GL_ARB_gpu_shader_int64", glUniform1ui64vARB },
   { "glUniform1ui64vNV", "GL_AMD_gpu_shader_int64 GL_NV_gpu_shader5", glUniform1ui64vNV },
   { "glUniform1uiEXT", "GL_EXT_gpu_shader4", glUniform1uiEXT },
   { "glUniform1uiv", "GL_VERSION_3_0", glUniform1uiv },
@@ -17088,13 +17359,17 @@ const OpenGL_extension extension_registry[2533] = {
   { "glUniform2fv", "GL_VERSION_2_0", glUniform2fv },
   { "glUniform2fvARB", "GL_ARB_shader_objects", glUniform2fvARB },
   { "glUniform2i", "GL_VERSION_2_0", glUniform2i },
+  { "glUniform2i64ARB", "GL_ARB_gpu_shader_int64", glUniform2i64ARB },
   { "glUniform2i64NV", "GL_AMD_gpu_shader_int64 GL_NV_gpu_shader5", glUniform2i64NV },
+  { "glUniform2i64vARB", "GL_ARB_gpu_shader_int64", glUniform2i64vARB },
   { "glUniform2i64vNV", "GL_AMD_gpu_shader_int64 GL_NV_gpu_shader5", glUniform2i64vNV },
   { "glUniform2iARB", "GL_ARB_shader_objects", glUniform2iARB },
   { "glUniform2iv", "GL_VERSION_2_0", glUniform2iv },
   { "glUniform2ivARB", "GL_ARB_shader_objects", glUniform2ivARB },
   { "glUniform2ui", "GL_VERSION_3_0", glUniform2ui },
+  { "glUniform2ui64ARB", "GL_ARB_gpu_shader_int64", glUniform2ui64ARB },
   { "glUniform2ui64NV", "GL_AMD_gpu_shader_int64 GL_NV_gpu_shader5", glUniform2ui64NV },
+  { "glUniform2ui64vARB", "GL_ARB_gpu_shader_int64", glUniform2ui64vARB },
   { "glUniform2ui64vNV", "GL_AMD_gpu_shader_int64 GL_NV_gpu_shader5", glUniform2ui64vNV },
   { "glUniform2uiEXT", "GL_EXT_gpu_shader4", glUniform2uiEXT },
   { "glUniform2uiv", "GL_VERSION_3_0", glUniform2uiv },
@@ -17106,13 +17381,17 @@ const OpenGL_extension extension_registry[2533] = {
   { "glUniform3fv", "GL_VERSION_2_0", glUniform3fv },
   { "glUniform3fvARB", "GL_ARB_shader_objects", glUniform3fvARB },
   { "glUniform3i", "GL_VERSION_2_0", glUniform3i },
+  { "glUniform3i64ARB", "GL_ARB_gpu_shader_int64", glUniform3i64ARB },
   { "glUniform3i64NV", "GL_AMD_gpu_shader_int64 GL_NV_gpu_shader5", glUniform3i64NV },
+  { "glUniform3i64vARB", "GL_ARB_gpu_shader_int64", glUniform3i64vARB },
   { "glUniform3i64vNV", "GL_AMD_gpu_shader_int64 GL_NV_gpu_shader5", glUniform3i64vNV },
   { "glUniform3iARB", "GL_ARB_shader_objects", glUniform3iARB },
   { "glUniform3iv", "GL_VERSION_2_0", glUniform3iv },
   { "glUniform3ivARB", "GL_ARB_shader_objects", glUniform3ivARB },
   { "glUniform3ui", "GL_VERSION_3_0", glUniform3ui },
+  { "glUniform3ui64ARB", "GL_ARB_gpu_shader_int64", glUniform3ui64ARB },
   { "glUniform3ui64NV", "GL_AMD_gpu_shader_int64 GL_NV_gpu_shader5", glUniform3ui64NV },
+  { "glUniform3ui64vARB", "GL_ARB_gpu_shader_int64", glUniform3ui64vARB },
   { "glUniform3ui64vNV", "GL_AMD_gpu_shader_int64 GL_NV_gpu_shader5", glUniform3ui64vNV },
   { "glUniform3uiEXT", "GL_EXT_gpu_shader4", glUniform3uiEXT },
   { "glUniform3uiv", "GL_VERSION_3_0", glUniform3uiv },
@@ -17124,13 +17403,17 @@ const OpenGL_extension extension_registry[2533] = {
   { "glUniform4fv", "GL_VERSION_2_0", glUniform4fv },
   { "glUniform4fvARB", "GL_ARB_shader_objects", glUniform4fvARB },
   { "glUniform4i", "GL_VERSION_2_0", glUniform4i },
+  { "glUniform4i64ARB", "GL_ARB_gpu_shader_int64", glUniform4i64ARB },
   { "glUniform4i64NV", "GL_AMD_gpu_shader_int64 GL_NV_gpu_shader5", glUniform4i64NV },
+  { "glUniform4i64vARB", "GL_ARB_gpu_shader_int64", glUniform4i64vARB },
   { "glUniform4i64vNV", "GL_AMD_gpu_shader_int64 GL_NV_gpu_shader5", glUniform4i64vNV },
   { "glUniform4iARB", "GL_ARB_shader_objects", glUniform4iARB },
   { "glUniform4iv", "GL_VERSION_2_0", glUniform4iv },
   { "glUniform4ivARB", "GL_ARB_shader_objects", glUniform4ivARB },
   { "glUniform4ui", "GL_VERSION_3_0", glUniform4ui },
+  { "glUniform4ui64ARB", "GL_ARB_gpu_shader_int64", glUniform4ui64ARB },
   { "glUniform4ui64NV", "GL_AMD_gpu_shader_int64 GL_NV_gpu_shader5", glUniform4ui64NV },
+  { "glUniform4ui64vARB", "GL_ARB_gpu_shader_int64", glUniform4ui64vARB },
   { "glUniform4ui64vNV", "GL_AMD_gpu_shader_int64 GL_NV_gpu_shader5", glUniform4ui64vNV },
   { "glUniform4uiEXT", "GL_EXT_gpu_shader4", glUniform4uiEXT },
   { "glUniform4uiv", "GL_VERSION_3_0", glUniform4uiv },
diff --git a/dlls/opengl32/opengl_ext.h b/dlls/opengl32/opengl_ext.h
index 2e49d4a..bdfd90a 100644
--- a/dlls/opengl32/opengl_ext.h
+++ b/dlls/opengl32/opengl_ext.h
@@ -33,4 +33,9 @@ extern const int extension_registry_size DECLSPEC_HIDDEN;
 
 extern BOOL WINAPI wglSetPixelFormatWINE( HDC hdc, int format ) DECLSPEC_HIDDEN;
 
+typedef void (CALLBACK *WIN_GLDEBUGPROC)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam);
+extern void WINAPI glDebugMessageCallback(WIN_GLDEBUGPROC callback, const void* userParam ) DECLSPEC_HIDDEN;
+extern void WINAPI glDebugMessageCallbackAMD(WIN_GLDEBUGPROC callback, void* userParam ) DECLSPEC_HIDDEN;
+extern void WINAPI glDebugMessageCallbackARB(WIN_GLDEBUGPROC callback, const void* userParam ) DECLSPEC_HIDDEN;
+
 #endif /* __DLLS_OPENGL32_OPENGL_EXT_H */
diff --git a/dlls/opengl32/opengl_norm.c b/dlls/opengl32/opengl_norm.c
index 09329ce..06bc8c8 100644
--- a/dlls/opengl32/opengl_norm.c
+++ b/dlls/opengl32/opengl_norm.c
@@ -3373,6 +3373,7 @@ static void null_glAlphaFragmentOp1ATI( GLenum op, GLuint dst, GLuint dstMod, GL
 static void null_glAlphaFragmentOp2ATI( GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod ) { }
 static void null_glAlphaFragmentOp3ATI( GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod ) { }
 static void null_glAlphaFuncxOES( GLenum func, GLfixed ref ) { }
+static void null_glApplyFramebufferAttachmentCMAAINTEL( void ) { }
 static void null_glApplyTextureEXT( GLenum mode ) { }
 static GLboolean null_glAreProgramsResidentNV( GLsizei n, const GLuint* programs, GLboolean* residences ) { return 0; }
 static GLboolean null_glAreTexturesResidentEXT( GLsizei n, const GLuint* textures, GLboolean* residences ) { return 0; }
@@ -3609,6 +3610,7 @@ static void null_glCompressedTextureSubImage2D( GLuint texture, GLint level, GLi
 static void null_glCompressedTextureSubImage2DEXT( GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void* bits ) { }
 static void null_glCompressedTextureSubImage3D( GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void* data ) { }
 static void null_glCompressedTextureSubImage3DEXT( GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void* bits ) { }
+static void null_glConservativeRasterParameterfNV( GLenum pname, GLfloat value ) { }
 static void null_glConvolutionFilter1D( GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const void* image ) { }
 static void null_glConvolutionFilter1DEXT( GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const void* image ) { }
 static void null_glConvolutionFilter2D( GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void* image ) { }
@@ -3828,6 +3830,7 @@ static void null_glEvalCoord1xvOES( const GLfixed* coords ) { }
 static void null_glEvalCoord2xOES( GLfixed u, GLfixed v ) { }
 static void null_glEvalCoord2xvOES( const GLfixed* coords ) { }
 static void null_glEvalMapsNV( GLenum target, GLenum mode ) { }
+static void null_glEvaluateDepthValuesARB( void ) { }
 static void null_glExecuteProgramNV( GLenum target, GLuint id, const GLfloat* params ) { }
 static void null_glExtractComponentEXT( GLuint res, GLuint src, GLuint num ) { }
 static void null_glFeedbackBufferxOES( GLsizei n, GLenum type, const GLfixed* buffer ) { }
@@ -3886,6 +3889,7 @@ static void null_glFramebufferParameteri( GLenum target, GLenum pname, GLint par
 static void null_glFramebufferReadBufferEXT( GLuint framebuffer, GLenum mode ) { }
 static void null_glFramebufferRenderbuffer( GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer ) { }
 static void null_glFramebufferRenderbufferEXT( GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer ) { }
+static void null_glFramebufferSampleLocationsfvARB( GLenum target, GLuint start, GLsizei count, const GLfloat* v ) { }
 static void null_glFramebufferSampleLocationsfvNV( GLenum target, GLuint start, GLsizei count, const GLfloat* v ) { }
 static void null_glFramebufferTexture( GLenum target, GLenum attachment, GLuint texture, GLint level ) { }
 static void null_glFramebufferTexture1D( GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level ) { }
@@ -3901,6 +3905,7 @@ static void null_glFramebufferTextureFaceEXT( GLenum target, GLenum attachment,
 static void null_glFramebufferTextureLayer( GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer ) { }
 static void null_glFramebufferTextureLayerARB( GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer ) { }
 static void null_glFramebufferTextureLayerEXT( GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer ) { }
+static void null_glFramebufferTextureMultiviewOVR( GLenum target, GLenum attachment, GLuint texture, GLint level, GLint baseViewIndex, GLsizei numViews ) { }
 static void null_glFreeObjectBufferATI( GLuint buffer ) { }
 static void null_glFrustumfOES( GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f ) { }
 static void null_glFrustumxOES( GLfixed l, GLfixed r, GLfixed b, GLfixed t, GLfixed n, GLfixed f ) { }
@@ -4260,9 +4265,11 @@ static void null_glGetUniformSubroutineuiv( GLenum shadertype, GLint location, G
 static void null_glGetUniformdv( GLuint program, GLint location, GLdouble* params ) { }
 static void null_glGetUniformfv( GLuint program, GLint location, GLfloat* params ) { }
 static void null_glGetUniformfvARB( GLhandleARB programObj, GLint location, GLfloat* params ) { }
+static void null_glGetUniformi64vARB( GLuint program, GLint location, GLint64* params ) { }
 static void null_glGetUniformi64vNV( GLuint program, GLint location, GLint64EXT* params ) { }
 static void null_glGetUniformiv( GLuint program, GLint location, GLint* params ) { }
 static void null_glGetUniformivARB( GLhandleARB programObj, GLint location, GLint* params ) { }
+static void null_glGetUniformui64vARB( GLuint program, GLint location, GLuint64* params ) { }
 static void null_glGetUniformui64vNV( GLuint program, GLint location, GLuint64EXT* params ) { }
 static void null_glGetUniformuiv( GLuint program, GLint location, GLuint* params ) { }
 static void null_glGetUniformuivEXT( GLuint program, GLint location, GLuint* params ) { }
@@ -4343,8 +4350,10 @@ static void null_glGetnUniformdv( GLuint program, GLint location, GLsizei bufSiz
 static void null_glGetnUniformdvARB( GLuint program, GLint location, GLsizei bufSize, GLdouble* params ) { }
 static void null_glGetnUniformfv( GLuint program, GLint location, GLsizei bufSize, GLfloat* params ) { }
 static void null_glGetnUniformfvARB( GLuint program, GLint location, GLsizei bufSize, GLfloat* params ) { }
+static void null_glGetnUniformi64vARB( GLuint program, GLint location, GLsizei bufSize, GLint64* params ) { }
 static void null_glGetnUniformiv( GLuint program, GLint location, GLsizei bufSize, GLint* params ) { }
 static void null_glGetnUniformivARB( GLuint program, GLint location, GLsizei bufSize, GLint* params ) { }
+static void null_glGetnUniformui64vARB( GLuint program, GLint location, GLsizei bufSize, GLuint64* params ) { }
 static void null_glGetnUniformuiv( GLuint program, GLint location, GLsizei bufSize, GLuint* params ) { }
 static void null_glGetnUniformuivARB( GLuint program, GLint location, GLsizei bufSize, GLuint* params ) { }
 static void null_glGlobalAlphaFactorbSUN( GLbyte factor ) { }
@@ -4513,6 +4522,7 @@ static void null_glMatrixScaledEXT( GLenum mode, GLdouble x, GLdouble y, GLdoubl
 static void null_glMatrixScalefEXT( GLenum mode, GLfloat x, GLfloat y, GLfloat z ) { }
 static void null_glMatrixTranslatedEXT( GLenum mode, GLdouble x, GLdouble y, GLdouble z ) { }
 static void null_glMatrixTranslatefEXT( GLenum mode, GLfloat x, GLfloat y, GLfloat z ) { }
+static void null_glMaxShaderCompilerThreadsARB( GLuint count ) { }
 static void null_glMemoryBarrier( GLbitfield barriers ) { }
 static void null_glMemoryBarrierByRegion( GLbitfield barriers ) { }
 static void null_glMemoryBarrierEXT( GLbitfield barriers ) { }
@@ -4715,6 +4725,7 @@ static void null_glNamedFramebufferParameteriEXT( GLuint framebuffer, GLenum pna
 static void null_glNamedFramebufferReadBuffer( GLuint framebuffer, GLenum src ) { }
 static void null_glNamedFramebufferRenderbuffer( GLuint framebuffer, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer ) { }
 static void null_glNamedFramebufferRenderbufferEXT( GLuint framebuffer, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer ) { }
+static void null_glNamedFramebufferSampleLocationsfvARB( GLuint framebuffer, GLuint start, GLsizei count, const GLfloat* v ) { }
 static void null_glNamedFramebufferSampleLocationsfvNV( GLuint framebuffer, GLuint start, GLsizei count, const GLfloat* v ) { }
 static void null_glNamedFramebufferTexture( GLuint framebuffer, GLenum attachment, GLuint texture, GLint level ) { }
 static void null_glNamedFramebufferTexture1DEXT( GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level ) { }
@@ -4839,6 +4850,7 @@ static void null_glPopDebugGroup( void ) { }
 static void null_glPopGroupMarkerEXT( void ) { }
 static void null_glPresentFrameDualFillNV( GLuint video_slot, GLuint64EXT minPresentTime, GLuint beginPresentTimeId, GLuint presentDurationId, GLenum type, GLenum target0, GLuint fill0, GLenum target1, GLuint fill1, GLenum target2, GLuint fill2, GLenum target3, GLuint fill3 ) { }
 static void null_glPresentFrameKeyedNV( GLuint video_slot, GLuint64EXT minPresentTime, GLuint beginPresentTimeId, GLuint presentDurationId, GLenum type, GLenum target0, GLuint fill0, GLuint key0, GLenum target1, GLuint fill1, GLuint key1 ) { }
+static void null_glPrimitiveBoundingBoxARB( GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW ) { }
 static void null_glPrimitiveRestartIndex( GLuint index ) { }
 static void null_glPrimitiveRestartIndexNV( GLuint index ) { }
 static void null_glPrimitiveRestartNV( void ) { }
@@ -4895,13 +4907,17 @@ static void null_glProgramUniform1fEXT( GLuint program, GLint location, GLfloat
 static void null_glProgramUniform1fv( GLuint program, GLint location, GLsizei count, const GLfloat* value ) { }
 static void null_glProgramUniform1fvEXT( GLuint program, GLint location, GLsizei count, const GLfloat* value ) { }
 static void null_glProgramUniform1i( GLuint program, GLint location, GLint v0 ) { }
+static void null_glProgramUniform1i64ARB( GLuint program, GLint location, GLint64 x ) { }
 static void null_glProgramUniform1i64NV( GLuint program, GLint location, GLint64EXT x ) { }
+static void null_glProgramUniform1i64vARB( GLuint program, GLint location, GLsizei count, const GLint64* value ) { }
 static void null_glProgramUniform1i64vNV( GLuint program, GLint location, GLsizei count, const GLint64EXT* value ) { }
 static void null_glProgramUniform1iEXT( GLuint program, GLint location, GLint v0 ) { }
 static void null_glProgramUniform1iv( GLuint program, GLint location, GLsizei count, const GLint* value ) { }
 static void null_glProgramUniform1ivEXT( GLuint program, GLint location, GLsizei count, const GLint* value ) { }
 static void null_glProgramUniform1ui( GLuint program, GLint location, GLuint v0 ) { }
+static void null_glProgramUniform1ui64ARB( GLuint program, GLint location, GLuint64 x ) { }
 static void null_glProgramUniform1ui64NV( GLuint program, GLint location, GLuint64EXT x ) { }
+static void null_glProgramUniform1ui64vARB( GLuint program, GLint location, GLsizei count, const GLuint64* value ) { }
 static void null_glProgramUniform1ui64vNV( GLuint program, GLint location, GLsizei count, const GLuint64EXT* value ) { }
 static void null_glProgramUniform1uiEXT( GLuint program, GLint location, GLuint v0 ) { }
 static void null_glProgramUniform1uiv( GLuint program, GLint location, GLsizei count, const GLuint* value ) { }
@@ -4915,13 +4931,17 @@ static void null_glProgramUniform2fEXT( GLuint program, GLint location, GLfloat
 static void null_glProgramUniform2fv( GLuint program, GLint location, GLsizei count, const GLfloat* value ) { }
 static void null_glProgramUniform2fvEXT( GLuint program, GLint location, GLsizei count, const GLfloat* value ) { }
 static void null_glProgramUniform2i( GLuint program, GLint location, GLint v0, GLint v1 ) { }
+static void null_glProgramUniform2i64ARB( GLuint program, GLint location, GLint64 x, GLint64 y ) { }
 static void null_glProgramUniform2i64NV( GLuint program, GLint location, GLint64EXT x, GLint64EXT y ) { }
+static void null_glProgramUniform2i64vARB( GLuint program, GLint location, GLsizei count, const GLint64* value ) { }
 static void null_glProgramUniform2i64vNV( GLuint program, GLint location, GLsizei count, const GLint64EXT* value ) { }
 static void null_glProgramUniform2iEXT( GLuint program, GLint location, GLint v0, GLint v1 ) { }
 static void null_glProgramUniform2iv( GLuint program, GLint location, GLsizei count, const GLint* value ) { }
 static void null_glProgramUniform2ivEXT( GLuint program, GLint location, GLsizei count, const GLint* value ) { }
 static void null_glProgramUniform2ui( GLuint program, GLint location, GLuint v0, GLuint v1 ) { }
+static void null_glProgramUniform2ui64ARB( GLuint program, GLint location, GLuint64 x, GLuint64 y ) { }
 static void null_glProgramUniform2ui64NV( GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y ) { }
+static void null_glProgramUniform2ui64vARB( GLuint program, GLint location, GLsizei count, const GLuint64* value ) { }
 static void null_glProgramUniform2ui64vNV( GLuint program, GLint location, GLsizei count, const GLuint64EXT* value ) { }
 static void null_glProgramUniform2uiEXT( GLuint program, GLint location, GLuint v0, GLuint v1 ) { }
 static void null_glProgramUniform2uiv( GLuint program, GLint location, GLsizei count, const GLuint* value ) { }
@@ -4935,13 +4955,17 @@ static void null_glProgramUniform3fEXT( GLuint program, GLint location, GLfloat
 static void null_glProgramUniform3fv( GLuint program, GLint location, GLsizei count, const GLfloat* value ) { }
 static void null_glProgramUniform3fvEXT( GLuint program, GLint location, GLsizei count, const GLfloat* value ) { }
 static void null_glProgramUniform3i( GLuint program, GLint location, GLint v0, GLint v1, GLint v2 ) { }
+static void null_glProgramUniform3i64ARB( GLuint program, GLint location, GLint64 x, GLint64 y, GLint64 z ) { }
 static void null_glProgramUniform3i64NV( GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z ) { }
+static void null_glProgramUniform3i64vARB( GLuint program, GLint location, GLsizei count, const GLint64* value ) { }
 static void null_glProgramUniform3i64vNV( GLuint program, GLint location, GLsizei count, const GLint64EXT* value ) { }
 static void null_glProgramUniform3iEXT( GLuint program, GLint location, GLint v0, GLint v1, GLint v2 ) { }
 static void null_glProgramUniform3iv( GLuint program, GLint location, GLsizei count, const GLint* value ) { }
 static void null_glProgramUniform3ivEXT( GLuint program, GLint location, GLsizei count, const GLint* value ) { }
 static void null_glProgramUniform3ui( GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2 ) { }
+static void null_glProgramUniform3ui64ARB( GLuint program, GLint location, GLuint64 x, GLuint64 y, GLuint64 z ) { }
 static void null_glProgramUniform3ui64NV( GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z ) { }
+static void null_glProgramUniform3ui64vARB( GLuint program, GLint location, GLsizei count, const GLuint64* value ) { }
 static void null_glProgramUniform3ui64vNV( GLuint program, GLint location, GLsizei count, const GLuint64EXT* value ) { }
 static void null_glProgramUniform3uiEXT( GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2 ) { }
 static void null_glProgramUniform3uiv( GLuint program, GLint location, GLsizei count, const GLuint* value ) { }
@@ -4955,13 +4979,17 @@ static void null_glProgramUniform4fEXT( GLuint program, GLint location, GLfloat
 static void null_glProgramUniform4fv( GLuint program, GLint location, GLsizei count, const GLfloat* value ) { }
 static void null_glProgramUniform4fvEXT( GLuint program, GLint location, GLsizei count, const GLfloat* value ) { }
 static void null_glProgramUniform4i( GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3 ) { }
+static void null_glProgramUniform4i64ARB( GLuint program, GLint location, GLint64 x, GLint64 y, GLint64 z, GLint64 w ) { }
 static void null_glProgramUniform4i64NV( GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w ) { }
+static void null_glProgramUniform4i64vARB( GLuint program, GLint location, GLsizei count, const GLint64* value ) { }
 static void null_glProgramUniform4i64vNV( GLuint program, GLint location, GLsizei count, const GLint64EXT* value ) { }
 static void null_glProgramUniform4iEXT( GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3 ) { }
 static void null_glProgramUniform4iv( GLuint program, GLint location, GLsizei count, const GLint* value ) { }
 static void null_glProgramUniform4ivEXT( GLuint program, GLint location, GLsizei count, const GLint* value ) { }
 static void null_glProgramUniform4ui( GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3 ) { }
+static void null_glProgramUniform4ui64ARB( GLuint program, GLint location, GLuint64 x, GLuint64 y, GLuint64 z, GLuint64 w ) { }
 static void null_glProgramUniform4ui64NV( GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w ) { }
+static void null_glProgramUniform4ui64vARB( GLuint program, GLint location, GLsizei count, const GLuint64* value ) { }
 static void null_glProgramUniform4ui64vNV( GLuint program, GLint location, GLsizei count, const GLuint64EXT* value ) { }
 static void null_glProgramUniform4uiEXT( GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3 ) { }
 static void null_glProgramUniform4uiv( GLuint program, GLint location, GLsizei count, const GLuint* value ) { }
@@ -5072,7 +5100,6 @@ static void null_glResumeTransformFeedbackNV( void ) { }
 static void null_glRotatexOES( GLfixed angle, GLfixed x, GLfixed y, GLfixed z ) { }
 static void null_glSampleCoverage( GLfloat value, GLboolean invert ) { }
 static void null_glSampleCoverageARB( GLfloat value, GLboolean invert ) { }
-static void null_glSampleCoverageOES( GLfixed value, GLboolean invert ) { }
 static void null_glSampleMapATI( GLuint dst, GLuint interp, GLenum swizzle ) { }
 static void null_glSampleMaskEXT( GLclampf value, GLboolean invert ) { }
 static void null_glSampleMaskIndexedNV( GLuint index, GLbitfield mask ) { }
@@ -5347,13 +5374,17 @@ static void null_glUniform1fARB( GLint location, GLfloat v0 ) { }
 static void null_glUniform1fv( GLint location, GLsizei count, const GLfloat* value ) { }
 static void null_glUniform1fvARB( GLint location, GLsizei count, const GLfloat* value ) { }
 static void null_glUniform1i( GLint location, GLint v0 ) { }
+static void null_glUniform1i64ARB( GLint location, GLint64 x ) { }
 static void null_glUniform1i64NV( GLint location, GLint64EXT x ) { }
+static void null_glUniform1i64vARB( GLint location, GLsizei count, const GLint64* value ) { }
 static void null_glUniform1i64vNV( GLint location, GLsizei count, const GLint64EXT* value ) { }
 static void null_glUniform1iARB( GLint location, GLint v0 ) { }
 static void null_glUniform1iv( GLint location, GLsizei count, const GLint* value ) { }
 static void null_glUniform1ivARB( GLint location, GLsizei count, const GLint* value ) { }
 static void null_glUniform1ui( GLint location, GLuint v0 ) { }
+static void null_glUniform1ui64ARB( GLint location, GLuint64 x ) { }
 static void null_glUniform1ui64NV( GLint location, GLuint64EXT x ) { }
+static void null_glUniform1ui64vARB( GLint location, GLsizei count, const GLuint64* value ) { }
 static void null_glUniform1ui64vNV( GLint location, GLsizei count, const GLuint64EXT* value ) { }
 static void null_glUniform1uiEXT( GLint location, GLuint v0 ) { }
 static void null_glUniform1uiv( GLint location, GLsizei count, const GLuint* value ) { }
@@ -5365,13 +5396,17 @@ static void null_glUniform2fARB( GLint location, GLfloat v0, GLfloat v1 ) { }
 static void null_glUniform2fv( GLint location, GLsizei count, const GLfloat* value ) { }
 static void null_glUniform2fvARB( GLint location, GLsizei count, const GLfloat* value ) { }
 static void null_glUniform2i( GLint location, GLint v0, GLint v1 ) { }
+static void null_glUniform2i64ARB( GLint location, GLint64 x, GLint64 y ) { }
 static void null_glUniform2i64NV( GLint location, GLint64EXT x, GLint64EXT y ) { }
+static void null_glUniform2i64vARB( GLint location, GLsizei count, const GLint64* value ) { }
 static void null_glUniform2i64vNV( GLint location, GLsizei count, const GLint64EXT* value ) { }
 static void null_glUniform2iARB( GLint location, GLint v0, GLint v1 ) { }
 static void null_glUniform2iv( GLint location, GLsizei count, const GLint* value ) { }
 static void null_glUniform2ivARB( GLint location, GLsizei count, const GLint* value ) { }
 static void null_glUniform2ui( GLint location, GLuint v0, GLuint v1 ) { }
+static void null_glUniform2ui64ARB( GLint location, GLuint64 x, GLuint64 y ) { }
 static void null_glUniform2ui64NV( GLint location, GLuint64EXT x, GLuint64EXT y ) { }
+static void null_glUniform2ui64vARB( GLint location, GLsizei count, const GLuint64* value ) { }
 static void null_glUniform2ui64vNV( GLint location, GLsizei count, const GLuint64EXT* value ) { }
 static void null_glUniform2uiEXT( GLint location, GLuint v0, GLuint v1 ) { }
 static void null_glUniform2uiv( GLint location, GLsizei count, const GLuint* value ) { }
@@ -5383,13 +5418,17 @@ static void null_glUniform3fARB( GLint location, GLfloat v0, GLfloat v1, GLfloat
 static void null_glUniform3fv( GLint location, GLsizei count, const GLfloat* value ) { }
 static void null_glUniform3fvARB( GLint location, GLsizei count, const GLfloat* value ) { }
 static void null_glUniform3i( GLint location, GLint v0, GLint v1, GLint v2 ) { }
+static void null_glUniform3i64ARB( GLint location, GLint64 x, GLint64 y, GLint64 z ) { }
 static void null_glUniform3i64NV( GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z ) { }
+static void null_glUniform3i64vARB( GLint location, GLsizei count, const GLint64* value ) { }
 static void null_glUniform3i64vNV( GLint location, GLsizei count, const GLint64EXT* value ) { }
 static void null_glUniform3iARB( GLint location, GLint v0, GLint v1, GLint v2 ) { }
 static void null_glUniform3iv( GLint location, GLsizei count, const GLint* value ) { }
 static void null_glUniform3ivARB( GLint location, GLsizei count, const GLint* value ) { }
 static void null_glUniform3ui( GLint location, GLuint v0, GLuint v1, GLuint v2 ) { }
+static void null_glUniform3ui64ARB( GLint location, GLuint64 x, GLuint64 y, GLuint64 z ) { }
 static void null_glUniform3ui64NV( GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z ) { }
+static void null_glUniform3ui64vARB( GLint location, GLsizei count, const GLuint64* value ) { }
 static void null_glUniform3ui64vNV( GLint location, GLsizei count, const GLuint64EXT* value ) { }
 static void null_glUniform3uiEXT( GLint location, GLuint v0, GLuint v1, GLuint v2 ) { }
 static void null_glUniform3uiv( GLint location, GLsizei count, const GLuint* value ) { }
@@ -5401,13 +5440,17 @@ static void null_glUniform4fARB( GLint location, GLfloat v0, GLfloat v1, GLfloat
 static void null_glUniform4fv( GLint location, GLsizei count, const GLfloat* value ) { }
 static void null_glUniform4fvARB( GLint location, GLsizei count, const GLfloat* value ) { }
 static void null_glUniform4i( GLint location, GLint v0, GLint v1, GLint v2, GLint v3 ) { }
+static void null_glUniform4i64ARB( GLint location, GLint64 x, GLint64 y, GLint64 z, GLint64 w ) { }
 static void null_glUniform4i64NV( GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w ) { }
+static void null_glUniform4i64vARB( GLint location, GLsizei count, const GLint64* value ) { }
 static void null_glUniform4i64vNV( GLint location, GLsizei count, const GLint64EXT* value ) { }
 static void null_glUniform4iARB( GLint location, GLint v0, GLint v1, GLint v2, GLint v3 ) { }
 static void null_glUniform4iv( GLint location, GLsizei count, const GLint* value ) { }
 static void null_glUniform4ivARB( GLint location, GLsizei count, const GLint* value ) { }
 static void null_glUniform4ui( GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3 ) { }
+static void null_glUniform4ui64ARB( GLint location, GLuint64 x, GLuint64 y, GLuint64 z, GLuint64 w ) { }
 static void null_glUniform4ui64NV( GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w ) { }
+static void null_glUniform4ui64vARB( GLint location, GLsizei count, const GLuint64* value ) { }
 static void null_glUniform4ui64vNV( GLint location, GLsizei count, const GLuint64EXT* value ) { }
 static void null_glUniform4uiEXT( GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3 ) { }
 static void null_glUniform4uiv( GLint location, GLsizei count, const GLuint* value ) { }
@@ -6260,6 +6303,7 @@ struct opengl_funcs null_opengl_funcs =
         null_glAlphaFragmentOp2ATI,
         null_glAlphaFragmentOp3ATI,
         null_glAlphaFuncxOES,
+        null_glApplyFramebufferAttachmentCMAAINTEL,
         null_glApplyTextureEXT,
         null_glAreProgramsResidentNV,
         null_glAreTexturesResidentEXT,
@@ -6496,6 +6540,7 @@ struct opengl_funcs null_opengl_funcs =
         null_glCompressedTextureSubImage2DEXT,
         null_glCompressedTextureSubImage3D,
         null_glCompressedTextureSubImage3DEXT,
+        null_glConservativeRasterParameterfNV,
         null_glConvolutionFilter1D,
         null_glConvolutionFilter1DEXT,
         null_glConvolutionFilter2D,
@@ -6715,6 +6760,7 @@ struct opengl_funcs null_opengl_funcs =
         null_glEvalCoord2xOES,
         null_glEvalCoord2xvOES,
         null_glEvalMapsNV,
+        null_glEvaluateDepthValuesARB,
         null_glExecuteProgramNV,
         null_glExtractComponentEXT,
         null_glFeedbackBufferxOES,
@@ -6773,6 +6819,7 @@ struct opengl_funcs null_opengl_funcs =
         null_glFramebufferReadBufferEXT,
         null_glFramebufferRenderbuffer,
         null_glFramebufferRenderbufferEXT,
+        null_glFramebufferSampleLocationsfvARB,
         null_glFramebufferSampleLocationsfvNV,
         null_glFramebufferTexture,
         null_glFramebufferTexture1D,
@@ -6788,6 +6835,7 @@ struct opengl_funcs null_opengl_funcs =
         null_glFramebufferTextureLayer,
         null_glFramebufferTextureLayerARB,
         null_glFramebufferTextureLayerEXT,
+        null_glFramebufferTextureMultiviewOVR,
         null_glFreeObjectBufferATI,
         null_glFrustumfOES,
         null_glFrustumxOES,
@@ -7147,9 +7195,11 @@ struct opengl_funcs null_opengl_funcs =
         null_glGetUniformdv,
         null_glGetUniformfv,
         null_glGetUniformfvARB,
+        null_glGetUniformi64vARB,
         null_glGetUniformi64vNV,
         null_glGetUniformiv,
         null_glGetUniformivARB,
+        null_glGetUniformui64vARB,
         null_glGetUniformui64vNV,
         null_glGetUniformuiv,
         null_glGetUniformuivEXT,
@@ -7230,8 +7280,10 @@ struct opengl_funcs null_opengl_funcs =
         null_glGetnUniformdvARB,
         null_glGetnUniformfv,
         null_glGetnUniformfvARB,
+        null_glGetnUniformi64vARB,
         null_glGetnUniformiv,
         null_glGetnUniformivARB,
+        null_glGetnUniformui64vARB,
         null_glGetnUniformuiv,
         null_glGetnUniformuivARB,
         null_glGlobalAlphaFactorbSUN,
@@ -7400,6 +7452,7 @@ struct opengl_funcs null_opengl_funcs =
         null_glMatrixScalefEXT,
         null_glMatrixTranslatedEXT,
         null_glMatrixTranslatefEXT,
+        null_glMaxShaderCompilerThreadsARB,
         null_glMemoryBarrier,
         null_glMemoryBarrierByRegion,
         null_glMemoryBarrierEXT,
@@ -7602,6 +7655,7 @@ struct opengl_funcs null_opengl_funcs =
         null_glNamedFramebufferReadBuffer,
         null_glNamedFramebufferRenderbuffer,
         null_glNamedFramebufferRenderbufferEXT,
+        null_glNamedFramebufferSampleLocationsfvARB,
         null_glNamedFramebufferSampleLocationsfvNV,
         null_glNamedFramebufferTexture,
         null_glNamedFramebufferTexture1DEXT,
@@ -7726,6 +7780,7 @@ struct opengl_funcs null_opengl_funcs =
         null_glPopGroupMarkerEXT,
         null_glPresentFrameDualFillNV,
         null_glPresentFrameKeyedNV,
+        null_glPrimitiveBoundingBoxARB,
         null_glPrimitiveRestartIndex,
         null_glPrimitiveRestartIndexNV,
         null_glPrimitiveRestartNV,
@@ -7782,13 +7837,17 @@ struct opengl_funcs null_opengl_funcs =
         null_glProgramUniform1fv,
         null_glProgramUniform1fvEXT,
         null_glProgramUniform1i,
+        null_glProgramUniform1i64ARB,
         null_glProgramUniform1i64NV,
+        null_glProgramUniform1i64vARB,
         null_glProgramUniform1i64vNV,
         null_glProgramUniform1iEXT,
         null_glProgramUniform1iv,
         null_glProgramUniform1ivEXT,
         null_glProgramUniform1ui,
+        null_glProgramUniform1ui64ARB,
         null_glProgramUniform1ui64NV,
+        null_glProgramUniform1ui64vARB,
         null_glProgramUniform1ui64vNV,
         null_glProgramUniform1uiEXT,
         null_glProgramUniform1uiv,
@@ -7802,13 +7861,17 @@ struct opengl_funcs null_opengl_funcs =
         null_glProgramUniform2fv,
         null_glProgramUniform2fvEXT,
         null_glProgramUniform2i,
+        null_glProgramUniform2i64ARB,
         null_glProgramUniform2i64NV,
+        null_glProgramUniform2i64vARB,
         null_glProgramUniform2i64vNV,
         null_glProgramUniform2iEXT,
         null_glProgramUniform2iv,
         null_glProgramUniform2ivEXT,
         null_glProgramUniform2ui,
+        null_glProgramUniform2ui64ARB,
         null_glProgramUniform2ui64NV,
+        null_glProgramUniform2ui64vARB,
         null_glProgramUniform2ui64vNV,
         null_glProgramUniform2uiEXT,
         null_glProgramUniform2uiv,
@@ -7822,13 +7885,17 @@ struct opengl_funcs null_opengl_funcs =
         null_glProgramUniform3fv,
         null_glProgramUniform3fvEXT,
         null_glProgramUniform3i,
+        null_glProgramUniform3i64ARB,
         null_glProgramUniform3i64NV,
+        null_glProgramUniform3i64vARB,
         null_glProgramUniform3i64vNV,
         null_glProgramUniform3iEXT,
         null_glProgramUniform3iv,
         null_glProgramUniform3ivEXT,
         null_glProgramUniform3ui,
+        null_glProgramUniform3ui64ARB,
         null_glProgramUniform3ui64NV,
+        null_glProgramUniform3ui64vARB,
         null_glProgramUniform3ui64vNV,
         null_glProgramUniform3uiEXT,
         null_glProgramUniform3uiv,
@@ -7842,13 +7909,17 @@ struct opengl_funcs null_opengl_funcs =
         null_glProgramUniform4fv,
         null_glProgramUniform4fvEXT,
         null_glProgramUniform4i,
+        null_glProgramUniform4i64ARB,
         null_glProgramUniform4i64NV,
+        null_glProgramUniform4i64vARB,
         null_glProgramUniform4i64vNV,
         null_glProgramUniform4iEXT,
         null_glProgramUniform4iv,
         null_glProgramUniform4ivEXT,
         null_glProgramUniform4ui,
+        null_glProgramUniform4ui64ARB,
         null_glProgramUniform4ui64NV,
+        null_glProgramUniform4ui64vARB,
         null_glProgramUniform4ui64vNV,
         null_glProgramUniform4uiEXT,
         null_glProgramUniform4uiv,
@@ -7959,7 +8030,6 @@ struct opengl_funcs null_opengl_funcs =
         null_glRotatexOES,
         null_glSampleCoverage,
         null_glSampleCoverageARB,
-        null_glSampleCoverageOES,
         null_glSampleMapATI,
         null_glSampleMaskEXT,
         null_glSampleMaskIndexedNV,
@@ -8234,13 +8304,17 @@ struct opengl_funcs null_opengl_funcs =
         null_glUniform1fv,
         null_glUniform1fvARB,
         null_glUniform1i,
+        null_glUniform1i64ARB,
         null_glUniform1i64NV,
+        null_glUniform1i64vARB,
         null_glUniform1i64vNV,
         null_glUniform1iARB,
         null_glUniform1iv,
         null_glUniform1ivARB,
         null_glUniform1ui,
+        null_glUniform1ui64ARB,
         null_glUniform1ui64NV,
+        null_glUniform1ui64vARB,
         null_glUniform1ui64vNV,
         null_glUniform1uiEXT,
         null_glUniform1uiv,
@@ -8252,13 +8326,17 @@ struct opengl_funcs null_opengl_funcs =
         null_glUniform2fv,
         null_glUniform2fvARB,
         null_glUniform2i,
+        null_glUniform2i64ARB,
         null_glUniform2i64NV,
+        null_glUniform2i64vARB,
         null_glUniform2i64vNV,
         null_glUniform2iARB,
         null_glUniform2iv,
         null_glUniform2ivARB,
         null_glUniform2ui,
+        null_glUniform2ui64ARB,
         null_glUniform2ui64NV,
+        null_glUniform2ui64vARB,
         null_glUniform2ui64vNV,
         null_glUniform2uiEXT,
         null_glUniform2uiv,
@@ -8270,13 +8348,17 @@ struct opengl_funcs null_opengl_funcs =
         null_glUniform3fv,
         null_glUniform3fvARB,
         null_glUniform3i,
+        null_glUniform3i64ARB,
         null_glUniform3i64NV,
+        null_glUniform3i64vARB,
         null_glUniform3i64vNV,
         null_glUniform3iARB,
         null_glUniform3iv,
         null_glUniform3ivARB,
         null_glUniform3ui,
+        null_glUniform3ui64ARB,
         null_glUniform3ui64NV,
+        null_glUniform3ui64vARB,
         null_glUniform3ui64vNV,
         null_glUniform3uiEXT,
         null_glUniform3uiv,
@@ -8288,13 +8370,17 @@ struct opengl_funcs null_opengl_funcs =
         null_glUniform4fv,
         null_glUniform4fvARB,
         null_glUniform4i,
+        null_glUniform4i64ARB,
         null_glUniform4i64NV,
+        null_glUniform4i64vARB,
         null_glUniform4i64vNV,
         null_glUniform4iARB,
         null_glUniform4iv,
         null_glUniform4ivARB,
         null_glUniform4ui,
+        null_glUniform4ui64ARB,
         null_glUniform4ui64NV,
+        null_glUniform4ui64vARB,
         null_glUniform4ui64vNV,
         null_glUniform4uiEXT,
         null_glUniform4uiv,
diff --git a/dlls/opengl32/tests/opengl.c b/dlls/opengl32/tests/opengl.c
index e5e1507..2aa7bd8 100644
--- a/dlls/opengl32/tests/opengl.c
+++ b/dlls/opengl32/tests/opengl.c
@@ -25,8 +25,14 @@
 void WINAPI glClearColor(float red, float green, float blue, float alpha);
 void WINAPI glClear(unsigned int mask);
 #define GL_COLOR 0x1800
+#define GL_DONT_CARE 0x1100
+#define GL_TRUE 1
 typedef unsigned int GLenum;
 typedef int GLint;
+typedef int GLboolean;
+typedef int GLsizei;
+typedef unsigned int GLuint;
+typedef char GLchar;
 void WINAPI glCopyPixels(int x, int y, int width, int height, GLenum type);
 void WINAPI glFinish(void);
 #define GL_NO_ERROR 0x0
@@ -89,8 +95,19 @@ static HDC (WINAPI *pwglGetPbufferDCARB)(HPBUFFERARB);
 /* WGL_EXT_swap_control */
 static BOOL (WINAPI *pwglSwapIntervalEXT)(int interval);
 static int (WINAPI *pwglGetSwapIntervalEXT)(void);
-
+static void (WINAPI *pglDebugMessageControl)(GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled);
+static void (WINAPI *pglDebugMessageControlARB)(GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled);
+static void (WINAPI *pglDebugMessageControlAMD)(GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled);
+static void (WINAPI *pglDebugMessageCallback)(void * callback, void* userParam);
+static void (WINAPI *pglDebugMessageCallbackARB)(void * callback, void* userParam);
+static void (WINAPI *pglDebugMessageCallbackAMD)(void * callback, void* userParam);
+static void (WINAPI *pglDebugMessageInsert)(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const char *message);
+static void (WINAPI *pglDebugMessageInsertARB)(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const char *message);
+static void (WINAPI *pglDebugMessageInsertAMD)(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const char *message);
 static const char* wgl_extensions = NULL;
+#define GL_DEBUG_SOURCE_APPLICATION	0x824A
+#define GL_DEBUG_TYPE_OTHER		0x8251
+#define GL_DEBUG_SEVERITY_LOW		0x9148
 
 static void init_functions(void)
 {
@@ -122,6 +139,16 @@ static void init_functions(void)
     GET_PROC(wglSwapIntervalEXT)
     GET_PROC(wglGetSwapIntervalEXT)
 
+    GET_PROC(glDebugMessageCallback)
+    GET_PROC(glDebugMessageCallbackARB)
+    GET_PROC(glDebugMessageCallbackAMD)
+    GET_PROC(glDebugMessageControl)
+    GET_PROC(glDebugMessageControlARB)
+    GET_PROC(glDebugMessageControlAMD)
+    GET_PROC(glDebugMessageInsert)
+    GET_PROC(glDebugMessageInsertARB)
+    GET_PROC(glDebugMessageInsertAMD)
+
 #undef GET_PROC
 }
 
@@ -152,6 +179,31 @@ static BOOL gl_extension_supported(const char *extensions, const char *extension
     return FALSE;
 }
 
+static void WINAPI wgl_debug_message_callback(
+	GLenum source,GLenum type,GLuint id,GLenum severity,
+	GLsizei length,const GLchar *message,const void *userParam)
+{
+    trace("gldebugmessage: source=%d, type=%d, id=%d, severity=%d, length=%d, userparam=%p\n", source, type, id, severity, length, userParam);
+    trace("gldebugmessage: message=%s\n", message);
+}
+
+static void WINAPI wgl_debug_message_callback_arb(
+	GLenum source,GLenum type,GLuint id,GLenum severity,
+	GLsizei length,const GLchar *message,const void *userParam)
+{
+    trace("gldebugmessagearb: source=%d, type=%d, id=%d, severity=%d, length=%d, userparam=%p\n", source, type, id, severity, length, userParam);
+    trace("gldebugmessagearb: message=%s\n", message);
+}
+
+static void WINAPI wgl_debug_message_callback_amd(
+	GLenum source,GLenum type,GLuint id,GLenum severity,
+	GLsizei length,const GLchar *message,const void *userParam)
+{
+    trace("gldebugmessageamd: source=%d, type=%d, id=%d, severity=%d, length=%d, userparam=%p\n", source, type, id, severity, length, userParam);
+    trace("gldebugmessageamd: message=%s\n", message);
+}
+
+
 static void test_pbuffers(HDC hdc)
 {
     const int iAttribList[] = { WGL_DRAW_TO_PBUFFER_ARB, 1, /* Request pbuffer support */
@@ -1703,6 +1755,48 @@ START_TEST(opengl)
             return;
         }
 
+        if (pglDebugMessageCallback)
+        {
+            pglDebugMessageCallback(wgl_debug_message_callback, NULL);
+            pglDebugMessageControl(GL_DEBUG_SOURCE_APPLICATION, GL_DONT_CARE, GL_DONT_CARE, 0, NULL, GL_TRUE);
+            pglDebugMessageInsert(GL_DEBUG_SOURCE_APPLICATION, GL_DEBUG_TYPE_OTHER,
+                                  0x42424242, GL_DEBUG_SEVERITY_LOW,
+                                  strlen("Hello OpenGL")+1, "Hello OpenGL"
+            );
+        }
+        else
+        {
+            trace("no glDebugMessageCallback\n");
+        }
+
+        if (pglDebugMessageCallbackARB)
+        {
+            pglDebugMessageCallbackARB(wgl_debug_message_callback_arb, NULL);
+            pglDebugMessageControlARB(GL_DEBUG_SOURCE_APPLICATION, GL_DONT_CARE, GL_DONT_CARE, 0, NULL, GL_TRUE);
+            pglDebugMessageInsertARB(GL_DEBUG_SOURCE_APPLICATION, GL_DEBUG_TYPE_OTHER,
+                                  0x42424242, GL_DEBUG_SEVERITY_LOW,
+                                  strlen("Hello OpenGL")+1, "Hello OpenGL"
+            );
+        }
+        else
+        {
+            trace("no glDebugMessageCallbackARB\n");
+        }
+
+        if (pglDebugMessageCallbackAMD)
+        {
+            pglDebugMessageCallbackAMD(wgl_debug_message_callback_amd, NULL);
+            pglDebugMessageControlAMD(GL_DEBUG_SOURCE_APPLICATION, GL_DONT_CARE, GL_DONT_CARE, 0, NULL, GL_TRUE);
+            pglDebugMessageInsertAMD(GL_DEBUG_SOURCE_APPLICATION, GL_DEBUG_TYPE_OTHER,
+                                  0x42424242, GL_DEBUG_SEVERITY_LOW,
+                                  strlen("Hello OpenGL")+1, "Hello OpenGL"
+            );
+        }
+        else
+        {
+            trace("no glDebugMessageCallback\n");
+        }
+
         test_setpixelformat(hdc);
         test_destroy(hdc);
         test_sharelists(hdc);
diff --git a/dlls/opengl32/wgl.c b/dlls/opengl32/wgl.c
index 9482c75..688f22d 100644
--- a/dlls/opengl32/wgl.c
+++ b/dlls/opengl32/wgl.c
@@ -1906,6 +1906,58 @@ const GLubyte * WINAPI glGetString( GLenum name )
 }
 
 /***********************************************************************
+ *              glDebugMessageCallback* functions
+ * Needs WINAPI -> unix cdecl thunks, which we store in the TEB.
+ */
+static void wgl_debug_message_callback(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam)
+{
+  WIN_GLDEBUGPROC cb = NtCurrentTeb()->glDebugCallback;
+
+  if (!cb) return;
+  cb(source, type, id, severity, length, message, userParam);
+}
+
+void WINAPI glDebugMessageCallback(WIN_GLDEBUGPROC callback, const void* userParam ) {
+  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+  TRACE("(%p, %p)\n", callback, userParam );
+
+  NtCurrentTeb()->glDebugCallback = callback;
+  funcs->ext.p_glDebugMessageCallback( wgl_debug_message_callback, userParam );
+}
+
+static void wgl_debug_message_callback_amd(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam)
+{
+  WIN_GLDEBUGPROC cb = NtCurrentTeb()->glDebugCallbackAMD;
+
+  if (!cb) return;
+  cb(source, type, id, severity, length, message, userParam);
+}
+
+void WINAPI glDebugMessageCallbackAMD(WIN_GLDEBUGPROC callback, void* userParam ) {
+  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+  TRACE("(%p, %p)\n", callback, userParam );
+
+  NtCurrentTeb()->glDebugCallbackAMD = callback;
+  funcs->ext.p_glDebugMessageCallbackAMD( wgl_debug_message_callback_amd, userParam );
+}
+
+static void wgl_debug_message_callback_ARB(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam)
+{
+  WIN_GLDEBUGPROC cb = NtCurrentTeb()->glDebugCallbackARB;
+
+  if (!cb) return;
+  cb(source, type, id, severity, length, message, userParam);
+}
+
+void WINAPI glDebugMessageCallbackARB(WIN_GLDEBUGPROC callback, const void* userParam ) {
+  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+  TRACE("(%p, %p)\n", callback, userParam );
+
+  NtCurrentTeb()->glDebugCallbackARB = callback;
+  funcs->ext.p_glDebugMessageCallbackARB( wgl_debug_message_callback_ARB, userParam );
+}
+
+/***********************************************************************
  *           OpenGL initialisation routine
  */
 BOOL WINAPI DllMain( HINSTANCE hinst, DWORD reason, LPVOID reserved )
diff --git a/include/wine/wgl.h b/include/wine/wgl.h
index 23b4a5f..f325c1f 100644
--- a/include/wine/wgl.h
+++ b/include/wine/wgl.h
@@ -439,8 +439,10 @@ typedef void                   GLvoid;
 #define GL_COLOR                                                      0x1800
 #define GL_COLOR3_BIT_PGI                                             0x00010000
 #define GL_COLOR4_BIT_PGI                                             0x00020000
+#define GL_COLORBURN                                                  0x929A
 #define GL_COLORBURN_KHR                                              0x929A
 #define GL_COLORBURN_NV                                               0x929A
+#define GL_COLORDODGE                                                 0x9299
 #define GL_COLORDODGE_KHR                                             0x9299
 #define GL_COLORDODGE_NV                                              0x9299
 #define GL_COLOR_ALPHA_PAIRING_ATI                                    0x8975
@@ -485,12 +487,28 @@ typedef void                   GLvoid;
 #define GL_COLOR_ATTACHMENT15                                         0x8CEF
 #define GL_COLOR_ATTACHMENT15_EXT                                     0x8CEF
 #define GL_COLOR_ATTACHMENT15_NV                                      0x8CEF
+#define GL_COLOR_ATTACHMENT16                                         0x8CF0
+#define GL_COLOR_ATTACHMENT17                                         0x8CF1
+#define GL_COLOR_ATTACHMENT18                                         0x8CF2
+#define GL_COLOR_ATTACHMENT19                                         0x8CF3
 #define GL_COLOR_ATTACHMENT1_EXT                                      0x8CE1
 #define GL_COLOR_ATTACHMENT1_NV                                       0x8CE1
 #define GL_COLOR_ATTACHMENT2                                          0x8CE2
+#define GL_COLOR_ATTACHMENT20                                         0x8CF4
+#define GL_COLOR_ATTACHMENT21                                         0x8CF5
+#define GL_COLOR_ATTACHMENT22                                         0x8CF6
+#define GL_COLOR_ATTACHMENT23                                         0x8CF7
+#define GL_COLOR_ATTACHMENT24                                         0x8CF8
+#define GL_COLOR_ATTACHMENT25                                         0x8CF9
+#define GL_COLOR_ATTACHMENT26                                         0x8CFA
+#define GL_COLOR_ATTACHMENT27                                         0x8CFB
+#define GL_COLOR_ATTACHMENT28                                         0x8CFC
+#define GL_COLOR_ATTACHMENT29                                         0x8CFD
 #define GL_COLOR_ATTACHMENT2_EXT                                      0x8CE2
 #define GL_COLOR_ATTACHMENT2_NV                                       0x8CE2
 #define GL_COLOR_ATTACHMENT3                                          0x8CE3
+#define GL_COLOR_ATTACHMENT30                                         0x8CFE
+#define GL_COLOR_ATTACHMENT31                                         0x8CFF
 #define GL_COLOR_ATTACHMENT3_EXT                                      0x8CE3
 #define GL_COLOR_ATTACHMENT3_NV                                       0x8CE3
 #define GL_COLOR_ATTACHMENT4                                          0x8CE4
@@ -612,6 +630,7 @@ typedef void                   GLvoid;
 #define GL_COMPILE                                                    0x1300
 #define GL_COMPILE_AND_EXECUTE                                        0x1301
 #define GL_COMPILE_STATUS                                             0x8B81
+#define GL_COMPLETION_STATUS_ARB                                      0x91B1
 #define GL_COMPRESSED_ALPHA                                           0x84E9
 #define GL_COMPRESSED_ALPHA_ARB                                       0x84E9
 #define GL_COMPRESSED_INTENSITY                                       0x84EC
@@ -641,29 +660,43 @@ typedef void                   GLvoid;
 #define GL_COMPRESSED_RGBA8_ETC2_EAC                                  0x9278
 #define GL_COMPRESSED_RGBA8_ETC2_EAC_OES                              0x9278
 #define GL_COMPRESSED_RGBA_ARB                                        0x84EE
+#define GL_COMPRESSED_RGBA_ASTC_10x10                                 0x93BB
 #define GL_COMPRESSED_RGBA_ASTC_10x10_KHR                             0x93BB
+#define GL_COMPRESSED_RGBA_ASTC_10x5                                  0x93B8
 #define GL_COMPRESSED_RGBA_ASTC_10x5_KHR                              0x93B8
+#define GL_COMPRESSED_RGBA_ASTC_10x6                                  0x93B9
 #define GL_COMPRESSED_RGBA_ASTC_10x6_KHR                              0x93B9
+#define GL_COMPRESSED_RGBA_ASTC_10x8                                  0x93BA
 #define GL_COMPRESSED_RGBA_ASTC_10x8_KHR                              0x93BA
+#define GL_COMPRESSED_RGBA_ASTC_12x10                                 0x93BC
 #define GL_COMPRESSED_RGBA_ASTC_12x10_KHR                             0x93BC
+#define GL_COMPRESSED_RGBA_ASTC_12x12                                 0x93BD
 #define GL_COMPRESSED_RGBA_ASTC_12x12_KHR                             0x93BD
 #define GL_COMPRESSED_RGBA_ASTC_3x3x3_OES                             0x93C0
 #define GL_COMPRESSED_RGBA_ASTC_4x3x3_OES                             0x93C1
+#define GL_COMPRESSED_RGBA_ASTC_4x4                                   0x93B0
 #define GL_COMPRESSED_RGBA_ASTC_4x4_KHR                               0x93B0
 #define GL_COMPRESSED_RGBA_ASTC_4x4x3_OES                             0x93C2
 #define GL_COMPRESSED_RGBA_ASTC_4x4x4_OES                             0x93C3
+#define GL_COMPRESSED_RGBA_ASTC_5x4                                   0x93B1
 #define GL_COMPRESSED_RGBA_ASTC_5x4_KHR                               0x93B1
 #define GL_COMPRESSED_RGBA_ASTC_5x4x4_OES                             0x93C4
+#define GL_COMPRESSED_RGBA_ASTC_5x5                                   0x93B2
 #define GL_COMPRESSED_RGBA_ASTC_5x5_KHR                               0x93B2
 #define GL_COMPRESSED_RGBA_ASTC_5x5x4_OES                             0x93C5
 #define GL_COMPRESSED_RGBA_ASTC_5x5x5_OES                             0x93C6
+#define GL_COMPRESSED_RGBA_ASTC_6x5                                   0x93B3
 #define GL_COMPRESSED_RGBA_ASTC_6x5_KHR                               0x93B3
 #define GL_COMPRESSED_RGBA_ASTC_6x5x5_OES                             0x93C7
+#define GL_COMPRESSED_RGBA_ASTC_6x6                                   0x93B4
 #define GL_COMPRESSED_RGBA_ASTC_6x6_KHR                               0x93B4
 #define GL_COMPRESSED_RGBA_ASTC_6x6x5_OES                             0x93C8
 #define GL_COMPRESSED_RGBA_ASTC_6x6x6_OES                             0x93C9
+#define GL_COMPRESSED_RGBA_ASTC_8x5                                   0x93B5
 #define GL_COMPRESSED_RGBA_ASTC_8x5_KHR                               0x93B5
+#define GL_COMPRESSED_RGBA_ASTC_8x6                                   0x93B6
 #define GL_COMPRESSED_RGBA_ASTC_8x6_KHR                               0x93B6
+#define GL_COMPRESSED_RGBA_ASTC_8x8                                   0x93B7
 #define GL_COMPRESSED_RGBA_ASTC_8x8_KHR                               0x93B7
 #define GL_COMPRESSED_RGBA_BPTC_UNORM                                 0x8E8C
 #define GL_COMPRESSED_RGBA_BPTC_UNORM_ARB                             0x8E8C
@@ -702,29 +735,43 @@ typedef void                   GLvoid;
 #define GL_COMPRESSED_SLUMINANCE_ALPHA_EXT                            0x8C4B
 #define GL_COMPRESSED_SLUMINANCE_EXT                                  0x8C4A
 #define GL_COMPRESSED_SRGB                                            0x8C48
+#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10                         0x93DB
 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR                     0x93DB
+#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5                          0x93D8
 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR                      0x93D8
+#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6                          0x93D9
 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR                      0x93D9
+#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8                          0x93DA
 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR                      0x93DA
+#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10                         0x93DC
 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR                     0x93DC
+#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12                         0x93DD
 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR                     0x93DD
 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_3x3x3_OES                     0x93E0
 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x3x3_OES                     0x93E1
+#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4                           0x93D0
 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR                       0x93D0
 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x3_OES                     0x93E2
 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x4_OES                     0x93E3
+#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4                           0x93D1
 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR                       0x93D1
 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4x4_OES                     0x93E4
+#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5                           0x93D2
 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR                       0x93D2
 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x4_OES                     0x93E5
 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x5_OES                     0x93E6
+#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5                           0x93D3
 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR                       0x93D3
 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5x5_OES                     0x93E7
+#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6                           0x93D4
 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR                       0x93D4
 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x5_OES                     0x93E8
 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x6_OES                     0x93E9
+#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5                           0x93D5
 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR                       0x93D5
+#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6                           0x93D6
 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR                       0x93D6
+#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8                           0x93D7
 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR                       0x93D7
 #define GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC                           0x9279
 #define GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC_OES                       0x9279
@@ -769,6 +816,9 @@ typedef void                   GLvoid;
 #define GL_CONIC_CURVE_TO_NV                                          0x1A
 #define GL_CONJOINT_NV                                                0x9284
 #define GL_CONSERVATIVE_RASTERIZATION_NV                              0x9346
+#define GL_CONSERVATIVE_RASTER_DILATE_GRANULARITY_NV                  0x937B
+#define GL_CONSERVATIVE_RASTER_DILATE_NV                              0x9379
+#define GL_CONSERVATIVE_RASTER_DILATE_RANGE_NV                        0x937A
 #define GL_CONSERVE_MEMORY_HINT_PGI                                   0x1A1FD
 #define GL_CONSTANT                                                   0x8576
 #define GL_CONSTANT_ALPHA                                             0x8003
@@ -790,6 +840,7 @@ typedef void                   GLvoid;
 #define GL_CONTEXT_FLAG_DEBUG_BIT                                     0x00000002
 #define GL_CONTEXT_FLAG_DEBUG_BIT_KHR                                 0x00000002
 #define GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT                        0x00000001
+#define GL_CONTEXT_FLAG_NO_ERROR_BIT_KHR                              0x00000008
 #define GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT                             0x00000004
 #define GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT_ARB                         0x00000004
 #define GL_CONTEXT_LOST                                               0x0507
@@ -938,6 +989,7 @@ typedef void                   GLvoid;
 #define GL_CURRENT_VERTEX_WEIGHT_EXT                                  0x850B
 #define GL_CURRENT_WEIGHT_ARB                                         0x86A8
 #define GL_CW                                                         0x0900
+#define GL_DARKEN                                                     0x9297
 #define GL_DARKEN_KHR                                                 0x9297
 #define GL_DARKEN_NV                                                  0x9297
 #define GL_DATA_BUFFER_AMD                                            0x9151
@@ -1113,6 +1165,7 @@ typedef void                   GLvoid;
 #define GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS                            0x809C
 #define GL_DETAIL_TEXTURE_LEVEL_SGIS                                  0x809A
 #define GL_DETAIL_TEXTURE_MODE_SGIS                                   0x809B
+#define GL_DIFFERENCE                                                 0x929E
 #define GL_DIFFERENCE_KHR                                             0x929E
 #define GL_DIFFERENCE_NV                                              0x929E
 #define GL_DIFFUSE                                                    0x1201
@@ -1391,6 +1444,7 @@ typedef void                   GLvoid;
 #define GL_EVAL_VERTEX_ATTRIB7_NV                                     0x86CD
 #define GL_EVAL_VERTEX_ATTRIB8_NV                                     0x86CE
 #define GL_EVAL_VERTEX_ATTRIB9_NV                                     0x86CF
+#define GL_EXCLUSION                                                  0x92A0
 #define GL_EXCLUSION_KHR                                              0x92A0
 #define GL_EXCLUSION_NV                                               0x92A0
 #define GL_EXP                                                        0x0800
@@ -1630,6 +1684,7 @@ typedef void                   GLvoid;
 #define GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE                        0x8217
 #define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT              0x8CD4
 #define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_OES              0x8CD4
+#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_BASE_VIEW_INDEX_OVR         0x9632
 #define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE               0x8CD3
 #define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT           0x8CD3
 #define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_OES           0x8CD3
@@ -1638,6 +1693,7 @@ typedef void                   GLvoid;
 #define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL                       0x8CD2
 #define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT                   0x8CD2
 #define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_OES                   0x8CD2
+#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_NUM_VIEWS_OVR               0x9630
 #define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SAMPLES_EXT                 0x8D6C
 #define GL_FRAMEBUFFER_BARRIER_BIT                                    0x00000400
 #define GL_FRAMEBUFFER_BARRIER_BIT_EXT                                0x00000400
@@ -1688,9 +1744,11 @@ typedef void                   GLvoid;
 #define GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT                     0x8CDC
 #define GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_OES                     0x8CDC
 #define GL_FRAMEBUFFER_OES                                            0x8D40
+#define GL_FRAMEBUFFER_PROGRAMMABLE_SAMPLE_LOCATIONS_ARB              0x9342
 #define GL_FRAMEBUFFER_PROGRAMMABLE_SAMPLE_LOCATIONS_NV               0x9342
 #define GL_FRAMEBUFFER_RENDERABLE                                     0x8289
 #define GL_FRAMEBUFFER_RENDERABLE_LAYERED                             0x828A
+#define GL_FRAMEBUFFER_SAMPLE_LOCATION_PIXEL_GRID_ARB                 0x9343
 #define GL_FRAMEBUFFER_SAMPLE_LOCATION_PIXEL_GRID_NV                  0x9343
 #define GL_FRAMEBUFFER_SRGB                                           0x8DB9
 #define GL_FRAMEBUFFER_SRGB_CAPABLE_EXT                               0x8DBA
@@ -1793,6 +1851,8 @@ typedef void                   GLvoid;
 #define GL_GREEN_MIN_CLAMP_INGR                                       0x8561
 #define GL_GREEN_NV                                                   0x1904
 #define GL_GREEN_SCALE                                                0x0D18
+#define GL_GS_PROGRAM_BINARY_MTK                                      0x9641
+#define GL_GS_SHADER_BINARY_MTK                                       0x9640
 #define GL_GUILTY_CONTEXT_RESET                                       0x8253
 #define GL_GUILTY_CONTEXT_RESET_ARB                                   0x8253
 #define GL_GUILTY_CONTEXT_RESET_EXT                                   0x8253
@@ -1805,6 +1865,7 @@ typedef void                   GLvoid;
 #define GL_HALF_FLOAT_ARB                                             0x140B
 #define GL_HALF_FLOAT_NV                                              0x140B
 #define GL_HALF_FLOAT_OES                                             0x8D61
+#define GL_HARDLIGHT                                                  0x929B
 #define GL_HARDLIGHT_KHR                                              0x929B
 #define GL_HARDLIGHT_NV                                               0x929B
 #define GL_HARDMIX_NV                                                 0x92A9
@@ -1835,12 +1896,16 @@ typedef void                   GLvoid;
 #define GL_HI_BIAS_NV                                                 0x8714
 #define GL_HI_SCALE_NV                                                0x870E
 #define GL_HORIZONTAL_LINE_TO_NV                                      0x06
+#define GL_HSL_COLOR                                                  0x92AF
 #define GL_HSL_COLOR_KHR                                              0x92AF
 #define GL_HSL_COLOR_NV                                               0x92AF
+#define GL_HSL_HUE                                                    0x92AD
 #define GL_HSL_HUE_KHR                                                0x92AD
 #define GL_HSL_HUE_NV                                                 0x92AD
+#define GL_HSL_LUMINOSITY                                             0x92B0
 #define GL_HSL_LUMINOSITY_KHR                                         0x92B0
 #define GL_HSL_LUMINOSITY_NV                                          0x92B0
+#define GL_HSL_SATURATION                                             0x92AE
 #define GL_HSL_SATURATION_KHR                                         0x92AE
 #define GL_HSL_SATURATION_NV                                          0x92AE
 #define GL_IDENTITY_NV                                                0x862A
@@ -1960,9 +2025,13 @@ typedef void                   GLvoid;
 #define GL_INT16_VEC2_NV                                              0x8FE5
 #define GL_INT16_VEC3_NV                                              0x8FE6
 #define GL_INT16_VEC4_NV                                              0x8FE7
+#define GL_INT64_ARB                                                  0x140E
 #define GL_INT64_NV                                                   0x140E
+#define GL_INT64_VEC2_ARB                                             0x8FE9
 #define GL_INT64_VEC2_NV                                              0x8FE9
+#define GL_INT64_VEC3_ARB                                             0x8FEA
 #define GL_INT64_VEC3_NV                                              0x8FEA
+#define GL_INT64_VEC4_ARB                                             0x8FEB
 #define GL_INT64_VEC4_NV                                              0x8FEB
 #define GL_INT8_NV                                                    0x8FE0
 #define GL_INT8_VEC2_NV                                               0x8FE1
@@ -2131,6 +2200,7 @@ typedef void                   GLvoid;
 #define GL_LIGHT5                                                     0x4005
 #define GL_LIGHT6                                                     0x4006
 #define GL_LIGHT7                                                     0x4007
+#define GL_LIGHTEN                                                    0x9298
 #define GL_LIGHTEN_KHR                                                0x9298
 #define GL_LIGHTEN_NV                                                 0x9298
 #define GL_LIGHTING                                                   0x0B50
@@ -2198,6 +2268,7 @@ typedef void                   GLvoid;
 #define GL_LOCATION                                                   0x930E
 #define GL_LOCATION_COMPONENT                                         0x934A
 #define GL_LOCATION_INDEX                                             0x930F
+#define GL_LOCATION_INDEX_EXT                                         0x930F
 #define GL_LOGIC_OP                                                   0x0BF1
 #define GL_LOGIC_OP_MODE                                              0x0BF0
 #define GL_LOSE_CONTEXT_ON_RESET                                      0x8252
@@ -2518,6 +2589,7 @@ typedef void                   GLvoid;
 #define GL_MAX_DRAW_BUFFERS_EXT                                       0x8824
 #define GL_MAX_DRAW_BUFFERS_NV                                        0x8824
 #define GL_MAX_DUAL_SOURCE_DRAW_BUFFERS                               0x88FC
+#define GL_MAX_DUAL_SOURCE_DRAW_BUFFERS_EXT                           0x88FC
 #define GL_MAX_ELEMENTS_INDICES                                       0x80E9
 #define GL_MAX_ELEMENTS_INDICES_EXT                                   0x80E9
 #define GL_MAX_ELEMENTS_VERTICES                                      0x80E8
@@ -2689,6 +2761,7 @@ typedef void                   GLvoid;
 #define GL_MAX_SERVER_WAIT_TIMEOUT                                    0x9111
 #define GL_MAX_SERVER_WAIT_TIMEOUT_APPLE                              0x9111
 #define GL_MAX_SHADER_BUFFER_ADDRESS_NV                               0x8F35
+#define GL_MAX_SHADER_COMPILER_THREADS_ARB                            0x91B0
 #define GL_MAX_SHADER_PIXEL_LOCAL_STORAGE_FAST_SIZE_EXT               0x8F63
 #define GL_MAX_SHADER_PIXEL_LOCAL_STORAGE_SIZE_EXT                    0x8F67
 #define GL_MAX_SHADER_STORAGE_BLOCK_SIZE                              0x90DE
@@ -2840,6 +2913,7 @@ typedef void                   GLvoid;
 #define GL_MAX_VIEWPORTS                                              0x825B
 #define GL_MAX_VIEWPORTS_NV                                           0x825B
 #define GL_MAX_VIEWPORT_DIMS                                          0x0D3A
+#define GL_MAX_VIEWS_OVR                                              0x9631
 #define GL_MAX_WIDTH                                                  0x827E
 #define GL_MEDIUM_FLOAT                                               0x8DF1
 #define GL_MEDIUM_INT                                                 0x8DF4
@@ -2937,6 +3011,7 @@ typedef void                   GLvoid;
 #define GL_MOVE_TO_RESETS_NV                                          0x90B5
 #define GL_MOV_ATI                                                    0x8961
 #define GL_MULT                                                       0x0103
+#define GL_MULTIPLY                                                   0x9294
 #define GL_MULTIPLY_KHR                                               0x9294
 #define GL_MULTIPLY_NV                                                0x9294
 #define GL_MULTISAMPLE                                                0x809D
@@ -2958,6 +3033,10 @@ typedef void                   GLvoid;
 #define GL_MULTISAMPLE_COVERAGE_MODES_NV                              0x8E12
 #define GL_MULTISAMPLE_EXT                                            0x809D
 #define GL_MULTISAMPLE_FILTER_HINT_NV                                 0x8534
+#define GL_MULTISAMPLE_LINE_WIDTH_GRANULARITY                         0x9382
+#define GL_MULTISAMPLE_LINE_WIDTH_GRANULARITY_ARB                     0x9382
+#define GL_MULTISAMPLE_LINE_WIDTH_RANGE                               0x9381
+#define GL_MULTISAMPLE_LINE_WIDTH_RANGE_ARB                           0x9381
 #define GL_MULTISAMPLE_RASTERIZATION_ALLOWED_EXT                      0x932B
 #define GL_MULTISAMPLE_SGIS                                           0x809D
 #define GL_MULTIVIEW_EXT                                              0x90F1
@@ -3101,7 +3180,9 @@ typedef void                   GLvoid;
 #define GL_ONE_MINUS_DST_ALPHA                                        0x0305
 #define GL_ONE_MINUS_DST_COLOR                                        0x0307
 #define GL_ONE_MINUS_SRC1_ALPHA                                       0x88FB
+#define GL_ONE_MINUS_SRC1_ALPHA_EXT                                   0x88FB
 #define GL_ONE_MINUS_SRC1_COLOR                                       0x88FA
+#define GL_ONE_MINUS_SRC1_COLOR_EXT                                   0x88FA
 #define GL_ONE_MINUS_SRC_ALPHA                                        0x0303
 #define GL_ONE_MINUS_SRC_COLOR                                        0x0301
 #define GL_OPERAND0_ALPHA                                             0x8598
@@ -3189,6 +3270,7 @@ typedef void                   GLvoid;
 #define GL_OUTPUT_TEXTURE_COORD9_EXT                                  0x87A6
 #define GL_OUTPUT_VERTEX_EXT                                          0x879A
 #define GL_OUT_OF_MEMORY                                              0x0505
+#define GL_OVERLAY                                                    0x9296
 #define GL_OVERLAY_KHR                                                0x9296
 #define GL_OVERLAY_NV                                                 0x9296
 #define GL_PACK_ALIGNMENT                                             0x0D05
@@ -3517,6 +3599,8 @@ typedef void                   GLvoid;
 #define GL_PRIMITIVES_GENERATED_NV                                    0x8C87
 #define GL_PRIMITIVES_GENERATED_OES                                   0x8C87
 #define GL_PRIMITIVES_SUBMITTED_ARB                                   0x82EF
+#define GL_PRIMITIVE_BOUNDING_BOX                                     0x92BE
+#define GL_PRIMITIVE_BOUNDING_BOX_ARB                                 0x92BE
 #define GL_PRIMITIVE_BOUNDING_BOX_EXT                                 0x92BE
 #define GL_PRIMITIVE_BOUNDING_BOX_OES                                 0x92BE
 #define GL_PRIMITIVE_ID_NV                                            0x8C7C
@@ -3528,7 +3612,9 @@ typedef void                   GLvoid;
 #define GL_PRIMITIVE_RESTART_INDEX_NV                                 0x8559
 #define GL_PRIMITIVE_RESTART_NV                                       0x8558
 #define GL_PROGRAM                                                    0x82E2
+#define GL_PROGRAMMABLE_SAMPLE_LOCATION_ARB                           0x9341
 #define GL_PROGRAMMABLE_SAMPLE_LOCATION_NV                            0x9341
+#define GL_PROGRAMMABLE_SAMPLE_LOCATION_TABLE_SIZE_ARB                0x9340
 #define GL_PROGRAMMABLE_SAMPLE_LOCATION_TABLE_SIZE_NV                 0x9340
 #define GL_PROGRAM_ADDRESS_REGISTERS_ARB                              0x88B0
 #define GL_PROGRAM_ALU_INSTRUCTIONS_ARB                               0x8805
@@ -4127,9 +4213,13 @@ typedef void                   GLvoid;
 #define GL_SAMPLE_COVERAGE_INVERT_ARB                                 0x80AB
 #define GL_SAMPLE_COVERAGE_VALUE                                      0x80AA
 #define GL_SAMPLE_COVERAGE_VALUE_ARB                                  0x80AA
+#define GL_SAMPLE_LOCATION_ARB                                        0x8E50
 #define GL_SAMPLE_LOCATION_NV                                         0x8E50
+#define GL_SAMPLE_LOCATION_PIXEL_GRID_HEIGHT_ARB                      0x933F
 #define GL_SAMPLE_LOCATION_PIXEL_GRID_HEIGHT_NV                       0x933F
+#define GL_SAMPLE_LOCATION_PIXEL_GRID_WIDTH_ARB                       0x933E
 #define GL_SAMPLE_LOCATION_PIXEL_GRID_WIDTH_NV                        0x933E
+#define GL_SAMPLE_LOCATION_SUBPIXEL_BITS_ARB                          0x933D
 #define GL_SAMPLE_LOCATION_SUBPIXEL_BITS_NV                           0x933D
 #define GL_SAMPLE_MASK                                                0x8E51
 #define GL_SAMPLE_MASK_EXT                                            0x80A0
@@ -4160,6 +4250,7 @@ typedef void                   GLvoid;
 #define GL_SCISSOR_BOX                                                0x0C10
 #define GL_SCISSOR_COMMAND_NV                                         0x0011
 #define GL_SCISSOR_TEST                                               0x0C11
+#define GL_SCREEN                                                     0x9295
 #define GL_SCREEN_COORDINATES_REND                                    0x8490
 #define GL_SCREEN_KHR                                                 0x9295
 #define GL_SCREEN_NV                                                  0x9295
@@ -4294,6 +4385,7 @@ typedef void                   GLvoid;
 #define GL_SMOOTH_POINT_SIZE_RANGE                                    0x0B12
 #define GL_SMOOTH_QUADRATIC_CURVE_TO_NV                               0x0E
 #define GL_SM_COUNT_NV                                                0x933B
+#define GL_SOFTLIGHT                                                  0x929C
 #define GL_SOFTLIGHT_KHR                                              0x929C
 #define GL_SOFTLIGHT_NV                                               0x929C
 #define GL_SOURCE0_ALPHA                                              0x8588
@@ -4340,12 +4432,15 @@ typedef void                   GLvoid;
 #define GL_SRC0_ALPHA                                                 0x8588
 #define GL_SRC0_RGB                                                   0x8580
 #define GL_SRC1_ALPHA                                                 0x8589
+#define GL_SRC1_ALPHA_EXT                                             0x8589
 #define GL_SRC1_COLOR                                                 0x88F9
+#define GL_SRC1_COLOR_EXT                                             0x88F9
 #define GL_SRC1_RGB                                                   0x8581
 #define GL_SRC2_ALPHA                                                 0x858A
 #define GL_SRC2_RGB                                                   0x8582
 #define GL_SRC_ALPHA                                                  0x0302
 #define GL_SRC_ALPHA_SATURATE                                         0x0308
+#define GL_SRC_ALPHA_SATURATE_EXT                                     0x0308
 #define GL_SRC_ATOP_NV                                                0x928E
 #define GL_SRC_COLOR                                                  0x0300
 #define GL_SRC_IN_NV                                                  0x928A
@@ -4892,6 +4987,7 @@ typedef void                   GLvoid;
 #define GL_TEXTURE_RECTANGLE                                          0x84F5
 #define GL_TEXTURE_RECTANGLE_ARB                                      0x84F5
 #define GL_TEXTURE_RECTANGLE_NV                                       0x84F5
+#define GL_TEXTURE_REDUCTION_MODE_ARB                                 0x9366
 #define GL_TEXTURE_RED_SIZE                                           0x805C
 #define GL_TEXTURE_RED_SIZE_EXT                                       0x805C
 #define GL_TEXTURE_RED_TYPE                                           0x8C10
@@ -5143,8 +5239,11 @@ typedef void                   GLvoid;
 #define GL_UNSIGNED_INT64_AMD                                         0x8BC2
 #define GL_UNSIGNED_INT64_ARB                                         0x140F
 #define GL_UNSIGNED_INT64_NV                                          0x140F
+#define GL_UNSIGNED_INT64_VEC2_ARB                                    0x8FF5
 #define GL_UNSIGNED_INT64_VEC2_NV                                     0x8FF5
+#define GL_UNSIGNED_INT64_VEC3_ARB                                    0x8FF6
 #define GL_UNSIGNED_INT64_VEC3_NV                                     0x8FF6
+#define GL_UNSIGNED_INT64_VEC4_ARB                                    0x8FF7
 #define GL_UNSIGNED_INT64_VEC4_NV                                     0x8FF7
 #define GL_UNSIGNED_INT8_NV                                           0x8FEC
 #define GL_UNSIGNED_INT8_VEC2_NV                                      0x8FED
@@ -5495,6 +5594,7 @@ typedef void                   GLvoid;
 #define GL_WAIT_FAILED_APPLE                                          0x911D
 #define GL_WARPS_PER_SM_NV                                            0x933A
 #define GL_WARP_SIZE_NV                                               0x9339
+#define GL_WEIGHTED_AVERAGE_ARB                                       0x9367
 #define GL_WEIGHT_ARRAY_ARB                                           0x86AD
 #define GL_WEIGHT_ARRAY_BUFFER_BINDING                                0x889E
 #define GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB                            0x889E
diff --git a/include/wine/wgl_driver.h b/include/wine/wgl_driver.h
index c52185d..d4363f8 100644
--- a/include/wine/wgl_driver.h
+++ b/include/wine/wgl_driver.h
@@ -7,7 +7,7 @@
 #define WINE_GLAPI
 #endif
 
-#define WINE_WGL_DRIVER_VERSION 13
+#define WINE_WGL_DRIVER_VERSION 17
 
 struct wgl_context;
 struct wgl_pbuffer;
@@ -381,6 +381,7 @@ struct opengl_funcs
         void       (WINE_GLAPI *p_glAlphaFragmentOp2ATI)(GLenum,GLuint,GLuint,GLuint,GLuint,GLuint,GLuint,GLuint,GLuint);
         void       (WINE_GLAPI *p_glAlphaFragmentOp3ATI)(GLenum,GLuint,GLuint,GLuint,GLuint,GLuint,GLuint,GLuint,GLuint,GLuint,GLuint,GLuint);
         void       (WINE_GLAPI *p_glAlphaFuncxOES)(GLenum,GLfixed);
+        void       (WINE_GLAPI *p_glApplyFramebufferAttachmentCMAAINTEL)(void);
         void       (WINE_GLAPI *p_glApplyTextureEXT)(GLenum);
         GLboolean  (WINE_GLAPI *p_glAreProgramsResidentNV)(GLsizei,const GLuint*,GLboolean*);
         GLboolean  (WINE_GLAPI *p_glAreTexturesResidentEXT)(GLsizei,const GLuint*,GLboolean*);
@@ -617,6 +618,7 @@ struct opengl_funcs
         void       (WINE_GLAPI *p_glCompressedTextureSubImage2DEXT)(GLuint,GLenum,GLint,GLint,GLint,GLsizei,GLsizei,GLenum,GLsizei,const void*);
         void       (WINE_GLAPI *p_glCompressedTextureSubImage3D)(GLuint,GLint,GLint,GLint,GLint,GLsizei,GLsizei,GLsizei,GLenum,GLsizei,const void*);
         void       (WINE_GLAPI *p_glCompressedTextureSubImage3DEXT)(GLuint,GLenum,GLint,GLint,GLint,GLint,GLsizei,GLsizei,GLsizei,GLenum,GLsizei,const void*);
+        void       (WINE_GLAPI *p_glConservativeRasterParameterfNV)(GLenum,GLfloat);
         void       (WINE_GLAPI *p_glConvolutionFilter1D)(GLenum,GLenum,GLsizei,GLenum,GLenum,const void*);
         void       (WINE_GLAPI *p_glConvolutionFilter1DEXT)(GLenum,GLenum,GLsizei,GLenum,GLenum,const void*);
         void       (WINE_GLAPI *p_glConvolutionFilter2D)(GLenum,GLenum,GLsizei,GLsizei,GLenum,GLenum,const void*);
@@ -836,6 +838,7 @@ struct opengl_funcs
         void       (WINE_GLAPI *p_glEvalCoord2xOES)(GLfixed,GLfixed);
         void       (WINE_GLAPI *p_glEvalCoord2xvOES)(const GLfixed*);
         void       (WINE_GLAPI *p_glEvalMapsNV)(GLenum,GLenum);
+        void       (WINE_GLAPI *p_glEvaluateDepthValuesARB)(void);
         void       (WINE_GLAPI *p_glExecuteProgramNV)(GLenum,GLuint,const GLfloat*);
         void       (WINE_GLAPI *p_glExtractComponentEXT)(GLuint,GLuint,GLuint);
         void       (WINE_GLAPI *p_glFeedbackBufferxOES)(GLsizei,GLenum,const GLfixed*);
@@ -894,6 +897,7 @@ struct opengl_funcs
         void       (WINE_GLAPI *p_glFramebufferReadBufferEXT)(GLuint,GLenum);
         void       (WINE_GLAPI *p_glFramebufferRenderbuffer)(GLenum,GLenum,GLenum,GLuint);
         void       (WINE_GLAPI *p_glFramebufferRenderbufferEXT)(GLenum,GLenum,GLenum,GLuint);
+        void       (WINE_GLAPI *p_glFramebufferSampleLocationsfvARB)(GLenum,GLuint,GLsizei,const GLfloat*);
         void       (WINE_GLAPI *p_glFramebufferSampleLocationsfvNV)(GLenum,GLuint,GLsizei,const GLfloat*);
         void       (WINE_GLAPI *p_glFramebufferTexture)(GLenum,GLenum,GLuint,GLint);
         void       (WINE_GLAPI *p_glFramebufferTexture1D)(GLenum,GLenum,GLenum,GLuint,GLint);
@@ -909,6 +913,7 @@ struct opengl_funcs
         void       (WINE_GLAPI *p_glFramebufferTextureLayer)(GLenum,GLenum,GLuint,GLint,GLint);
         void       (WINE_GLAPI *p_glFramebufferTextureLayerARB)(GLenum,GLenum,GLuint,GLint,GLint);
         void       (WINE_GLAPI *p_glFramebufferTextureLayerEXT)(GLenum,GLenum,GLuint,GLint,GLint);
+        void       (WINE_GLAPI *p_glFramebufferTextureMultiviewOVR)(GLenum,GLenum,GLuint,GLint,GLint,GLsizei);
         void       (WINE_GLAPI *p_glFreeObjectBufferATI)(GLuint);
         void       (WINE_GLAPI *p_glFrustumfOES)(GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat);
         void       (WINE_GLAPI *p_glFrustumxOES)(GLfixed,GLfixed,GLfixed,GLfixed,GLfixed,GLfixed);
@@ -1268,9 +1273,11 @@ struct opengl_funcs
         void       (WINE_GLAPI *p_glGetUniformdv)(GLuint,GLint,GLdouble*);
         void       (WINE_GLAPI *p_glGetUniformfv)(GLuint,GLint,GLfloat*);
         void       (WINE_GLAPI *p_glGetUniformfvARB)(GLhandleARB,GLint,GLfloat*);
+        void       (WINE_GLAPI *p_glGetUniformi64vARB)(GLuint,GLint,GLint64*);
         void       (WINE_GLAPI *p_glGetUniformi64vNV)(GLuint,GLint,GLint64EXT*);
         void       (WINE_GLAPI *p_glGetUniformiv)(GLuint,GLint,GLint*);
         void       (WINE_GLAPI *p_glGetUniformivARB)(GLhandleARB,GLint,GLint*);
+        void       (WINE_GLAPI *p_glGetUniformui64vARB)(GLuint,GLint,GLuint64*);
         void       (WINE_GLAPI *p_glGetUniformui64vNV)(GLuint,GLint,GLuint64EXT*);
         void       (WINE_GLAPI *p_glGetUniformuiv)(GLuint,GLint,GLuint*);
         void       (WINE_GLAPI *p_glGetUniformuivEXT)(GLuint,GLint,GLuint*);
@@ -1351,8 +1358,10 @@ struct opengl_funcs
         void       (WINE_GLAPI *p_glGetnUniformdvARB)(GLuint,GLint,GLsizei,GLdouble*);
         void       (WINE_GLAPI *p_glGetnUniformfv)(GLuint,GLint,GLsizei,GLfloat*);
         void       (WINE_GLAPI *p_glGetnUniformfvARB)(GLuint,GLint,GLsizei,GLfloat*);
+        void       (WINE_GLAPI *p_glGetnUniformi64vARB)(GLuint,GLint,GLsizei,GLint64*);
         void       (WINE_GLAPI *p_glGetnUniformiv)(GLuint,GLint,GLsizei,GLint*);
         void       (WINE_GLAPI *p_glGetnUniformivARB)(GLuint,GLint,GLsizei,GLint*);
+        void       (WINE_GLAPI *p_glGetnUniformui64vARB)(GLuint,GLint,GLsizei,GLuint64*);
         void       (WINE_GLAPI *p_glGetnUniformuiv)(GLuint,GLint,GLsizei,GLuint*);
         void       (WINE_GLAPI *p_glGetnUniformuivARB)(GLuint,GLint,GLsizei,GLuint*);
         void       (WINE_GLAPI *p_glGlobalAlphaFactorbSUN)(GLbyte);
@@ -1521,6 +1530,7 @@ struct opengl_funcs
         void       (WINE_GLAPI *p_glMatrixScalefEXT)(GLenum,GLfloat,GLfloat,GLfloat);
         void       (WINE_GLAPI *p_glMatrixTranslatedEXT)(GLenum,GLdouble,GLdouble,GLdouble);
         void       (WINE_GLAPI *p_glMatrixTranslatefEXT)(GLenum,GLfloat,GLfloat,GLfloat);
+        void       (WINE_GLAPI *p_glMaxShaderCompilerThreadsARB)(GLuint);
         void       (WINE_GLAPI *p_glMemoryBarrier)(GLbitfield);
         void       (WINE_GLAPI *p_glMemoryBarrierByRegion)(GLbitfield);
         void       (WINE_GLAPI *p_glMemoryBarrierEXT)(GLbitfield);
@@ -1723,6 +1733,7 @@ struct opengl_funcs
         void       (WINE_GLAPI *p_glNamedFramebufferReadBuffer)(GLuint,GLenum);
         void       (WINE_GLAPI *p_glNamedFramebufferRenderbuffer)(GLuint,GLenum,GLenum,GLuint);
         void       (WINE_GLAPI *p_glNamedFramebufferRenderbufferEXT)(GLuint,GLenum,GLenum,GLuint);
+        void       (WINE_GLAPI *p_glNamedFramebufferSampleLocationsfvARB)(GLuint,GLuint,GLsizei,const GLfloat*);
         void       (WINE_GLAPI *p_glNamedFramebufferSampleLocationsfvNV)(GLuint,GLuint,GLsizei,const GLfloat*);
         void       (WINE_GLAPI *p_glNamedFramebufferTexture)(GLuint,GLenum,GLuint,GLint);
         void       (WINE_GLAPI *p_glNamedFramebufferTexture1DEXT)(GLuint,GLenum,GLenum,GLuint,GLint);
@@ -1847,6 +1858,7 @@ struct opengl_funcs
         void       (WINE_GLAPI *p_glPopGroupMarkerEXT)(void);
         void       (WINE_GLAPI *p_glPresentFrameDualFillNV)(GLuint,GLuint64EXT,GLuint,GLuint,GLenum,GLenum,GLuint,GLenum,GLuint,GLenum,GLuint,GLenum,GLuint);
         void       (WINE_GLAPI *p_glPresentFrameKeyedNV)(GLuint,GLuint64EXT,GLuint,GLuint,GLenum,GLenum,GLuint,GLuint,GLenum,GLuint,GLuint);
+        void       (WINE_GLAPI *p_glPrimitiveBoundingBoxARB)(GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat);
         void       (WINE_GLAPI *p_glPrimitiveRestartIndex)(GLuint);
         void       (WINE_GLAPI *p_glPrimitiveRestartIndexNV)(GLuint);
         void       (WINE_GLAPI *p_glPrimitiveRestartNV)(void);
@@ -1903,13 +1915,17 @@ struct opengl_funcs
         void       (WINE_GLAPI *p_glProgramUniform1fv)(GLuint,GLint,GLsizei,const GLfloat*);
         void       (WINE_GLAPI *p_glProgramUniform1fvEXT)(GLuint,GLint,GLsizei,const GLfloat*);
         void       (WINE_GLAPI *p_glProgramUniform1i)(GLuint,GLint,GLint);
+        void       (WINE_GLAPI *p_glProgramUniform1i64ARB)(GLuint,GLint,GLint64);
         void       (WINE_GLAPI *p_glProgramUniform1i64NV)(GLuint,GLint,GLint64EXT);
+        void       (WINE_GLAPI *p_glProgramUniform1i64vARB)(GLuint,GLint,GLsizei,const GLint64*);
         void       (WINE_GLAPI *p_glProgramUniform1i64vNV)(GLuint,GLint,GLsizei,const GLint64EXT*);
         void       (WINE_GLAPI *p_glProgramUniform1iEXT)(GLuint,GLint,GLint);
         void       (WINE_GLAPI *p_glProgramUniform1iv)(GLuint,GLint,GLsizei,const GLint*);
         void       (WINE_GLAPI *p_glProgramUniform1ivEXT)(GLuint,GLint,GLsizei,const GLint*);
         void       (WINE_GLAPI *p_glProgramUniform1ui)(GLuint,GLint,GLuint);
+        void       (WINE_GLAPI *p_glProgramUniform1ui64ARB)(GLuint,GLint,GLuint64);
         void       (WINE_GLAPI *p_glProgramUniform1ui64NV)(GLuint,GLint,GLuint64EXT);
+        void       (WINE_GLAPI *p_glProgramUniform1ui64vARB)(GLuint,GLint,GLsizei,const GLuint64*);
         void       (WINE_GLAPI *p_glProgramUniform1ui64vNV)(GLuint,GLint,GLsizei,const GLuint64EXT*);
         void       (WINE_GLAPI *p_glProgramUniform1uiEXT)(GLuint,GLint,GLuint);
         void       (WINE_GLAPI *p_glProgramUniform1uiv)(GLuint,GLint,GLsizei,const GLuint*);
@@ -1923,13 +1939,17 @@ struct opengl_funcs
         void       (WINE_GLAPI *p_glProgramUniform2fv)(GLuint,GLint,GLsizei,const GLfloat*);
         void       (WINE_GLAPI *p_glProgramUniform2fvEXT)(GLuint,GLint,GLsizei,const GLfloat*);
         void       (WINE_GLAPI *p_glProgramUniform2i)(GLuint,GLint,GLint,GLint);
+        void       (WINE_GLAPI *p_glProgramUniform2i64ARB)(GLuint,GLint,GLint64,GLint64);
         void       (WINE_GLAPI *p_glProgramUniform2i64NV)(GLuint,GLint,GLint64EXT,GLint64EXT);
+        void       (WINE_GLAPI *p_glProgramUniform2i64vARB)(GLuint,GLint,GLsizei,const GLint64*);
         void       (WINE_GLAPI *p_glProgramUniform2i64vNV)(GLuint,GLint,GLsizei,const GLint64EXT*);
         void       (WINE_GLAPI *p_glProgramUniform2iEXT)(GLuint,GLint,GLint,GLint);
         void       (WINE_GLAPI *p_glProgramUniform2iv)(GLuint,GLint,GLsizei,const GLint*);
         void       (WINE_GLAPI *p_glProgramUniform2ivEXT)(GLuint,GLint,GLsizei,const GLint*);
         void       (WINE_GLAPI *p_glProgramUniform2ui)(GLuint,GLint,GLuint,GLuint);
+        void       (WINE_GLAPI *p_glProgramUniform2ui64ARB)(GLuint,GLint,GLuint64,GLuint64);
         void       (WINE_GLAPI *p_glProgramUniform2ui64NV)(GLuint,GLint,GLuint64EXT,GLuint64EXT);
+        void       (WINE_GLAPI *p_glProgramUniform2ui64vARB)(GLuint,GLint,GLsizei,const GLuint64*);
         void       (WINE_GLAPI *p_glProgramUniform2ui64vNV)(GLuint,GLint,GLsizei,const GLuint64EXT*);
         void       (WINE_GLAPI *p_glProgramUniform2uiEXT)(GLuint,GLint,GLuint,GLuint);
         void       (WINE_GLAPI *p_glProgramUniform2uiv)(GLuint,GLint,GLsizei,const GLuint*);
@@ -1943,13 +1963,17 @@ struct opengl_funcs
         void       (WINE_GLAPI *p_glProgramUniform3fv)(GLuint,GLint,GLsizei,const GLfloat*);
         void       (WINE_GLAPI *p_glProgramUniform3fvEXT)(GLuint,GLint,GLsizei,const GLfloat*);
         void       (WINE_GLAPI *p_glProgramUniform3i)(GLuint,GLint,GLint,GLint,GLint);
+        void       (WINE_GLAPI *p_glProgramUniform3i64ARB)(GLuint,GLint,GLint64,GLint64,GLint64);
         void       (WINE_GLAPI *p_glProgramUniform3i64NV)(GLuint,GLint,GLint64EXT,GLint64EXT,GLint64EXT);
+        void       (WINE_GLAPI *p_glProgramUniform3i64vARB)(GLuint,GLint,GLsizei,const GLint64*);
         void       (WINE_GLAPI *p_glProgramUniform3i64vNV)(GLuint,GLint,GLsizei,const GLint64EXT*);
         void       (WINE_GLAPI *p_glProgramUniform3iEXT)(GLuint,GLint,GLint,GLint,GLint);
         void       (WINE_GLAPI *p_glProgramUniform3iv)(GLuint,GLint,GLsizei,const GLint*);
         void       (WINE_GLAPI *p_glProgramUniform3ivEXT)(GLuint,GLint,GLsizei,const GLint*);
         void       (WINE_GLAPI *p_glProgramUniform3ui)(GLuint,GLint,GLuint,GLuint,GLuint);
+        void       (WINE_GLAPI *p_glProgramUniform3ui64ARB)(GLuint,GLint,GLuint64,GLuint64,GLuint64);
         void       (WINE_GLAPI *p_glProgramUniform3ui64NV)(GLuint,GLint,GLuint64EXT,GLuint64EXT,GLuint64EXT);
+        void       (WINE_GLAPI *p_glProgramUniform3ui64vARB)(GLuint,GLint,GLsizei,const GLuint64*);
         void       (WINE_GLAPI *p_glProgramUniform3ui64vNV)(GLuint,GLint,GLsizei,const GLuint64EXT*);
         void       (WINE_GLAPI *p_glProgramUniform3uiEXT)(GLuint,GLint,GLuint,GLuint,GLuint);
         void       (WINE_GLAPI *p_glProgramUniform3uiv)(GLuint,GLint,GLsizei,const GLuint*);
@@ -1963,13 +1987,17 @@ struct opengl_funcs
         void       (WINE_GLAPI *p_glProgramUniform4fv)(GLuint,GLint,GLsizei,const GLfloat*);
         void       (WINE_GLAPI *p_glProgramUniform4fvEXT)(GLuint,GLint,GLsizei,const GLfloat*);
         void       (WINE_GLAPI *p_glProgramUniform4i)(GLuint,GLint,GLint,GLint,GLint,GLint);
+        void       (WINE_GLAPI *p_glProgramUniform4i64ARB)(GLuint,GLint,GLint64,GLint64,GLint64,GLint64);
         void       (WINE_GLAPI *p_glProgramUniform4i64NV)(GLuint,GLint,GLint64EXT,GLint64EXT,GLint64EXT,GLint64EXT);
+        void       (WINE_GLAPI *p_glProgramUniform4i64vARB)(GLuint,GLint,GLsizei,const GLint64*);
         void       (WINE_GLAPI *p_glProgramUniform4i64vNV)(GLuint,GLint,GLsizei,const GLint64EXT*);
         void       (WINE_GLAPI *p_glProgramUniform4iEXT)(GLuint,GLint,GLint,GLint,GLint,GLint);
         void       (WINE_GLAPI *p_glProgramUniform4iv)(GLuint,GLint,GLsizei,const GLint*);
         void       (WINE_GLAPI *p_glProgramUniform4ivEXT)(GLuint,GLint,GLsizei,const GLint*);
         void       (WINE_GLAPI *p_glProgramUniform4ui)(GLuint,GLint,GLuint,GLuint,GLuint,GLuint);
+        void       (WINE_GLAPI *p_glProgramUniform4ui64ARB)(GLuint,GLint,GLuint64,GLuint64,GLuint64,GLuint64);
         void       (WINE_GLAPI *p_glProgramUniform4ui64NV)(GLuint,GLint,GLuint64EXT,GLuint64EXT,GLuint64EXT,GLuint64EXT);
+        void       (WINE_GLAPI *p_glProgramUniform4ui64vARB)(GLuint,GLint,GLsizei,const GLuint64*);
         void       (WINE_GLAPI *p_glProgramUniform4ui64vNV)(GLuint,GLint,GLsizei,const GLuint64EXT*);
         void       (WINE_GLAPI *p_glProgramUniform4uiEXT)(GLuint,GLint,GLuint,GLuint,GLuint,GLuint);
         void       (WINE_GLAPI *p_glProgramUniform4uiv)(GLuint,GLint,GLsizei,const GLuint*);
@@ -2080,7 +2108,6 @@ struct opengl_funcs
         void       (WINE_GLAPI *p_glRotatexOES)(GLfixed,GLfixed,GLfixed,GLfixed);
         void       (WINE_GLAPI *p_glSampleCoverage)(GLfloat,GLboolean);
         void       (WINE_GLAPI *p_glSampleCoverageARB)(GLfloat,GLboolean);
-        void       (WINE_GLAPI *p_glSampleCoverageOES)(GLfixed,GLboolean);
         void       (WINE_GLAPI *p_glSampleMapATI)(GLuint,GLuint,GLenum);
         void       (WINE_GLAPI *p_glSampleMaskEXT)(GLclampf,GLboolean);
         void       (WINE_GLAPI *p_glSampleMaskIndexedNV)(GLuint,GLbitfield);
@@ -2355,13 +2382,17 @@ struct opengl_funcs
         void       (WINE_GLAPI *p_glUniform1fv)(GLint,GLsizei,const GLfloat*);
         void       (WINE_GLAPI *p_glUniform1fvARB)(GLint,GLsizei,const GLfloat*);
         void       (WINE_GLAPI *p_glUniform1i)(GLint,GLint);
+        void       (WINE_GLAPI *p_glUniform1i64ARB)(GLint,GLint64);
         void       (WINE_GLAPI *p_glUniform1i64NV)(GLint,GLint64EXT);
+        void       (WINE_GLAPI *p_glUniform1i64vARB)(GLint,GLsizei,const GLint64*);
         void       (WINE_GLAPI *p_glUniform1i64vNV)(GLint,GLsizei,const GLint64EXT*);
         void       (WINE_GLAPI *p_glUniform1iARB)(GLint,GLint);
         void       (WINE_GLAPI *p_glUniform1iv)(GLint,GLsizei,const GLint*);
         void       (WINE_GLAPI *p_glUniform1ivARB)(GLint,GLsizei,const GLint*);
         void       (WINE_GLAPI *p_glUniform1ui)(GLint,GLuint);
+        void       (WINE_GLAPI *p_glUniform1ui64ARB)(GLint,GLuint64);
         void       (WINE_GLAPI *p_glUniform1ui64NV)(GLint,GLuint64EXT);
+        void       (WINE_GLAPI *p_glUniform1ui64vARB)(GLint,GLsizei,const GLuint64*);
         void       (WINE_GLAPI *p_glUniform1ui64vNV)(GLint,GLsizei,const GLuint64EXT*);
         void       (WINE_GLAPI *p_glUniform1uiEXT)(GLint,GLuint);
         void       (WINE_GLAPI *p_glUniform1uiv)(GLint,GLsizei,const GLuint*);
@@ -2373,13 +2404,17 @@ struct opengl_funcs
         void       (WINE_GLAPI *p_glUniform2fv)(GLint,GLsizei,const GLfloat*);
         void       (WINE_GLAPI *p_glUniform2fvARB)(GLint,GLsizei,const GLfloat*);
         void       (WINE_GLAPI *p_glUniform2i)(GLint,GLint,GLint);
+        void       (WINE_GLAPI *p_glUniform2i64ARB)(GLint,GLint64,GLint64);
         void       (WINE_GLAPI *p_glUniform2i64NV)(GLint,GLint64EXT,GLint64EXT);
+        void       (WINE_GLAPI *p_glUniform2i64vARB)(GLint,GLsizei,const GLint64*);
         void       (WINE_GLAPI *p_glUniform2i64vNV)(GLint,GLsizei,const GLint64EXT*);
         void       (WINE_GLAPI *p_glUniform2iARB)(GLint,GLint,GLint);
         void       (WINE_GLAPI *p_glUniform2iv)(GLint,GLsizei,const GLint*);
         void       (WINE_GLAPI *p_glUniform2ivARB)(GLint,GLsizei,const GLint*);
         void       (WINE_GLAPI *p_glUniform2ui)(GLint,GLuint,GLuint);
+        void       (WINE_GLAPI *p_glUniform2ui64ARB)(GLint,GLuint64,GLuint64);
         void       (WINE_GLAPI *p_glUniform2ui64NV)(GLint,GLuint64EXT,GLuint64EXT);
+        void       (WINE_GLAPI *p_glUniform2ui64vARB)(GLint,GLsizei,const GLuint64*);
         void       (WINE_GLAPI *p_glUniform2ui64vNV)(GLint,GLsizei,const GLuint64EXT*);
         void       (WINE_GLAPI *p_glUniform2uiEXT)(GLint,GLuint,GLuint);
         void       (WINE_GLAPI *p_glUniform2uiv)(GLint,GLsizei,const GLuint*);
@@ -2391,13 +2426,17 @@ struct opengl_funcs
         void       (WINE_GLAPI *p_glUniform3fv)(GLint,GLsizei,const GLfloat*);
         void       (WINE_GLAPI *p_glUniform3fvARB)(GLint,GLsizei,const GLfloat*);
         void       (WINE_GLAPI *p_glUniform3i)(GLint,GLint,GLint,GLint);
+        void       (WINE_GLAPI *p_glUniform3i64ARB)(GLint,GLint64,GLint64,GLint64);
         void       (WINE_GLAPI *p_glUniform3i64NV)(GLint,GLint64EXT,GLint64EXT,GLint64EXT);
+        void       (WINE_GLAPI *p_glUniform3i64vARB)(GLint,GLsizei,const GLint64*);
         void       (WINE_GLAPI *p_glUniform3i64vNV)(GLint,GLsizei,const GLint64EXT*);
         void       (WINE_GLAPI *p_glUniform3iARB)(GLint,GLint,GLint,GLint);
         void       (WINE_GLAPI *p_glUniform3iv)(GLint,GLsizei,const GLint*);
         void       (WINE_GLAPI *p_glUniform3ivARB)(GLint,GLsizei,const GLint*);
         void       (WINE_GLAPI *p_glUniform3ui)(GLint,GLuint,GLuint,GLuint);
+        void       (WINE_GLAPI *p_glUniform3ui64ARB)(GLint,GLuint64,GLuint64,GLuint64);
         void       (WINE_GLAPI *p_glUniform3ui64NV)(GLint,GLuint64EXT,GLuint64EXT,GLuint64EXT);
+        void       (WINE_GLAPI *p_glUniform3ui64vARB)(GLint,GLsizei,const GLuint64*);
         void       (WINE_GLAPI *p_glUniform3ui64vNV)(GLint,GLsizei,const GLuint64EXT*);
         void       (WINE_GLAPI *p_glUniform3uiEXT)(GLint,GLuint,GLuint,GLuint);
         void       (WINE_GLAPI *p_glUniform3uiv)(GLint,GLsizei,const GLuint*);
@@ -2409,13 +2448,17 @@ struct opengl_funcs
         void       (WINE_GLAPI *p_glUniform4fv)(GLint,GLsizei,const GLfloat*);
         void       (WINE_GLAPI *p_glUniform4fvARB)(GLint,GLsizei,const GLfloat*);
         void       (WINE_GLAPI *p_glUniform4i)(GLint,GLint,GLint,GLint,GLint);
+        void       (WINE_GLAPI *p_glUniform4i64ARB)(GLint,GLint64,GLint64,GLint64,GLint64);
         void       (WINE_GLAPI *p_glUniform4i64NV)(GLint,GLint64EXT,GLint64EXT,GLint64EXT,GLint64EXT);
+        void       (WINE_GLAPI *p_glUniform4i64vARB)(GLint,GLsizei,const GLint64*);
         void       (WINE_GLAPI *p_glUniform4i64vNV)(GLint,GLsizei,const GLint64EXT*);
         void       (WINE_GLAPI *p_glUniform4iARB)(GLint,GLint,GLint,GLint,GLint);
         void       (WINE_GLAPI *p_glUniform4iv)(GLint,GLsizei,const GLint*);
         void       (WINE_GLAPI *p_glUniform4ivARB)(GLint,GLsizei,const GLint*);
         void       (WINE_GLAPI *p_glUniform4ui)(GLint,GLuint,GLuint,GLuint,GLuint);
+        void       (WINE_GLAPI *p_glUniform4ui64ARB)(GLint,GLuint64,GLuint64,GLuint64,GLuint64);
         void       (WINE_GLAPI *p_glUniform4ui64NV)(GLint,GLuint64EXT,GLuint64EXT,GLuint64EXT,GLuint64EXT);
+        void       (WINE_GLAPI *p_glUniform4ui64vARB)(GLint,GLsizei,const GLuint64*);
         void       (WINE_GLAPI *p_glUniform4ui64vNV)(GLint,GLsizei,const GLuint64EXT*);
         void       (WINE_GLAPI *p_glUniform4uiEXT)(GLint,GLuint,GLuint,GLuint,GLuint);
         void       (WINE_GLAPI *p_glUniform4uiv)(GLint,GLsizei,const GLuint*);
diff --git a/include/winternl.h b/include/winternl.h
index 2fe2a2d..8e85eb4 100644
--- a/include/winternl.h
+++ b/include/winternl.h
@@ -341,7 +341,10 @@ typedef struct _TEB
     PVOID                        GdiThreadLocaleInfo;               /* 6fc/0870 */
     ULONG                        UserReserved[5];                   /* 700/0878 */
     PVOID                        glDispachTable[280];               /* 714/0890 */
-    PVOID                        glReserved1[26];                   /* b74/1150 */
+    PVOID                        glDebugCallback;                   /* b74/1150 */
+    PVOID                        glDebugCallbackAMD;                /* b78/1158 */
+    PVOID                        glDebugCallbackARB;                /* b7c/1160 */
+    PVOID                        glReserved1[23];                   /* b80/1164 */
     PVOID                        glReserved2;                       /* bdc/1220 */
     PVOID                        glSectionInfo;                     /* be0/1228 */
     PVOID                        glSection;                         /* be4/1230 */
-- 
2.5.2




More information about the wine-patches mailing list